@opusdns/api 1.79.0 → 1.80.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
@@ -15,15 +15,24 @@ components:
15
15
  - rfc3339
16
16
  type: string
17
17
  schemas:
18
- AiUsageGranularity:
19
- enum:
20
- - day
21
- - week
22
- - month
23
- title: AiUsageGranularity
24
- type: string
25
- AiUsageModelBreakdown:
26
- description: 'Public per-model AI token usage. Deliberately excludes billing-gateway''s
18
+ AiInferenceUsageBucket:
19
+ properties:
20
+ groups:
21
+ items:
22
+ $ref: '#/components/schemas/AiInferenceUsageGroup'
23
+ title: Groups
24
+ type: array
25
+ period_start:
26
+ format: date
27
+ title: Period Start
28
+ type: string
29
+ required:
30
+ - period_start
31
+ - groups
32
+ title: AiInferenceUsageBucket
33
+ type: object
34
+ AiInferenceUsageGroup:
35
+ description: 'Public per-model AI inference usage. Deliberately excludes billing-gateway''s
27
36
 
28
37
  internal COGS fields (cost_amount, per-million rates, has_rate).'
29
38
  properties:
@@ -52,13 +61,13 @@ components:
52
61
  - cache_read_tokens
53
62
  - cache_write_tokens
54
63
  - request_count
55
- title: AiUsageModelBreakdown
64
+ title: AiInferenceUsageGroup
56
65
  type: object
57
- AiUsageSeriesResponse:
66
+ AiInferenceUsageSeriesResponse:
58
67
  properties:
59
68
  buckets:
60
69
  items:
61
- $ref: '#/components/schemas/AiUsageTimeBucket'
70
+ $ref: '#/components/schemas/AiInferenceUsageBucket'
62
71
  title: Buckets
63
72
  type: array
64
73
  end_date:
@@ -66,7 +75,12 @@ components:
66
75
  title: End Date
67
76
  type: string
68
77
  granularity:
69
- $ref: '#/components/schemas/AiUsageGranularity'
78
+ $ref: '#/components/schemas/UsageGranularity'
79
+ product:
80
+ const: ai_inference
81
+ default: ai_inference
82
+ title: Product
83
+ type: string
70
84
  start_date:
71
85
  format: date
72
86
  title: Start Date
@@ -76,19 +90,24 @@ components:
76
90
  - start_date
77
91
  - end_date
78
92
  - buckets
79
- title: AiUsageSeriesResponse
93
+ title: AiInferenceUsageSeriesResponse
80
94
  type: object
81
- AiUsageSummaryResponse:
95
+ AiInferenceUsageSummaryResponse:
82
96
  properties:
83
- by_model:
84
- items:
85
- $ref: '#/components/schemas/AiUsageModelBreakdown'
86
- title: By Model
87
- type: array
88
97
  end_date:
89
98
  format: date
90
99
  title: End Date
91
100
  type: string
101
+ groups:
102
+ items:
103
+ $ref: '#/components/schemas/AiInferenceUsageGroup'
104
+ title: Groups
105
+ type: array
106
+ product:
107
+ const: ai_inference
108
+ default: ai_inference
109
+ title: Product
110
+ type: string
92
111
  start_date:
93
112
  format: date
94
113
  title: Start Date
@@ -96,24 +115,8 @@ components:
96
115
  required:
97
116
  - start_date
98
117
  - end_date
99
- - by_model
100
- title: AiUsageSummaryResponse
101
- type: object
102
- AiUsageTimeBucket:
103
- properties:
104
- by_model:
105
- items:
106
- $ref: '#/components/schemas/AiUsageModelBreakdown'
107
- title: By Model
108
- type: array
109
- period_start:
110
- format: date
111
- title: Period Start
112
- type: string
113
- required:
114
- - period_start
115
- - by_model
116
- title: AiUsageTimeBucket
118
+ - groups
119
+ title: AiInferenceUsageSummaryResponse
117
120
  type: object
118
121
  AllocationMethodType:
119
122
  enum:
@@ -13215,6 +13218,18 @@ components:
13215
13218
  - authinfo_required
