// AUTO-GENERATED by scripts/generate.ts from .generated-specs. Do not edit. import * as S from "@distilled.cloud/core/schema"; import * as API from "@distilled.cloud/core/api"; import * as T from "../traits.ts"; import { CloudflareProtocol, type CloudflareOpError, type CloudflareOpContext, } from "../protocol.ts"; import { CloudflareError, CloudflareRateLimited } from "../errors.ts"; import * as Retry from "../retry.ts"; export type { CloudflareOpError, CloudflareOpContext }; /** Fallback camelCase→wire mapping for opaque content (mined from the distilled SDK). */ const KEY_DICTIONARY: Record> = { ipv4Cidrs: "ipv4_cidrs", ipv6Cidrs: "ipv6_cidrs", jdcloudCidrs: "jdcloud_cidrs", }; export interface ListIpsRequest { /** Specified as `jdcloud` to list IPs used by JD Cloud data centers. */ networks?: string; } export const ListIpsRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ networks: S.optional(S.String.pipe(T.Query())), }) .pipe(T.Http({ method: "GET", uri: "/ips", code: 200 })) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "ListIpsRequest" }) as any as S.Schema; export type ListResultPublicIPIPsIpv4CidrsList = Array; export const ListResultPublicIPIPsIpv4CidrsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type ListResultPublicIPIPsIpv6CidrsList = Array; export const ListResultPublicIPIPsIpv6CidrsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export interface ListResultPublicIPIPs { /** A digest of the IP data. Useful for determining if the data has changed. */ etag?: string | null; /** List of Cloudflare IPv4 CIDR addresses. */ ipv4Cidrs?: ListResultPublicIPIPsIpv4CidrsList | null; /** List of Cloudflare IPv6 CIDR addresses. */ ipv6Cidrs?: ListResultPublicIPIPsIpv6CidrsList | null; } export const ListResultPublicIPIPs = /*@__PURE__*/ S.suspend(() => S.Struct({ etag: S.optional(S.NullOr(S.String)), ipv4Cidrs: S.optional( S.NullOr(ListResultPublicIPIPsIpv4CidrsList).pipe(T.Body("ipv4_cidrs")), ), ipv6Cidrs: S.optional( S.NullOr(ListResultPublicIPIPsIpv6CidrsList).pipe(T.Body("ipv6_cidrs")), ), }), ).annotate({ identifier: "ListResultPublicIPIPs", }) as any as S.Schema; export type ListResultPublicIPIPsJDCloudIpv4CidrsList = Array; export const ListResultPublicIPIPsJDCloudIpv4CidrsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type ListResultPublicIPIPsJDCloudIpv6CidrsList = Array; export const ListResultPublicIPIPsJDCloudIpv6CidrsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type ListResultPublicIPIPsJDCloudJdcloudCidrsList = Array; export const ListResultPublicIPIPsJDCloudJdcloudCidrsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export interface ListResultPublicIPIPsJDCloud { /** A digest of the IP data. Useful for determining if the data has changed. */ etag?: string | null; /** List of Cloudflare IPv4 CIDR addresses. */ ipv4Cidrs?: ListResultPublicIPIPsJDCloudIpv4CidrsList | null; /** List of Cloudflare IPv6 CIDR addresses. */ ipv6Cidrs?: ListResultPublicIPIPsJDCloudIpv6CidrsList | null; /** List IPv4 and IPv6 CIDRs, only populated if `?networks=jdcloud` is used. */ jdcloudCidrs?: ListResultPublicIPIPsJDCloudJdcloudCidrsList | null; } export const ListResultPublicIPIPsJDCloud = /*@__PURE__*/ S.suspend(() => S.Struct({ etag: S.optional(S.NullOr(S.String)), ipv4Cidrs: S.optional( S.NullOr(ListResultPublicIPIPsJDCloudIpv4CidrsList).pipe( T.Body("ipv4_cidrs"), ), ), ipv6Cidrs: S.optional( S.NullOr(ListResultPublicIPIPsJDCloudIpv6CidrsList).pipe( T.Body("ipv6_cidrs"), ), ), jdcloudCidrs: S.optional( S.NullOr(ListResultPublicIPIPsJDCloudJdcloudCidrsList).pipe( T.Body("jdcloud_cidrs"), ), ), }), ).annotate({ identifier: "ListResultPublicIPIPsJDCloud", }) as any as S.Schema; export type ListResult = ListResultPublicIPIPs | ListResultPublicIPIPsJDCloud; export const ListResult = /*@__PURE__*/ S.Unknown.pipe( T.UnionCases([ ["etag", "ipv4Cidrs", "ipv6Cidrs"], ["etag", "ipv4Cidrs", "ipv6Cidrs", "jdcloudCidrs"], ]), ); export type ListIpsResponse = ListResult; export const ListIpsResponse = /*@__PURE__*/ S.suspend(() => ListResult.pipe(T.EnvelopePayloadRoot(), T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "ListIpsResponse", }) as any as S.Schema; export type ListIpsError = CloudflareOpError; /** Get IPs used on the Cloudflare/JD Cloud network, see https://www.cloudflare.com/ips for Cloudflare IPs or https://developers.cloudflare.com/china-network/reference/infrastructure/ for JD Cloud IPs. */ export const listIps: API.OperationMethod< ListIpsRequest, ListIpsResponse, ListIpsError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: ListIpsRequest, output: ListIpsResponse, errors: [CloudflareRateLimited, CloudflareError], protocol: CloudflareProtocol, retry: Retry.Retry, }));