From f7d9ce26ba9b681c79f07c2bb2f00fc9defddf4c Mon Sep 17 00:00:00 2001 From: scaleway-bot Date: Mon, 26 Sep 2022 15:23:49 +0000 Subject: [PATCH] feat: update generated APIs --- .../clients/src/api/domain/v2beta1/api.gen.ts | 108 ++++++++++++++++++ .../src/api/domain/v2beta1/content.gen.ts | 5 +- .../src/api/domain/v2beta1/marshalling.gen.ts | 47 ++++++++ .../src/api/domain/v2beta1/types.gen.ts | 41 +++++++ 4 files changed, 200 insertions(+), 1 deletion(-) diff --git a/packages/clients/src/api/domain/v2beta1/api.gen.ts b/packages/clients/src/api/domain/v2beta1/api.gen.ts index 14a8375a0..bdba94e0b 100644 --- a/packages/clients/src/api/domain/v2beta1/api.gen.ts +++ b/packages/clients/src/api/domain/v2beta1/api.gen.ts @@ -17,12 +17,14 @@ import { marshalRefreshDNSZoneRequest, marshalRegistrarApiBuyDomainsRequest, marshalRegistrarApiCheckContactsCompatibilityRequest, + marshalRegistrarApiCreateDomainHostRequest, marshalRegistrarApiEnableDomainDNSSECRequest, marshalRegistrarApiRegisterExternalDomainRequest, marshalRegistrarApiRenewDomainsRequest, marshalRegistrarApiTradeDomainRequest, marshalRegistrarApiTransferInDomainRequest, marshalRegistrarApiUpdateContactRequest, + marshalRegistrarApiUpdateDomainHostRequest, marshalRegistrarApiUpdateDomainRequest, marshalUpdateDNSZoneNameserversRequest, marshalUpdateDNSZoneRecordsRequest, @@ -38,6 +40,7 @@ import { unmarshalGetDNSZoneTsigKeyResponse, unmarshalGetDNSZoneVersionDiffResponse, unmarshalGetDomainAuthCodeResponse, + unmarshalHost, unmarshalImportProviderDNSZoneResponse, unmarshalImportRawDNSZoneResponse, unmarshalListContactsResponse, @@ -46,6 +49,7 @@ import { unmarshalListDNSZoneVersionRecordsResponse, unmarshalListDNSZoneVersionsResponse, unmarshalListDNSZonesResponse, + unmarshalListDomainHostsResponse, unmarshalListDomainsResponse, unmarshalListRenewableDomainsResponse, unmarshalListSSLCertificatesResponse, @@ -82,6 +86,7 @@ import type { GetDNSZoneVersionDiffResponse, GetDomainAuthCodeResponse, GetSSLCertificateRequest, + Host, ImportProviderDNSZoneRequest, ImportProviderDNSZoneResponse, ImportRawDNSZoneRequest, @@ -97,6 +102,7 @@ import type { ListDNSZoneVersionsResponse, ListDNSZonesRequest, ListDNSZonesResponse, + ListDomainHostsResponse, ListDomainsResponse, ListRenewableDomainsResponse, ListSSLCertificatesRequest, @@ -108,6 +114,8 @@ import type { RegisterExternalDomainResponse, RegistrarApiBuyDomainsRequest, RegistrarApiCheckContactsCompatibilityRequest, + RegistrarApiCreateDomainHostRequest, + RegistrarApiDeleteDomainHostRequest, RegistrarApiDeleteExternalDomainRequest, RegistrarApiDisableDomainAutoRenewRequest, RegistrarApiDisableDomainDNSSECRequest, @@ -117,6 +125,7 @@ import type { RegistrarApiGetDomainAuthCodeRequest, RegistrarApiGetDomainRequest, RegistrarApiListContactsRequest, + RegistrarApiListDomainHostsRequest, RegistrarApiListDomainsRequest, RegistrarApiListRenewableDomainsRequest, RegistrarApiListTasksRequest, @@ -128,6 +137,7 @@ import type { RegistrarApiTransferInDomainRequest, RegistrarApiUnlockDomainTransferRequest, RegistrarApiUpdateContactRequest, + RegistrarApiUpdateDomainHostRequest, RegistrarApiUpdateDomainRequest, RestoreDNSZoneVersionRequest, RestoreDNSZoneVersionResponse, @@ -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) => + this.client.fetch( + { + 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, + ) => + this.client.fetch( + { + 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) => + 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) => + this.client.fetch( + { + 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) => + this.client.fetch( + { + method: 'DELETE', + path: `/domain/v2beta1/domains/${validatePathParam( + 'domain', + request.domain, + )}/hosts/${validatePathParam('name', request.name)}`, + }, + unmarshalHost, + ) } diff --git a/packages/clients/src/api/domain/v2beta1/content.gen.ts b/packages/clients/src/api/domain/v2beta1/content.gen.ts index 3d62f1ba8..230f55a21 100644 --- a/packages/clients/src/api/domain/v2beta1/content.gen.ts +++ b/packages/clients/src/api/domain/v2beta1/content.gen.ts @@ -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'] diff --git a/packages/clients/src/api/domain/v2beta1/marshalling.gen.ts b/packages/clients/src/api/domain/v2beta1/marshalling.gen.ts index 7bae15ac0..ac81db4dd 100644 --- a/packages/clients/src/api/domain/v2beta1/marshalling.gen.ts +++ b/packages/clients/src/api/domain/v2beta1/marshalling.gen.ts @@ -53,6 +53,7 @@ import type { GetDNSZoneTsigKeyResponse, GetDNSZoneVersionDiffResponse, GetDomainAuthCodeResponse, + Host, ImportProviderDNSZoneRequest, ImportProviderDNSZoneRequestOnlineV1, ImportProviderDNSZoneResponse, @@ -67,6 +68,7 @@ import type { ListDNSZoneVersionRecordsResponse, ListDNSZoneVersionsResponse, ListDNSZonesResponse, + ListDomainHostsResponse, ListDomainsResponse, ListRenewableDomainsResponse, ListSSLCertificatesResponse, @@ -85,12 +87,14 @@ import type { RegisterExternalDomainResponse, RegistrarApiBuyDomainsRequest, RegistrarApiCheckContactsCompatibilityRequest, + RegistrarApiCreateDomainHostRequest, RegistrarApiEnableDomainDNSSECRequest, RegistrarApiRegisterExternalDomainRequest, RegistrarApiRenewDomainsRequest, RegistrarApiTradeDomainRequest, RegistrarApiTransferInDomainRequest, RegistrarApiUpdateContactRequest, + RegistrarApiUpdateDomainHostRequest, RegistrarApiUpdateDomainRequest, RenewableDomain, RestoreDNSZoneVersionResponse, @@ -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( @@ -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( @@ -1795,6 +1827,14 @@ export const marshalRegistrarApiCheckContactsCompatibilityRequest = ( ]), }) +export const marshalRegistrarApiCreateDomainHostRequest = ( + request: RegistrarApiCreateDomainHostRequest, + defaults: DefaultValues, +): Record => ({ + ips: request.ips, + name: request.name, +}) + export const marshalRegistrarApiEnableDomainDNSSECRequest = ( request: RegistrarApiEnableDomainDNSSECRequest, defaults: DefaultValues, @@ -1921,6 +1961,13 @@ export const marshalRegistrarApiUpdateContactRequest = ( zip: request.zip, }) +export const marshalRegistrarApiUpdateDomainHostRequest = ( + request: RegistrarApiUpdateDomainHostRequest, + defaults: DefaultValues, +): Record => ({ + ips: request.ips, +}) + export const marshalRegistrarApiUpdateDomainRequest = ( request: RegistrarApiUpdateDomainRequest, defaults: DefaultValues, diff --git a/packages/clients/src/api/domain/v2beta1/types.gen.ts b/packages/clients/src/api/domain/v2beta1/types.gen.ts index 96334875c..db8fc5f93 100644 --- a/packages/clients/src/api/domain/v2beta1/types.gen.ts +++ b/packages/clients/src/api/domain/v2beta1/types.gen.ts @@ -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' @@ -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 @@ -512,6 +517,13 @@ export interface GetDomainAuthCodeResponse { authCode: string } +export interface Host { + domain: string + name: string + ips: Array + status: HostStatus +} + export interface ImportProviderDNSZoneRequestOnlineV1 { token: string } @@ -583,6 +595,12 @@ export interface ListDNSZonesResponse { dnsZones: Array } +/** List domain hosts response */ +export interface ListDomainHostsResponse { + totalCount: number + hosts: Array +} + /** List domains response */ export interface ListDomainsResponse { totalCount: number @@ -1253,3 +1271,26 @@ export type RegistrarApiSearchAvailableDomainsRequest = { /** Array of tlds to search on */ tlds?: Array } + +export type RegistrarApiCreateDomainHostRequest = { + domain: string + name: string + ips?: Array +} + +export type RegistrarApiListDomainHostsRequest = { + domain: string + page?: number + pageSize?: number +} + +export type RegistrarApiUpdateDomainHostRequest = { + domain: string + name: string + ips?: Array +} + +export type RegistrarApiDeleteDomainHostRequest = { + domain: string + name: string +}