13216
13219
  title: TransferPoliciesBase
13217
13220
  type: object
13221
+ UsageGranularity:
13222
+ enum:
13223
+ - day
13224
+ - week
13225
+ - month
13226
+ title: UsageGranularity
13227
+ type: string
13228
+ UsageProduct:
13229
+ enum:
13230
+ - ai_inference
13231
+ title: UsageProduct
13232
+ type: string
13218
13233
  User:
13219
13234
  properties:
13220
13235
  created_on:
@@ -14778,7 +14793,7 @@ info:
14778
14793
  \n\n"
14779
14794
  summary: OpusDNS - your gateway to a seamless domain management experience.
14780
14795
  title: OpusDNS API
14781
- version: 2026-07-24-121118
14796
+ version: 2026-07-26-224919
14782
14797
  x-logo:
14783
14798
  altText: OpusDNS API Reference
14784
14799
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -27459,164 +27474,6 @@ paths:
27459
27474
  summary: Create an organization
27460
27475
  tags:
27461
27476
  - organization
27462
- /v1/organizations/ai-usage:
27463
- get:
27464
- description: Retrieves the current organization's AI token usage as a time series,
27465
- bucketed by the requested granularity and broken down per model. Reports token
27466
- counts and request volumes only.
27467
- operationId: get_ai_usage_series_v1_organizations_ai_usage_get
27468
- parameters:
27469
- - in: query
27470
- name: start_date
27471
- required: true
27472
- schema:
27473
- format: date
27474
- title: Start Date
27475
- type: string
27476
- - in: query
27477
- name: end_date
27478
- required: true
27479
- schema:
27480
- format: date
27481
- title: End Date
27482
- type: string
27483
- - in: query
27484
- name: model
27485
- required: false
27486
- schema:
27487
- anyOf:
27488
- - type: string
27489
- - type: 'null'
27490
- title: Model
27491
- - in: query
27492
- name: granularity
27493
- required: false
27494
- schema:
27495
- $ref: '#/components/schemas/AiUsageGranularity'
27496
- default: day
27497
- - $ref: '#/components/parameters/DatetimeFormatHeader'
27498
- responses:
27499
- '200':
27500
- content:
27501
- application/json:
27502
- schema:
27503
- $ref: '#/components/schemas/AiUsageSeriesResponse'
27504
- description: Successful Response
27505
- '401':
27506
- content:
27507
- application/problem+json:
27508
- example:
27509
- code: ERROR_AUTHENTICATION
27510
- detail: Additional error context.
27511
- status: 401
27512
- title: Authentication Error
27513
- type: authentication
27514
- schema:
27515
- $ref: '#/components/schemas/Problem'
27516
- description: Unauthorized
27517
- '403':
27518
- content:
27519
- application/problem+json:
27520
- example:
27521
- code: ERROR_PERMISSION_DENIED
27522
- detail: Insufficient permissions to perform this action
27523
- status: 403
27524
- title: Permission Denied
27525
- type: permission-denied
27526
- schema:
27527
- $ref: '#/components/schemas/Problem'
27528
- description: Forbidden
27529
- '422':
27530
- content:
27531
- application/problem+json:
27532
- schema:
27533
- $ref: '#/components/schemas/HTTPValidationError'
27534
- description: Validation Error
27535
- security:
27536
- - OAuth2PasswordBearer: []
27537
- - APIKeyHeader: []
27538
- summary: AI usage over time
27539
- tags:
27540
- - organization
27541
- - ai_usage
27542
- x-required-permissions:
27543
- - organization:read
27544
- /v1/organizations/ai-usage/summary:
27545
- get:
27546
- description: Retrieves the current organization's total AI token usage over
27547
- a date range, broken down per model. Reports token counts and request volumes
27548
- only.
27549
- operationId: get_ai_usage_summary_v1_organizations_ai_usage_summary_get
27550
- parameters:
27551
- - in: query
27552
- name: start_date
27553
- required: true
27554
- schema:
27555
- format: date
27556
- title: Start Date
27557
- type: string
27558
- - in: query
27559
- name: end_date
27560
- required: true
27561
- schema:
27562
- format: date
27563
- title: End Date
27564
- type: string
27565
- - in: query
27566
- name: model
27567
- required: false
27568
- schema:
27569
- anyOf:
27570
- - type: string
27571
- - type: 'null'
27572
- title: Model
27573
- - $ref: '#/components/parameters/DatetimeFormatHeader'
27574
- responses:
27575
- '200':
27576
- content:
27577
- application/json:
27578
- schema:
27579
- $ref: '#/components/schemas/AiUsageSummaryResponse'
27580
- description: Successful Response
27581
- '401':
27582
- content:
27583
- application/problem+json:
27584
- example:
27585
- code: ERROR_AUTHENTICATION
27586
- detail: Additional error context.
27587
- status: 401
27588
- title: Authentication Error
27589
- type: authentication
27590
- schema:
27591
- $ref: '#/components/schemas/Problem'
27592
- description: Unauthorized
27593
- '403':
27594
- content:
27595
- application/problem+json:
27596
- example:
27597
- code: ERROR_PERMISSION_DENIED
27598
- detail: Insufficient permissions to perform this action
27599
- status: 403
27600
- title: Permission Denied
27601
- type: permission-denied
27602
- schema:
27603
- $ref: '#/components/schemas/Problem'
27604
- description: Forbidden
27605
- '422':
27606
- content:
27607
- application/problem+json:
27608
- schema:
27609
- $ref: '#/components/schemas/HTTPValidationError'
27610
- description: Validation Error
27611
- security:
27612
- - OAuth2PasswordBearer: []
27613
- - APIKeyHeader: []
27614
- summary: AI usage summary
27615
- tags:
27616
- - organization
27617
- - ai_usage
27618
- x-required-permissions:
27619
- - organization:read
27620
27477
  /v1/organizations/attributes:
