@opusdns/api 0.139.0 → 0.141.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
@@ -206,6 +206,23 @@ components:
206
206
  - canceled
207
207
  title: BillingTransactionStatus
208
208
  type: string
209
+ BrowserStatsBucket:
210
+ properties:
211
+ key:
212
+ title: Key
213
+ type: string
214
+ total:
215
+ title: Total
216
+ type: integer
217
+ unique:
218
+ title: Unique
219
+ type: integer
220
+ required:
221
+ - key
222
+ - total
223
+ - unique
224
+ title: BrowserStatsBucket
225
+ type: object
209
226
  ContactAttributeDefinition:
210
227
  description: Definition of a possible attribute for a TLD.
211
228
  properties:
@@ -1571,17 +1588,24 @@ components:
1571
1588
  format: date-time
1572
1589
  title: Updated On
1573
1590
  type: string
1574
- wildcard:
1575
- title: Wildcard
1576
- type: boolean
1577
1591
  required:
1578
1592
  - hostname
1579
- - wildcard
1580
1593
  - enabled
1581
1594
  - updated_on
1582
1595
  - created_on
1583
1596
  title: DomainForward
1584
1597
  type: object
1598
+ DomainForwardBrowserStatsResponse:
1599
+ properties:
1600
+ results:
1601
+ items:
1602
+ $ref: '#/components/schemas/BrowserStatsBucket'
1603
+ title: Results
1604
+ type: array
1605
+ required:
1606
+ - results
1607
+ title: DomainForwardBrowserStatsResponse
1608
+ type: object
1585
1609
  DomainForwardCreateRequest:
1586
1610
  properties:
1587
1611
  enabled:
@@ -1603,6 +1627,49 @@ components:
1603
1627
  - hostname
1604
1628
  title: DomainForwardCreateRequest
1605
1629
  type: object
1630
+ DomainForwardGeoStatsResponse:
1631
+ properties:
1632
+ results:
1633
+ items:
1634
+ $ref: '#/components/schemas/GeoStatsBucket'
1635
+ title: Results
1636
+ type: array
1637
+ required:
1638
+ - results
1639
+ title: DomainForwardGeoStatsResponse
1640
+ type: object
1641
+ DomainForwardMetricsResponse:
1642
+ properties:
1643
+ configured_forwards:
1644
+ title: Configured Forwards
1645
+ type: integer
1646
+ invoked_forwards:
1647
+ title: Invoked Forwards
1648
+ type: integer
1649
+ total_visits:
1650
+ title: Total Visits
1651
+ type: integer
1652
+ unique_visits:
1653
+ title: Unique Visits
1654
+ type: integer
1655
+ required:
1656
+ - invoked_forwards
1657
+ - configured_forwards
1658
+ - total_visits
1659
+ - unique_visits
1660
+ title: DomainForwardMetricsResponse
1661
+ type: object
1662
+ DomainForwardMetricsTimeSeriesResponse:
1663
+ properties:
1664
+ results:
1665
+ items:
1666
+ $ref: '#/components/schemas/TimeSeriesBucket'
1667
+ title: Results
1668
+ type: array
1669
+ required:
1670
+ - results
1671
+ title: DomainForwardMetricsTimeSeriesResponse
1672
+ type: object
1606
1673
  DomainForwardPatchOp:
1607
1674
  properties:
1608
1675
  op:
@@ -1628,6 +1695,17 @@ components:
1628
1695
  - ops
1629
1696
  title: DomainForwardPatchOps
1630
1697
  type: object
1698
+ DomainForwardPlatformStatsResponse:
1699
+ properties:
1700
+ results:
1701
+ items:
1702
+ $ref: '#/components/schemas/PlatformStatsBucket'
1703
+ title: Results
1704
+ type: array
1705
+ required:
1706
+ - results
1707
+ title: DomainForwardPlatformStatsResponse
1708
+ type: object
1631
1709
  DomainForwardProtocolSetRequest:
1632
1710
  properties:
1633
1711
  redirects:
@@ -1637,11 +1715,6 @@ components:
1637
1715
  - $ref: '#/components/schemas/WildcardHttpRedirectRequest'
1638
1716
  title: Redirects
1639
1717
  type: array
1640
- wildcard:
1641
- anyOf:
1642
- - type: boolean
1643
- - type: 'null'
1644
- title: Wildcard
1645
1718
  required:
1646
1719
  - redirects
1647
1720
  title: DomainForwardProtocolSetRequest
@@ -1661,36 +1734,38 @@ components:
1661
1734
  format: date-time
1662
1735
  title: Updated On
1663
1736
  type: string
1664
- wildcard:
1665
- title: Wildcard
1666
- type: boolean
1667
1737
  required:
1668
- - wildcard
1669
1738
  - redirects
1670
1739
  - updated_on
1671
1740
  - created_on
1672
1741
  title: DomainForwardProtocolSetResponse
1673
1742
  type: object
1674
- DomainForwardRequest:
1743
+ DomainForwardReferrerStatsResponse:
1675
1744
  properties:
1676
- enabled:
1677
- default: false
1678
- title: Enabled
1679
- type: boolean
1680
- http:
1681
- anyOf:
1682
- - $ref: '#/components/schemas/DomainForwardProtocolSetRequest'
1683
- - type: 'null'
1684
- https:
1685
- anyOf:
1686
- - $ref: '#/components/schemas/DomainForwardProtocolSetRequest'
1687
- - type: 'null'
1688
- wildcard:
1689
- anyOf:
1690
- - type: boolean
1691
- - type: 'null'
1692
- title: Wildcard
1693
- title: DomainForwardRequest
1745
+ results:
1746
+ items:
1747
+ $ref: '#/components/schemas/ReferrerStatsBucket'
1748
+ title: Results
1749
+ type: array
1750
+ required:
1751
+ - results
1752
+ title: DomainForwardReferrerStatsResponse
1753
+ type: object
1754
+ DomainForwardSetCreateRequest:
1755
+ properties:
1756
+ protocol:
1757
+ $ref: '#/components/schemas/HttpProtocol'
1758
+ redirects:
1759
+ items:
1760
+ anyOf:
1761
+ - $ref: '#/components/schemas/HttpRedirectRequest'
1762
+ - $ref: '#/components/schemas/WildcardHttpRedirectRequest'
1763
+ title: Redirects
1764
+ type: array
1765
+ required:
1766
+ - protocol
1767
+ - redirects
1768
+ title: DomainForwardSetCreateRequest
1694
1769
  type: object
1695
1770
  DomainForwardSetRequest:
1696
1771
  properties:
@@ -1725,13 +1800,9 @@ components:
1725
1800
  format: date-time
1726
1801
  title: Updated On
1727
1802
  type: string
1728
- wildcard:
1729
- title: Wildcard
1730
- type: boolean
1731
1803
  required:
1732
1804
  - hostname
1733
1805
  - protocol
1734
- - wildcard
1735
1806
  - redirects
1736
1807
  - updated_on
1737
1808
  - created_on
@@ -1745,6 +1816,39 @@ components:
1745
1816
  - updated_on
1746
1817
  title: DomainForwardSortField
1747
1818
  type: string
1819
+ DomainForwardStatusCodeStatsResponse:
1820
+ properties:
1821
+ results:
1822
+ items:
1823
+ $ref: '#/components/schemas/StatusCodeStatsBucket'
1824
+ title: Results
1825
+ type: array
1826
+ required:
1827
+ - results
1828
+ title: DomainForwardStatusCodeStatsResponse
1829
+ type: object
1830
+ DomainForwardUserAgentStatsResponse:
1831
+ properties:
1832
+ results:
1833
+ items:
1834
+ $ref: '#/components/schemas/UserAgentStatsBucket'
1835
+ title: Results
1836
+ type: array
1837
+ required:
1838
+ - results
1839
+ title: DomainForwardUserAgentStatsResponse
1840
+ type: object
1841
+ DomainForwardVisitsByKeyResponse:
1842
+ properties:
1843
+ results:
1844
+ items:
1845
+ $ref: '#/components/schemas/VisitsByKeyBucket'
1846
+ title: Results
1847
+ type: array
1848
+ required:
1849
+ - results
1850
+ title: DomainForwardVisitsByKeyResponse
1851
+ type: object
1748
1852
  DomainForwardZone:
1749
1853
  properties:
1750
1854
  domain_forwards:
@@ -3016,6 +3120,19 @@ components:
3016
3120
  - start_date
3017
3121
  title: GeneralAvailabilityBase
3018
3122
  type: object
3123
+ GeoStatsBucket:
3124
+ properties:
3125
+ key:
3126
+ title: Key
3127
+ type: string
3128
+ total:
3129
+ title: Total
3130
+ type: integer
3131
+ required:
3132
+ - key
3133
+ - total
3134
+ title: GeoStatsBucket
3135
+ type: object
3019
3136
  GetPricesResponse:
3020
3137
  properties:
3021
3138
  prices:
@@ -3562,6 +3679,14 @@ components:
3562
3679
  - business_entity
3563
3680
  title: LocalPresenceRequirementType
3564
3681
  type: string
3682
+ MetricsGrouping:
3683
+ enum:
3684
+ - url
3685
+ - fqdn
3686
+ - domain
3687
+ - forward
3688
+ title: MetricsGrouping
3689
+ type: string
3565
3690
  Nameserver:
3566
3691
  properties:
3567
3692
  hostname:
@@ -4681,6 +4806,23 @@ components:
4681
4806
  type: array
4682
4807
  title: PermissionSet
4683
4808
  type: object
4809
+ PlatformStatsBucket:
4810
+ properties:
4811
+ key:
4812
+ title: Key
4813
+ type: string
4814
+ total:
4815
+ title: Total
4816
+ type: integer
4817
+ unique:
4818
+ title: Unique
4819
+ type: integer
4820
+ required:
4821
+ - key
4822
+ - total
4823
+ - unique
4824
+ title: PlatformStatsBucket
4825
+ type: object
4684
4826
  PostTransferRequirements:
4685
4827
  enum:
4686
4828
  - update_contacts
@@ -4799,6 +4941,12 @@ components:
4799
4941
  - status
4800
4942
  title: Problem
4801
4943
  type: object
4944
+ Protocol:
4945
+ enum:
4946
+ - http
4947
+ - https
4948
+ title: Protocol
4949
+ type: string
4802
4950
  PublicAuthRequestForm:
4803
4951
  properties:
4804
4952
  client_id:
@@ -4846,6 +4994,23 @@ components:
4846
4994
  - 308
4847
4995
  title: RedirectCode
4848
4996
  type: integer
4997
+ ReferrerStatsBucket:
4998
+ properties:
4999
+ key:
5000
+ title: Key
5001
+ type: string
5002
+ total:
5003
+ title: Total
5004
+ type: integer
5005
+ unique:
5006
+ title: Unique
5007
+ type: integer
5008
+ required:
5009
+ - key
5010
+ - total
5011
+ - unique
5012
+ title: ReferrerStatsBucket
5013
+ type: object
4849
5014
  RegistrantChangeType:
4850
5015
  enum:
4851
5016
  - update
@@ -5132,6 +5297,19 @@ components:
5132
5297
  title: Remove
5133
5298
  title: SpiceDbRelationshipUpdate
5134
5299
  type: object
5300
+ StatusCodeStatsBucket:
5301
+ properties:
5302
+ key:
5303
+ title: Key
5304
+ type: string
5305
+ total:
5306
+ title: Total
5307
+ type: integer
5308
+ required:
5309
+ - key
5310
+ - total
5311
+ title: StatusCodeStatsBucket
5312
+ type: object
5135
5313
  SyncOperationType:
5136
5314
  enum:
5137
5315
  - registration
@@ -5145,6 +5323,28 @@ components:
5145
5323
  - ccTLD
5146
5324
  title: TLDType
5147
5325
  type: string
5326
+ TimeRange:
5327
+ enum:
5328
+ - 1h
5329
+ - 1d
5330
+ - 7d
5331
+ - 30d
5332
+ title: TimeRange
5333
+ type: string
5334
+ TimeSeriesBucket:
5335
+ properties:
5336
+ timestamp:
5337
+ format: date-time
5338
+ title: Timestamp
5339
+ type: string
5340
+ total:
5341
+ title: Total
5342
+ type: integer
5343
+ required:
5344
+ - timestamp
5345
+ - total
5346
+ title: TimeSeriesBucket
5347
+ type: object
5148
5348
  TldBase:
5149
5349
  properties:
5150
5350
  name:
@@ -5539,6 +5739,23 @@ components:
5539
5739
  - status
5540
5740
  title: User
5541
5741
  type: object
5742
+ UserAgentStatsBucket:
5743
+ properties:
5744
+ key:
5745
+ title: Key
5746
+ type: string
5747
+ total:
5748
+ title: Total
5749
+ type: integer
5750
+ unique:
5751
+ title: Unique
5752
+ type: integer
5753
+ required:
5754
+ - key
5755
+ - total
5756
+ - unique
5757
+ title: UserAgentStatsBucket
5758
+ type: object
5542
5759
  UserAttributeBase:
5543
5760
  properties:
5544
5761
  key:
@@ -6042,6 +6259,23 @@ components:
6042
6259
  - email
6043
6260
  title: VerificationType
6044
6261
  type: string
6262
+ VisitsByKeyBucket:
6263
+ properties:
6264
+ key:
6265
+ title: Key
6266
+ type: string
6267
+ total:
6268
+ title: Total
6269
+ type: integer
6270
+ unique:
6271
+ title: Unique
6272
+ type: integer
6273
+ required:
6274
+ - key
6275
+ - total
6276
+ - unique
6277
+ title: VisitsByKeyBucket
6278
+ type: object
6045
6279
  WhoisBase:
6046
6280
  properties:
6047
6281
  whois_server:
@@ -6253,7 +6487,7 @@ info:
6253
6487
  '
6254
6488
  summary: OpusDNS - your gateway to a seamless domain management experience.
6255
6489
  title: OpusDNS API
6256
- version: 2025-12-30-205837
6490
+ version: 2026-01-07-115447
6257
6491
  x-logo:
6258
6492
  altText: OpusDNS API Reference
6259
6493
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -8169,9 +8403,7 @@ paths:
8169
8403
  target_path: /
8170
8404
  target_protocol: https
8171
8405
  updated_on: '2025-11-18T12:59:57Z'
8172
- wildcard: false
8173
8406
  updated_on: '2025-11-18T12:59:57Z'
8174
- wildcard: false
8175
8407
  zone_id: zone_01kabfvtysfqwv4dn89r3jepym
8176
8408
  zone_name: example.com.
8177
8409
  schema:
@@ -8590,9 +8822,7 @@ paths:
8590
8822
  target_path: /
8591
8823
  target_protocol: https
8592
8824
  updated_on: '2025-11-18T12:59:57Z'
8593
- wildcard: false
8594
8825
  updated_on: '2025-11-18T12:59:57Z'
8595
- wildcard: false
8596
8826
  zone_id: zone_01kabfvtysfqwv4dn89r3jepym
8597
8827
  zone_name: example.com.
8598
8828
  schema:
@@ -9150,6 +9380,7 @@ paths:
9150
9380
  summary: HTTP domain forward
9151
9381
  value:
9152
9382
  enabled: false
9383
+ hostname: example.com.
9153
9384
  http:
9154
9385
  redirects:
9155
9386
  - redirect_code: 301
@@ -9157,7 +9388,6 @@ paths:
9157
9388
  target_hostname: example.com
9158
9389
  target_path: /
9159
9390
  target_protocol: https
9160
- wildcard: false
9161
9391
  https:
9162
9392
  redirects:
9163
9393
  - redirect_code: 302
@@ -9165,14 +9395,13 @@ paths:
9165
9395
  target_hostname: auth.example.com
9166
9396
  target_path: /
9167
9397
  target_protocol: https
9168
- wildcard: false
9169
- wildcard: false
9170
9398
  http_to_https:
9171
9399
  description: Create a HTTP domain forward with redirect from HTTP
9172
9400
  to HTTPS
9173
9401
  summary: HTTP to HTTPS
9174
9402
  value:
9175
9403
  enabled: false
9404
+ hostname: example.com.
9176
9405
  https:
9177
9406
  redirects:
9178
9407
  - redirect_code: 301
@@ -9180,8 +9409,6 @@ paths:
9180
9409
  target_hostname: example.com
9181
9410
  target_path: /
