Skip to content

Commit 22a5981

Browse files
authored
feat(dom): add endpoint to list Tlds Offers (#895)
1 parent 0afcfa5 commit 22a5981

File tree

4 files changed

+70
-0
lines changed

4 files changed

+70
-0
lines changed

packages/clients/src/api/domain/v2beta1/api.gen.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ import {
5858
unmarshalListRenewableDomainsResponse,
5959
unmarshalListSSLCertificatesResponse,
6060
unmarshalListTasksResponse,
61+
unmarshalListTldsResponse,
6162
unmarshalOrderResponse,
6263
unmarshalRefreshDNSZoneResponse,
6364
unmarshalRegisterExternalDomainResponse,
@@ -112,6 +113,7 @@ import type {
112113
ListSSLCertificatesRequest,
113114
ListSSLCertificatesResponse,
114115
ListTasksResponse,
116+
ListTldsResponse,
115117
OrderResponse,
116118
RefreshDNSZoneRequest,
117119
RefreshDNSZoneResponse,
@@ -133,6 +135,7 @@ import type {
133135
RegistrarApiListDomainsRequest,
134136
RegistrarApiListRenewableDomainsRequest,
135137
RegistrarApiListTasksRequest,
138+
RegistrarApiListTldsRequest,
136139
RegistrarApiLockDomainTransferRequest,
137140
RegistrarApiRegisterExternalDomainRequest,
138141
RegistrarApiRenewDomainsRequest,
@@ -1380,6 +1383,35 @@ export class RegistrarAPI extends ParentAPI {
13801383
unmarshalSearchAvailableDomainsResponse,
13811384
)
13821385

1386+
protected pageOfListTlds = (
1387+
request: Readonly<RegistrarApiListTldsRequest> = {},
1388+
) =>
1389+
this.client.fetch<ListTldsResponse>(
1390+
{
1391+
method: 'GET',
1392+
path: `/domain/v2beta1/tlds`,
1393+
urlParams: urlParams(
1394+
['order_by', request.orderBy ?? 'name_asc'],
1395+
['page', request.page],
1396+
[
1397+
'page_size',
1398+
request.pageSize ?? this.client.settings.defaultPageSize,
1399+
],
1400+
['tlds', request.tlds],
1401+
),
1402+
},
1403+
unmarshalListTldsResponse,
1404+
)
1405+
1406+
/**
1407+
* List TLD offers. Retrieve the list of TLDs and offers associated with them.
1408+
*
1409+
* @param request - The request {@link RegistrarApiListTldsRequest}
1410+
* @returns A Promise of ListTldsResponse
1411+
*/
1412+
listTlds = (request: Readonly<RegistrarApiListTldsRequest> = {}) =>
1413+
enrichForPagination('tlds', this.pageOfListTlds, request)
1414+
13831415
/**
13841416
* Create a hostname for a domain. Create a hostname for a domain with glue
13851417
* IPs.

packages/clients/src/api/domain/v2beta1/index.gen.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ export type {
100100
ListSSLCertificatesResponse,
101101
ListTasksRequestOrderBy,
102102
ListTasksResponse,
103+
ListTldsRequestOrderBy,
104+
ListTldsResponse,
103105
Nameserver,
104106
NewContact,
105107
OrderResponse,
@@ -130,6 +132,7 @@ export type {
130132
RegistrarApiListDomainsRequest,
131133
RegistrarApiListRenewableDomainsRequest,
132134
RegistrarApiListTasksRequest,
135+
RegistrarApiListTldsRequest,
133136
RegistrarApiLockDomainTransferRequest,
134137
RegistrarApiRegisterExternalDomainRequest,
135138
RegistrarApiRenewDomainsRequest,

packages/clients/src/api/domain/v2beta1/marshalling.gen.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ import type {
7373
ListRenewableDomainsResponse,
7474
ListSSLCertificatesResponse,
7575
ListTasksResponse,
76+
ListTldsResponse,
7677
Nameserver,
7778
NewContact,
7879
OrderResponse,
@@ -1126,6 +1127,19 @@ export const unmarshalListTasksResponse = (data: unknown) => {
11261127
} as ListTasksResponse
11271128
}
11281129

1130+
export const unmarshalListTldsResponse = (data: unknown) => {
1131+
if (!isJSONObject(data)) {
1132+
throw new TypeError(
1133+
`Unmarshalling the type 'ListTldsResponse' failed as data isn't a dictionary.`,
1134+
)
1135+
}
1136+
1137+
return {
1138+
tlds: unmarshalArrayOfObject(data.tlds, unmarshalTld),
1139+
totalCount: data.total_count,
1140+
} as ListTldsResponse
1141+
}
1142+
11291143
export const unmarshalOrderResponse = (data: unknown) => {
11301144
if (!isJSONObject(data)) {
11311145
throw new TypeError(

packages/clients/src/api/domain/v2beta1/types.gen.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@ export type ListTasksRequestOrderBy =
166166
| 'updated_at_asc'
167167
| 'updated_at_desc'
168168

169+
export type ListTldsRequestOrderBy = 'name_asc' | 'name_desc'
170+
169171
export type RawFormat = 'unknown_raw_format' | 'bind'
170172

171173
export type RenewableDomainStatus =
@@ -652,6 +654,14 @@ export interface ListTasksResponse {
652654
tasks: Task[]
653655
}
654656

657+
/** List tlds response. */
658+
export interface ListTldsResponse {
659+
/** Array of TLDs. */
660+
tlds: Tld[]
661+
/** Total count of TLDs returned. */
662+
totalCount: number
663+
}
664+
655665
export interface Nameserver {
656666
name: string
657667
ip: string[]
@@ -1333,6 +1343,17 @@ export type RegistrarApiSearchAvailableDomainsRequest = {
13331343
strictSearch: boolean
13341344
}
13351345

1346+
export type RegistrarApiListTldsRequest = {
1347+
/** Array of TLDs to return. */
1348+
tlds?: string[]
1349+
/** Page number for the returned Projects. */
1350+
page?: number
1351+
/** Maximum number of Project per page. */
1352+
pageSize?: number
1353+
/** Sort order of the returned TLDs. */
1354+
orderBy?: ListTldsRequestOrderBy
1355+
}
1356+
13361357
export type RegistrarApiCreateDomainHostRequest = {
13371358
domain: string
13381359
name: string

0 commit comments

Comments
 (0)