27621
27478
  get:
27622
27479
  description: Retrieves a list of organization attributes for the current organization
@@ -29254,6 +29111,189 @@ paths:
29254
29111
  - organization
29255
29112
  x-required-permissions:
29256
29113
  - organization:read
29114
+ /v1/organizations/{organization_id}/usage/{product}:
29115
+ get:
29116
+ description: Retrieves the organization's usage of a metered product as a time
29117
+ series, bucketed by the requested granularity and grouped per sub-metric.
29118
+ Reports usage quantities only.
29119
+ operationId: get_usage_series_v1_organizations__organization_id__usage__product__get
29120
+ parameters:
29121
+ - in: path
29122
+ name: organization_id
29123
+ required: true
29124
+ schema:
29125
+ examples:
29126
+ - organization_01h45ytscbebyvny4gc8cr8ma2
29127
+ format: typeid
29128
+ pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
29129
+ title: Organization Id
29130
+ type: string
29131
+ x-typeid-prefix: organization
29132
+ - in: path
29133
+ name: product
29134
+ required: true
29135
+ schema:
29136
+ $ref: '#/components/schemas/UsageProduct'
29137
+ - description: Inclusive start date (YYYY-MM-DD)
29138
+ in: query
29139
+ name: start_date
29140
+ required: true
29141
+ schema:
29142
+ description: Inclusive start date (YYYY-MM-DD)
29143
+ format: date
29144
+ title: Start Date
29145
+ type: string
29146
+ - description: Inclusive end date (YYYY-MM-DD)
29147
+ in: query
29148
+ name: end_date
29149
+ required: true
29150
+ schema:
29151
+ description: Inclusive end date (YYYY-MM-DD)
29152
+ format: date
29153
+ title: End Date
29154
+ type: string
29155
+ - description: Time-bucket size
29156
+ in: query
29157
+ name: granularity
29158
+ required: false
29159
+ schema:
29160
+ $ref: '#/components/schemas/UsageGranularity'
29161
+ default: day
29162
+ description: Time-bucket size
29163
+ - $ref: '#/components/parameters/DatetimeFormatHeader'
29164
+ responses:
29165
+ '200':
29166
+ content:
29167
+ application/json:
29168
+ schema:
29169
+ $ref: '#/components/schemas/AiInferenceUsageSeriesResponse'
29170
+ description: Successful Response
29171
+ '401':
29172
+ content:
29173
+ application/problem+json:
29174
+ example:
29175
+ code: ERROR_AUTHENTICATION
29176
+ detail: Additional error context.
29177
+ status: 401
29178
+ title: Authentication Error
29179
+ type: authentication
29180
+ schema:
29181
+ $ref: '#/components/schemas/Problem'
29182
+ description: Unauthorized
29183
+ '403':
29184
+ content:
29185
+ application/problem+json:
29186
+ example:
29187
+ code: ERROR_PERMISSION_DENIED
29188
+ detail: Insufficient permissions to perform this action
29189
+ status: 403
29190
+ title: Permission Denied
29191
+ type: permission-denied
29192
+ schema:
29193
+ $ref: '#/components/schemas/Problem'
29194
+ description: Forbidden
29195
+ '422':
29196
+ content:
29197
+ application/problem+json:
29198
+ schema:
29199
+ $ref: '#/components/schemas/HTTPValidationError'
29200
+ description: Validation Error
29201
+ security:
29202
+ - OAuth2PasswordBearer: []
29203
+ - APIKeyHeader: []
29204
+ summary: Usage over time
29205
+ tags:
29206
+ - organization
29207
+ - usage
29208
+ x-required-permissions:
29209
+ - organization:read
29210
+ /v1/organizations/{organization_id}/usage/{product}/summary:
29211
+ get:
29212
+ description: Retrieves the organization's total usage of a metered product over
29213
+ a date range, grouped per sub-metric. Reports usage quantities only.
29214
+ operationId: get_usage_summary_v1_organizations__organization_id__usage__product__summary_get
29215
+ parameters:
29216
+ - in: path
29217
+ name: organization_id
29218
+ required: true
29219
+ schema:
29220
+ examples:
29221
+ - organization_01h45ytscbebyvny4gc8cr8ma2
29222
+ format: typeid
29223
+ pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
29224
+ title: Organization Id
29225
+ type: string
29226
+ x-typeid-prefix: organization
29227
+ - in: path
29228
+ name: product
29229
+ required: true
29230
+ schema:
29231
+ $ref: '#/components/schemas/UsageProduct'
29232
+ - description: Inclusive start date (YYYY-MM-DD)
29233
+ in: query
29234
+ name: start_date
29235
+ required: true
29236
+ schema:
29237
+ description: Inclusive start date (YYYY-MM-DD)
29238
+ format: date
29239
+ title: Start Date
29240
+ type: string
29241
+ - description: Inclusive end date (YYYY-MM-DD)
29242
+ in: query
29243
+ name: end_date
29244
+ required: true
29245
+ schema:
29246
+ description: Inclusive end date (YYYY-MM-DD)
29247
+ format: date
29248
+ title: End Date
29249
+ type: string
29250
+ - $ref: '#/components/parameters/DatetimeFormatHeader'
29251
+ responses:
29252
+ '200':
29253
+ content:
29254
+ application/json:
29255
+ schema:
29256
+ $ref: '#/components/schemas/AiInferenceUsageSummaryResponse'
29257
+ description: Successful Response
29258
+ '401':
29259
+ content:
29260
+ application/problem+json:
29261
+ example:
29262
+ code: ERROR_AUTHENTICATION
29263
+ detail: Additional error context.
29264
+ status: 401
29265
+ title: Authentication Error
29266
+ type: authentication
29267
+ schema:
29268
+ $ref: '#/components/schemas/Problem'
29269
+ description: Unauthorized
29270
+ '403':
29271
+ content:
29272
+ application/problem+json:
29273
+ example:
29274
+ code: ERROR_PERMISSION_DENIED
29275
+ detail: Insufficient permissions to perform this action
29276
+ status: 403
29277
+ title: Permission Denied
29278
+ type: permission-denied
29279
+ schema:
29280
+ $ref: '#/components/schemas/Problem'
29281
+ description: Forbidden
29282
+ '422':
29283
+ content:
29284
+ application/problem+json:
29285
+ schema:
29286
+ $ref: '#/components/schemas/HTTPValidationError'
29287
+ description: Validation Error
29288
+ security:
29289
+ - OAuth2PasswordBearer: []
29290
+ - APIKeyHeader: []
29291
+ summary: Usage summary
29292
+ tags:
29293
+ - organization
29294
+ - usage
29295
+ x-required-permissions:
29296
+ - organization:read
29257
29297
  /v1/parking:
