Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions packages/clients/src/api/domain/v2beta1/api.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@ import {
marshalRefreshDNSZoneRequest,
marshalRegistrarApiBuyDomainsRequest,
marshalRegistrarApiCheckContactsCompatibilityRequest,
marshalRegistrarApiCreateDomainHostRequest,
marshalRegistrarApiEnableDomainDNSSECRequest,
marshalRegistrarApiRegisterExternalDomainRequest,
marshalRegistrarApiRenewDomainsRequest,
marshalRegistrarApiTradeDomainRequest,
marshalRegistrarApiTransferInDomainRequest,
marshalRegistrarApiUpdateContactRequest,
marshalRegistrarApiUpdateDomainHostRequest,
marshalRegistrarApiUpdateDomainRequest,
marshalUpdateDNSZoneNameserversRequest,
marshalUpdateDNSZoneRecordsRequest,
Expand All @@ -38,6 +40,7 @@ import {
unmarshalGetDNSZoneTsigKeyResponse,
unmarshalGetDNSZoneVersionDiffResponse,
unmarshalGetDomainAuthCodeResponse,
unmarshalHost,
unmarshalImportProviderDNSZoneResponse,
unmarshalImportRawDNSZoneResponse,
unmarshalListContactsResponse,
Expand All @@ -46,6 +49,7 @@ import {
unmarshalListDNSZoneVersionRecordsResponse,
unmarshalListDNSZoneVersionsResponse,
unmarshalListDNSZonesResponse,
unmarshalListDomainHostsResponse,
unmarshalListDomainsResponse,
unmarshalListRenewableDomainsResponse,
unmarshalListSSLCertificatesResponse,
Expand Down Expand Up @@ -82,6 +86,7 @@ import type {
GetDNSZoneVersionDiffResponse,
GetDomainAuthCodeResponse,
GetSSLCertificateRequest,
Host,
ImportProviderDNSZoneRequest,
ImportProviderDNSZoneResponse,
ImportRawDNSZoneRequest,
Expand All @@ -97,6 +102,7 @@ import type {
ListDNSZoneVersionsResponse,
ListDNSZonesRequest,
ListDNSZonesResponse,
ListDomainHostsResponse,
ListDomainsResponse,
ListRenewableDomainsResponse,
ListSSLCertificatesRequest,
Expand All @@ -108,6 +114,8 @@ import type {
RegisterExternalDomainResponse,
RegistrarApiBuyDomainsRequest,
RegistrarApiCheckContactsCompatibilityRequest,
RegistrarApiCreateDomainHostRequest,
RegistrarApiDeleteDomainHostRequest,
RegistrarApiDeleteExternalDomainRequest,
RegistrarApiDisableDomainAutoRenewRequest,
RegistrarApiDisableDomainDNSSECRequest,
Expand All @@ -117,6 +125,7 @@ import type {
RegistrarApiGetDomainAuthCodeRequest,
RegistrarApiGetDomainRequest,
RegistrarApiListContactsRequest,
RegistrarApiListDomainHostsRequest,
RegistrarApiListDomainsRequest,
RegistrarApiListRenewableDomainsRequest,
RegistrarApiListTasksRequest,
Expand All @@ -128,6 +137,7 @@ import type {
RegistrarApiTransferInDomainRequest,
RegistrarApiUnlockDomainTransferRequest,
RegistrarApiUpdateContactRequest,
RegistrarApiUpdateDomainHostRequest,
RegistrarApiUpdateDomainRequest,
RestoreDNSZoneVersionRequest,
RestoreDNSZoneVersionResponse,
Expand Down Expand Up @@ -1332,4 +1342,102 @@ export class DomainRegistrarV2Beta1GenAPI extends API {
},
unmarshalSearchAvailableDomainsResponse,
)

/**
* Create domain hostname with glue IPs
*
* @param request - The request {@link RegistrarApiCreateDomainHostRequest}
* @returns A Promise of Host
*/
createDomainHost = (request: Readonly<RegistrarApiCreateDomainHostRequest>) =>
this.client.fetch<Host>(
{
body: JSON.stringify(
marshalRegistrarApiCreateDomainHostRequest(
request,
this.client.settings,
),
),
headers: jsonContentHeaders,
method: 'POST',
path: `/domain/v2beta1/domains/${validatePathParam(
'domain',
request.domain,
)}/hosts`,
},
unmarshalHost,
)

protected pageOfListDomainHosts = (
request: Readonly<RegistrarApiListDomainHostsRequest>,
) =>
this.client.fetch<ListDomainHostsResponse>(
{
method: 'GET',
path: `/domain/v2beta1/domains/${validatePathParam(
'domain',
request.domain,
)}/hosts`,
urlParams: urlParams(
['page', request.page],
[
'page_size',
request.pageSize ?? this.client.settings.defaultPageSize,
],
),
},
unmarshalListDomainHostsResponse,
)

/**
* List domain hostnames with they glue IPs
*
* @param request - The request {@link RegistrarApiListDomainHostsRequest}
* @returns A Promise of ListDomainHostsResponse
*/
listDomainHosts = (request: Readonly<RegistrarApiListDomainHostsRequest>) =>
enrichForPagination('hosts', this.pageOfListDomainHosts, request)

/**
* Update domain hostname with glue IPs
*
* @param request - The request {@link RegistrarApiUpdateDomainHostRequest}
* @returns A Promise of Host
*/
updateDomainHost = (request: Readonly<RegistrarApiUpdateDomainHostRequest>) =>
this.client.fetch<Host>(
{
body: JSON.stringify(
marshalRegistrarApiUpdateDomainHostRequest(
request,
this.client.settings,
),
),
headers: jsonContentHeaders,
method: 'PATCH',
path: `/domain/v2beta1/domains/${validatePathParam(
'domain',
request.domain,
)}/hosts/${validatePathParam('name', request.name)}`,
},
unmarshalHost,
)

/**
* Delete domain hostname
*
* @param request - The request {@link RegistrarApiDeleteDomainHostRequest}
* @returns A Promise of Host
*/
deleteDomainHost = (request: Readonly<RegistrarApiDeleteDomainHostRequest>) =>
this.client.fetch<Host>(
{
method: 'DELETE',
path: `/domain/v2beta1/domains/${validatePathParam(
'domain',
request.domain,
)}/hosts/${validatePathParam('name', request.name)}`,
},
unmarshalHost,
)
}
5 changes: 4 additions & 1 deletion packages/clients/src/api/domain/v2beta1/content.gen.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
// This file was automatically generated. DO NOT EDIT.
// If you have any remark or suggestion do not hesitate to open an issue.
import type { DNSZoneStatus } from './types.gen'
import type { DNSZoneStatus, HostStatus } from './types.gen'

/** Lists transient statutes of the enum {@link DNSZoneStatus}. */
export const DNS_ZONE_TRANSIENT_STATUSES: DNSZoneStatus[] = ['pending']

/** Lists transient statutes of the enum {@link HostStatus}. */
export const HOST_TRANSIENT_STATUSES: HostStatus[] = ['updating', 'deleting']
47 changes: 47 additions & 0 deletions packages/clients/src/api/domain/v2beta1/marshalling.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ import type {
GetDNSZoneTsigKeyResponse,
GetDNSZoneVersionDiffResponse,
GetDomainAuthCodeResponse,
Host,
ImportProviderDNSZoneRequest,
ImportProviderDNSZoneRequestOnlineV1,
ImportProviderDNSZoneResponse,
Expand All @@ -67,6 +68,7 @@ import type {
ListDNSZoneVersionRecordsResponse,
ListDNSZoneVersionsResponse,
ListDNSZonesResponse,
ListDomainHostsResponse,
ListDomainsResponse,
ListRenewableDomainsResponse,
ListSSLCertificatesResponse,
Expand All @@ -85,12 +87,14 @@ import type {
RegisterExternalDomainResponse,
RegistrarApiBuyDomainsRequest,
RegistrarApiCheckContactsCompatibilityRequest,
RegistrarApiCreateDomainHostRequest,
RegistrarApiEnableDomainDNSSECRequest,
RegistrarApiRegisterExternalDomainRequest,
RegistrarApiRenewDomainsRequest,
RegistrarApiTradeDomainRequest,
RegistrarApiTransferInDomainRequest,
RegistrarApiUpdateContactRequest,
RegistrarApiUpdateDomainHostRequest,
RegistrarApiUpdateDomainRequest,
RenewableDomain,
RestoreDNSZoneVersionResponse,
Expand Down Expand Up @@ -708,6 +712,21 @@ const unmarshalDomainSummary = (data: unknown) => {
} as DomainSummary
}

export const unmarshalHost = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
`Unmarshalling the type 'Host' failed as data isn't a dictionary.`,
)
}

return {
domain: data.domain,
ips: data.ips,
name: data.name,
status: data.status,
} as Host
}

const unmarshalNameserver = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
Expand Down Expand Up @@ -1034,6 +1053,19 @@ export const unmarshalListDNSZonesResponse = (data: unknown) => {
} as ListDNSZonesResponse
}

export const unmarshalListDomainHostsResponse = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
`Unmarshalling the type 'ListDomainHostsResponse' failed as data isn't a dictionary.`,
)
}

return {
hosts: unmarshalArrayOfObject(data.hosts, unmarshalHost),
totalCount: data.total_count,
} as ListDomainHostsResponse
}

export const unmarshalListDomainsResponse = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
Expand Down Expand Up @@ -1795,6 +1827,14 @@ export const marshalRegistrarApiCheckContactsCompatibilityRequest = (
]),
})

