import {z} from 'zod' export type AutoTargetingEnabled = boolean; export type BudgetType = 'DAILY' | 'LIFETIME' | 'CBO_ADGROUP'; export type PacingDeliveryType = 'STANDARD' | 'ACCELERATED'; export type AdGroupCreateRequest = {auto_targeting_enabled?: AutoTargetingEnabled | undefined, bid_multiplier?: number | undefined, budget_type?: BudgetType | undefined, pacing_delivery_type?: PacingDeliveryType | undefined}; export type CreativeType = 'REGULAR' | 'VIDEO' | 'SHOPPING' | 'CAROUSEL' | 'MAX_VIDEO' | 'SHOP_THE_PIN' | 'COLLECTION' | 'IDEA' | 'SHOWCASE' | 'QUIZ' | 'COLLAGE' | 'MAX_WIDTH_REGULAR_COLLECTION' | 'MAX_WIDTH_VIDEO_COLLECTION' | 'APP'; export type CustomizableCTAType = 'GET_OFFER' | 'LEARN_MORE' | 'ORDER_NOW' | 'SHOP_NOW' | 'SIGN_UP' | 'SUBSCRIBE' | 'BUY_NOW' | 'CONTACT_US' | 'GET_QUOTE' | 'VISIT_SITE' | 'APPLY_NOW' | 'BOOK_NOW' | 'REQUEST_DEMO' | 'REGISTER_NOW' | 'FIND_A_DEALER' | 'ADD_TO_CART' | 'WATCH_NOW' | 'READ_MORE' | 'BUY_TICKETS' | 'DONATE_NOW' | 'DOWNLOAD' | 'EXPLORE_MORE' | 'FIND_A_LOCATION' | 'FIND_RETAILERS' | 'GET_DEAL' | 'GET_RECIPE' | 'GET_SHOWTIMES' | 'ON_SALE' | 'PLAY_GAME' | 'TRY_IT' | 'TAKE_A_PEEK' | 'null' | null; export type DisclosureType = 'NO_DISCLOSURE' | 'PRESCRIBING_INFORMATION' | 'PRESCRIBING_INFORMATION_BOX_WARNING' | 'IMPORTANT_SAFETY_INFO' | 'MED_GUIDE' | 'PATIENT_INFORMATION' | 'null' | null; export type GridClickType = 'CLOSEUP' | 'DIRECT_TO_DESTINATION' | null; export type QuizPinOption = {id?: number | undefined, text?: string | undefined} | null; export type QuizPinQuestion = {options?: Array | undefined, question_id?: number | undefined, question_text?: string | undefined} | null; export type QuizPinResult = {android_deep_link?: string | undefined, destination_url?: string | undefined, ios_deep_link?: string | undefined, organic_pin_id?: string | undefined, result_id?: number | undefined} | null; export type TieBreakerType = 'RANDOM' | 'CUSTOM'; export type QuizPinData = {questions?: Array | undefined, results?: Array | undefined, tie_breaker_custom_result?: QuizPinResult | undefined, tie_breaker_type?: TieBreakerType | undefined} | null; export type EntityStatus = 'ACTIVE' | 'PAUSED' | 'ARCHIVED' | 'DRAFT' | 'DELETED_DRAFT'; export type TrackingUrls = {audience_verification?: Array | undefined, buyable_button?: Array | undefined, click?: Array | undefined, engagement?: Array | undefined, impression?: Array | undefined} | null; export type AdCreateRequest = {ad_group_id: string, android_deep_link?: (string | null) | undefined, carousel_android_deep_links?: (Array | null) | undefined, carousel_destination_urls?: (Array | null) | undefined, carousel_ios_deep_links?: (Array | null) | undefined, click_tracking_url?: (string | null) | undefined, creative_type: CreativeType, customizable_cta_type?: CustomizableCTAType | undefined, destination_url?: (string | null) | undefined, disclosure_type?: DisclosureType | undefined, disclosure_url?: (string | null) | undefined, grid_click_type?: GridClickType | undefined, ios_deep_link?: (string | null) | undefined, is_carting?: boolean | undefined, is_pin_deleted?: boolean | undefined, is_removable?: boolean | undefined, lead_form_id?: (string | null) | undefined, name?: (string | null) | undefined, pin_id: string, quiz_pin_data?: (QuizPinData | null) | undefined, status?: EntityStatus | undefined, tracking_urls?: (TrackingUrls | null) | undefined, view_tracking_url?: (string | null) | undefined}; export type AgeBucketMultipliersAdditionalProperties = number; export type TargetingSpecAgeBucket = '18-24' | '19+' | '20+' | '21+' | '25-34' | '35-44' | '45-49' | '50-54' | '55-64' | '65+'; export type AgeBucketMultipliers = {AGE_BUCKET?: TargetingSpecAgeBucket | undefined} | {[key: string]: AgeBucketMultipliersAdditionalProperties} | null; export type TargetingSpecAppType = 'android_mobile' | 'android_tablet' | 'ipad' | 'iphone' | 'web' | 'web_mobile'; export type AppTypeMultipliers = {APP_TYPE?: TargetingSpecAppType | undefined} | {[key: string]: number} | null; export type CampaignAudienceMultipliersAdditionalProperties = number; export type CampaignAudienceMultipliers = {AUDIENCE_ID?: string | undefined} | {[key: string]: CampaignAudienceMultipliersAdditionalProperties}; export type FreqBidMultiplierTimeWindow = 'WEEK' | 'MONTH' | 'null' | null; export type FrequencyMultipliers = {IMPRESSION_COUNT?: string | undefined} | {[key: string]: number} | null; export type GenderMultipliersAdditionalProperties = number; export type TargetingSpecGender = 'unknown' | 'male' | 'female'; export type GenderMultipliers = {GENDER?: TargetingSpecGender | undefined} | {[key: string]: GenderMultipliersAdditionalProperties} | null; export type PlacementType = 'SEARCH' | 'BROWSE' | 'RELATED_PINS'; export type PlacementMultipliers = {PLACEMENT?: PlacementType | undefined} | {[key: string]: number} | null; export type CampaignBidOptionsCreate = {age_bucket_multipliers?: AgeBucketMultipliers | undefined, app_type_multipliers?: AppTypeMultipliers | undefined, audience_multipliers?: CampaignAudienceMultipliers | undefined, freq_bid_multiplier_time_window?: (FreqBidMultiplierTimeWindow | null) | undefined, frequency_multipliers?: (FrequencyMultipliers | null) | undefined, gender_multipliers?: GenderMultipliers | undefined, placement_multipliers?: PlacementMultipliers | undefined} | null; export type IntendedPromotionType = 'LEGACY' | 'STANDARD_AD' | 'CATALOG'; export type CampaignIsAutomatedCampaign = boolean | null; export type CampaignIsCampaignBudgetOptimization = boolean | null; export type CampaignIsFlexibleDailyBudgets = boolean | null; export type ObjectiveType = 'AWARENESS' | 'CONSIDERATION' | 'WEB_CONVERSION' | 'CATALOG_SALES' | 'VIDEO_COMPLETION' | 'SALES' | 'APP_INSTALL' | 'CTV_CONSIDERATION'; export type CampaignCreateRequest = {bid_options?: CampaignBidOptionsCreate | undefined, intended_promotion_type?: IntendedPromotionType | undefined, is_automated_campaign?: CampaignIsAutomatedCampaign | undefined, is_campaign_budget_optimization?: CampaignIsCampaignBudgetOptimization | undefined, is_flexible_daily_budgets?: CampaignIsFlexibleDailyBudgets | undefined, is_ltv_optimized?: boolean | undefined, is_performance_plus?: boolean | undefined, is_top_of_search?: boolean | undefined, objective_type: ObjectiveType, status?: EntityStatus | undefined}; export type CatalogsProductGroupPricingCriteria = {inclusion?: boolean | undefined, negated?: boolean | undefined, values: number}; export type MinPriceFilter = {MIN_PRICE: CatalogsProductGroupPricingCriteria}; export type MaxPriceFilter = {MAX_PRICE: CatalogsProductGroupPricingCriteria}; export type NonNullableCatalogsCurrency = 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BYR' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GGP' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'IMP' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JEP' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SPL' | 'SRD' | 'STD' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TVD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XDR' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWD'; export type CatalogsProductGroupCurrencyCriteria = {negated?: false | undefined, values: NonNullableCatalogsCurrency}; export type CurrencyFilter = {CURRENCY: CatalogsProductGroupCurrencyCriteria}; export type CatalogsProductGroupMultipleStringCriteria = {negated?: boolean | undefined, values: Array}; export type ItemIdFilter = {ITEM_ID: CatalogsProductGroupMultipleStringCriteria}; export type AvailabilityFilter = {AVAILABILITY: CatalogsProductGroupMultipleStringCriteria}; export type BrandFilter = {BRAND: CatalogsProductGroupMultipleStringCriteria}; export type ConditionFilter = {CONDITION: CatalogsProductGroupMultipleStringCriteria}; export type FilterOperatorType = 'IS' | 'CONTAINS'; export type CatalogsProductGroupFilterOperatorTypeCriteria = {filter_operator_type?: FilterOperatorType | undefined, negated?: boolean | undefined, values: Array}; export type CustomLabel0Filter = {CUSTOM_LABEL_0: CatalogsProductGroupFilterOperatorTypeCriteria}; export type CustomLabel1Filter = {CUSTOM_LABEL_1: CatalogsProductGroupFilterOperatorTypeCriteria}; export type CustomLabel2Filter = {CUSTOM_LABEL_2: CatalogsProductGroupFilterOperatorTypeCriteria}; export type CustomLabel3Filter = {CUSTOM_LABEL_3: CatalogsProductGroupFilterOperatorTypeCriteria}; export type CustomLabel4Filter = {CUSTOM_LABEL_4: CatalogsProductGroupFilterOperatorTypeCriteria}; export type ItemGroupIdFilter = {ITEM_GROUP_ID: CatalogsProductGroupMultipleStringCriteria}; export type Gender = 'FEMALE' | 'MALE' | 'UNISEX'; export type CatalogsProductGroupMultipleGenderCriteria = {negated?: boolean | undefined, values: Array}; export type GenderFilter = {GENDER: CatalogsProductGroupMultipleGenderCriteria}; export type MediaType = 'IMAGE' | 'VIDEO'; export type CatalogsProductGroupMultipleMediaTypesCriteria = {negated?: boolean | undefined, values: Array}; export type MediaTypeFilter = {MEDIA_TYPE: CatalogsProductGroupMultipleMediaTypesCriteria}; export type CatalogsProductGroupMultipleStringListCriteriaValuesItemsItem = Array; export type CatalogsProductGroupMultipleStringListCriteria = {negated?: boolean | undefined, values: Array}; export type ProductType4Filter = {PRODUCT_TYPE_4: CatalogsProductGroupMultipleStringListCriteria}; export type ProductType3Filter = {PRODUCT_TYPE_3: CatalogsProductGroupMultipleStringListCriteria}; export type ProductType2Filter = {PRODUCT_TYPE_2: CatalogsProductGroupMultipleStringListCriteria}; export type ProductType1Filter = {PRODUCT_TYPE_1: CatalogsProductGroupMultipleStringListCriteria}; export type ProductType0Filter = {PRODUCT_TYPE_0: CatalogsProductGroupMultipleStringListCriteria}; export type GoogleProductCategory6Filter = {GOOGLE_PRODUCT_CATEGORY_6: CatalogsProductGroupMultipleStringListCriteria}; export type GoogleProductCategory5Filter = {GOOGLE_PRODUCT_CATEGORY_5: CatalogsProductGroupMultipleStringListCriteria}; export type GoogleProductCategory4Filter = {GOOGLE_PRODUCT_CATEGORY_4: CatalogsProductGroupMultipleStringListCriteria}; export type GoogleProductCategory3Filter = {GOOGLE_PRODUCT_CATEGORY_3: CatalogsProductGroupMultipleStringListCriteria}; export type GoogleProductCategory2Filter = {GOOGLE_PRODUCT_CATEGORY_2: CatalogsProductGroupMultipleStringListCriteria}; export type GoogleProductCategory1Filter = {GOOGLE_PRODUCT_CATEGORY_1: CatalogsProductGroupMultipleStringListCriteria}; export type GoogleProductCategory0Filter = {GOOGLE_PRODUCT_CATEGORY_0: CatalogsProductGroupMultipleStringListCriteria}; export type NumericFilterOperatorType = 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS'; export type CatalogsProductGroupUint32Criteria = {negated?: boolean | undefined, operator: NumericFilterOperatorType, value: number}; export type CustomNumber0Filter = {CUSTOM_NUMBER_0: CatalogsProductGroupUint32Criteria}; export type CustomNumber1Filter = {CUSTOM_NUMBER_1: CatalogsProductGroupUint32Criteria}; export type CustomNumber2Filter = {CUSTOM_NUMBER_2: CatalogsProductGroupUint32Criteria}; export type CustomNumber3Filter = {CUSTOM_NUMBER_3: CatalogsProductGroupUint32Criteria}; export type CustomNumber4Filter = {CUSTOM_NUMBER_4: CatalogsProductGroupUint32Criteria}; export type TitleKeywordsFilter = {TITLE_KEYWORDS: CatalogsProductGroupMultipleStringCriteria}; export type ProductCategoryEnum = 'ACCENT_TABLES' | 'ACCESSORIES' | 'ANKLETS' | 'APRONS' | 'AREA_RUGS' | 'ARMOIRES_AND_WARDROBES' | 'ART_AND_CRAFT_PAINTS' | 'ART_BRUSHES' | 'ARTIFICIAL_FLORA' | 'ARTWORK' | 'AUDIO' | 'AUDIO_ACCESSORIES' | 'BACKPACKS' | 'BAG_AND_LUGGAGE_ACCESSORIES' | 'BAGS_AND_LUGGAGE' | 'BAKEWARE' | 'BANDANAS' | 'BAR_CARTS' | 'BARWARE' | 'BASKETS' | 'BATH_AND_BODY' | 'BATH_AND_SHOWER' | 'BATH_MATS_AND_RUGS' | 'BATH_TOWELS_AND_WASHCLOTHS' | 'BATHROOM_ACCESSORIES' | 'BATHROOM_ACCESSORY_SETS' | 'BATHROOM_VANITIES' | 'BEACH_TOWELS' | 'BEADS_AND_JEWELRY_MAKING_SUPPLIES' | 'BEAUTY_SUPPLEMENTS' | 'BED_SHEETS' | 'BEDDING' | 'BEDROOM_VANITIES' | 'BEDS_AND_ACCESSORIES' | 'BEDS_AND_BED_FRAMES' | 'BELT_BAGS' | 'BELTS_AND_SUSPENDERS' | 'BENCHES' | 'BEVERAGES' | 'BIRD_SUPPLIES' | 'BLANKETS' | 'BLOUSES' | 'BLUSHES_AND_BRONZERS' | 'BODY_CARE' | 'BODY_JEWELRY' | 'BODY_MAKEUP' | 'BODY_MOISTURIZERS' | 'BODY_WASHES' | 'BOOKCASES_AND_STANDING_SHELVES' | 'BOOKENDS' | 'BOOKS' | 'BOOTS' | 'BRACELETS' | 'BRIDESMAID_DRESSES' | 'BROOCHES_AND_LAPEL_PINS' | 'BROW_MAKEUP' | 'BUFFETS_AND_SIDEBOARDS' | 'BUTTON_DOWN_SHIRTS' | 'CABINET_HARDWARE' | 'CABINETS_AND_STORAGE_FURNITURE' | 'CAKE_DECORATING_SUPPLIES' | 'CAMPING_AND_HIKING' | 'CANDLE_HOLDERS' | 'CANDLES' | 'CARDSTOCK_PAPERS' | 'CASUAL_PANTS' | 'CAT_SUPPLIES' | 'CHAIRS' | 'CHANDELIERS' | 'CHARMS_AND_PENDANTS' | 'CHINA_CABINETS_AND_HUTCHES' | 'CLOGS_AND_MULES' | 'CLOTH_NAPKINS' | 'CLOTHING' | 'CLOTHING_AND_CLOSET_STORAGE' | 'CLOTHING_SETS' | 'COASTERS' | 'COATS_AND_JACKETS' | 'COFFEE_AND_TEA_CUPS' | 'COFFEE_MAKERS_AND_ESPRESSO_MACHINES' | 'COLORING_BOOKS' | 'COMMUNICATIONS' | 'COMPUTER_ACCESSORIES' | 'COOKIE_CUTTERS' | 'COOKWARE' | 'COOKWARE_AND_BAKEWARE' | 'COSMETIC_AND_TOILETRY_BAGS' | 'COSTUMES_AND_ACCESSORIES' | 'CRAFT_ADHESIVES_AND_MAGNETS' | 'CRAFT_CUTTING_TOOLS' | 'CRAFT_MOLDS' | 'CRIBS_AND_TODDLER_BEDS' | 'CURTAIN_AND_DRAPE_RODS' | 'CURTAINS_AND_DRAPES' | 'CUTTING_BOARDS' | 'CYCLING' | 'DECORATIVE_BOWLS' | 'DECORATIVE_JARS' | 'DECORATIVE_TAPESTRIES' | 'DECORATIVE_TRAYS' | 'DEODORANTS_AND_ANTIPERSPIRANTS' | 'DESK_AND_SHELF_CLOCKS' | 'DESKS' | 'DIAPER_BAGS' | 'DINNERWARE' | 'DISHWASHERS' | 'DOG_SUPPLIES' | 'DOOR_MATS' | 'DRAWING_AND_PAINTING' | 'DRESS_PANTS' | 'DRESSERS' | 'DRESSES' | 'DRILLS_AND_SCREWDRIVERS' | 'DRINKWARE' | 'DUFFEL_BAGS' | 'DUVET_COVERS' | 'DVDS_AND_VIDEOS' | 'EARRINGS' | 'ELECTRONICS_ACCESSORIES' | 'ENGAGEMENT_AND_WEDDING_RINGS' | 'ENTERTAINMENT_CENTERS_AND_TV_STANDS' | 'ERASERS' | 'EYE_MAKEUP' | 'EYE_SHADOW' | 'EYELINERS' | 'FABRIC' | 'FACE_COVERINGS' | 'FACE_LOTIONS_AND_CREAMS' | 'FACE_MAKEUP' | 'FACIAL_CLEANSERS' | 'FACIAL_MOISTURIZERS' | 'FALSE_EYELASHES' | 'FIGURINES' | 'FIREPLACE_AND_WOOD_STOVE_ACCESSORIES' | 'FIREPLACES' | 'FISHING' | 'FLAGS_AND_WINDSOCKS' | 'FLATS' | 'FLATWARE' | 'FLOOR_LAMPS' | 'FLOWER_GIRL_DRESSES' | 'FOOD_AND_BEVERAGE_CARRIERS' | 'FOOD_COOKERS_AND_STEAMERS' | 'FOOD_ITEMS' | 'FOOD_MIXERS_AND_BLENDERS' | 'FOOD_STORAGE_CONTAINERS' | 'FOOD_STORAGE_SUPPLIES' | 'FOUNDATIONS_AND_CONCEALERS' | 'FOUNTAINS_AND_PONDS' | 'FRAGRANCE' | 'FURNITURE' | 'FURNITURE_SETS' | 'GAMES' | 'GARDENING' | 'GARDENING_TOOLS' | 'GLOVES_AND_MITTENS' | 'GLUES_AND_TAPES' | 'GROOM_AND_GROOMSMEN_SUITS' | 'HAIR' | 'HAIR_ACCESSORIES' | 'HAIR_CARE' | 'HAIR_COLOR' | 'HAIR_COMBS' | 'HAIR_PINS_CLAWS_AND_CLIPS' | 'HAIR_REMOVAL' | 'HAIR_TOOLS' | 'HAIR_TREATMENT' | 'HAIR_WREATHS' | 'HAND_AND_FOOT_CARE' | 'HAND_SOAPS_AND_SANITIZERS' | 'HANDBAGS' | 'HANDKERCHIEFS' | 'HARDWARE_SUPPLIES' | 'HATS' | 'HEADBOARDS_AND_FOOTBOARDS' | 'HEADWEAR' | 'HIGHLIGHTERS' | 'HOBBIES_AND_CREATIVE_ARTS' | 'HOME_ACCESSORIES' | 'HOME_DECOR_DECALS' | 'HOME_FRAGRANCE_ACCESSORIES' | 'HOME_FRAGRANCES' | 'HOME_IMPROVEMENT_TOOLS_AND_SUPPLIES' | 'HOSIERY' | 'HOUSEHOLD_APPLIANCES' | 'HOUSEHOLD_SUPPLIES' | 'INCENSE' | 'INDOOR_GAMES' | 'JEANS' | 'JEWELRY_AND_WATCH_ACCESSORIES' | 'JEWELRY_AND_WATCHES' | 'JEWELRY_SETS' | 'JUMPSUITS_AND_ROMPERS' | 'KEYCHAINS' | 'KITCHEN_AND_DINING' | 'KITCHEN_AND_DINING_ROOM_TABLES' | 'KITCHEN_APPLIANCES' | 'KITCHEN_KNIVES' | 'KITCHEN_LINENS' | 'KITCHEN_MATS' | 'KITCHEN_ORGANIZERS' | 'KITCHEN_TOOLS_AND_UTENSILS' | 'KITCHEN_TOWELS' | 'KNITTING_AND_CROCHET' | 'KNITTING_AND_CROCHET_TOOLS' | 'LAMP_SHADES' | 'LAMPS' | 'LANYARDS' | 'LAUNDRY_HAMPERS_AND_SUPPLIES' | 'LAWN_AND_GARDEN' | 'LAWN_AND_GARDEN_DECOR' | 'LAWN_ORNAMENTS_AND_GARDEN_SCULPTURES' | 'LEGGINGS' | 'LEOTARDS_AND_UNITARDS' | 'LIGHTING' | 'LIGHTING_ACCESSORIES' | 'LIGHTING_FIXTURES' | 'LIP_BALMS' | 'LIP_CARE' | 'LIP_MAKEUP' | 'LIPSTICKS_AND_LIP_GLOSSES' | 'MAGAZINES_AND_NEWSPAPERS' | 'MAGNETS' | 'MAKEUP' | 'MAKEUP_TOOLS' | 'MASCARAS' | 'MATTRESSES' | 'MEASURES_AND_RULERS' | 'MEASURING_TOOLS_AND_SENSORS' | 'MESSENGER_BAGS' | 'MIRRORS' | 'MUSIC_AND_SOUND_RECORDINGS' | 'NAIL_ART' | 'NAIL_ART_KIT_AND_TOOLS' | 'NAIL_CARE' | 'NAIL_POLISHES' | 'NAILS' | 'NECKLACES' | 'NECKTIES' | 'NIGHT_LIGHTS_AND_AMBIENT_LIGHTING' | 'NIGHTSTANDS' | 'NOVELTY_SIGNS' | 'ONE_PIECES' | 'ONESIES' | 'OTTOMANS' | 'OUTDOOR_FURNITURE' | 'OUTDOOR_FURNITURE_SETS' | 'OUTDOOR_GAMES' | 'OUTDOOR_GRILLS' | 'OUTDOOR_LIVING' | 'OUTDOOR_PLAY_EQUIPMENT' | 'OUTDOOR_RECREATION' | 'OUTDOOR_RUGS' | 'OUTDOOR_SEATING' | 'OUTDOOR_STRUCTURES' | 'OUTDOOR_TABLES' | 'OUTERWEAR' | 'OVENS_AND_COOKTOPS' | 'OVERALLS' | 'OXFORDS_AND_LOAFERS' | 'PAINT_AND_PAINT_TOOLS' | 'PANTS' | 'PAPER_CRAFTS' | 'PARASOLS_AND_RAIN_UMBRELLAS' | 'PARTY_AND_CELEBRATION' | 'PENDANT_LIGHTS' | 'PENS_AND_PENCILS' | 'PERFUMES_AND_COLOGNES' | 'PET_CARRIERS_AND_CRATES' | 'PET_COLLARS_AND_HARNESSES' | 'PET_SUPPLIES' | 'PHOTO_ALBUMS_AND_STORAGE' | 'PICTURE_FRAMES' | 'PILLOWCASES_AND_SHAMS' | 'PINBACK_BUTTONS' | 'PLACEMATS' | 'PLANTS' | 'PONYTAIL_HOLDERS' | 'POOL_AND_SPA_ACCESSORIES' | 'POSTERS_PRINTS_AND_VISUAL_ARTWORK' | 'POTS_AND_PLANTERS' | 'POTTERY_AND_SCULPTING' | 'PRIMERS_AND_MAKEUP_SETTERS' | 'PUMPS' | 'PUZZLES' | 'QUILTS_AND_COMFORTERS' | 'RAZORS_AND_SHAVING_TOOLS' | 'RINGS' | 'RUGS' | 'RUNNER_RUGS' | 'SANDALS' | 'SASHES' | 'SAWS' | 'SCARVES_AND_SHAWLS' | 'SCULPTURES_AND_STATUES' | 'SEASONAL_AND_HOLIDAY_DECORATIONS' | 'SEATING' | 'SERUMS_AND_ESSENCES' | 'SERVEWARE' | 'SEWING_MACHINES' | 'SEWING_PATTERNS' | 'SHAMPOO_AND_CONDITIONER' | 'SHOE_ACCESSORIES' | 'SHOES' | 'SHOPPING_TOTES' | 'SHORTS' | 'SHOWER_CURTAINS' | 'SKINCARE' | 'SKINCARE_MASKS_AND_PEELS' | 'SKIRTS' | 'SLEEPWEAR_AND_LOUNGEWEAR' | 'SLIPCOVERS_AND_CUSHIONS' | 'SLIPPERS' | 'SNEAKERS_AND_ATHLETIC_SHOES' | 'SOCKS_AND_TIGHTS' | 'SOFAS' | 'SPORTS_UNIFORMS' | 'STEMWARE' | 'STOCKINGS' | 'STORAGE_AND_ORGANIZATION' | 'STORAGE_CABINETS_AND_LOCKERS' | 'STORAGE_HOOKS_AND_RACKS' | 'SUITCASES' | 'SUITS' | 'SUITS_AND_SUIT_SEPARATES' | 'GLASSES_AND_SUNGLASSES' | 'SUNSCREEN' | 'SWEATERS_AND_CARDIGANS' | 'SWEATSHIRTS_AND_HOODIES' | 'SWIMWEAR' | 'T_SHIRTS' | 'TABLE_LAMPS' | 'TABLE_RUNNERS' | 'TABLECLOTHS' | 'TABLES' | 'TABLEWARE' | 'TANK_TOPS' | 'TANNING_OILS_AND_LOTIONS' | 'TEETH_WHITENING' | 'TEETH_WHITENING_TOOLS' | 'TELEPHONY' | 'TEXTILE_AND_SEWING' | 'THREAD_AND_YARN' | 'THROW_PILLOWS' | 'TIARAS' | 'TOILET_PAPER_HOLDERS' | 'TONERS_AND_ASTRINGENTS' | 'TOOL_STORAGE_AND_ORGANIZATION' | 'TOOLS' | 'TOPS' | 'TOWEL_RACKS_AND_HOLDERS' | 'TOYS' | 'TRADITIONAL_AND_CEREMONIAL_CLOTHING' | 'TUMBLERS_AND_WATER_BOTTLES' | 'UNIFORMS' | 'VASES' | 'VEHICLE_PARTS_AND_ACCESSORIES' | 'VEILS' | 'WALL_CLOCKS' | 'WALL_LIGHT_FIXTURES' | 'WALL_PAINTS' | 'WALL_SHELVES_AND_LEDGES' | 'WALLETS_AND_CARD_CASES' | 'WALLPAPERS' | 'WATCHES' | 'WATERING_AND_IRRIGATION' | 'WEDDING_CEREMONY_DECOR' | 'WEDDING_CLOTHING' | 'WEDDING_DECOR' | 'WEDDING_DRESS' | 'WEDDING_GIFTS' | 'WEDDING_STATIONERY' | 'WEDDING_TABLE_DECOR' | 'WIGS_AND_HAIR_EXTENSIONS' | 'WINDOW_BLINDS_AND_SHADES' | 'WINDOW_TREATMENT_ACCESSORIES' | 'WINDOW_TREATMENTS' | 'WINE_RACKS' | 'WOOD_BOARDS_AND_PLANKS' | 'WOODWORKING_MATERIALS' | 'WOODWORKING_PLANS' | 'WORK_BENCHES' | 'WREATHS_AND_GARLANDS'; export type CatalogsProductGroupMultiplePinterestProductCategoryCriteria = {negated?: boolean | undefined, values: Array}; export type PinterestProductCategoriesFilter = {PINTEREST_PRODUCT_CATEGORIES: CatalogsProductGroupMultiplePinterestProductCategoryCriteria}; export type CatalogsBaseFilterKeys = MinPriceFilter | MaxPriceFilter | CurrencyFilter | ItemIdFilter | AvailabilityFilter | BrandFilter | ConditionFilter | CustomLabel0Filter | CustomLabel1Filter | CustomLabel2Filter | CustomLabel3Filter | CustomLabel4Filter | ItemGroupIdFilter | GenderFilter | MediaTypeFilter | ProductType4Filter | ProductType3Filter | ProductType2Filter | ProductType1Filter | ProductType0Filter | GoogleProductCategory6Filter | GoogleProductCategory5Filter | GoogleProductCategory4Filter | GoogleProductCategory3Filter | GoogleProductCategory2Filter | GoogleProductCategory1Filter | GoogleProductCategory0Filter | CustomNumber0Filter | CustomNumber1Filter | CustomNumber2Filter | CustomNumber3Filter | CustomNumber4Filter | TitleKeywordsFilter | PinterestProductCategoriesFilter; export type ProductGroupReferenceFilter = {PRODUCT_GROUP: CatalogsProductGroupMultipleStringCriteria}; export type CatalogsProductGroupFilterKeys = CatalogsBaseFilterKeys | ProductGroupReferenceFilter; export type CatalogsProductGroupFiltersRequestAnyOfItems0 = {any_of: Array}; export type CatalogsProductGroupFiltersRequestAnyOfItems1 = {all_of: Array}; export type CatalogsProductGroupFiltersRequest = CatalogsProductGroupFiltersRequestAnyOfItems0 | CatalogsProductGroupFiltersRequestAnyOfItems1; export type CatalogsProductGroupCreateRequest = {description?: (string | null) | undefined, feed_id: string, filters: CatalogsProductGroupFiltersRequest, is_featured?: boolean | undefined, name: string}; export type PinterestLibIntegerFormatType = string; export type Country = 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW'; export type CatalogsLocale = 'af-ZA' | 'ar-SA' | 'bg-BG' | 'bn-IN' | 'cs-CZ' | 'da-DK' | 'de' | 'el-GR' | 'en-AU' | 'en-CA' | 'en-GB' | 'en-IN' | 'en-US' | 'es-419' | 'es-AR' | 'es-ES' | 'es-MX' | 'fi-FI' | 'fr' | 'fr-CA' | 'he-IL' | 'hi-IN' | 'hr-HR' | 'hu-HU' | 'id-ID' | 'it' | 'ja' | 'ko-KR' | 'ms-MY' | 'nb-NO' | 'nl' | 'pl-PL' | 'pt-BR' | 'pt-PT' | 'ro-RO' | 'ru-RU' | 'sk-SK' | 'sv-SE' | 'te-IN' | 'th-TH' | 'tl-PH' | 'tr' | 'uk-UA' | 'vi-VN' | 'zh-CN' | 'zh-TW'; export type PriceFilterPrice = {currency: NonNullableCatalogsCurrency, negated?: boolean | undefined, operator: NumericFilterOperatorType, value: number}; export type PriceFilter = {PRICE: PriceFilterPrice}; export type HotelIdFilter = {HOTEL_ID: CatalogsProductGroupMultipleStringCriteria}; export type CatalogsProductGroupMultipleCountriesCriteria = {negated?: boolean | undefined, values: Array}; export type CountryFilter = {COUNTRY: CatalogsProductGroupMultipleCountriesCriteria}; export type CatalogsHotelProductGroupFilterKeys = PriceFilter | HotelIdFilter | BrandFilter | CustomLabel0Filter | CustomLabel1Filter | CustomLabel2Filter | CustomLabel3Filter | CustomLabel4Filter | CountryFilter | TitleKeywordsFilter; export type CatalogsHotelProductGroupFiltersAnyOf = {any_of: Array}; export type CatalogsHotelProductGroupFiltersAllOf = {all_of: Array}; export type CatalogsHotelProductGroupFilters = CatalogsHotelProductGroupFiltersAnyOf | CatalogsHotelProductGroupFiltersAllOf; export type CreativeAssetsIdFilter = {CREATIVE_ASSETS_ID: CatalogsProductGroupMultipleStringCriteria}; export type LinkFilter = {LINK: CatalogsProductGroupFilterOperatorTypeCriteria}; export type CatalogsCreativeAssetsProductGroupFilterKeys = CreativeAssetsIdFilter | CustomLabel0Filter | CustomLabel1Filter | CustomLabel2Filter | CustomLabel3Filter | CustomLabel4Filter | GoogleProductCategory6Filter | GoogleProductCategory5Filter | GoogleProductCategory4Filter | GoogleProductCategory3Filter | GoogleProductCategory2Filter | GoogleProductCategory1Filter | GoogleProductCategory0Filter | MediaTypeFilter | TitleKeywordsFilter | LinkFilter; export type CatalogsCreativeAssetsProductGroupFiltersAnyOf = {any_of: Array}; export type CatalogsCreativeAssetsProductGroupFiltersAllOf = {all_of: Array}; export type CatalogsCreativeAssetsProductGroupFilters = CatalogsCreativeAssetsProductGroupFiltersAnyOf | CatalogsCreativeAssetsProductGroupFiltersAllOf; export type CatalogsVerticalProductGroupCreateRequest = {catalog_id: PinterestLibIntegerFormatType, catalog_type: 'RETAIL', country?: Country | undefined, description?: (string | null) | undefined, filters: CatalogsProductGroupFiltersRequest, locale?: CatalogsLocale | undefined, name: string} | {catalog_id: PinterestLibIntegerFormatType, catalog_type: 'HOTEL', description?: (string | null) | undefined, filters: CatalogsHotelProductGroupFilters, name: string} | {catalog_id: PinterestLibIntegerFormatType, catalog_type: 'CREATIVE_ASSETS', description?: (string | null) | undefined, filters: CatalogsCreativeAssetsProductGroupFilters, name: string}; export type BulkUpsertRequestCreateCatalogProductGroupsItems = CatalogsProductGroupCreateRequest | CatalogsVerticalProductGroupCreateRequest; export type MatchTypeResponse = 'BROAD' | 'PHRASE' | 'EXACT' | 'EXACT_NEGATIVE' | 'PHRASE_NEGATIVE' | 'null' | null; export type KeywordsCommon = {bid?: (number | null) | undefined, match_type: MatchTypeResponse, value: string}; export type KeywordsRequest = {keywords: Array, parent_id: string}; export type LabelType = 'BRAND' | 'CUSTOM'; export type LabelCreateItem = {label_type: LabelType, value: string}; export type LabelCreateArrayItem = Array; export type LabelBulkCreateRequest = {labels: LabelCreateArrayItem, parent_id: string}; export type CollectionsHeaderType = 'SHOP_THIS_COLLECTION' | 'EXPLORE_THIS_COLLECTION' | 'NO_HEADER' | 'ON_SALE' | 'GET_DEAL' | 'null' | null; export type ProductGroupPromotionCustomizableCTAType = 'GET_OFFER' | 'LEARN_MORE' | 'ORDER_NOW' | 'SHOP_NOW' | 'SIGN_UP' | 'SUBSCRIBE' | 'BUY_NOW' | 'CONTACT_US' | 'GET_QUOTE' | 'VISIT_SITE' | 'APPLY_NOW' | 'BOOK_NOW' | 'REGISTER_NOW' | 'FIND_A_DEALER' | 'WATCH_NOW' | 'READ_MORE' | 'BUY_TICKETS' | 'DONATE_NOW' | 'DOWNLOAD' | 'EXPLORE_MORE' | 'FIND_A_LOCATION' | 'GET_DEAL' | 'GET_RECIPE' | 'GET_SHOWTIMES' | 'ON_SALE' | 'PLAY_GAME' | 'TRY_IT' | 'BUY_ONLINE_PICKUP_IN_STORE' | 'SHOP_ON_ADVERTISER' | 'SHOP_THE_COLLECTION' | 'GET_IT_NOW' | 'TAKE_A_PEEK' | 'TAKE_A_CLOSER_LOOK'; export type PreferredMediaType = 'VIDEO' | 'IMAGE' | 'null' | null; export type ProductGroupPromotion = {ad_group_id?: string | undefined, bid_in_micro_currency?: number | undefined, catalog_product_group_id?: string | undefined, catalog_product_group_name?: string | undefined, collections_header_type?: CollectionsHeaderType | undefined, collections_hero_destination_url?: (string | null) | undefined, collections_hero_pin_id?: (string | null) | undefined, creative_type?: CreativeType | undefined, customizable_cta_type?: ProductGroupPromotionCustomizableCTAType | undefined, definition?: string | undefined, grid_click_type?: GridClickType | undefined, id?: string | undefined, included?: boolean | undefined, is_generate_background?: (boolean | null) | undefined, is_image_auto_resizing?: (boolean | null) | undefined, is_mdl?: boolean | undefined, parent_id?: string | undefined, preferred_media_type?: PreferredMediaType | undefined, relative_definition?: string | undefined, selected_image_tag?: (string | null) | undefined, selected_video_tag?: (string | null) | undefined, slideshow_collections_description?: (string | null) | undefined, slideshow_collections_title?: (string | null) | undefined, status?: EntityStatus | undefined, tracking_url?: string | undefined}; export type ProductGroupPromotionCreateRequest = {ad_group_id: string, product_group_promotion: Array}; export type ScheduleCreateRequest = {entity_id: string, entity_type: string}; export type BulkUpsertRequestCreate = {ad_groups?: Array | undefined, ads?: Array | undefined, campaigns?: Array | undefined, catalog_product_groups?: Array | undefined, keywords?: Array | undefined, labels?: Array | undefined, product_groups?: Array | undefined, schedules?: Array | undefined}; export type TargetingSpecListOperation = 'SET' | 'ADD' | 'REMOVE'; export type TargetingSpecShoppingRetargeting = {exclusion_window?: number | undefined, lookback_window?: number | undefined, tag_types?: Array | undefined}; export type TargetingSpecOperations = {field: 'AUDIENCE_EXCLUDE', operation: TargetingSpecListOperation, values: Array} | {field: 'AUDIENCE_INCLUDE', operation: TargetingSpecListOperation, values: Array} | {field: 'GEO', operation: TargetingSpecListOperation, values: Array} | {field: 'GEO_EXCLUDE', operation: TargetingSpecListOperation, values: Array} | {field: 'INTEREST', operation: TargetingSpecListOperation, values: Array} | {field: 'LOCATION', operation: TargetingSpecListOperation, values: Array} | {field: 'LOCATION_EXCLUDE', operation: TargetingSpecListOperation, values: Array} | {field: 'LOCALE', operation: TargetingSpecListOperation, values: Array} | {field: 'APPTYPE', operation: TargetingSpecListOperation, values: Array} | {field: 'GENDER', operation: TargetingSpecListOperation, values: Array} | {field: 'AGE_BUCKET', operation: 'SET', values: Array} | {field: 'SHOPPING_RETARGETING', operation: 'SET', values: Array} | {field: 'MAXIMUM_AGE', operation: 'SET', value: string | null} | {field: 'MINIMUM_AGE', operation: 'SET', value: string | null}; export type AdGroupUpdateRequest = {bid_multiplier?: number | undefined, id: string, targeting_spec_operations?: Array | undefined}; export type AdUpdateRequest = {id: string, pin_id?: (string | null) | undefined}; export type CampaignBidOptionsUpdateMaskItems = 'AUDIENCE' | 'APP_TYPE' | 'PLACEMENT' | 'GENDER' | 'AGE_BUCKET' | 'FREQUENCY'; export type CampaignBidOptionsUpdate = {age_bucket_multipliers?: AgeBucketMultipliers | undefined, app_type_multipliers?: AppTypeMultipliers | undefined, audience_multipliers?: CampaignAudienceMultipliers | undefined, freq_bid_multiplier_time_window?: (FreqBidMultiplierTimeWindow | null) | undefined, frequency_multipliers?: (FrequencyMultipliers | null) | undefined, gender_multipliers?: GenderMultipliers | undefined, placement_multipliers?: PlacementMultipliers | undefined, update_mask: Array} | null; export type CampaignUpdateRequest = {bid_options?: CampaignBidOptionsUpdate | undefined, intended_promotion_type?: IntendedPromotionType | undefined, is_ltv_optimized?: boolean | undefined, is_performance_plus?: boolean | undefined, is_top_of_search?: boolean | undefined, objective_type?: (ObjectiveType | null) | undefined}; export type CatalogsProductGroupUpdateRequest = {description?: (string | null) | undefined, filters?: CatalogsProductGroupFiltersRequest | undefined, is_featured?: boolean | undefined, name?: string | undefined}; export type CatalogsVerticalProductGroupUpdateRequest = {catalog_type?: 'RETAIL' | undefined, country?: Country | undefined, description?: (string | null) | undefined, filters?: CatalogsProductGroupFiltersRequest | undefined, locale?: CatalogsLocale | undefined, name?: string | undefined} | {catalog_type?: 'HOTEL' | undefined, description?: (string | null) | undefined, filters?: CatalogsHotelProductGroupFilters | undefined, name?: string | undefined} | {catalog_type?: 'CREATIVE_ASSETS' | undefined, description?: (string | null) | undefined, filters?: CatalogsCreativeAssetsProductGroupFilters | undefined, name?: string | undefined}; export type BulkUpsertRequestUpdateCatalogProductGroupsItems = CatalogsProductGroupUpdateRequest | CatalogsVerticalProductGroupUpdateRequest; export type KeywordUpdateGenerated = {archived?: boolean | undefined, bid?: (number | null) | undefined, id: string}; export type LabelStatusBulkUpdate = 'ARCHIVED'; export type LabelBulkUpdateRequest = {id: string, parent_id: string, status: LabelStatusBulkUpdate}; export type ProductGroupPromotionUpdateRequest = {ad_group_id: string, product_group_promotion: Array}; export type ScheduleUpdateRequest = {entity_id?: string | undefined, entity_type?: string | undefined, id: string}; export type BulkUpsertRequestUpdate = {ad_groups?: Array | undefined, ads?: Array | undefined, campaigns?: Array | undefined, catalog_product_groups?: Array | undefined, keywords?: Array | undefined, labels?: Array | undefined, product_groups?: Array | undefined, schedules?: Array | undefined}; export type BulkUpsertRequest = {create?: BulkUpsertRequestCreate | undefined, update?: BulkUpsertRequestUpdate | undefined}; export type CreateApiAdAccountsAdAccountIdBulkUpsertArgs = {ad_account_id: string, body: BulkUpsertRequest}; export type CreateApiAdAccountsAdAccountIdBulkUpsertOptions = {baseUrl?: string | undefined, pinterestOauth2?: string | undefined, fetch?: typeof fetch | undefined}; export const bulkUpsertResponse = z.object({request_id: z.string().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 }; /** * Create/update ad entities in bulk * * POST /ad_accounts/{ad_account_id}/bulk/upsert */ export const createApiAdAccountsAdAccountIdBulkUpsert = async (args: CreateApiAdAccountsAdAccountIdBulkUpsertArgs, options?: CreateApiAdAccountsAdAccountIdBulkUpsertOptions) => { const {baseUrl = "https://api.pinterest.com/v5", fetch: fetchFn = fetch, pinterestOauth2} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (pinterestOauth2 !== undefined) headers.set('authorization', `Bearer ${pinterestOauth2}`) const url = `${baseUrl.replace(/\/+$/, '')}/ad_accounts/${encodeURIComponent(String(args.ad_account_id))}/bulk/upsert${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(bulkUpsertResponse, await res.json()) };