29258
29298
  get:
29259
29299
  description: Retrieves a paginated list of parking entries for the organization
@@ -31917,12 +31957,12 @@ tags:
31917
31957
  - description: Endpoints for creating new Tags
31918
31958
  name: tag
31919
31959
  x-displayName: Tags
31920
- - description: 'Endpoints for reporting your organization''s AI usage.
31960
+ - description: 'Endpoints for reporting your organization''s usage of metered products.
31921
31961
 
31922
31962
 
31923
- These endpoints expose the AI token consumption incurred by your organization''s
31924
- use of OpusDNS AI features, so you can monitor usage over time and per model.
31925
- Usage is reported as token counts and request volumes only.
31963
+ These endpoints expose the usage your organization has incurred for a metered
31964
+ product, so you can monitor consumption over time and in total. Usage is reported
31965
+ as quantities only; billing costs are never included.
31926
31966
 
31927
31967
 
31928
31968
  ### Endpoints
@@ -31932,15 +31972,16 @@ tags:
31932
31972
 
31933
31973
  |--------|------|-------------|
31934
31974
 
31935
- | `GET` | `/v1/organizations/ai-usage` | Token usage as a time series, bucketed
31936
- by granularity and broken down per model |
31975
+ | `GET` | `/v1/organizations/{organization_id}/usage/{product}` | Usage as a time
31976
+ series, bucketed by granularity and grouped per sub-metric |
31937
31977
 
31938
- | `GET` | `/v1/organizations/ai-usage/summary` | Token usage totals over a date
31939
- range, broken down per model |
31978
+ | `GET` | `/v1/organizations/{organization_id}/usage/{product}/summary` | Usage
31979
+ totals over a date range, grouped per sub-metric |
31940
31980
 
31941
31981
 
31942
- The reporting organization is taken from the authentication token; usage is always
31943
- scoped to the calling organization.
31982
+ `{product}` selects the metered product. Currently supported: `ai_inference` (AI
31983
+ token consumption from OpusDNS AI features). The response carries a top-level
31984
+ `product` field identifying the reported product.
31944
31985
 
31945
31986
 
31946
31987
  ### Query Parameters
@@ -31957,8 +31998,6 @@ tags:
31957
31998
  | `granularity` | Time-bucket size for the series endpoint: `day` (default), `week`,
31958
31999
  or `month` |
31959
32000
 
31960
- | `model` | Optional filter to a single model |
31961
-
31962
32001
 
31963
32002
  `start_date` must be on or before `end_date`, otherwise the request is rejected
31964
32003
  with `422 Unprocessable Content`.
@@ -31967,7 +32006,10 @@ tags:
31967
32006
  ### Reported Metrics
31968
32007
 
31969
32008
 
31970
- Each per-model breakdown reports token counts and request volume:
32009
+ #### `ai_inference`
32010
+
32011
+
32012
+ Each group reports token counts and request volume for one AI model:
31971
32013
 
31972
32014
 
31973
32015
  | Field | Description |
@@ -31991,15 +32033,15 @@ tags:
31991
32033
  permission.
31992
32034
 
31993
32035
  '
31994
- name: ai_usage
31995
- x-displayName: AI usage
32036
+ name: usage
32037
+ x-displayName: Usage
31996
32038
  x-tagGroups:
31997
32039
  - name: Account management
31998
32040
  tags:
31999
32041
  - authentication
32000
32042
  - user
32001
32043
  - organization
32002
- - ai_usage
32044
+ - usage
32003
32045
  - name: Domains
32004
32046
  tags:
32005
32047
  - domain