import type { Vercel } from "@vercel/sdk" import { defineScopedVercelSdkAction } from "../lib/action" import { VERCEL_DOMAIN_READ_SCOPE, VERCEL_DOMAIN_WRITE_SCOPE, } from "../lib/scopes" type Domains = Vercel["domains"] type Dns = Vercel["dns"] /** Lists domains owned by a Vercel account or team. */ export const listVercelDomains = defineScopedVercelSdkAction({ description: "Lists account-level domains with pagination and search.", handler: (api, request: Parameters[0]) => api.domains.getDomains(request), name: "List Vercel domains", replaySafety: "safe", scope: VERCEL_DOMAIN_READ_SCOPE, }) /** Gets one account-level Vercel domain. */ export const getVercelDomain = defineScopedVercelSdkAction({ description: "Gets ownership and renewal metadata for one domain.", handler: (api, request: Parameters[0]) => api.domains.getDomain(request), name: "Get Vercel domain", replaySafety: "safe", scope: VERCEL_DOMAIN_READ_SCOPE, }) /** Gets DNS configuration status for one Vercel domain. */ export const getVercelDomainConfiguration = defineScopedVercelSdkAction({ description: "Gets nameserver and DNS configuration status for one domain.", handler: (api, request: Parameters[0]) => api.domains.getDomainConfig(request), name: "Get Vercel domain configuration", replaySafety: "safe", scope: VERCEL_DOMAIN_READ_SCOPE, }) /** Deletes one account-level Vercel domain. */ export const deleteVercelDomain = defineScopedVercelSdkAction({ description: "Removes one domain from the selected account or team.", handler: (api, request: Parameters[0]) => api.domains.deleteDomain(request), name: "Delete Vercel domain", replaySafety: "unsafe", scope: VERCEL_DOMAIN_WRITE_SCOPE, }) /** Lists DNS records for one Vercel domain. */ export const listVercelDnsRecords = defineScopedVercelSdkAction({ description: "Lists DNS records for one account-level domain.", handler: (api, request: Parameters[0]) => api.dns.getRecords(request), name: "List Vercel DNS records", replaySafety: "safe", scope: VERCEL_DOMAIN_READ_SCOPE, }) /** Creates a DNS record in Vercel. */ export const createVercelDnsRecord = defineScopedVercelSdkAction({ description: "Creates one DNS record for an account-level domain.", handler: (api, request: Parameters[0]) => api.dns.createRecord(request), name: "Create Vercel DNS record", replaySafety: "unsafe", scope: VERCEL_DOMAIN_WRITE_SCOPE, }) /** Updates one Vercel DNS record. */ export const updateVercelDnsRecord = defineScopedVercelSdkAction({ description: "Updates one DNS record by ID.", handler: (api, request: Parameters[0]) => api.dns.updateRecord(request), name: "Update Vercel DNS record", replaySafety: "unsafe", scope: VERCEL_DOMAIN_WRITE_SCOPE, }) /** Deletes one Vercel DNS record. */ export const deleteVercelDnsRecord = defineScopedVercelSdkAction({ description: "Deletes one DNS record by ID.", handler: (api, request: Parameters[0]) => api.dns.removeRecord(request), name: "Delete Vercel DNS record", replaySafety: "unsafe", scope: VERCEL_DOMAIN_WRITE_SCOPE, })