import {z} from 'zod' export type DBStringSlice = Array; export type NullTime = {Time?: string | undefined, Valid?: boolean | undefined}; export type IMap = unknown; export type TaxRate = {archived?: boolean | undefined, created?: string | undefined, description?: string | undefined, id?: number | undefined, marketplace?: boolean | undefined, name?: string | undefined, owner_id?: number | undefined, rate?: number | undefined, state?: string | undefined, updated?: string | undefined, zip_code?: string | undefined}; export type RentalItem = {applies_to_type?: DBStringSlice | undefined, available?: number | undefined, category?: string | undefined, category_id?: number | undefined, consigned_pay_pct?: number | undefined, created?: NullTime | undefined, daily?: boolean | undefined, deferred?: boolean | undefined, description?: string | undefined, hidden?: boolean | undefined, id?: number | undefined, image_url?: string | undefined, ledger_account_number?: number | undefined, location_id?: number | undefined, location_ids?: Array | undefined, maximum_price?: (number | null) | undefined, metadata?: IMap | undefined, minimum_price?: (number | null) | undefined, name?: string | undefined, percent?: number | undefined, percent_type?: string | undefined, position?: number | undefined, presentment_currency?: string | undefined, price?: number | undefined, rental_items_category_id?: (number | null) | undefined, rental_items_category_name?: string | undefined, rental_items_category_owner_name?: string | undefined, rental_items_category_reason?: string | undefined, rental_items_category_requested_name?: string | undefined, rental_items_category_status?: string | undefined, required?: boolean | undefined, settlement_currency?: string | undefined, tax?: number | undefined, tax_rate_id?: TaxRate | undefined, tax_rate_ids?: Array | undefined, travelers?: number | undefined, updated?: NullTime | undefined}; export type TagRental = {Created?: string | undefined, ID?: number | undefined, Name?: string | undefined, Slug?: string | undefined, Updated?: string | undefined, position?: number | undefined, usage_by_rental_count?: number | undefined}; export type CreateApiRentalsArgs = {id?: number | undefined, name?: string | undefined, vehicle_title?: string | undefined, type?: string | undefined, description?: string | undefined, sleeps?: number | undefined, seatbelts?: number | undefined, minimum_renter_age?: number | undefined, sleeps_adults?: number | undefined, sleeps_kids?: number | undefined, summary?: string | undefined, published?: boolean | undefined, publish_field_errors?: Array | undefined, unpublish_reason?: string | undefined, last_unpublish_date?: string | undefined, group_on_map?: boolean | undefined, primary_image_url?: string | undefined, primary_image_id?: number | undefined, interior_primary_image_url?: string | undefined, interior_primary_image_id?: number | undefined, has_checkout_questions?: boolean | undefined, position?: number | undefined, external?: boolean | undefined, description_included?: string | undefined, description_recommendations?: string | undefined, description_other?: string | undefined, waived_insurance_text?: string | undefined, custom_insurance_text?: string | undefined, insurance_coverage?: string | undefined, require_roadside?: boolean | undefined, current_location_id?: number | undefined, mileage_usage_item_id?: number | undefined, generator_usage_item_id?: number | undefined, delivery_usage_item_id?: number | undefined, cancel_policy?: string | undefined, cancel_policy_combo_bookings?: string | undefined, minimum_deposit?: number | undefined, minimum_days?: number | undefined, instant_book?: boolean | undefined, instant_book_leeway?: number | undefined, instant_book_type?: string | undefined, request_less_than_minimum_days?: number | undefined, insurance_renter_adjustable?: boolean | undefined, turnaround_days_after?: number | undefined, booking_leeway_days?: number | undefined, require_insurance?: boolean | undefined, smart_pricing_enabled?: boolean | undefined, smart_pricing_mode?: string | undefined, smart_pricing_min?: number | undefined, smart_pricing_max?: number | undefined, ny_insurance_warning?: boolean | undefined, one_way_rental_requests?: boolean | undefined, one_way_rental_maximum_radius?: number | undefined, tax_rate_ids?: Array | undefined, exempt_rental_sales_tax?: boolean | undefined, items?: Array | undefined, instant_book_banned?: boolean | undefined, instant_book_ban_date?: string | undefined, original_url?: string | undefined, internal_notes?: string | undefined, created?: string | undefined, last_published?: string | undefined, first_published?: string | undefined, snooze_expiration_date?: string | undefined, updated?: string | undefined, sort?: number | undefined, hidden?: boolean | undefined, hidden_reason?: string | undefined, import_id?: string | undefined, internal_id?: string | undefined, roamly_policy_number?: string | undefined, inactive?: boolean | undefined, external_site_url?: string | undefined, auto_insurance_type?: string | undefined, has_completed_lyrv?: boolean | undefined, turo_vehicle_id?: string | undefined, tollspot_id?: number | undefined, rejected_images_count?: number | undefined, can_manage_tax_rates?: boolean | undefined, use_system_tax_rates?: boolean | undefined, eligible_for_system_tax_rates?: boolean | undefined, eligible_for_custom_tax_rates?: boolean | undefined, parent_id?: number | undefined, images_verified?: boolean | undefined, images_verified_by?: number | undefined, photo_score?: number | undefined, review_status?: string | undefined, review_notes?: string | undefined, tags?: Array | undefined, free_form_typed?: boolean | undefined, rental_category?: string | undefined, check_in?: number | undefined, check_out?: number | undefined, bypass_new_york_regulations?: boolean | undefined, od_stays_opt_in?: boolean | undefined, od_stays_opt_in_eligible?: boolean | undefined, od_stays_opt_in_missing_requirements?: Array | undefined, sd_waiver_enabled?: boolean | undefined}; export type CreateApiRentalsOptions = {baseUrl: string, Bearer?: string | undefined, fetch?: typeof fetch | undefined}; export const activeOptions = z.object({cancel_policy: z.string().optional(), cancel_policy_combo_bookings: z.string().optional(), instant_book: z.boolean().optional(), instant_book_disabled_reason: z.string().optional(), insurance_coverage: z.string().optional(), minimum_nights: z.number().int().optional(), use_day_pricing: z.boolean().optional(), use_tax_inclusive_pricing: z.boolean().optional()}); export const activePrice = z.object({base_day: z.number().int().optional(), day: z.number().int().optional(), month: z.number().int().optional(), tax: z.number().int().optional(), week: z.number().int().optional()}); export const averageRatings = z.object({cleanliness_score: z.number().optional(), cleanliness_score_percentage: z.number().optional(), communication_score: z.number().optional(), communication_score_percentage: z.number().optional(), listing_score: z.number().optional(), listing_score_percentage: z.number().optional(), mechanical_score: z.number().optional(), mechanical_score_percentage: z.number().optional(), score: z.number().optional(), score_percentage: z.number().optional(), value_score: z.number().optional(), value_score_percentage: z.number().optional()}); export const averageReviewsScores = z.object({key: z.string().optional(), name: z.string().optional(), percentage: z.number().optional(), score: z.number().optional()}); export const averageReviews = z.object({owner: z.array(averageReviewsScores).optional(), rental: z.array(averageReviewsScores).optional(), score: z.number().optional()}); export const campsiteCategoryQuestion = z.object({included: z.boolean().optional(), label: z.string().optional(), value: z.string().optional()}); export const mSI = z.record(z.string(), z.unknown()); export const petFee = z.object({amount: z.number().int().optional(), created: z.string().optional(), daily: z.boolean().optional(), id: z.number().int().optional(), max_count: z.number().int().optional(), rental_id: z.number().int().optional(), updated: z.string().optional()}); export const campsiteCategory = z.object({active_rate_plan: z.string().optional(), bathrooms: z.number().int().optional(), bedrooms: z.number().int().optional(), beds: z.number().int().optional(), campground_id: z.number().int().optional(), campground_name: z.string().optional(), campground_site_map_url: z.string().optional(), category_type: z.string().optional(), checkout_questions: z.array(campsiteCategoryQuestion).optional(), created: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), display_category_type: z.string().optional(), display_max_vehicle_length: z.string().optional(), display_site_type: z.string().optional(), enabled_for_rental_categories: mSI.optional(), external_id: z.string().optional(), features: mSI.optional(), has_pricing: z.boolean().optional(), id: z.number().int().optional(), is_odn: z.boolean().optional(), max_occupancy: z.number().int().optional(), max_occupancy_adult: z.number().int().optional(), max_occupancy_kids: z.number().int().optional(), max_parking_spaces: z.number().int().optional(), max_vehicle_length: z.number().optional(), name: z.string().optional(), owner_id_int: z.number().int().optional(), parking_onsite: z.boolean().optional(), pet_fee: petFee.optional(), quantity: z.number().int().optional(), rental_id_int: z.number().int().optional(), rv_rental_id_int: z.number().int().optional(), site_type: z.string().optional(), slug: z.string().optional(), supplier_category_id: z.number().int().optional(), updated: z.string().optional()}); export const dBMSISlice = z.array(z.record(z.string(), z.unknown())); export const nullFloat64 = z.object({Float64: z.number().optional(), Valid: z.boolean().optional()}); export const rentalConsignment = z.object({consignment_completed: z.boolean().optional(), interested_in_consignment: z.boolean().optional(), keep_pct_cc_fee: nullFloat64.optional(), keep_pct_insurance_fee: nullFloat64.optional(), owner_id: z.number().int().optional(), pay_pct: nullFloat64.optional(), pay_pct_generator: nullFloat64.optional(), pay_pct_mileage: nullFloat64.optional()}); export const distributedRatings = z.object({score: z.object({r1: z.number().optional(), r2: z.number().optional(), r3: z.number().optional(), r4: z.number().optional(), r5: z.number().optional()}).optional()}); export const dBInterfaceMap = z.unknown(); export const home = z.object({city: z.string().optional(), country: z.string().optional(), county: z.string().optional(), lat: z.number().optional(), lng: z.number().optional(), state: z.string().optional(), street: z.string().optional(), street_etc: z.string().optional(), zip: z.string().optional()}); export const rentalImageAmenity = z.object({description: z.string().optional(), name: z.string().optional(), slug: z.string().optional()}); export const mediaCategory = z.object({name: z.string().optional(), slug: z.string().optional()}); export const bookingSummary = z.object({from: z.string().optional(), id: z.number().int().optional(), to: z.string().optional()}); export const dBStringSlice = z.array(z.string()); export const reviewOwner = z.object({avatar_url: z.string().optional(), first_name: z.string().optional(), id: z.number().int().optional(), last_name: z.string().optional()}); export const ownerResponseReview = z.object({text: z.string().optional(), timestamp: z.string().optional()}); export const campsiteSummary = z.object({beds: z.number().int().optional(), campground_id: z.number().int().optional(), campground_name: z.string().optional(), campground_sitemap_url: z.string().optional(), display_campsite_type: z.string().optional(), display_max_vehicle_length: z.string().optional(), display_site_type: z.string().optional(), is_odn: z.boolean().optional(), rental_id: z.number().int().optional(), site_type: z.string().optional(), sleeps: z.number().int().optional(), type: z.string().optional()}); export const staySummary = z.object({baths: z.number().int().optional(), bedrooms: z.number().int().optional(), beds: z.number().int().optional(), check_in_type: z.string().optional(), display_stay_type: z.string().optional(), location_description: z.string().optional(), max_parking_spaces: z.number().int().optional(), parking_onsite: z.boolean().optional(), rental_id: z.number().int().optional(), sleeps: z.number().int().optional(), type: z.string().optional()}); export const rentalSummary = z.object({campsite_summary: campsiteSummary.optional(), disallow_movement: z.boolean().optional(), display_type: z.string().optional(), formatted_length: z.string().optional(), id: z.number().int().optional(), interior_primary_image_url: z.string().optional(), internal_id: z.string().optional(), location: z.string().optional(), name: z.string().optional(), primary_image_url: z.string().optional(), rental_category: z.string().optional(), sleeps: z.number().int().optional(), slug: z.string().optional(), stay_summary: staySummary.optional(), style: z.string().optional(), type: z.string().optional()}); export const tagRental = z.object({Created: z.string().optional(), ID: z.number().int().optional(), Name: z.string().optional(), Slug: z.string().optional(), Updated: z.string().optional(), position: z.number().int().optional(), usage_by_rental_count: z.number().int().optional()}); export const iD = z.string(); export const reviewImage = z.object({created: z.string().optional(), id: iD.optional(), lat: z.number().optional(), lng: z.number().optional(), rental_id: z.string().optional(), review_id: z.string().optional(), reviewed: z.boolean().optional(), reviewed_by: z.string().optional(), status: z.string().optional(), updated: z.string().optional(), url: z.string().optional()}); export const reviewer = z.object({avatar_url: z.string().optional(), first_name: z.string().optional(), id: z.number().int().optional(), last_name: z.string().optional()}); export const tag = z.object({allow_for_review: z.boolean().optional(), created: z.string().optional(), description: z.string().optional(), id: z.number().int().optional(), name: z.string().optional(), owner_user_id: z.number().int().nullable().optional(), position: z.number().int().optional(), slug: z.string().optional(), updated: z.string().optional()}); export const rentalImageReview = z.object({apply_credit: z.boolean().optional(), booking_id: z.number().int().optional(), booking_summary: bookingSummary.optional(), can_edit: z.boolean().optional(), can_edit_until: z.string().optional(), cleanliness_score: z.number().optional(), communication_score: z.number().optional(), deleted: z.string().optional(), exclude_from_rating: z.boolean().optional(), id: z.number().int().optional(), images: dBStringSlice.optional(), imported: z.boolean().optional(), listing_score: z.number().optional(), mechanical_score: z.number().optional(), name: z.string().optional(), outdoorsy_only: z.boolean().optional(), owner: reviewOwner.optional(), owner_can_respond: z.boolean().optional(), owner_response: ownerResponseReview.optional(), published: z.boolean().optional(), rental_id: z.number().int().optional(), rental_summary: rentalSummary.optional(), rental_tags: z.array(tagRental).optional(), review_image_id: z.string().optional(), review_images: z.array(reviewImage).optional(), reviewer: reviewer.optional(), reviewer_id: z.number().int().optional(), score: z.number().optional(), source_page: z.string().optional(), tags: z.array(tag).optional(), text: z.string().optional(), timestamp: z.string().optional(), user_id: z.number().int().optional(), user_recommend: z.boolean().optional(), value_score: z.number().optional()}); export const rentalImage = z.object({ai_aesthetic_score: z.number().optional(), ai_description: z.string().optional(), ai_position: z.number().int().optional(), ai_summary: z.string().optional(), amenity: rentalImageAmenity.optional(), best: z.boolean().optional(), category: mediaCategory.optional(), description: z.string().optional(), height: z.number().int().optional(), id: z.number().int().optional(), ignore_rejected: z.boolean().optional(), interior_primary: z.boolean().optional(), position: z.number().int().optional(), primary: z.boolean().optional(), rental_id: z.number().int().optional(), review: rentalImageReview.optional(), skip_enhance: z.boolean().optional(), status: z.string().optional(), tags: z.string().optional(), title: z.string().optional(), url: z.string().optional(), video: z.boolean().optional(), width: z.number().int().optional()}); export const rentalImages = z.array(rentalImage); export const planOverride = z.object({created: z.string().optional(), dealer_owned_owner_fee_percentage: z.number().optional(), dealer_owned_renter_fee_percentage: z.number().optional(), id: z.number().int().optional(), insurance_plan_id: z.lazy(() => plan.optional()), owner_fee_percentage: z.number().optional(), owner_id: z.number().int().optional(), renter_fee_percentage: z.number().optional(), updated: z.string().optional()}); export const plan: z.ZodType = z.object({allow_unregistered: z.boolean().optional(), approved_vehicle_types: dBStringSlice.optional(), bundle_required: z.boolean().optional(), claims_number: z.string().optional(), comp_policy_url: z.string().optional(), comprehensive_coverage: z.boolean().optional(), comprehensive_maximum: z.string().optional(), country: z.string().optional(), created: z.string().optional(), created_by_id: z.number().int().nullable().optional(), dealer_only: z.boolean().optional(), hidden: z.boolean().optional(), id: z.number().int().optional(), insurance_address_1: z.string().optional(), insurance_city: z.string().optional(), insurance_end_date: z.string().optional(), insurance_name: z.string().optional(), insurance_plan_override: planOverride.optional(), insurance_policy_number: z.string().optional(), insurance_start_date: z.string().optional(), insurance_state: z.string().optional(), insurance_zip: z.string().optional(), insured_address_1: z.string().optional(), insured_city: z.string().optional(), insured_name: z.string().optional(), insured_state: z.string().optional(), insured_zip: z.string().optional(), label: z.string().optional(), last_updated_by_id: z.number().int().nullable().optional(), liability_coverage: z.boolean().optional(), liability_maximum: z.string().optional(), liability_policy_url: z.string().optional(), locality: z.string().optional(), minimum_daily_fee: z.number().int().optional(), minimum_year: z.number().int().optional(), owner_comprehensive_deductible: z.string().optional(), owner_fee_percentage: z.number().optional(), owner_liability_deductible: z.string().optional(), owner_liability_maximum: z.string().optional(), rental_category: z.string().optional(), renter_comprehensive_deductible: z.string().optional(), renter_fee_percentage: z.number().optional(), renter_liability_deductible: z.string().optional(), renter_liability_maximum: z.string().optional(), requires_driver_verification: z.boolean().optional(), tiered: z.boolean().optional(), updated: z.string().optional()}); export const nullTime = z.object({Time: z.string().optional(), Valid: z.boolean().optional()}); export const iMap = z.unknown(); export const taxRate = z.object({archived: z.boolean().optional(), created: z.string().optional(), description: z.string().optional(), id: z.number().int().optional(), marketplace: z.boolean().optional(), name: z.string().optional(), owner_id: z.number().int().optional(), rate: z.number().optional(), state: z.string().optional(), updated: z.string().optional(), zip_code: z.string().optional()}); export const rentalItem = z.object({applies_to_type: dBStringSlice.optional(), available: z.number().int().optional(), category: z.string().optional(), category_id: z.number().int().optional(), consigned_pay_pct: z.number().optional(), created: nullTime.optional(), daily: z.boolean().optional(), deferred: z.boolean().optional(), description: z.string().optional(), hidden: z.boolean().optional(), id: z.number().int().optional(), image_url: z.string().optional(), ledger_account_number: z.number().int().optional(), location_id: z.number().int().optional(), location_ids: z.array(z.number().int()).optional(), maximum_price: z.number().int().nullable().optional(), metadata: iMap.optional(), minimum_price: z.number().int().nullable().optional(), name: z.string().optional(), percent: z.number().optional(), percent_type: z.string().optional(), position: z.number().int().optional(), presentment_currency: z.string().optional(), price: z.number().int().optional(), rental_items_category_id: z.number().int().nullable().optional(), rental_items_category_name: z.string().optional(), rental_items_category_owner_name: z.string().optional(), rental_items_category_reason: z.string().optional(), rental_items_category_requested_name: z.string().optional(), rental_items_category_status: z.string().optional(), required: z.boolean().optional(), settlement_currency: z.string().optional(), tax: z.number().int().optional(), tax_rate_id: taxRate.optional(), tax_rate_ids: z.array(z.number().int()).optional(), travelers: z.number().int().optional(), updated: nullTime.optional()}); export const rentalFullReview = z.object({avatar_url: z.string().optional(), first_name: z.string().optional(), last_name: z.string().optional(), score: z.number().optional(), text: z.string().optional()}); export const unitLocale = z.object({base_currency: z.string().optional(), distance_unit: z.string().optional(), length_unit: z.string().optional(), liquid_unit: z.string().optional(), weight_unit: z.string().optional()}); export const prepFee = z.object({amount: z.number().int().optional(), description: z.string().optional(), id: z.number().int().optional(), tax_rate_ids: z.array(z.number().int()).optional()}); export const priceEstimatePrediction = z.object({meta: z.record(z.string(), z.unknown()).optional(), name: z.string().optional(), prediction: z.number().optional()}); export const priceEstimate = z.object({predictions: z.array(priceEstimatePrediction).optional(), price_est_mean: z.number().optional()}); export const price = z.object({can_charge_security_deposit: z.boolean().optional(), day: z.number().int().optional(), estimate: z.number().int().optional(), minimum_security_deposit: z.number().int().optional(), month: z.number().int().optional(), price_estimate: priceEstimate.optional(), security_deposit: z.number().int().optional(), week: z.number().int().optional()}); export const reviewScores = z.object({bayesian_rating: z.number().optional()}); export const stayDetails = z.object({baths: z.number().int().nullable().optional(), bedrooms: z.number().int().nullable().optional(), beds: z.number().int().nullable().optional(), check_in_type: z.string().optional(), display_stay_type: z.string().optional(), features: dBInterfaceMap.optional(), features_other_items: z.string().optional(), location_description: z.string().nullable().optional(), location_highlights_other_items: z.string().optional(), max_parking_spaces: z.number().int().nullable().optional(), parking_onsite: z.boolean().nullable().optional(), rental_id: z.number().int().optional(), sleeps: z.number().int().nullable().optional(), type: z.string().nullable().optional()}); export const vehicle = z.object({amps: z.number().int().optional(), box_length: z.number().optional(), class: z.string().optional(), current_generator: z.number().optional(), current_lat: z.number().optional(), current_lng: z.number().optional(), current_mileage: z.number().optional(), dry_weight: z.number().int().optional(), gvwr: z.number().int().optional(), height: z.number().optional(), insurance_renewal_month: z.string().optional(), length: z.number().optional(), length_with_hitch: z.number().optional(), license_plate: z.string().optional(), license_plate_country: z.string().optional(), license_plate_state: z.string().optional(), make: z.string().optional(), model: z.string().optional(), replacement_value: z.string().optional(), trim: z.string().optional(), unit_of_measure: z.string().optional(), vin: z.string().optional(), width: z.number().optional(), year: z.number().int().optional()}); export const vinCheck = z.object({clean: z.boolean().optional(), created: z.string().optional(), error: z.string().optional(), failed: z.boolean().optional(), forced_approval_by: z.string().optional(), forced_approval_reason: z.string().optional(), id: z.number().int().optional(), last_title_date: z.string().optional(), last_title_state: z.string().optional(), raw_response: z.string().optional(), salvage: z.boolean().optional(), status: z.string().optional(), validation_id: z.string().optional(), vin: z.string().optional()}); export const rental = z.object({active_options: activeOptions.optional(), active_price: activePrice.optional(), auto_insurance_type: z.string().optional(), average_ratings: averageRatings.optional(), average_reviews: averageReviews.optional(), booking_leeway_days: z.number().int().nullable().optional(), bypass_new_york_regulations: z.boolean().optional(), campsite_category: campsiteCategory.optional(), can_manage_tax_rates: z.boolean().optional(), cancel_policy: z.string().nullable().optional(), cancel_policy_combo_bookings: z.string().nullable().optional(), check_in: z.number().int().optional(), check_out: z.number().int().optional(), checkout_questions: dBMSISlice.optional(), consignment: rentalConsignment.optional(), created: z.string().optional(), current_location_id: z.number().int().optional(), custom_insurance_text: z.string().nullable().optional(), delivery_usage_item_id: z.number().int().optional(), deposit_percentage: nullFloat64.optional(), description: z.string().optional(), description_included: z.string().optional(), description_other: z.string().optional(), description_recommendations: z.string().optional(), distributed_ratings: distributedRatings.optional(), eligible_for_custom_tax_rates: z.boolean().optional(), eligible_for_system_tax_rates: z.boolean().optional(), exempt_rental_sales_tax: z.boolean().optional(), external: z.boolean().nullable().optional(), external_site_url: z.string().optional(), features: dBInterfaceMap.optional(), first_published: z.string().optional(), free_form_typed: z.boolean().optional(), generator_usage_item_id: z.number().int().optional(), group_on_map: z.boolean().optional(), has_checkout_questions: z.boolean().optional(), has_completed_lyrv: z.boolean().optional(), hidden: z.boolean().optional(), hidden_reason: z.string().nullable().optional(), home: home.optional(), id: z.number().int().optional(), images: rentalImages.optional(), images_verified: z.boolean().nullable().optional(), images_verified_by: z.number().int().nullable().optional(), import_id: z.string().optional(), inactive: z.boolean().optional(), instant_book: z.boolean().nullable().optional(), instant_book_ban_date: z.string().optional(), instant_book_banned: z.boolean().optional(), instant_book_leeway: z.number().int().nullable().optional(), instant_book_type: z.string().optional(), insurance_coverage: z.string().optional(), insurance_plan_id: plan.optional(), insurance_renter_adjustable: z.boolean().nullable().optional(), interior_primary_image_id: z.number().int().optional(), interior_primary_image_url: z.string().optional(), internal_id: z.string().optional(), internal_notes: z.string().optional(), items: z.array(rentalItem).optional(), last_published: z.string().optional(), last_unpublish_date: z.string().optional(), latest_review: rentalFullReview.optional(), listing_steps: dBInterfaceMap.optional(), locale: unitLocale.optional(), metadata: iMap.optional(), mileage_usage_item_id: z.number().int().optional(), minimum_days: z.number().int().nullable().optional(), minimum_deposit: z.number().int().nullable().optional(), minimum_renter_age: z.number().int().optional(), name: z.string().optional(), ny_insurance_warning: z.boolean().optional(), od_stays_opt_in: z.boolean().optional(), od_stays_opt_in_eligible: z.boolean().optional(), od_stays_opt_in_missing_requirements: z.array(z.string()).optional(), one_way_rental_maximum_radius: z.number().int().nullable().optional(), one_way_rental_requests: z.boolean().nullable().optional(), original_url: z.string().optional(), parent_id: z.number().int().optional(), pet_fee: petFee.optional(), photo_score: z.number().int().nullable().optional(), position: z.number().int().optional(), prep_fee: prepFee.optional(), price: price.optional(), primary_image_id: z.number().int().optional(), primary_image_url: z.string().optional(), publish_field_errors: z.array(z.string()).optional(), published: z.boolean().optional(), rejected_images_count: z.number().int().optional(), rental_category: z.string().optional(), request_less_than_minimum_days: z.number().int().optional(), require_insurance: z.boolean().nullable().optional(), require_roadside: z.boolean().nullable().optional(), review_notes: z.string().nullable().optional(), review_scores: reviewScores.optional(), review_status: z.string().nullable().optional(), roamly_policy_number: z.string().optional(), sd_waiver_enabled: z.boolean().nullable().optional(), seatbelts: z.number().int().optional(), settings: dBInterfaceMap.optional(), sleeps: z.number().int().optional(), sleeps_adults: z.number().int().optional(), sleeps_kids: z.number().int().optional(), smart_pricing_enabled: z.boolean().optional(), smart_pricing_max: z.number().int().optional(), smart_pricing_min: z.number().int().optional(), smart_pricing_mode: z.string().optional(), snooze_expiration_date: z.string().optional(), sort: z.number().optional(), sort_metrics: dBInterfaceMap.optional(), stay: stayDetails.optional(), summary: z.string().optional(), tags: z.array(tagRental).optional(), tax_rate_id: taxRate.optional(), tax_rate_ids: z.array(z.number().int()).optional(), tollspot_id: z.number().int().optional(), turnaround_days_after: z.number().int().nullable().optional(), turo_vehicle_id: z.string().optional(), type: z.string().optional(), unpublish_reason: z.string().optional(), updated: z.string().optional(), use_system_tax_rates: z.boolean().optional(), vehicle: vehicle.optional(), vehicle_title: z.string().optional(), vin_check: vinCheck.optional(), waived_insurance_text: z.string().nullable().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 rental * * POST /rentals * * Also accepts auth: API-Key */ export const createApiRentals = async (args: CreateApiRentalsArgs, options: CreateApiRentalsOptions) => { const {baseUrl, fetch: fetchFn = fetch, Bearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.id != null) query.append("id", String(args.id)) if (args.name != null) query.append("name", String(args.name)) if (args.vehicle_title != null) query.append("vehicle_title", String(args.vehicle_title)) if (args.type != null) query.append("type", String(args.type)) if (args.description != null) query.append("description", String(args.description)) if (args.sleeps != null) query.append("sleeps", String(args.sleeps)) if (args.seatbelts != null) query.append("seatbelts", String(args.seatbelts)) if (args.minimum_renter_age != null) query.append("minimum_renter_age", String(args.minimum_renter_age)) if (args.sleeps_adults != null) query.append("sleeps_adults", String(args.sleeps_adults)) if (args.sleeps_kids != null) query.append("sleeps_kids", String(args.sleeps_kids)) if (args.summary != null) query.append("summary", String(args.summary)) if (args.published != null) query.append("published", String(args.published)) for (const item of args.publish_field_errors ?? []) query.append("publish_field_errors", String(item)) if (args.unpublish_reason != null) query.append("unpublish_reason", String(args.unpublish_reason)) if (args.last_unpublish_date != null) query.append("last_unpublish_date", String(args.last_unpublish_date)) if (args.group_on_map != null) query.append("group_on_map", String(args.group_on_map)) if (args.primary_image_url != null) query.append("primary_image_url", String(args.primary_image_url)) if (args.primary_image_id != null) query.append("primary_image_id", String(args.primary_image_id)) if (args.interior_primary_image_url != null) query.append("interior_primary_image_url", String(args.interior_primary_image_url)) if (args.interior_primary_image_id != null) query.append("interior_primary_image_id", String(args.interior_primary_image_id)) if (args.has_checkout_questions != null) query.append("has_checkout_questions", String(args.has_checkout_questions)) if (args.position != null) query.append("position", String(args.position)) if (args.external != null) query.append("external", String(args.external)) if (args.description_included != null) query.append("description_included", String(args.description_included)) if (args.description_recommendations != null) query.append("description_recommendations", String(args.description_recommendations)) if (args.description_other != null) query.append("description_other", String(args.description_other)) if (args.waived_insurance_text != null) query.append("waived_insurance_text", String(args.waived_insurance_text)) if (args.custom_insurance_text != null) query.append("custom_insurance_text", String(args.custom_insurance_text)) if (args.insurance_coverage != null) query.append("insurance_coverage", String(args.insurance_coverage)) if (args.require_roadside != null) query.append("require_roadside", String(args.require_roadside)) if (args.current_location_id != null) query.append("current_location_id", String(args.current_location_id)) if (args.mileage_usage_item_id != null) query.append("mileage_usage_item_id", String(args.mileage_usage_item_id)) if (args.generator_usage_item_id != null) query.append("generator_usage_item_id", String(args.generator_usage_item_id)) if (args.delivery_usage_item_id != null) query.append("delivery_usage_item_id", String(args.delivery_usage_item_id)) if (args.cancel_policy != null) query.append("cancel_policy", String(args.cancel_policy)) if (args.cancel_policy_combo_bookings != null) query.append("cancel_policy_combo_bookings", String(args.cancel_policy_combo_bookings)) if (args.minimum_deposit != null) query.append("minimum_deposit", String(args.minimum_deposit)) if (args.minimum_days != null) query.append("minimum_days", String(args.minimum_days)) if (args.instant_book != null) query.append("instant_book", String(args.instant_book)) if (args.instant_book_leeway != null) query.append("instant_book_leeway", String(args.instant_book_leeway)) if (args.instant_book_type != null) query.append("instant_book_type", String(args.instant_book_type)) if (args.request_less_than_minimum_days != null) query.append("request_less_than_minimum_days", String(args.request_less_than_minimum_days)) if (args.insurance_renter_adjustable != null) query.append("insurance_renter_adjustable", String(args.insurance_renter_adjustable)) if (args.turnaround_days_after != null) query.append("turnaround_days_after", String(args.turnaround_days_after)) if (args.booking_leeway_days != null) query.append("booking_leeway_days", String(args.booking_leeway_days)) if (args.require_insurance != null) query.append("require_insurance", String(args.require_insurance)) if (args.smart_pricing_enabled != null) query.append("smart_pricing_enabled", String(args.smart_pricing_enabled)) if (args.smart_pricing_mode != null) query.append("smart_pricing_mode", String(args.smart_pricing_mode)) if (args.smart_pricing_min != null) query.append("smart_pricing_min", String(args.smart_pricing_min)) if (args.smart_pricing_max != null) query.append("smart_pricing_max", String(args.smart_pricing_max)) if (args.ny_insurance_warning != null) query.append("ny_insurance_warning", String(args.ny_insurance_warning)) if (args.one_way_rental_requests != null) query.append("one_way_rental_requests", String(args.one_way_rental_requests)) if (args.one_way_rental_maximum_radius != null) query.append("one_way_rental_maximum_radius", String(args.one_way_rental_maximum_radius)) for (const item of args.tax_rate_ids ?? []) query.append("tax_rate_ids", String(item)) if (args.exempt_rental_sales_tax != null) query.append("exempt_rental_sales_tax", String(args.exempt_rental_sales_tax)) for (const item of args.items ?? []) query.append("items", String(item)) if (args.instant_book_banned != null) query.append("instant_book_banned", String(args.instant_book_banned)) if (args.instant_book_ban_date != null) query.append("instant_book_ban_date", String(args.instant_book_ban_date)) if (args.original_url != null) query.append("original_url", String(args.original_url)) if (args.internal_notes != null) query.append("internal_notes", String(args.internal_notes)) if (args.created != null) query.append("created", String(args.created)) if (args.last_published != null) query.append("last_published", String(args.last_published)) if (args.first_published != null) query.append("first_published", String(args.first_published)) if (args.snooze_expiration_date != null) query.append("snooze_expiration_date", String(args.snooze_expiration_date)) if (args.updated != null) query.append("updated", String(args.updated)) if (args.sort != null) query.append("sort", String(args.sort)) if (args.hidden != null) query.append("hidden", String(args.hidden)) if (args.hidden_reason != null) query.append("hidden_reason", String(args.hidden_reason)) if (args.import_id != null) query.append("import_id", String(args.import_id)) if (args.internal_id != null) query.append("internal_id", String(args.internal_id)) if (args.roamly_policy_number != null) query.append("roamly_policy_number", String(args.roamly_policy_number)) if (args.inactive != null) query.append("inactive", String(args.inactive)) if (args.external_site_url != null) query.append("external_site_url", String(args.external_site_url)) if (args.auto_insurance_type != null) query.append("auto_insurance_type", String(args.auto_insurance_type)) if (args.has_completed_lyrv != null) query.append("has_completed_lyrv", String(args.has_completed_lyrv)) if (args.turo_vehicle_id != null) query.append("turo_vehicle_id", String(args.turo_vehicle_id)) if (args.tollspot_id != null) query.append("tollspot_id", String(args.tollspot_id)) if (args.rejected_images_count != null) query.append("rejected_images_count", String(args.rejected_images_count)) if (args.can_manage_tax_rates != null) query.append("can_manage_tax_rates", String(args.can_manage_tax_rates)) if (args.use_system_tax_rates != null) query.append("use_system_tax_rates", String(args.use_system_tax_rates)) if (args.eligible_for_system_tax_rates != null) query.append("eligible_for_system_tax_rates", String(args.eligible_for_system_tax_rates)) if (args.eligible_for_custom_tax_rates != null) query.append("eligible_for_custom_tax_rates", String(args.eligible_for_custom_tax_rates)) if (args.parent_id != null) query.append("parent_id", String(args.parent_id)) if (args.images_verified != null) query.append("images_verified", String(args.images_verified)) if (args.images_verified_by != null) query.append("images_verified_by", String(args.images_verified_by)) if (args.photo_score != null) query.append("photo_score", String(args.photo_score)) if (args.review_status != null) query.append("review_status", String(args.review_status)) if (args.review_notes != null) query.append("review_notes", String(args.review_notes)) for (const item of args.tags ?? []) query.append("tags", String(item)) if (args.free_form_typed != null) query.append("free_form_typed", String(args.free_form_typed)) if (args.rental_category != null) query.append("rental_category", String(args.rental_category)) if (args.check_in != null) query.append("check_in", String(args.check_in)) if (args.check_out != null) query.append("check_out", String(args.check_out)) if (args.bypass_new_york_regulations != null) query.append("bypass_new_york_regulations", String(args.bypass_new_york_regulations)) if (args.od_stays_opt_in != null) query.append("od_stays_opt_in", String(args.od_stays_opt_in)) if (args.od_stays_opt_in_eligible != null) query.append("od_stays_opt_in_eligible", String(args.od_stays_opt_in_eligible)) for (const item of args.od_stays_opt_in_missing_requirements ?? []) query.append("od_stays_opt_in_missing_requirements", String(item)) if (args.sd_waiver_enabled != null) query.append("sd_waiver_enabled", String(args.sd_waiver_enabled)) if (Bearer !== undefined) headers.set("Authorization", Bearer) const url = `${baseUrl.replace(/\/+$/, '')}/rentals${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(rental, await res.json()) };