import {z} from 'zod' export type AdTechnologyProviders = {detectedGvlIds?: Array | undefined, detectedProviderIds?: Array | undefined, unidentifiedProviderDomains?: Array | undefined}; export type DestinationNotCrawlableEvidence = {crawlTime?: unknown | undefined, crawledUrl?: string | undefined, reason?: ('REASON_UNSPECIFIED' | 'UNREACHABLE_ROBOTS' | 'TIMEOUT_ROBOTS' | 'ROBOTED_DENIED' | 'UNKNOWN') | undefined}; export type DestinationNotWorkingEvidence = {dnsError?: ('DNS_ERROR_UNSPECIFIED' | 'ERROR_DNS' | 'GOOGLE_CRAWLER_DNS_ISSUE') | undefined, expandedUrl?: string | undefined, httpError?: number | undefined, invalidPage?: ('INVALID_PAGE_UNSPECIFIED' | 'EMPTY_OR_ERROR_PAGE') | undefined, lastCheckTime?: unknown | undefined, platform?: ('PLATFORM_UNSPECIFIED' | 'PERSONAL_COMPUTER' | 'ANDROID' | 'IOS') | undefined, redirectionError?: ('REDIRECTION_ERROR_UNSPECIFIED' | 'TOO_MANY_REDIRECTS' | 'INVALID_REDIRECT' | 'EMPTY_REDIRECT' | 'REDIRECT_ERROR_UNKNOWN') | undefined, urlRejected?: ('URL_REJECTED_UNSPECIFIED' | 'BAD_REQUEST' | 'MALFORMED_URL' | 'URL_REJECTED_UNKNOWN') | undefined}; export type DestinationUrlEvidence = {destinationUrl?: string | undefined}; export type DomainCalls = {domain?: string | undefined, httpCallCount?: number | undefined}; export type DomainCallEvidence = {topHttpCallDomains?: Array | undefined, totalHttpCallCount?: number | undefined}; export type UrlDownloadSize = {downloadSizeKb?: number | undefined, normalizedUrl?: string | undefined}; export type DownloadSizeEvidence = {topUrlDownloadSizeBreakdowns?: Array | undefined, totalDownloadSizeKb?: number | undefined}; export type HttpCallEvidence = {urls?: Array | undefined}; export type HttpCookieEvidence = {cookieNames?: Array | undefined, maxCookieCount?: number | undefined}; export type PolicyTopicEvidence = {destinationNotCrawlable?: DestinationNotCrawlableEvidence | undefined, destinationNotWorking?: DestinationNotWorkingEvidence | undefined, destinationUrl?: DestinationUrlEvidence | undefined, domainCall?: DomainCallEvidence | undefined, downloadSize?: DownloadSizeEvidence | undefined, httpCall?: HttpCallEvidence | undefined, httpCookie?: HttpCookieEvidence | undefined}; export type PolicyTopicEntry = {evidences?: Array | undefined, helpCenterUrl?: string | undefined, missingCertificate?: boolean | undefined, policyTopic?: string | undefined}; export type PolicyCompliance = {status?: ('STATUS_UNSPECIFIED' | 'PENDING_REVIEW' | 'DISAPPROVED' | 'APPROVED' | 'CERTIFICATE_REQUIRED') | undefined, topics?: Array | undefined}; export type AdvertiserAndBrand = {advertiserId?: unknown | undefined, advertiserName?: string | undefined, brandId?: unknown | undefined, brandName?: string | undefined}; export type CreativeServingDecision = {adTechnologyProviders?: AdTechnologyProviders | undefined, chinaPolicyCompliance?: PolicyCompliance | undefined, dealsPolicyCompliance?: PolicyCompliance | undefined, detectedAdvertisers?: Array | undefined, detectedAttributes?: (Array<'ATTRIBUTE_UNSPECIFIED' | 'IMAGE_RICH_MEDIA' | 'ADOBE_FLASH_FLV' | 'IS_TAGGED' | 'IS_COOKIE_TARGETED' | 'IS_USER_INTEREST_TARGETED' | 'EXPANDING_DIRECTION_NONE' | 'EXPANDING_DIRECTION_UP' | 'EXPANDING_DIRECTION_DOWN' | 'EXPANDING_DIRECTION_LEFT' | 'EXPANDING_DIRECTION_RIGHT' | 'EXPANDING_DIRECTION_UP_LEFT' | 'EXPANDING_DIRECTION_UP_RIGHT' | 'EXPANDING_DIRECTION_DOWN_LEFT' | 'EXPANDING_DIRECTION_DOWN_RIGHT' | 'CREATIVE_TYPE_HTML' | 'CREATIVE_TYPE_VAST_VIDEO' | 'EXPANDING_DIRECTION_UP_OR_DOWN' | 'EXPANDING_DIRECTION_LEFT_OR_RIGHT' | 'EXPANDING_DIRECTION_ANY_DIAGONAL' | 'EXPANDING_ACTION_ROLLOVER_TO_EXPAND' | 'INSTREAM_VAST_VIDEO_TYPE_VPAID_FLASH' | 'RICH_MEDIA_CAPABILITY_TYPE_MRAID' | 'RICH_MEDIA_CAPABILITY_TYPE_FLASH' | 'RICH_MEDIA_CAPABILITY_TYPE_HTML5' | 'SKIPPABLE_INSTREAM_VIDEO' | 'RICH_MEDIA_CAPABILITY_TYPE_SSL' | 'RICH_MEDIA_CAPABILITY_TYPE_NON_SSL' | 'RICH_MEDIA_CAPABILITY_TYPE_INTERSTITIAL' | 'NON_SKIPPABLE_INSTREAM_VIDEO' | 'NATIVE_ELIGIBILITY_ELIGIBLE' | 'NON_VPAID' | 'NATIVE_ELIGIBILITY_NOT_ELIGIBLE' | 'ANY_INTERSTITIAL' | 'NON_INTERSTITIAL' | 'IN_BANNER_VIDEO' | 'RENDERING_SIZELESS_ADX' | 'OMSDK_1_0' | 'RENDERING_PLAYABLE'>) | undefined, detectedCategories?: Array | undefined, detectedCategoriesTaxonomy?: ('AD_CATEGORY_TAXONOMY_UNSPECIFIED' | 'GOOGLE_AD_CATEGORY_TAXONOMY' | 'IAB_CONTENT_1_0' | 'IAB_CONTENT_2_2') | undefined, detectedClickThroughUrls?: Array | undefined, detectedDomains?: Array | undefined, detectedLanguages?: Array | undefined, detectedProductCategories?: Array | undefined, detectedSensitiveCategories?: Array | undefined, detectedVendorIds?: Array | undefined, lastStatusUpdate?: unknown | undefined, networkPolicyCompliance?: PolicyCompliance | undefined, platformPolicyCompliance?: PolicyCompliance | undefined, russiaPolicyCompliance?: PolicyCompliance | undefined}; export type HtmlContent = {height?: number | undefined, snippet?: string | undefined, width?: number | undefined}; export type Image = {height?: number | undefined, url?: string | undefined, width?: number | undefined}; export type NativeContent = {advertiserName?: string | undefined, appIcon?: Image | undefined, body?: string | undefined, callToAction?: string | undefined, clickLinkUrl?: string | undefined, clickTrackingUrl?: string | undefined, headline?: string | undefined, image?: Image | undefined, logo?: Image | undefined, priceDisplayText?: string | undefined, starRating?: number | undefined, videoUrl?: string | undefined, videoVastXml?: string | undefined}; export type MediaFile = {bitrate?: unknown | undefined, mimeType?: ('VIDEO_MIME_TYPE_UNSPECIFIED' | 'MIME_VIDEO_XFLV' | 'MIME_VIDEO_WEBM' | 'MIME_VIDEO_MP4' | 'MIME_VIDEO_OGG' | 'MIME_VIDEO_YT_HOSTED' | 'MIME_VIDEO_X_MS_WMV' | 'MIME_VIDEO_3GPP' | 'MIME_VIDEO_MOV' | 'MIME_APPLICATION_SWF' | 'MIME_APPLICATION_SURVEY' | 'MIME_APPLICATION_JAVASCRIPT' | 'MIME_APPLICATION_SILVERLIGHT' | 'MIME_APPLICATION_MPEGURL' | 'MIME_APPLICATION_MPEGDASH' | 'MIME_AUDIO_MP4A' | 'MIME_AUDIO_MP3' | 'MIME_AUDIO_OGG') | undefined}; export type VideoMetadata = {duration?: unknown | undefined, isValidVast?: boolean | undefined, isVpaid?: boolean | undefined, mediaFiles?: Array | undefined, skipOffset?: unknown | undefined, vastVersion?: ('VAST_VERSION_UNSPECIFIED' | 'VAST_VERSION_1_0' | 'VAST_VERSION_2_0' | 'VAST_VERSION_3_0' | 'VAST_VERSION_4_0') | undefined}; export type VideoContent = {videoMetadata?: VideoMetadata | undefined, videoUrl?: string | undefined, videoVastXml?: string | undefined}; export type Creative = {accountId?: unknown | undefined, adChoicesDestinationUrl?: string | undefined, advertiserName?: string | undefined, agencyId?: unknown | undefined, apiUpdateTime?: unknown | undefined, creativeFormat?: ('CREATIVE_FORMAT_UNSPECIFIED' | 'HTML' | 'VIDEO' | 'NATIVE') | undefined, creativeId?: string | undefined, creativeServingDecision?: CreativeServingDecision | undefined, dealIds?: Array | undefined, declaredAttributes?: (Array<'ATTRIBUTE_UNSPECIFIED' | 'IMAGE_RICH_MEDIA' | 'ADOBE_FLASH_FLV' | 'IS_TAGGED' | 'IS_COOKIE_TARGETED' | 'IS_USER_INTEREST_TARGETED' | 'EXPANDING_DIRECTION_NONE' | 'EXPANDING_DIRECTION_UP' | 'EXPANDING_DIRECTION_DOWN' | 'EXPANDING_DIRECTION_LEFT' | 'EXPANDING_DIRECTION_RIGHT' | 'EXPANDING_DIRECTION_UP_LEFT' | 'EXPANDING_DIRECTION_UP_RIGHT' | 'EXPANDING_DIRECTION_DOWN_LEFT' | 'EXPANDING_DIRECTION_DOWN_RIGHT' | 'CREATIVE_TYPE_HTML' | 'CREATIVE_TYPE_VAST_VIDEO' | 'EXPANDING_DIRECTION_UP_OR_DOWN' | 'EXPANDING_DIRECTION_LEFT_OR_RIGHT' | 'EXPANDING_DIRECTION_ANY_DIAGONAL' | 'EXPANDING_ACTION_ROLLOVER_TO_EXPAND' | 'INSTREAM_VAST_VIDEO_TYPE_VPAID_FLASH' | 'RICH_MEDIA_CAPABILITY_TYPE_MRAID' | 'RICH_MEDIA_CAPABILITY_TYPE_FLASH' | 'RICH_MEDIA_CAPABILITY_TYPE_HTML5' | 'SKIPPABLE_INSTREAM_VIDEO' | 'RICH_MEDIA_CAPABILITY_TYPE_SSL' | 'RICH_MEDIA_CAPABILITY_TYPE_NON_SSL' | 'RICH_MEDIA_CAPABILITY_TYPE_INTERSTITIAL' | 'NON_SKIPPABLE_INSTREAM_VIDEO' | 'NATIVE_ELIGIBILITY_ELIGIBLE' | 'NON_VPAID' | 'NATIVE_ELIGIBILITY_NOT_ELIGIBLE' | 'ANY_INTERSTITIAL' | 'NON_INTERSTITIAL' | 'IN_BANNER_VIDEO' | 'RENDERING_SIZELESS_ADX' | 'OMSDK_1_0' | 'RENDERING_PLAYABLE'>) | undefined, declaredClickThroughUrls?: Array | undefined, declaredRestrictedCategories?: (Array<'RESTRICTED_CATEGORY_UNSPECIFIED' | 'ALCOHOL'>) | undefined, declaredVendorIds?: Array | undefined, html?: HtmlContent | undefined, impressionTrackingUrls?: Array | undefined, name?: string | undefined, native?: NativeContent | undefined, renderUrl?: string | undefined, restrictedCategories?: (Array<'RESTRICTED_CATEGORY_UNSPECIFIED' | 'ALCOHOL'>) | undefined, version?: number | undefined, video?: VideoContent | undefined}; export type CreateApiV1BuyersBuyersIdCreativesArgs = {buyersId: string, body: Creative}; export type CreateApiV1BuyersBuyersIdCreativesOptions = {baseUrl?: string | undefined, Oauth2?: string | undefined, Oauth2c?: string | undefined, fetch?: typeof fetch | undefined}; export const adTechnologyProviders = z.object({detectedGvlIds: z.array(z.string()).optional(), detectedProviderIds: z.array(z.string()).optional(), unidentifiedProviderDomains: z.array(z.string()).optional()}); export const destinationNotCrawlableEvidence = z.object({crawlTime: z.string().optional(), crawledUrl: z.string().optional(), reason: z.enum(["REASON_UNSPECIFIED", "UNREACHABLE_ROBOTS", "TIMEOUT_ROBOTS", "ROBOTED_DENIED", "UNKNOWN"]).optional()}); export const destinationNotWorkingEvidence = z.object({dnsError: z.enum(["DNS_ERROR_UNSPECIFIED", "ERROR_DNS", "GOOGLE_CRAWLER_DNS_ISSUE"]).optional(), expandedUrl: z.string().optional(), httpError: z.number().int().optional(), invalidPage: z.enum(["INVALID_PAGE_UNSPECIFIED", "EMPTY_OR_ERROR_PAGE"]).optional(), lastCheckTime: z.string().optional(), platform: z.enum(["PLATFORM_UNSPECIFIED", "PERSONAL_COMPUTER", "ANDROID", "IOS"]).optional(), redirectionError: z.enum(["REDIRECTION_ERROR_UNSPECIFIED", "TOO_MANY_REDIRECTS", "INVALID_REDIRECT", "EMPTY_REDIRECT", "REDIRECT_ERROR_UNKNOWN"]).optional(), urlRejected: z.enum(["URL_REJECTED_UNSPECIFIED", "BAD_REQUEST", "MALFORMED_URL", "URL_REJECTED_UNKNOWN"]).optional()}); export const destinationUrlEvidence = z.object({destinationUrl: z.string().optional()}); export const domainCalls = z.object({domain: z.string().optional(), httpCallCount: z.number().int().optional()}); export const domainCallEvidence = z.object({topHttpCallDomains: z.array(domainCalls).optional(), totalHttpCallCount: z.number().int().optional()}); export const urlDownloadSize = z.object({downloadSizeKb: z.number().int().optional(), normalizedUrl: z.string().optional()}); export const downloadSizeEvidence = z.object({topUrlDownloadSizeBreakdowns: z.array(urlDownloadSize).optional(), totalDownloadSizeKb: z.number().int().optional()}); export const httpCallEvidence = z.object({urls: z.array(z.string()).optional()}); export const httpCookieEvidence = z.object({cookieNames: z.array(z.string()).optional(), maxCookieCount: z.number().int().optional()}); export const policyTopicEvidence = z.object({destinationNotCrawlable: destinationNotCrawlableEvidence.optional(), destinationNotWorking: destinationNotWorkingEvidence.optional(), destinationUrl: destinationUrlEvidence.optional(), domainCall: domainCallEvidence.optional(), downloadSize: downloadSizeEvidence.optional(), httpCall: httpCallEvidence.optional(), httpCookie: httpCookieEvidence.optional()}); export const policyTopicEntry = z.object({evidences: z.array(policyTopicEvidence).optional(), helpCenterUrl: z.string().optional(), missingCertificate: z.boolean().optional(), policyTopic: z.string().optional()}); export const policyCompliance = z.object({status: z.enum(["STATUS_UNSPECIFIED", "PENDING_REVIEW", "DISAPPROVED", "APPROVED", "CERTIFICATE_REQUIRED"]).optional(), topics: z.array(policyTopicEntry).optional()}); export const advertiserAndBrand = z.object({advertiserId: z.string().optional(), advertiserName: z.string().optional(), brandId: z.string().optional(), brandName: z.string().optional()}); export const creativeServingDecision = z.object({adTechnologyProviders: adTechnologyProviders.optional(), chinaPolicyCompliance: policyCompliance.optional(), dealsPolicyCompliance: policyCompliance.optional(), detectedAdvertisers: z.array(advertiserAndBrand).optional(), detectedAttributes: z.array(z.enum(["ATTRIBUTE_UNSPECIFIED", "IMAGE_RICH_MEDIA", "ADOBE_FLASH_FLV", "IS_TAGGED", "IS_COOKIE_TARGETED", "IS_USER_INTEREST_TARGETED", "EXPANDING_DIRECTION_NONE", "EXPANDING_DIRECTION_UP", "EXPANDING_DIRECTION_DOWN", "EXPANDING_DIRECTION_LEFT", "EXPANDING_DIRECTION_RIGHT", "EXPANDING_DIRECTION_UP_LEFT", "EXPANDING_DIRECTION_UP_RIGHT", "EXPANDING_DIRECTION_DOWN_LEFT", "EXPANDING_DIRECTION_DOWN_RIGHT", "CREATIVE_TYPE_HTML", "CREATIVE_TYPE_VAST_VIDEO", "EXPANDING_DIRECTION_UP_OR_DOWN", "EXPANDING_DIRECTION_LEFT_OR_RIGHT", "EXPANDING_DIRECTION_ANY_DIAGONAL", "EXPANDING_ACTION_ROLLOVER_TO_EXPAND", "INSTREAM_VAST_VIDEO_TYPE_VPAID_FLASH", "RICH_MEDIA_CAPABILITY_TYPE_MRAID", "RICH_MEDIA_CAPABILITY_TYPE_FLASH", "RICH_MEDIA_CAPABILITY_TYPE_HTML5", "SKIPPABLE_INSTREAM_VIDEO", "RICH_MEDIA_CAPABILITY_TYPE_SSL", "RICH_MEDIA_CAPABILITY_TYPE_NON_SSL", "RICH_MEDIA_CAPABILITY_TYPE_INTERSTITIAL", "NON_SKIPPABLE_INSTREAM_VIDEO", "NATIVE_ELIGIBILITY_ELIGIBLE", "NON_VPAID", "NATIVE_ELIGIBILITY_NOT_ELIGIBLE", "ANY_INTERSTITIAL", "NON_INTERSTITIAL", "IN_BANNER_VIDEO", "RENDERING_SIZELESS_ADX", "OMSDK_1_0", "RENDERING_PLAYABLE"])).optional(), detectedCategories: z.array(z.string()).optional(), detectedCategoriesTaxonomy: z.enum(["AD_CATEGORY_TAXONOMY_UNSPECIFIED", "GOOGLE_AD_CATEGORY_TAXONOMY", "IAB_CONTENT_1_0", "IAB_CONTENT_2_2"]).optional(), detectedClickThroughUrls: z.array(z.string()).optional(), detectedDomains: z.array(z.string()).optional(), detectedLanguages: z.array(z.string()).optional(), detectedProductCategories: z.array(z.number().int()).optional(), detectedSensitiveCategories: z.array(z.number().int()).optional(), detectedVendorIds: z.array(z.number().int()).optional(), lastStatusUpdate: z.string().optional(), networkPolicyCompliance: policyCompliance.optional(), platformPolicyCompliance: policyCompliance.optional(), russiaPolicyCompliance: policyCompliance.optional()}); export const htmlContent = z.object({height: z.number().int().optional(), snippet: z.string().optional(), width: z.number().int().optional()}); export const image = z.object({height: z.number().int().optional(), url: z.string().optional(), width: z.number().int().optional()}); export const nativeContent = z.object({advertiserName: z.string().optional(), appIcon: image.optional(), body: z.string().optional(), callToAction: z.string().optional(), clickLinkUrl: z.string().optional(), clickTrackingUrl: z.string().optional(), headline: z.string().optional(), image: image.optional(), logo: image.optional(), priceDisplayText: z.string().optional(), starRating: z.number().optional(), videoUrl: z.string().optional(), videoVastXml: z.string().optional()}); export const mediaFile = z.object({bitrate: z.string().optional(), mimeType: z.enum(["VIDEO_MIME_TYPE_UNSPECIFIED", "MIME_VIDEO_XFLV", "MIME_VIDEO_WEBM", "MIME_VIDEO_MP4", "MIME_VIDEO_OGG", "MIME_VIDEO_YT_HOSTED", "MIME_VIDEO_X_MS_WMV", "MIME_VIDEO_3GPP", "MIME_VIDEO_MOV", "MIME_APPLICATION_SWF", "MIME_APPLICATION_SURVEY", "MIME_APPLICATION_JAVASCRIPT", "MIME_APPLICATION_SILVERLIGHT", "MIME_APPLICATION_MPEGURL", "MIME_APPLICATION_MPEGDASH", "MIME_AUDIO_MP4A", "MIME_AUDIO_MP3", "MIME_AUDIO_OGG"]).optional()}); export const videoMetadata = z.object({duration: z.string().optional(), isValidVast: z.boolean().optional(), isVpaid: z.boolean().optional(), mediaFiles: z.array(mediaFile).optional(), skipOffset: z.string().optional(), vastVersion: z.enum(["VAST_VERSION_UNSPECIFIED", "VAST_VERSION_1_0", "VAST_VERSION_2_0", "VAST_VERSION_3_0", "VAST_VERSION_4_0"]).optional()}); export const videoContent = z.object({videoMetadata: videoMetadata.optional(), videoUrl: z.string().optional(), videoVastXml: z.string().optional()}); export const creative = z.object({accountId: z.string().optional(), adChoicesDestinationUrl: z.string().optional(), advertiserName: z.string().optional(), agencyId: z.string().optional(), apiUpdateTime: z.string().optional(), creativeFormat: z.enum(["CREATIVE_FORMAT_UNSPECIFIED", "HTML", "VIDEO", "NATIVE"]).optional(), creativeId: z.string().optional(), creativeServingDecision: creativeServingDecision.optional(), dealIds: z.array(z.string()).optional(), declaredAttributes: z.array(z.enum(["ATTRIBUTE_UNSPECIFIED", "IMAGE_RICH_MEDIA", "ADOBE_FLASH_FLV", "IS_TAGGED", "IS_COOKIE_TARGETED", "IS_USER_INTEREST_TARGETED", "EXPANDING_DIRECTION_NONE", "EXPANDING_DIRECTION_UP", "EXPANDING_DIRECTION_DOWN", "EXPANDING_DIRECTION_LEFT", "EXPANDING_DIRECTION_RIGHT", "EXPANDING_DIRECTION_UP_LEFT", "EXPANDING_DIRECTION_UP_RIGHT", "EXPANDING_DIRECTION_DOWN_LEFT", "EXPANDING_DIRECTION_DOWN_RIGHT", "CREATIVE_TYPE_HTML", "CREATIVE_TYPE_VAST_VIDEO", "EXPANDING_DIRECTION_UP_OR_DOWN", "EXPANDING_DIRECTION_LEFT_OR_RIGHT", "EXPANDING_DIRECTION_ANY_DIAGONAL", "EXPANDING_ACTION_ROLLOVER_TO_EXPAND", "INSTREAM_VAST_VIDEO_TYPE_VPAID_FLASH", "RICH_MEDIA_CAPABILITY_TYPE_MRAID", "RICH_MEDIA_CAPABILITY_TYPE_FLASH", "RICH_MEDIA_CAPABILITY_TYPE_HTML5", "SKIPPABLE_INSTREAM_VIDEO", "RICH_MEDIA_CAPABILITY_TYPE_SSL", "RICH_MEDIA_CAPABILITY_TYPE_NON_SSL", "RICH_MEDIA_CAPABILITY_TYPE_INTERSTITIAL", "NON_SKIPPABLE_INSTREAM_VIDEO", "NATIVE_ELIGIBILITY_ELIGIBLE", "NON_VPAID", "NATIVE_ELIGIBILITY_NOT_ELIGIBLE", "ANY_INTERSTITIAL", "NON_INTERSTITIAL", "IN_BANNER_VIDEO", "RENDERING_SIZELESS_ADX", "OMSDK_1_0", "RENDERING_PLAYABLE"])).optional(), declaredClickThroughUrls: z.array(z.string()).optional(), declaredRestrictedCategories: z.array(z.enum(["RESTRICTED_CATEGORY_UNSPECIFIED", "ALCOHOL"])).optional(), declaredVendorIds: z.array(z.number().int()).optional(), html: htmlContent.optional(), impressionTrackingUrls: z.array(z.string()).optional(), name: z.string().optional(), native: nativeContent.optional(), renderUrl: z.string().optional(), restrictedCategories: z.array(z.enum(["RESTRICTED_CATEGORY_UNSPECIFIED", "ALCOHOL"])).optional(), version: z.number().int().optional(), video: videoContent.optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Creates a creative. * * POST /v1/buyers/{buyersId}/creatives */ export const createApiV1BuyersBuyersIdCreatives = async (args: CreateApiV1BuyersBuyersIdCreativesArgs, options?: CreateApiV1BuyersBuyersIdCreativesOptions) => { const {baseUrl = "https://realtimebidding.googleapis.com", fetch: fetchFn = fetch, Oauth2, Oauth2c} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (Oauth2 !== undefined) headers.set('authorization', `Bearer ${Oauth2}`) if (Oauth2c !== undefined) headers.set('authorization', `Bearer ${Oauth2c}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/buyers/${encodeURIComponent(String(args.buyersId))}/creatives${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(creative, await res.json()) };