9182
9411
  target_protocol: https
9183
- wildcard: false
9184
- wildcard: false
9185
9412
  schema:
9186
9413
  $ref: '#/components/schemas/DomainForwardCreateRequest'
9187
9414
  required: true
@@ -9209,7 +9436,6 @@ paths:
9209
9436
  target_path: /
9210
9437
  target_protocol: https
9211
9438
  updated_on: '2025-11-14T09:01:38'
9212
- wildcard: false
9213
9439
  https:
9214
9440
  created_on: '2025-11-14T09:01:38'
9215
9441
  redirects:
@@ -9221,9 +9447,7 @@ paths:
9221
9447
  target_path: /
9222
9448
  target_protocol: https
9223
9449
  updated_on: '2025-11-14T09:01:38'
9224
- wildcard: false
9225
9450
  updated_on: '2025-11-14T09:01:38'
9226
- wildcard: false
9227
9451
  http_to_https_response:
9228
9452
  description: Response when creating a HTTP to HTTPS domain forward
9229
9453
  summary: Response for HTTP to HTTPS
@@ -9242,9 +9466,7 @@ paths:
9242
9466
  target_path: /
9243
9467
  target_protocol: https
9244
9468
  updated_on: '2025-11-14T09:01:38'
9245
- wildcard: false
9246
9469
  updated_on: '2025-11-14T09:01:38'
9247
- wildcard: false
9248
9470
  schema:
9249
9471
  $ref: '#/components/schemas/DomainForward'
9250
9472
  description: Domain forward created successfully
@@ -9308,48 +9530,488 @@ paths:
9308
9530
  summary: Create a domain forward
9309
9531
  tags:
9310
9532
  - domain_forward
9311
- /v1/domain-forwards/{hostname}:
9312
- delete:
9313
- description: Deletes the domain forward configuration for the specified hostname
9314
- operationId: delete_domain_forward_v1_domain_forwards__hostname__delete
9533
+ /v1/domain-forwards/metrics:
9534
+ get:
9535
+ operationId: metrics_v1_domain_forwards_metrics_get
9315
9536
  parameters:
9316
- - description: Hostname
9317
- in: path
9537
+ - in: query
9318
9538
  name: hostname
9319
- required: true
9539
+ required: false
9320
9540
  schema:
9321
- description: Hostname
9541
+ anyOf:
9542
+ - type: string
9543
+ - type: 'null'
9322
9544
  title: Hostname
9323
- type: string
9545
+ - description: 'Filter by protocol: http or https'
9546
+ in: query
9547
+ name: protocol
9548
+ required: false
9549
+ schema:
9550
+ anyOf:
9551
+ - $ref: '#/components/schemas/Protocol'
9552
+ - type: 'null'
9553
+ description: 'Filter by protocol: http or https'
9554
+ title: Protocol
9555
+ - description: 'Time range: 1h, 1d, 7d, or 30d'
9556
+ in: query
9557
+ name: time_range
9558
+ required: false
9559
+ schema:
9560
+ $ref: '#/components/schemas/TimeRange'
9561
+ default: 1d
9562
+ description: 'Time range: 1h, 1d, 7d, or 30d'
9324
9563
  responses:
9325
- '204':
9326
- description: Successful Response
9327
- '401':
9564
+ '200':
9328
9565
  content:
9329
- application/problem+json:
9330
- example:
9331
- code: ERROR_AUTHENTICATION
9332
- detail: Additional error context.
9333
- status: 401
9334
- title: Authentication Error
9335
- type: authentication
9566
+ application/json:
9336
9567
  schema:
9337
- $ref: '#/components/schemas/Problem'
9338
- description: Unauthorized
9339
- '403':
9568
+ $ref: '#/components/schemas/DomainForwardMetricsResponse'
9569
+ description: Successful Response
9570
+ '422':
9340
9571
  content:
9341
9572
  application/problem+json:
9342
- example:
9343
- code: ERROR_PERMISSION_DENIED
9344
- detail: Insufficient permissions to perform this action
9345
- status: 403
9346
- title: Permission Denied
9347
- type: permission-denied
9348
9573
  schema:
9349
- $ref: '#/components/schemas/Problem'
9350
- description: Forbidden
9351
- '404':
9352
- content:
9574
+ $ref: '#/components/schemas/HTTPValidationError'
9575
+ description: Validation Error
9576
+ security:
9577
+ - OAuth2PasswordBearer: []
9578
+ summary: Metrics
9579
+ tags:
9580
+ - domain_forward
9581
+ /v1/domain-forwards/metrics/browser:
9582
+ get:
9583
+ operationId: browser_stats_v1_domain_forwards_metrics_browser_get
9584
+ parameters:
9585
+ - in: query
9586
+ name: hostname
9587
+ required: false
9588
+ schema:
9589
+ anyOf:
9590
+ - type: string
9591
+ - type: 'null'
9592
+ title: Hostname
9593
+ - description: 'Filter by protocol: http or https'
9594
+ in: query
9595
+ name: protocol
9596
+ required: false
9597
+ schema:
9598
+ anyOf:
9599
+ - $ref: '#/components/schemas/Protocol'
9600
+ - type: 'null'
9601
+ description: 'Filter by protocol: http or https'
9602
+ title: Protocol
9603
+ - description: 'Time range: 1h, 1d, 7d, or 30d'
9604
+ in: query
9605
+ name: time_range
9606
+ required: false
9607
+ schema:
9608
+ $ref: '#/components/schemas/TimeRange'
9609
+ default: 1d
9610
+ description: 'Time range: 1h, 1d, 7d, or 30d'
9611
+ responses:
9612
+ '200':
9613
+ content:
9614
+ application/json:
9615
+ schema:
9616
+ $ref: '#/components/schemas/DomainForwardBrowserStatsResponse'
9617
+ description: Successful Response
9618
+ '422':
9619
+ content:
9620
+ application/problem+json:
9621
+ schema:
9622
+ $ref: '#/components/schemas/HTTPValidationError'
9623
+ description: Validation Error
9624
+ security:
9625
+ - OAuth2PasswordBearer: []
9626
+ summary: Browser Stats
9627
+ tags:
9628
+ - domain_forward
9629
+ /v1/domain-forwards/metrics/geo:
9630
+ get:
9631
+ operationId: geo_stats_v1_domain_forwards_metrics_geo_get
9632
+ parameters:
9633
+ - in: query
9634
+ name: hostname
9635
+ required: false
9636
+ schema:
9637
+ anyOf:
9638
+ - type: string
9639
+ - type: 'null'
9640
+ title: Hostname
9641
+ - description: 'Filter by protocol: http or https'
9642
+ in: query
9643
+ name: protocol
9644
+ required: false
9645
+ schema:
9646
+ anyOf:
9647
+ - $ref: '#/components/schemas/Protocol'
9648
+ - type: 'null'
9649
+ description: 'Filter by protocol: http or https'
9650
+ title: Protocol
9651
+ - description: 'Time range: 1h, 1d, 7d, or 30d'
9652
+ in: query
9653
+ name: time_range
9654
+ required: false
9655
+ schema:
9656
+ $ref: '#/components/schemas/TimeRange'
9657
+ default: 1d
9658
+ description: 'Time range: 1h, 1d, 7d, or 30d'
9659
+ responses:
9660
+ '200':
9661
+ content:
9662
+ application/json:
9663
+ schema:
9664
+ $ref: '#/components/schemas/DomainForwardGeoStatsResponse'
9665
+ description: Successful Response
9666
+ '422':
9667
+ content:
9668
+ application/problem+json:
9669
+ schema:
9670
+ $ref: '#/components/schemas/HTTPValidationError'
9671
+ description: Validation Error
9672
+ security:
9673
+ - OAuth2PasswordBearer: []
9674
+ summary: Geo Stats
9675
+ tags:
9676
+ - domain_forward
9677
+ /v1/domain-forwards/metrics/platform:
9678
+ get:
9679
+ operationId: platform_stats_v1_domain_forwards_metrics_platform_get
9680
+ parameters:
9681
+ - in: query
9682
+ name: hostname
9683
+ required: false
9684
+ schema:
9685
+ anyOf:
9686
+ - type: string
9687
+ - type: 'null'
9688
+ title: Hostname
9689
+ - description: 'Filter by protocol: http or https'
9690
+ in: query
9691
+ name: protocol
9692
+ required: false
9693
+ schema:
9694
+ anyOf:
9695
+ - $ref: '#/components/schemas/Protocol'
9696
+ - type: 'null'
9697
+ description: 'Filter by protocol: http or https'
9698
+ title: Protocol
9699
+ - description: 'Time range: 1h, 1d, 7d, or 30d'
9700
+ in: query
9701
+ name: time_range
9702
+ required: false
9703
+ schema:
9704
+ $ref: '#/components/schemas/TimeRange'
9705
+ default: 1d
9706
+ description: 'Time range: 1h, 1d, 7d, or 30d'
9707
+ responses:
9708
+ '200':
9709
+ content:
9710
+ application/json:
9711
+ schema:
9712
+ $ref: '#/components/schemas/DomainForwardPlatformStatsResponse'
9713
+ description: Successful Response
9714
+ '422':
9715
+ content:
9716
+ application/problem+json:
9717
+ schema:
9718
+ $ref: '#/components/schemas/HTTPValidationError'
9719
+ description: Validation Error
9720
+ security:
9721
+ - OAuth2PasswordBearer: []
9722
+ summary: Platform Stats
9723
+ tags:
9724
+ - domain_forward
9725
+ /v1/domain-forwards/metrics/referrer:
9726
+ get:
9727
+ operationId: referrer_stats_v1_domain_forwards_metrics_referrer_get
9728
+ parameters:
9729
+ - in: query
9730
+ name: hostname
9731
+ required: false
9732
+ schema:
9733
+ anyOf:
9734
+ - type: string
9735
+ - type: 'null'
9736
+ title: Hostname
9737
+ - description: 'Filter by protocol: http or https'
9738
+ in: query
9739
+ name: protocol
9740
+ required: false
9741
+ schema:
9742
+ anyOf:
9743
+ - $ref: '#/components/schemas/Protocol'
9744
+ - type: 'null'
9745
+ description: 'Filter by protocol: http or https'
9746
+ title: Protocol
9747
+ - description: 'Time range: 1h, 1d, 7d, or 30d'
9748
+ in: query
9749
+ name: time_range
9750
+ required: false
9751
+ schema:
9752
+ $ref: '#/components/schemas/TimeRange'
9753
+ default: 1d
9754
+ description: 'Time range: 1h, 1d, 7d, or 30d'
9755
+ responses:
9756
+ '200':
9757
+ content:
9758
+ application/json:
9759
+ schema:
9760
+ $ref: '#/components/schemas/DomainForwardReferrerStatsResponse'
9761
+ description: Successful Response
9762
+ '422':
9763
+ content:
9764
+ application/problem+json:
9765
+ schema:
9766
+ $ref: '#/components/schemas/HTTPValidationError'
9767
+ description: Validation Error
9768
+ security:
9769
+ - OAuth2PasswordBearer: []
9770
+ summary: Referrer Stats
9771
+ tags:
9772
+ - domain_forward
9773
+ /v1/domain-forwards/metrics/status-code:
9774
+ get:
9775
+ operationId: status_code_stats_v1_domain_forwards_metrics_status_code_get
9776
+ parameters:
9777
+ - in: query
9778
+ name: hostname
9779
+ required: false
9780
+ schema:
9781
+ anyOf:
9782
+ - type: string
9783
+ - type: 'null'
9784
+ title: Hostname
9785
+ - description: 'Filter by protocol: http or https'
9786
+ in: query
9787
+ name: protocol
9788
+ required: false
9789
+ schema:
9790
+ anyOf:
9791
+ - $ref: '#/components/schemas/Protocol'
9792
+ - type: 'null'
9793
+ description: 'Filter by protocol: http or https'
9794
+ title: Protocol
9795
+ - description: 'Time range: 1h, 1d, 7d, or 30d'
9796
+ in: query
9797
+ name: time_range
9798
+ required: false
9799
+ schema:
9800
+ $ref: '#/components/schemas/TimeRange'
9801
+ default: 1d
9802
+ description: 'Time range: 1h, 1d, 7d, or 30d'
9803
+ responses:
9804
+ '200':
9805
+ content:
9806
+ application/json:
9807
+ schema:
9808
+ $ref: '#/components/schemas/DomainForwardStatusCodeStatsResponse'
9809
+ description: Successful Response
9810
+ '422':
9811
+ content:
9812
+ application/problem+json:
9813
+ schema:
9814
+ $ref: '#/components/schemas/HTTPValidationError'
9815
+ description: Validation Error
9816
+ security:
9817
+ - OAuth2PasswordBearer: []
9818
+ summary: Status Code Stats
9819
+ tags:
9820
+ - domain_forward
9821
+ /v1/domain-forwards/metrics/time-series:
9822
+ get:
9823
+ operationId: time_series_v1_domain_forwards_metrics_time_series_get
9824
+ parameters:
9825
+ - in: query
9826
+ name: hostname
9827
+ required: false
9828
+ schema:
9829
+ anyOf:
9830
+ - type: string
9831
+ - type: 'null'
9832
+ title: Hostname
9833
+ - description: 'Filter by protocol: http or https'
9834
+ in: query
9835
+ name: protocol
9836
+ required: false
9837
+ schema:
9838
+ anyOf:
9839
+ - $ref: '#/components/schemas/Protocol'
9840
+ - type: 'null'
9841
+ description: 'Filter by protocol: http or https'
9842
+ title: Protocol
9843
+ - description: 'Time range: 1h, 1d, 7d, or 30d'
9844
+ in: query
9845
+ name: time_range
9846
+ required: false
9847
+ schema:
9848
+ $ref: '#/components/schemas/TimeRange'
9849
+ default: 1d
9850
+ description: 'Time range: 1h, 1d, 7d, or 30d'
9851
+ responses:
9852
+ '200':
9853
+ content:
9854
+ application/json:
9855
+ schema:
9856
+ $ref: '#/components/schemas/DomainForwardMetricsTimeSeriesResponse'
9857
+ description: Successful Response
9858
+ '422':
9859
+ content:
9860
+ application/problem+json:
9861
+ schema:
9862
+ $ref: '#/components/schemas/HTTPValidationError'
9863
+ description: Validation Error
9864
+ security:
9865
+ - OAuth2PasswordBearer: []
9866
+ summary: Time Series
9867
+ tags:
9868
+ - domain_forward
9869
+ /v1/domain-forwards/metrics/user-agent:
9870
+ get:
9871
+ operationId: user_agent_stats_v1_domain_forwards_metrics_user_agent_get
9872
+ parameters:
9873
+ - in: query
9874
+ name: hostname
9875
+ required: false
9876
+ schema:
9877
+ anyOf:
9878
+ - type: string
9879
+ - type: 'null'
9880
+ title: Hostname
9881
+ - description: 'Filter by protocol: http or https'
9882
+ in: query
9883
+ name: protocol
9884
+ required: false
9885
+ schema:
9886
+ anyOf:
9887
+ - $ref: '#/components/schemas/Protocol'
9888
+ - type: 'null'
9889
+ description: 'Filter by protocol: http or https'
9890
+ title: Protocol
9891
+ - description: 'Time range: 1h, 1d, 7d, or 30d'
9892
+ in: query
9893
+ name: time_range
9894
+ required: false
9895
+ schema:
9896
+ $ref: '#/components/schemas/TimeRange'
9897
+ default: 1d
9898
+ description: 'Time range: 1h, 1d, 7d, or 30d'
9899
+ responses:
9900
+ '200':
9901
+ content:
9902
+ application/json:
9903
+ schema:
9904
+ $ref: '#/components/schemas/DomainForwardUserAgentStatsResponse'
9905
+ description: Successful Response
9906
+ '422':
9907
+ content:
9908
+ application/problem+json:
9909
+ schema:
9910
+ $ref: '#/components/schemas/HTTPValidationError'
9911
+ description: Validation Error
9912
+ security:
9913
+ - OAuth2PasswordBearer: []
9914
+ summary: User Agent Stats
9915
+ tags:
9916
+ - domain_forward
9917
+ /v1/domain-forwards/metrics/visits-by-key:
9918
+ get:
9919
+ operationId: visits_by_key_v1_domain_forwards_metrics_visits_by_key_get
9920
+ parameters:
9921
+ - description: 'Grouping key: url, fqdn, domain, or forward'
9922
+ in: query
9923
+ name: grouping
9924
+ required: false
9925
+ schema:
9926
+ $ref: '#/components/schemas/MetricsGrouping'
9927
+ default: domain
9928
+ description: 'Grouping key: url, fqdn, domain, or forward'
9929
+ - in: query
9930
+ name: hostname
9931
+ required: false
9932
+ schema:
9933
+ anyOf:
9934
+ - type: string
9935
+ - type: 'null'
9936
+ title: Hostname
9937
+ - description: 'Filter by protocol: http or https'
9938
+ in: query
9939
+ name: protocol
9940
+ required: false
9941
+ schema:
9942
+ anyOf:
9943
+ - $ref: '#/components/schemas/Protocol'
9944
+ - type: 'null'
9945
+ description: 'Filter by protocol: http or https'
9946
+ title: Protocol
9947
+ - description: 'Time range: 1h, 1d, 7d, or 30d'
9948
+ in: query
9949
+ name: time_range
9950
+ required: false
9951
+ schema:
9952
+ $ref: '#/components/schemas/TimeRange'
9953
+ default: 1d
9954
+ description: 'Time range: 1h, 1d, 7d, or 30d'
9955
+ responses:
9956
+ '200':
9957
+ content:
9958
+ application/json:
9959
+ schema:
9960
+ $ref: '#/components/schemas/DomainForwardVisitsByKeyResponse'
9961
+ description: Successful Response
9962
+ '422':
9963
+ content:
9964
+ application/problem+json:
9965
+ schema:
9966
+ $ref: '#/components/schemas/HTTPValidationError'
9967
+ description: Validation Error
9968
+ security:
9969
+ - OAuth2PasswordBearer: []
9970
+ summary: Visits By Key
9971
+ tags:
9972
+ - domain_forward
9973
+ /v1/domain-forwards/{hostname}:
9974
+ delete:
9975
+ description: Deletes the domain forward configuration for the specified hostname
9976
+ operationId: delete_domain_forward_v1_domain_forwards__hostname__delete
9977
+ parameters:
9978
+ - description: Hostname
9979
+ in: path
9980
+ name: hostname
9981
+ required: true
9982
+ schema:
9983
+ description: Hostname
9984
+ title: Hostname
9985
+ type: string
9986
+ responses:
9987
+ '204':
9988
+ description: Successful Response
9989
+ '401':
9990
+ content:
9991
+ application/problem+json:
9992
+ example:
9993
+ code: ERROR_AUTHENTICATION
9994
+ detail: Additional error context.
9995
+ status: 401
9996
+ title: Authentication Error
9997
+ type: authentication
9998
+ schema:
9999
+ $ref: '#/components/schemas/Problem'
10000
+ description: Unauthorized
10001
+ '403':
10002
+ content:
10003
+ application/problem+json:
10004
+ example:
10005
+ code: ERROR_PERMISSION_DENIED
10006
+ detail: Insufficient permissions to perform this action
10007
+ status: 403
10008
+ title: Permission Denied
10009
+ type: permission-denied
10010
+ schema:
10011
+ $ref: '#/components/schemas/Problem'
10012
+ description: Forbidden
10013
+ '404':
10014
+ content:
9353
10015
  application/problem+json:
9354
10016
  example:
9355
10017
  code: ERROR_DOMAIN_FORWARD_NOT_EXISTS
@@ -9438,10 +10100,9 @@ paths:
9438
10100
  tags:
9439
10101
  - domain_forward
9440
10102
  post:
9441
- deprecated: true
9442
- description: '**DEPRECATED**: Use POST /v1/domain-forwards instead. Creates
9443
- a new domain forward configuration for the specified hostname.'
9444
- operationId: create_domain_forward_v1_domain_forwards__hostname__post
10103
+ description: Creates a new domain forward set for a specific protocol (HTTP
10104
+ or HTTPS). Raises an error if the set already exists.
10105
+ operationId: create_domain_forward_set_v1_domain_forwards__hostname__post
9445
10106
  parameters:
9446
10107
  - description: Hostname
9447
10108
  in: path
@@ -9454,111 +10115,16 @@ paths:
9454
10115
  requestBody:
9455
10116
  content:
9456
10117
  application/json:
9457
- examples:
9458
- domain_forward:
9459
- description: Create a HTTP domain forward with redirect from HTTP
9460
- to HTTPS and HTTPS to auth.example.com
9461
- summary: HTTP domain forward
9462
- value:
9463
- enabled: false
9464
- http:
9465
- redirects:
9466
- - redirect_code: 301
9467
- request_path: /
9468
- target_hostname: example.com
9469
- target_path: /
9470
- target_protocol: https
9471
- wildcard: false
9472
- https:
9473
- redirects:
9474
- - redirect_code: 302
9475
- request_path: /
9476
- target_hostname: auth.example.com
9477
- target_path: /
9478
- target_protocol: https
9479
- wildcard: false
9480
- wildcard: false
9481
- http_to_https:
9482
- description: Create a HTTP domain forward with redirect from HTTP
9483
- to HTTPS
9484
- summary: HTTP to HTTPS
9485
- value:
9486
- enabled: false
9487
- https:
9488
- redirects:
9489
- - redirect_code: 301
9490
- request_path: /
9491
- target_hostname: example.com
9492
- target_path: /
9493
- target_protocol: https
9494
- wildcard: false
9495
- wildcard: false
9496
10118
  schema:
9497
- $ref: '#/components/schemas/DomainForwardRequest'
10119
+ $ref: '#/components/schemas/DomainForwardSetCreateRequest'
9498
10120
  required: true
9499
10121
  responses:
9500
10122
  '201':
9501
10123
  content:
9502
10124
  application/json:
9503
- examples:
9504
- http_domain_forward_response:
9505
- description: Response when creating a HTTP domain forward with redirect
9506
- from HTTP to HTTPS and HTTPS to auth.example.com
9507
- summary: Response for HTTP domain forward
9508
- value:
9509
- created_on: '2025-11-14T09:01:38'
9510
- enabled: false
9511
- hostname: example.com.
9512
- http:
9513
- created_on: '2025-11-14T09:01:38'
9514
- redirects:
9515
- - redirect_code: 301
9516
- request_hostname: example.com.
9517
- request_path: /
9518
- request_protocol: http
9519
- target_hostname: example.com
9520
- target_path: /
9521
- target_protocol: https
9522
- updated_on: '2025-11-14T09:01:38'
9523
- wildcard: false
9524
- https:
9525
- created_on: '2025-11-14T09:01:38'
9526
- redirects:
9527
- - redirect_code: 302
9528
- request_hostname: example.com.
9529
- request_path: /
9530
- request_protocol: https
9531
- target_hostname: auth.example.com
9532
- target_path: /
9533
- target_protocol: https
9534
- updated_on: '2025-11-14T09:01:38'
9535
- wildcard: false
9536
- updated_on: '2025-11-14T09:01:38'
9537
- wildcard: false
9538
- http_to_https_response:
9539
- description: Response when creating a HTTP to HTTPS domain forward
9540
- summary: Response for HTTP to HTTPS
9541
- value:
9542
- created_on: '2025-11-14T09:01:38'
9543
- enabled: false
9544
- hostname: example.com.
9545
- http:
9546
- created_on: '2025-11-14T09:01:38'
9547
- redirects:
9548
- - redirect_code: 301
9549
- request_hostname: example.com.
9550
- request_path: /
9551
- request_protocol: http
9552
- target_hostname: example.com
9553
- target_path: /
9554
- target_protocol: https
9555
- updated_on: '2025-11-14T09:01:38'
9556
- wildcard: false
9557
- updated_on: '2025-11-14T09:01:38'
9558
- wildcard: false
9559
10125
  schema:
9560
- $ref: '#/components/schemas/DomainForward'
9561
- description: Domain forward created successfully
10126
+ $ref: '#/components/schemas/DomainForwardSetResponse'
10127
+ description: Successful Response
9562
10128
  '401':
9563
10129
  content:
9564
10130
  application/problem+json:
@@ -9587,27 +10153,26 @@ paths:
9587
10153
  content:
9588
10154
  application/problem+json:
9589
10155
  example:
9590
- code: ERROR_ZONE_NOT_FOUND
9591
- detail: Zone not found
10156
+ code: ERROR_DOMAIN_FORWARD_NOT_EXISTS
10157
+ detail: Domain forward not found for Additional error context.
9592
10158
  status: 404
9593
- title: DNS Error
9594
- type: dns-zone-not-found
9595
- zone_name: Zone example.com. not found
10159
+ title: Domain Forward Error
10160
+ type: domain-forward-not-found
9596
10161
  schema:
9597
10162
  $ref: '#/components/schemas/Problem'
9598
- description: DNS zone was not found
10163
+ description: Not Found
9599
10164
  '409':
9600
10165
  content:
9601
10166
  application/problem+json:
9602
10167
  example:
9603
10168
  code: ERROR_DOMAIN_FORWARD_ALREADY_EXISTS
9604
- detail: Domain forward already exists for example.com.
10169
+ detail: Domain forward already exists for Additional error context.
9605
10170
  status: 409
9606
10171
  title: Domain Forward Error
9607
10172
  type: domain-forward-already-exists
9608
10173
  schema:
9609
10174
  $ref: '#/components/schemas/Problem'
9610
- description: Domain forward already exists
10175
+ description: Conflict
9611
10176
  '422':
9612
10177
  content:
9613
10178
  application/problem+json:
@@ -9616,7 +10181,7 @@ paths:
9616
10181
  description: Validation Error
9617
10182
  security:
9618
10183
  - OAuth2PasswordBearer: []
9619
- summary: Create a domain forward (deprecated)
10184
+ summary: Create domain forward set
9620
10185
  tags:
9621
10186
  - domain_forward
9622
10187
  /v1/domain-forwards/{hostname}/disable:
@@ -9875,9 +10440,10 @@ paths:
9875
10440
  tags:
9876
10441
  - domain_forward
9877
10442
  post:
9878
- description: Creates a new domain forward set for a specific protocol (HTTP
9879
- or HTTPS). Raises an error if the set already exists.
9880
- operationId: create_domain_forward_set_v1_domain_forwards__hostname___protocol__post
10443
+ deprecated: true
10444
+ description: 'Deprecated: Use POST /{hostname} with protocol in body instead.
10445
+ Creates a new domain forward set for a specific protocol (HTTP or HTTPS).'
10446
+ operationId: create_domain_forward_set_deprecated_v1_domain_forwards__hostname___protocol__post
9881
10447
  parameters:
9882
10448
  - in: path
9883
10449
  name: protocol
@@ -9961,7 +10527,7 @@ paths:
9961
10527
  description: Validation Error
9962
10528
  security:
9963
10529
  - OAuth2PasswordBearer: []
9964
- summary: Create domain forward set
10530
+ summary: Create domain forward set (deprecated)
9965
10531
  tags:
9966
10532
  - domain_forward
9967
10533
  put: