@opusdns/api 1.137.0 → 1.139.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/README.md +55 -20
- package/package.json +1 -1
- package/src/helpers/constants.ts +11 -0
- package/src/helpers/endpoints.ts +2 -0
- package/src/helpers/keys.ts +2 -0
- package/src/helpers/permissions.ts +8 -0
- package/src/helpers/requests.d.ts +6 -0
- package/src/helpers/responses.d.ts +5 -0
- package/src/helpers/schemas.d.ts +1 -0
- package/src/openapi.yaml +122 -9
- package/src/schema.d.ts +83 -3
package/README.md
CHANGED
|
@@ -61,34 +61,69 @@ import {
|
|
|
61
61
|
|
|
62
62
|
## Documentation
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
64
|
+
[developers.opusdns.com](https://developers.opusdns.com/) is served by
|
|
65
|
+
[Scalar Docs 2.0](https://scalar.com/products/docs/getting-started) from
|
|
66
|
+
[`scalar/`](./scalar/) in this repository.
|
|
67
|
+
|
|
68
|
+
### How publishing works
|
|
69
|
+
|
|
70
|
+
**Merging to `main` publishes.** Scalar's GitHub integration builds `main`; there
|
|
71
|
+
is no deploy workflow in this repo and no Scalar token. The custom domain is
|
|
72
|
+
declared in the config itself
|
|
73
|
+
([`scalar/scalar.config.json`](./scalar/scalar.config.json), `siteConfig.customDomain`),
|
|
74
|
+
not in CI. Nothing in the repository shows this connection, so it is written down
|
|
75
|
+
here: if publishing ever stops, the integration in the Scalar dashboard is where
|
|
76
|
+
to look.
|
|
77
|
+
|
|
78
|
+
**Every PR gets a preview.** The same integration builds each pull request and
|
|
79
|
+
posts a throwaway URL as a comment (`…--opusdns-api-spec.apidocumentation.com`),
|
|
80
|
+
so you can read a change as rendered before merging it. Use it — a bad `filepath`
|
|
81
|
+
or an icon name Scalar does not know renders as nothing rather than failing, and
|
|
82
|
+
merging is what makes that public.
|
|
83
|
+
|
|
84
|
+
The preview does not, however, cover the bots' own PRs: GitHub suppresses
|
|
85
|
+
workflow runs for pull requests opened with a token rather than by a person, so
|
|
86
|
+
both bots validate the config inline before opening theirs.
|
|
87
|
+
|
|
88
|
+
### Layout
|
|
89
|
+
|
|
90
|
+
| Path | What |
|
|
91
|
+
| --- | --- |
|
|
92
|
+
| `scalar/scalar.config.json` | The whole site: tabs, sidebar routes, theme. Every page's title, icon and URL live here — content files carry no frontmatter |
|
|
93
|
+
| `scalar/content/` | Guide Markdown |
|
|
94
|
+
| `scalar/content/tld-knowledge-base/` | **Generated** from `OpusDNS/tld-specifications` by `scripts/generate_tld_knowledge_base.py` |
|
|
95
|
+
| `scalar/content/mcp-server/` | **Generated** in `OpusDNS/opusdns-mcp`, which opens a PR here carrying the diff. `scripts/sync_mcp_docs.py` lives here but is run from there — see [`scripts/mcp_docs/`](./scripts/mcp_docs/) |
|
|
96
|
+
| `src/openapi.yaml` | The spec. The API Reference tab is fetched by Scalar from the raw GitHub URL at build time, so it is eventually consistent rather than bundled |
|
|
97
|
+
|
|
98
|
+
Two bots write `scalar.config.json`: **Generate TLD Knowledge Base**, a workflow
|
|
99
|
+
in this repo, and **Publish MCP docs to api-spec**, a workflow in
|
|
100
|
+
`OpusDNS/opusdns-mcp` that opens its PR here. Each rebuilds only the subtree it
|
|
101
|
+
owns and both serialise identically (`json.dumps(..., indent=2,
|
|
102
|
+
ensure_ascii=False)` plus a trailing newline), so hand edits should match that
|
|
103
|
+
style — otherwise the next bot PR reformats your lines.
|
|
104
|
+
|
|
105
|
+
### Local preview
|
|
84
106
|
|
|
85
107
|
```bash
|
|
86
108
|
npm install
|
|
87
109
|
npm --prefix scalar install
|
|
88
110
|
npm run docs:preview
|
|
89
111
|
# → http://localhost:7970
|
|
112
|
+
|
|
113
|
+
npm --prefix scalar run check # validate scalar.config.json
|
|
90
114
|
```
|
|
91
115
|
|
|
116
|
+
Run `check` before pushing anything that touches the config. A `filepath`
|
|
117
|
+
pointing at a file that does not exist, or an icon name Scalar does not know,
|
|
118
|
+
renders as nothing — and merging is what publishes.
|
|
119
|
+
|
|
120
|
+
### The legacy `docs/` folder
|
|
121
|
+
|
|
122
|
+
[`docs/`](./docs/) is a static GitHub Pages site that embeds
|
|
123
|
+
[`@scalar/api-reference`](https://github.com/scalar/scalar). GitHub Pages is
|
|
124
|
+
still configured for it, but DNS points at Scalar, so **it is not what serves the
|
|
125
|
+
domain**. Treat it as vestigial; do not put content there.
|
|
126
|
+
|
|
92
127
|
### Links
|
|
93
128
|
|
|
94
129
|
- [Main website](https://www.opusdns.com/)
|
package/package.json
CHANGED
package/src/helpers/constants.ts
CHANGED
|
@@ -56,6 +56,7 @@ import type {
|
|
|
56
56
|
HostStatus,
|
|
57
57
|
HttpProtocol,
|
|
58
58
|
IPAddressType,
|
|
59
|
+
InvoiceDocumentType,
|
|
59
60
|
InvoiceResponsePaymentStatus,
|
|
60
61
|
InvoiceResponseStatus,
|
|
61
62
|
InvoiceResponseType,
|
|
@@ -1095,6 +1096,16 @@ export const IP_ADDRESS_TYPE_VALUES = [
|
|
|
1095
1096
|
'v6',
|
|
1096
1097
|
] as const satisfies ReadonlyArray<IPAddressType>;
|
|
1097
1098
|
|
|
1099
|
+
export const INVOICE_DOCUMENT_TYPE = {
|
|
1100
|
+
INVOICE: "invoice",
|
|
1101
|
+
RECEIPT: "receipt",
|
|
1102
|
+
} as const satisfies Record<string, InvoiceDocumentType>;
|
|
1103
|
+
|
|
1104
|
+
export const INVOICE_DOCUMENT_TYPE_VALUES = [
|
|
1105
|
+
'invoice',
|
|
1106
|
+
'receipt',
|
|
1107
|
+
] as const satisfies ReadonlyArray<InvoiceDocumentType>;
|
|
1108
|
+
|
|
1098
1109
|
export const INVOICE_RESPONSE_PAYMENT_STATUS = {
|
|
1099
1110
|
PENDING: "pending",
|
|
1100
1111
|
FAILED: "failed",
|
package/src/helpers/endpoints.ts
CHANGED
|
@@ -110,6 +110,7 @@ export const ORGANIZATIONS_USERS_ENDPOINT = '/v1/organizations/users';
|
|
|
110
110
|
export const ORGANIZATIONS_BY_ORGANIZATION_ID_ENDPOINT = '/v1/organizations/{organization_id}';
|
|
111
111
|
export const ORGANIZATIONS_BY_ORGANIZATION_ID_ATTRIBUTES_ENDPOINT = '/v1/organizations/{organization_id}/attributes';
|
|
112
112
|
export const ORGANIZATIONS_BY_ORGANIZATION_ID_BILLING_INVOICES_ENDPOINT = '/v1/organizations/{organization_id}/billing/invoices';
|
|
113
|
+
export const ORGANIZATIONS_BY_ORGANIZATION_ID_BILLING_RECEIPTS_ENDPOINT = '/v1/organizations/{organization_id}/billing/receipts';
|
|
113
114
|
export const ORGANIZATIONS_BY_ORGANIZATION_ID_PRICING_PRODUCT_TYPE_BY_PRODUCT_TYPE_ENDPOINT = '/v1/organizations/{organization_id}/pricing/product-type/{product_type}';
|
|
114
115
|
export const ORGANIZATIONS_BY_ORGANIZATION_ID_TRANSACTIONS_ENDPOINT = '/v1/organizations/{organization_id}/transactions';
|
|
115
116
|
export const ORGANIZATIONS_BY_ORGANIZATION_ID_TRANSACTIONS_BY_TRANSACTION_ID_ENDPOINT = '/v1/organizations/{organization_id}/transactions/{transaction_id}';
|
|
@@ -263,6 +264,7 @@ export type Endpoint =
|
|
|
263
264
|
| typeof ORGANIZATIONS_BY_ORGANIZATION_ID_ENDPOINT
|
|
264
265
|
| typeof ORGANIZATIONS_BY_ORGANIZATION_ID_ATTRIBUTES_ENDPOINT
|
|
265
266
|
| typeof ORGANIZATIONS_BY_ORGANIZATION_ID_BILLING_INVOICES_ENDPOINT
|
|
267
|
+
| typeof ORGANIZATIONS_BY_ORGANIZATION_ID_BILLING_RECEIPTS_ENDPOINT
|
|
266
268
|
| typeof ORGANIZATIONS_BY_ORGANIZATION_ID_PRICING_PRODUCT_TYPE_BY_PRODUCT_TYPE_ENDPOINT
|
|
267
269
|
| typeof ORGANIZATIONS_BY_ORGANIZATION_ID_TRANSACTIONS_ENDPOINT
|
|
268
270
|
| typeof ORGANIZATIONS_BY_ORGANIZATION_ID_TRANSACTIONS_BY_TRANSACTION_ID_ENDPOINT
|
package/src/helpers/keys.ts
CHANGED
|
@@ -3651,6 +3651,7 @@ export const KEYS_IDN_BASE = [
|
|
|
3651
3651
|
|
|
3652
3652
|
export const KEY_INVOICE_AMOUNT = 'amount' satisfies keyof Invoice;
|
|
3653
3653
|
export const KEY_INVOICE_CURRENCY = 'currency' satisfies keyof Invoice;
|
|
3654
|
+
export const KEY_INVOICE_DOCUMENT_TYPE = 'document_type' satisfies keyof Invoice;
|
|
3654
3655
|
export const KEY_INVOICE_EXTERNAL_ID = 'external_id' satisfies keyof Invoice;
|
|
3655
3656
|
export const KEY_INVOICE_FEES_AMOUNT = 'fees_amount' satisfies keyof Invoice;
|
|
3656
3657
|
export const KEY_INVOICE_FILE_URL = 'file_url' satisfies keyof Invoice;
|
|
@@ -3666,6 +3667,7 @@ export const KEY_INVOICE_TAXES_AMOUNT = 'taxes_amount' satisfies keyof Invoice;
|
|
|
3666
3667
|
export const KEYS_INVOICE = [
|
|
3667
3668
|
KEY_INVOICE_AMOUNT,
|
|
3668
3669
|
KEY_INVOICE_CURRENCY,
|
|
3670
|
+
KEY_INVOICE_DOCUMENT_TYPE,
|
|
3669
3671
|
KEY_INVOICE_EXTERNAL_ID,
|
|
3670
3672
|
KEY_INVOICE_FEES_AMOUNT,
|
|
3671
3673
|
KEY_INVOICE_FILE_URL,
|
|
@@ -106,6 +106,7 @@ import {
|
|
|
106
106
|
ORGANIZATIONS_ATTRIBUTES_ENDPOINT,
|
|
107
107
|
ORGANIZATIONS_BY_ORGANIZATION_ID_ATTRIBUTES_ENDPOINT,
|
|
108
108
|
ORGANIZATIONS_BY_ORGANIZATION_ID_BILLING_INVOICES_ENDPOINT,
|
|
109
|
+
ORGANIZATIONS_BY_ORGANIZATION_ID_BILLING_RECEIPTS_ENDPOINT,
|
|
109
110
|
ORGANIZATIONS_BY_ORGANIZATION_ID_ENDPOINT,
|
|
110
111
|
ORGANIZATIONS_BY_ORGANIZATION_ID_PRICING_PRODUCT_TYPE_BY_PRODUCT_TYPE_ENDPOINT,
|
|
111
112
|
ORGANIZATIONS_BY_ORGANIZATION_ID_TRANSACTIONS_BY_TRANSACTION_ID_ENDPOINT,
|
|
@@ -949,6 +950,13 @@ export const REQUIRED_PERMISSIONS = {
|
|
|
949
950
|
patch: [],
|
|
950
951
|
delete: [],
|
|
951
952
|
},
|
|
953
|
+
[ORGANIZATIONS_BY_ORGANIZATION_ID_BILLING_RECEIPTS_ENDPOINT]: {
|
|
954
|
+
get: [PUBLIC_PERMISSION.BILLING_MANAGE],
|
|
955
|
+
post: [],
|
|
956
|
+
put: [],
|
|
957
|
+
patch: [],
|
|
958
|
+
delete: [],
|
|
959
|
+
},
|
|
952
960
|
[ORGANIZATIONS_BY_ORGANIZATION_ID_ENDPOINT]: {
|
|
953
961
|
get: [PUBLIC_PERMISSION.ORGANIZATION_READ],
|
|
954
962
|
post: [],
|
|
@@ -880,6 +880,12 @@ export type GET_OrganizationsByOrganizationIdBillingInvoices_Request = {
|
|
|
880
880
|
export type GET_OrganizationsByOrganizationIdBillingInvoices_Request_Query = GET_OrganizationsByOrganizationIdBillingInvoices_Request['parameters']['query'];
|
|
881
881
|
export type GET_OrganizationsByOrganizationIdBillingInvoices_Request_Path = GET_OrganizationsByOrganizationIdBillingInvoices_Request['parameters']['path'];
|
|
882
882
|
|
|
883
|
+
export type GET_OrganizationsByOrganizationIdBillingReceipts_Request = {
|
|
884
|
+
parameters: operations['list_receipts_v1_organizations__organization_id__billing_receipts_get']['parameters'];
|
|
885
|
+
};
|
|
886
|
+
export type GET_OrganizationsByOrganizationIdBillingReceipts_Request_Query = GET_OrganizationsByOrganizationIdBillingReceipts_Request['parameters']['query'];
|
|
887
|
+
export type GET_OrganizationsByOrganizationIdBillingReceipts_Request_Path = GET_OrganizationsByOrganizationIdBillingReceipts_Request['parameters']['path'];
|
|
888
|
+
|
|
883
889
|
export type GET_OrganizationsByOrganizationIdPricingProductTypeByProductType_Request = {
|
|
884
890
|
parameters: operations['get_pricing_plans_v1_organizations__organization_id__pricing_product_type__product_type__get']['parameters'];
|
|
885
891
|
};
|
|
@@ -679,6 +679,11 @@ export type GET_OrganizationsByOrganizationIdBillingInvoices_Response = GET_Orga
|
|
|
679
679
|
export type GET_OrganizationsByOrganizationIdBillingInvoices_Response_200 = Pagination_Invoice;
|
|
680
680
|
export type GET_OrganizationsByOrganizationIdBillingInvoices_Response_422 = HTTPValidationError;
|
|
681
681
|
|
|
682
|
+
export type GET_OrganizationsByOrganizationIdBillingReceipts_Response = GET_OrganizationsByOrganizationIdBillingReceipts_Response_200 | GET_OrganizationsByOrganizationIdBillingReceipts_Response_422;
|
|
683
|
+
|
|
684
|
+
export type GET_OrganizationsByOrganizationIdBillingReceipts_Response_200 = Pagination_Invoice;
|
|
685
|
+
export type GET_OrganizationsByOrganizationIdBillingReceipts_Response_422 = HTTPValidationError;
|
|
686
|
+
|
|
682
687
|
export type GET_OrganizationsByOrganizationIdPricingProductTypeByProductType_Response = GET_OrganizationsByOrganizationIdPricingProductTypeByProductType_Response_200 | GET_OrganizationsByOrganizationIdPricingProductTypeByProductType_Response_401 | GET_OrganizationsByOrganizationIdPricingProductTypeByProductType_Response_403 | GET_OrganizationsByOrganizationIdPricingProductTypeByProductType_Response_422;
|
|
683
688
|
|
|
684
689
|
export type GET_OrganizationsByOrganizationIdPricingProductTypeByProductType_Response_200 = GetPrices;
|
package/src/helpers/schemas.d.ts
CHANGED
|
@@ -327,6 +327,7 @@ export type HttpRedirectRequest = components['schemas']['HttpRedirectRequest'];
|
|
|
327
327
|
export type HttpRedirectUpsert = components['schemas']['HttpRedirectUpsert'];
|
|
328
328
|
export type IPAddressType = components['schemas']['IPAddressType'];
|
|
329
329
|
export type IdnBase = components['schemas']['IdnBase'];
|
|
330
|
+
export type InvoiceDocumentType = components['schemas']['InvoiceDocumentType'];
|
|
330
331
|
export type Invoice = components['schemas']['InvoiceResponse'];
|
|
331
332
|
export type InvoiceResponsePaymentStatus = components['schemas']['InvoiceResponsePaymentStatus'];
|
|
332
333
|
export type InvoiceResponseStatus = components['schemas']['InvoiceResponseStatus'];
|
package/src/openapi.yaml
CHANGED
|
@@ -8302,6 +8302,17 @@ components:
|
|
|
8302
8302
|
- idn_capable
|
|
8303
8303
|
title: IdnBase
|
|
8304
8304
|
type: object
|
|
8305
|
+
InvoiceDocumentType:
|
|
8306
|
+
description: 'Customer-facing document class. Orthogonal to `InvoiceResponseType`:
|
|
8307
|
+
prepaid-credit invoices are receipts,
|
|
8308
|
+
|
|
8309
|
+
everything else billable is an invoice. Documents billing classifies as neither
|
|
8310
|
+
are never returned.'
|
|
8311
|
+
enum:
|
|
8312
|
+
- invoice
|
|
8313
|
+
- receipt
|
|
8314
|
+
title: InvoiceDocumentType
|
|
8315
|
+
type: string
|
|
8305
8316
|
InvoiceResponse:
|
|
8306
8317
|
properties:
|
|
8307
8318
|
amount:
|
|
@@ -8312,6 +8323,9 @@ components:
|
|
|
8312
8323
|
currency:
|
|
8313
8324
|
$ref: '#/components/schemas/Currency'
|
|
8314
8325
|
description: Invoice currency
|
|
8326
|
+
document_type:
|
|
8327
|
+
$ref: '#/components/schemas/InvoiceDocumentType'
|
|
8328
|
+
description: Customer-facing document class
|
|
8315
8329
|
external_id:
|
|
8316
8330
|
description: Lago ID (external) for this invoice
|
|
8317
8331
|
title: External Id
|
|
@@ -8365,6 +8379,7 @@ components:
|
|
|
8365
8379
|
- issuing_date
|
|
8366
8380
|
- payment_due_date
|
|
8367
8381
|
- invoice_type
|
|
8382
|
+
- document_type
|
|
8368
8383
|
- status
|
|
8369
8384
|
- payment_status
|
|
8370
8385
|
- payment_overdue
|
|
@@ -15765,7 +15780,7 @@ info:
|
|
|
15765
15780
|
\n\n"
|
|
15766
15781
|
summary: OpusDNS - your gateway to a seamless domain management experience.
|
|
15767
15782
|
title: OpusDNS API
|
|
15768
|
-
version: 2026-08-
|
|
15783
|
+
version: 2026-08-27-083857
|
|
15769
15784
|
x-logo:
|
|
15770
15785
|
altText: OpusDNS API Reference
|
|
15771
15786
|
url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
|
|
@@ -23423,18 +23438,33 @@ paths:
|
|
|
23423
23438
|
- domain_forwards:manage
|
|
23424
23439
|
/v1/domain-search/suggest:
|
|
23425
23440
|
get:
|
|
23426
|
-
description: Get a list of domain suggestions based on a search query
|
|
23441
|
+
description: "Get a list of domain suggestions based on a search query.\n\n\
|
|
23442
|
+
Suggestions are generated and ranked by relevance rather than enumerated from\
|
|
23443
|
+
\ a fixed list, so the\nresults depend on the shape of `query`:\n\n- **Keyword\
|
|
23444
|
+
\ or phrase** (e.g. `bluewidgets`) \u2014 every result is a generated name,\
|
|
23445
|
+
\ and its `available`\n flag is best-effort.\n- **Full domain name** (e.g.\
|
|
23446
|
+
\ `bluewidgets.de`) \u2014 the queried domain is always returned as the first\n\
|
|
23447
|
+
\ result, with availability checked directly against the registry.\n\nUse\
|
|
23448
|
+
\ a full domain name, or `GET /v1/availability`, whenever you need a definitive\
|
|
23449
|
+
\ answer about a\nspecific domain."
|
|
23427
23450
|
operationId: suggest_v1_domain_search_suggest_get
|
|
23428
23451
|
parameters:
|
|
23429
|
-
- description: The primary keyword or phrase for the domain search
|
|
23452
|
+
- description: The primary keyword or phrase for the domain search. A full domain
|
|
23453
|
+
name is always returned as the first result, with registry-checked availability.
|
|
23430
23454
|
in: query
|
|
23431
23455
|
name: query
|
|
23432
23456
|
required: true
|
|
23433
23457
|
schema:
|
|
23434
|
-
description: The primary keyword or phrase for the domain search
|
|
23458
|
+
description: The primary keyword or phrase for the domain search. A full
|
|
23459
|
+
domain name is always returned as the first result, with registry-checked
|
|
23460
|
+
availability.
|
|
23435
23461
|
title: Query
|
|
23436
23462
|
type: string
|
|
23437
|
-
- description:
|
|
23463
|
+
- description: 'Restricts results to these TLDs. This is a filter, not a guarantee:
|
|
23464
|
+
suggestions are ranked by relevance across the whole requested set, so a
|
|
23465
|
+
listed TLD may be absent from the results even when available names exist
|
|
23466
|
+
in it, and raising `limit` does not change that. To guarantee a TLD is represented,
|
|
23467
|
+
query it on its own.'
|
|
23438
23468
|
examples:
|
|
23439
23469
|
list:
|
|
23440
23470
|
summary: A list of TLDs
|
|
@@ -23451,7 +23481,11 @@ paths:
|
|
|
23451
23481
|
type: string
|
|
23452
23482
|
type: array
|
|
23453
23483
|
- type: 'null'
|
|
23454
|
-
description:
|
|
23484
|
+
description: 'Restricts results to these TLDs. This is a filter, not a guarantee:
|
|
23485
|
+
suggestions are ranked by relevance across the whole requested set, so
|
|
23486
|
+
a listed TLD may be absent from the results even when available names
|
|
23487
|
+
exist in it, and raising `limit` does not change that. To guarantee a
|
|
23488
|
+
TLD is represented, query it on its own.'
|
|
23455
23489
|
title: Tlds
|
|
23456
23490
|
- description: The maximum number of domain suggestions to return
|
|
23457
23491
|
in: query
|
|
@@ -30456,6 +30490,61 @@ paths:
|
|
|
30456
30490
|
- organization
|
|
30457
30491
|
x-required-permissions:
|
|
30458
30492
|
- billing:manage
|
|
30493
|
+
/v1/organizations/{organization_id}/billing/receipts:
|
|
30494
|
+
get:
|
|
30495
|
+
description: Retrieves a paginated list of all payment receipts for the organization
|
|
30496
|
+
operationId: list_receipts_v1_organizations__organization_id__billing_receipts_get
|
|
30497
|
+
parameters:
|
|
30498
|
+
- in: path
|
|
30499
|
+
name: organization_id
|
|
30500
|
+
required: true
|
|
30501
|
+
schema:
|
|
30502
|
+
examples:
|
|
30503
|
+
- organization_01h45ytscbebyvny4gc8cr8ma2
|
|
30504
|
+
format: typeid
|
|
30505
|
+
pattern: ^organization_[0-7][0-9a-hjkmnpq-tv-z]{25}$
|
|
30506
|
+
title: Organization Id
|
|
30507
|
+
type: string
|
|
30508
|
+
x-typeid-prefix: organization
|
|
30509
|
+
- in: query
|
|
30510
|
+
name: page
|
|
30511
|
+
required: false
|
|
30512
|
+
schema:
|
|
30513
|
+
default: 1
|
|
30514
|
+
minimum: 1
|
|
30515
|
+
title: Page
|
|
30516
|
+
type: integer
|
|
30517
|
+
- in: query
|
|
30518
|
+
name: page_size
|
|
30519
|
+
required: false
|
|
30520
|
+
schema:
|
|
30521
|
+
default: 10
|
|
30522
|
+
maximum: 1000
|
|
30523
|
+
minimum: 1
|
|
30524
|
+
title: Page Size
|
|
30525
|
+
type: integer
|
|
30526
|
+
- $ref: '#/components/parameters/DatetimeFormatHeader'
|
|
30527
|
+
responses:
|
|
30528
|
+
'200':
|
|
30529
|
+
content:
|
|
30530
|
+
application/json:
|
|
30531
|
+
schema:
|
|
30532
|
+
$ref: '#/components/schemas/Pagination_InvoiceResponse_'
|
|
30533
|
+
description: Successful Response
|
|
30534
|
+
'422':
|
|
30535
|
+
content:
|
|
30536
|
+
application/problem+json:
|
|
30537
|
+
schema:
|
|
30538
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
|
30539
|
+
description: Validation Error
|
|
30540
|
+
security:
|
|
30541
|
+
- OAuth2PasswordBearer: []
|
|
30542
|
+
- APIKeyHeader: []
|
|
30543
|
+
summary: List all payment receipts for the organization
|
|
30544
|
+
tags:
|
|
30545
|
+
- organization
|
|
30546
|
+
x-required-permissions:
|
|
30547
|
+
- billing:manage
|
|
30459
30548
|
/v1/organizations/{organization_id}/pricing/product-type/{product_type}:
|
|
30460
30549
|
get:
|
|
30461
30550
|
description: Retrieves pricing data for a specific product type. If a product
|
|
@@ -33664,9 +33753,33 @@ tags:
|
|
|
33664
33753
|
- description: ''
|
|
33665
33754
|
name: domain_tld_specific
|
|
33666
33755
|
x-displayName: TLD specific domain management
|
|
33667
|
-
- description:
|
|
33668
|
-
|
|
33669
|
-
|
|
33756
|
+
- description: "Endpoints for searching domains.\n\n### Keyword queries vs. full domain\
|
|
33757
|
+
\ names\n\n`GET /v1/domain-search/suggest` behaves differently depending on the\
|
|
33758
|
+
\ shape of the `query` value:\n\n- **Keyword or phrase** (e.g. `bluewidgets`)\
|
|
33759
|
+
\ \u2014 every result is a name produced by our suggestion engine, which generates\
|
|
33760
|
+
\ candidates and ranks them by relevance. No particular name is guaranteed to\
|
|
33761
|
+
\ appear.\n- **Full domain name** (e.g. `bluewidgets.de`) \u2014 the queried domain\
|
|
33762
|
+
\ is always returned as the first result, and its availability is checked directly\
|
|
33763
|
+
\ against the registry rather than coming from the suggestion engine.\n\nUse a\
|
|
33764
|
+
\ full domain name whenever you need a definitive answer about one specific domain.\
|
|
33765
|
+
\ To check several specific domains at once, use `GET /v1/availability` instead.\n\
|
|
33766
|
+
\n### `tlds` restricts results, it does not guarantee them\n\nThe `tlds` parameter\
|
|
33767
|
+
\ is a filter: results are limited to the TLDs you list, but a TLD you list may\
|
|
33768
|
+
\ still be absent from the response. Suggestions are ranked by relevance across\
|
|
33769
|
+
\ the whole requested set, so a keyword whose strongest candidates are `.com`/`.net`/`.org`\
|
|
33770
|
+
\ names can return no `.de` results even though available `.de` names exist for\
|
|
33771
|
+
\ that keyword.\n\nThis is consistent for a given keyword rather than random \u2014\
|
|
33772
|
+
\ the same query returns the same TLD mix each time \u2014 and raising `limit`\
|
|
33773
|
+
\ does not change it.\n\nTo guarantee that a TLD is represented, query it on its\
|
|
33774
|
+
\ own:\n\n```\nGET /v1/domain-search/suggest?query=bluewidgets&tlds=de&limit=5\n\
|
|
33775
|
+
```\n\nIssuing one request per TLD is the reliable way to build a per-TLD view\
|
|
33776
|
+
\ in a search interface.\n\n### Availability of suggestions\n\nThe `available`\
|
|
33777
|
+
\ flag on a generated suggestion is best-effort. Our suggestion engine's data\
|
|
33778
|
+
\ is not authoritative for every TLD, and it is less accurate for some ccTLDs,\
|
|
33779
|
+
\ so a suggestion can occasionally be shown as available when it is not.\n\nAvailability\
|
|
33780
|
+
\ is authoritative in two cases: when the query is a full domain name (the first\
|
|
33781
|
+
\ result), and for domains checked via `GET /v1/availability`. Always confirm\
|
|
33782
|
+
\ with one of those before presenting a domain as purchasable.\n"
|
|
33670
33783
|
name: domain_search
|
|
33671
33784
|
x-displayName: Domain search
|
|
33672
33785
|
- description: "Endpoints for managing host objects (nameserver glue records).\n\n\
|
package/src/schema.d.ts
CHANGED
|
@@ -1063,7 +1063,18 @@ export interface paths {
|
|
|
1063
1063
|
};
|
|
1064
1064
|
/**
|
|
1065
1065
|
* Suggest domains
|
|
1066
|
-
* @description Get a list of domain suggestions based on a search query
|
|
1066
|
+
* @description Get a list of domain suggestions based on a search query.
|
|
1067
|
+
*
|
|
1068
|
+
* Suggestions are generated and ranked by relevance rather than enumerated from a fixed list, so the
|
|
1069
|
+
* results depend on the shape of `query`:
|
|
1070
|
+
*
|
|
1071
|
+
* - **Keyword or phrase** (e.g. `bluewidgets`) — every result is a generated name, and its `available`
|
|
1072
|
+
* flag is best-effort.
|
|
1073
|
+
* - **Full domain name** (e.g. `bluewidgets.de`) — the queried domain is always returned as the first
|
|
1074
|
+
* result, with availability checked directly against the registry.
|
|
1075
|
+
*
|
|
1076
|
+
* Use a full domain name, or `GET /v1/availability`, whenever you need a definitive answer about a
|
|
1077
|
+
* specific domain.
|
|
1067
1078
|
*/
|
|
1068
1079
|
get: operations["suggest_v1_domain_search_suggest_get"];
|
|
1069
1080
|
put?: never;
|
|
@@ -2293,6 +2304,26 @@ export interface paths {
|
|
|
2293
2304
|
patch?: never;
|
|
2294
2305
|
trace?: never;
|
|
2295
2306
|
};
|
|
2307
|
+
"/v1/organizations/{organization_id}/billing/receipts": {
|
|
2308
|
+
parameters: {
|
|
2309
|
+
query?: never;
|
|
2310
|
+
header?: never;
|
|
2311
|
+
path?: never;
|
|
2312
|
+
cookie?: never;
|
|
2313
|
+
};
|
|
2314
|
+
/**
|
|
2315
|
+
* List all payment receipts for the organization
|
|
2316
|
+
* @description Retrieves a paginated list of all payment receipts for the organization
|
|
2317
|
+
*/
|
|
2318
|
+
get: operations["list_receipts_v1_organizations__organization_id__billing_receipts_get"];
|
|
2319
|
+
put?: never;
|
|
2320
|
+
post?: never;
|
|
2321
|
+
delete?: never;
|
|
2322
|
+
options?: never;
|
|
2323
|
+
head?: never;
|
|
2324
|
+
patch?: never;
|
|
2325
|
+
trace?: never;
|
|
2326
|
+
};
|
|
2296
2327
|
"/v1/organizations/{organization_id}/pricing/product-type/{product_type}": {
|
|
2297
2328
|
parameters: {
|
|
2298
2329
|
query?: never;
|
|
@@ -8460,6 +8491,13 @@ export interface components {
|
|
|
8460
8491
|
*/
|
|
8461
8492
|
idn_tables?: string[] | null;
|
|
8462
8493
|
};
|
|
8494
|
+
/**
|
|
8495
|
+
* InvoiceDocumentType
|
|
8496
|
+
* @description Customer-facing document class. Orthogonal to `InvoiceResponseType`: prepaid-credit invoices are receipts,
|
|
8497
|
+
* everything else billable is an invoice. Documents billing classifies as neither are never returned.
|
|
8498
|
+
* @enum {string}
|
|
8499
|
+
*/
|
|
8500
|
+
InvoiceDocumentType: "invoice" | "receipt";
|
|
8463
8501
|
/** InvoiceResponse */
|
|
8464
8502
|
InvoiceResponse: {
|
|
8465
8503
|
/**
|
|
@@ -8469,6 +8507,8 @@ export interface components {
|
|
|
8469
8507
|
amount: string;
|
|
8470
8508
|
/** @description Invoice currency */
|
|
8471
8509
|
currency: components["schemas"]["Currency"];
|
|
8510
|
+
/** @description Customer-facing document class */
|
|
8511
|
+
document_type: components["schemas"]["InvoiceDocumentType"];
|
|
8472
8512
|
/**
|
|
8473
8513
|
* External Id
|
|
8474
8514
|
* @description Lago ID (external) for this invoice
|
|
@@ -19178,9 +19218,9 @@ export interface operations {
|
|
|
19178
19218
|
suggest_v1_domain_search_suggest_get: {
|
|
19179
19219
|
parameters: {
|
|
19180
19220
|
query: {
|
|
19181
|
-
/** @description The primary keyword or phrase for the domain search */
|
|
19221
|
+
/** @description The primary keyword or phrase for the domain search. A full domain name is always returned as the first result, with registry-checked availability. */
|
|
19182
19222
|
query: string;
|
|
19183
|
-
/** @description
|
|
19223
|
+
/** @description Restricts results to these TLDs. This is a filter, not a guarantee: suggestions are ranked by relevance across the whole requested set, so a listed TLD may be absent from the results even when available names exist in it, and raising `limit` does not change that. To guarantee a TLD is represented, query it on its own. */
|
|
19184
19224
|
tlds?: string[] | null;
|
|
19185
19225
|
/** @description The maximum number of domain suggestions to return */
|
|
19186
19226
|
limit?: number | null;
|
|
@@ -25181,6 +25221,46 @@ export interface operations {
|
|
|
25181
25221
|
};
|
|
25182
25222
|
};
|
|
25183
25223
|
};
|
|
25224
|
+
list_receipts_v1_organizations__organization_id__billing_receipts_get: {
|
|
25225
|
+
parameters: {
|
|
25226
|
+
query?: {
|
|
25227
|
+
page?: number;
|
|
25228
|
+
page_size?: number;
|
|
25229
|
+
};
|
|
25230
|
+
header?: {
|
|
25231
|
+
/**
|
|
25232
|
+
* @description Opt in to RFC 3339 datetime serialization. When set to `rfc3339`, response datetimes are normalized to UTC and serialized with a `Z` suffix. This is opt-in until the announced default cutover date, after which RFC 3339 becomes the default and this header is accepted as a no-op. Any other value or omission uses the current default serialization.
|
|
25233
|
+
* @example rfc3339
|
|
25234
|
+
*/
|
|
25235
|
+
"X-Datetime-Format"?: components["parameters"]["DatetimeFormatHeader"];
|
|
25236
|
+
};
|
|
25237
|
+
path: {
|
|
25238
|
+
organization_id: TypeId<"organization">;
|
|
25239
|
+
};
|
|
25240
|
+
cookie?: never;
|
|
25241
|
+
};
|
|
25242
|
+
requestBody?: never;
|
|
25243
|
+
responses: {
|
|
25244
|
+
/** @description Successful Response */
|
|
25245
|
+
200: {
|
|
25246
|
+
headers: {
|
|
25247
|
+
[name: string]: unknown;
|
|
25248
|
+
};
|
|
25249
|
+
content: {
|
|
25250
|
+
"application/json": components["schemas"]["Pagination_InvoiceResponse_"];
|
|
25251
|
+
};
|
|
25252
|
+
};
|
|
25253
|
+
/** @description Validation Error */
|
|
25254
|
+
422: {
|
|
25255
|
+
headers: {
|
|
25256
|
+
[name: string]: unknown;
|
|
25257
|
+
};
|
|
25258
|
+
content: {
|
|
25259
|
+
"application/problem+json": components["schemas"]["HTTPValidationError"];
|
|
25260
|
+
};
|
|
25261
|
+
};
|
|
25262
|
+
};
|
|
25263
|
+
};
|
|
25184
25264
|
get_pricing_plans_v1_organizations__organization_id__pricing_product_type__product_type__get: {
|
|
25185
25265
|
parameters: {
|
|
25186
25266
|
query?: {
|