export const marshalRegistrarApiCreateDomainHostRequest = (
request: RegistrarApiCreateDomainHostRequest,
defaults: DefaultValues,
): Record<string, unknown> => ({
ips: request.ips,
name: request.name,
})

export const marshalRegistrarApiEnableDomainDNSSECRequest = (
request: RegistrarApiEnableDomainDNSSECRequest,
defaults: DefaultValues,
Expand Down Expand Up @@ -1921,6 +1961,13 @@ export const marshalRegistrarApiUpdateContactRequest = (
zip: request.zip,
})

export const marshalRegistrarApiUpdateDomainHostRequest = (
request: RegistrarApiUpdateDomainHostRequest,
defaults: DefaultValues,
): Record<string, unknown> => ({
ips: request.ips,
})

export const marshalRegistrarApiUpdateDomainRequest = (
request: RegistrarApiUpdateDomainRequest,
defaults: DefaultValues,
Expand Down
41 changes: 41 additions & 0 deletions packages/clients/src/api/domain/v2beta1/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ export type DomainStatus =
| 'locked'
| 'deleting'

export type HostStatus = 'unknown_status' | 'active' | 'updating' | 'deleting'

export type LanguageCode = 'unknown_language_code' | 'en_US' | 'fr_FR'

export type ListDNSZoneRecordsRequestOrderBy = 'name_asc' | 'name_desc'
Expand Down Expand Up @@ -186,6 +188,9 @@ export type TaskType =
| 'send_message'
| 'delete_domain_expired'
| 'delete_external_domain'
| 'create_host'
| 'update_host'
| 'delete_host'

export interface AvailableDomain {
domain: string
Expand Down Expand Up @@ -512,6 +517,13 @@ export interface GetDomainAuthCodeResponse {
authCode: string
}

export interface Host {
domain: string
name: string
ips: Array<string>
status: HostStatus
}

export interface ImportProviderDNSZoneRequestOnlineV1 {
token: string
}
Expand Down Expand Up @@ -583,6 +595,12 @@ export interface ListDNSZonesResponse {
dnsZones: Array<DNSZone>
}

/** List domain hosts response */
export interface ListDomainHostsResponse {
totalCount: number
hosts: Array<Host>
}

/** List domains response */
export interface ListDomainsResponse {
totalCount: number
Expand Down Expand Up @@ -1253,3 +1271,26 @@ export type RegistrarApiSearchAvailableDomainsRequest = {
/** Array of tlds to search on */
tlds?: Array<string>
}

export type RegistrarApiCreateDomainHostRequest = {
domain: string
name: string
ips?: Array<string>
}

export type RegistrarApiListDomainHostsRequest = {
domain: string
page?: number
pageSize?: number
}

export type RegistrarApiUpdateDomainHostRequest = {
domain: string
name: string
ips?: Array<string>
}

export type RegistrarApiDeleteDomainHostRequest = {
domain: string
name: string
}