import {z} from 'zod' export type ActiveOptions = {cancel_policy?: string | undefined, cancel_policy_combo_bookings?: string | undefined, instant_book?: boolean | undefined, instant_book_disabled_reason?: string | undefined, insurance_coverage?: string | undefined, minimum_nights?: number | undefined, use_day_pricing?: boolean | undefined, use_tax_inclusive_pricing?: boolean | undefined}; export type ActivePrice = {base_day?: number | undefined, day?: number | undefined, month?: number | undefined, tax?: number | undefined, week?: number | undefined}; export type AverageRatings = {cleanliness_score?: number | undefined, cleanliness_score_percentage?: number | undefined, communication_score?: number | undefined, communication_score_percentage?: number | undefined, listing_score?: number | undefined, listing_score_percentage?: number | undefined, mechanical_score?: number | undefined, mechanical_score_percentage?: number | undefined, score?: number | undefined, score_percentage?: number | undefined, value_score?: number | undefined, value_score_percentage?: number | undefined}; export type AverageReviewsScores = {key?: string | undefined, name?: string | undefined, percentage?: number | undefined, score?: number | undefined}; export type AverageReviews = {owner?: Array | undefined, rental?: Array | undefined, score?: number | undefined}; export type CampsiteCategoryQuestion = {included?: boolean | undefined, label?: string | undefined, value?: string | undefined}; export type MSI = {[key: string]: unknown}; export type PetFee = {amount?: number | undefined, created?: string | undefined, daily?: boolean | undefined, id?: number | undefined, max_count?: number | undefined, rental_id?: number | undefined, updated?: string | undefined}; export type CampsiteCategory = {active_rate_plan?: string | undefined, bathrooms?: number | undefined, bedrooms?: number | undefined, beds?: number | undefined, campground_id?: number | undefined, campground_name?: string | undefined, campground_site_map_url?: string | undefined, category_type?: string | undefined, checkout_questions?: Array | undefined, created?: string | undefined, deleted?: boolean | undefined, description?: string | undefined, display_category_type?: string | undefined, display_max_vehicle_length?: string | undefined, display_site_type?: string | undefined, enabled_for_rental_categories?: MSI | undefined, external_id?: string | undefined, features?: MSI | undefined, has_pricing?: boolean | undefined, id?: number | undefined, is_odn?: boolean | undefined, max_occupancy?: number | undefined, max_occupancy_adult?: number | undefined, max_occupancy_kids?: number | undefined, max_parking_spaces?: number | undefined, max_vehicle_length?: number | undefined, name?: string | undefined, owner_id_int?: number | undefined, parking_onsite?: boolean | undefined, pet_fee?: PetFee | undefined, quantity?: number | undefined, rental_id_int?: number | undefined, rv_rental_id_int?: number | undefined, site_type?: string | undefined, slug?: string | undefined, supplier_category_id?: number | undefined, updated?: string | undefined}; export type DBMSISlice = Array<{[key: string]: unknown}>; export type NullFloat64 = {Float64?: number | undefined, Valid?: boolean | undefined}; export type RentalConsignment = {consignment_completed?: boolean | undefined, interested_in_consignment?: boolean | undefined, keep_pct_cc_fee?: NullFloat64 | undefined, keep_pct_insurance_fee?: NullFloat64 | undefined, owner_id?: number | undefined, pay_pct?: NullFloat64 | undefined, pay_pct_generator?: NullFloat64 | undefined, pay_pct_mileage?: NullFloat64 | undefined}; export type DistributedRatings = {score?: ({r1?: number | undefined, r2?: number | undefined, r3?: number | undefined, r4?: number | undefined, r5?: number | undefined}) | undefined}; export type DBInterfaceMap = unknown; export type Home = {city?: string | undefined, country?: string | undefined, county?: string | undefined, lat?: number | undefined, lng?: number | undefined, state?: string | undefined, street?: string | undefined, street_etc?: string | undefined, zip?: string | undefined}; export type RentalImageAmenity = {description?: string | undefined, name?: string | undefined, slug?: string | undefined}; export type MediaCategory = {name?: string | undefined, slug?: string | undefined}; export type BookingSummary = {from?: string | undefined, id?: number | undefined, to?: string | undefined}; export type DBStringSlice = Array; export type ReviewOwner = {avatar_url?: string | undefined, first_name?: string | undefined, id?: number | undefined, last_name?: string | undefined}; export type OwnerResponseReview = {text?: string | undefined, timestamp?: string | undefined}; export type CampsiteSummary = {beds?: number | undefined, campground_id?: number | undefined, campground_name?: string | undefined, campground_sitemap_url?: string | undefined, display_campsite_type?: string | undefined, display_max_vehicle_length?: string | undefined, display_site_type?: string | undefined, is_odn?: boolean | undefined, rental_id?: number | undefined, site_type?: string | undefined, sleeps?: number | undefined, type?: string | undefined}; export type StaySummary = {baths?: number | undefined, bedrooms?: number | undefined, beds?: number | undefined, check_in_type?: string | undefined, display_stay_type?: string | undefined, location_description?: string | undefined, max_parking_spaces?: number | undefined, parking_onsite?: boolean | undefined, rental_id?: number | undefined, sleeps?: number | undefined, type?: string | undefined}; export type RentalSummary = {campsite_summary?: CampsiteSummary | undefined, disallow_movement?: boolean | undefined, display_type?: string | undefined, formatted_length?: string | undefined, id?: number | undefined, interior_primary_image_url?: string | undefined, internal_id?: string | undefined, location?: string | undefined, name?: string | undefined, primary_image_url?: string | undefined, rental_category?: string | undefined, sleeps?: number | undefined, slug?: string | undefined, stay_summary?: StaySummary | undefined, style?: string | undefined, type?: string | 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 ID = string; export type ReviewImage = {created?: string | undefined, id?: ID | undefined, lat?: number | undefined, lng?: number | undefined, rental_id?: string | undefined, review_id?: string | undefined, reviewed?: boolean | undefined, reviewed_by?: string | undefined, status?: string | undefined, updated?: string | undefined, url?: string | undefined}; export type Reviewer = {avatar_url?: string | undefined, first_name?: string | undefined, id?: number | undefined, last_name?: string | undefined}; export type Tag = {allow_for_review?: boolean | undefined, created?: string | undefined, description?: string | undefined, id?: number | undefined, name?: string | undefined, owner_user_id?: (number | null) | undefined, position?: number | undefined, slug?: string | undefined, updated?: string | undefined}; export type RentalImageReview = {apply_credit?: boolean | undefined, booking_id?: number | undefined, booking_summary?: BookingSummary | undefined, can_edit?: boolean | undefined, can_edit_until?: string | undefined, cleanliness_score?: number | undefined, communication_score?: number | undefined, deleted?: string | undefined, exclude_from_rating?: boolean | undefined, id?: number | undefined, images?: DBStringSlice | undefined, imported?: boolean | undefined, listing_score?: number | undefined, mechanical_score?: number | undefined, name?: string | undefined, outdoorsy_only?: boolean | undefined, owner?: ReviewOwner | undefined, owner_can_respond?: boolean | undefined, owner_response?: OwnerResponseReview | undefined, published?: boolean | undefined, rental_id?: number | undefined, rental_summary?: RentalSummary | undefined, rental_tags?: Array | undefined, review_image_id?: string | undefined, review_images?: Array | undefined, reviewer?: Reviewer | undefined, reviewer_id?: number | undefined, score?: number | undefined, source_page?: string | undefined, tags?: Array | undefined, text?: string | undefined, timestamp?: string | undefined, user_id?: number | undefined, user_recommend?: boolean | undefined, value_score?: number | undefined}; export type RentalImage = {ai_aesthetic_score?: number | undefined, ai_description?: string | undefined, ai_position?: number | undefined, ai_summary?: string | undefined, amenity?: RentalImageAmenity | undefined, best?: boolean | undefined, category?: MediaCategory | undefined, description?: string | undefined, height?: number | undefined, id?: number | undefined, ignore_rejected?: boolean | undefined, interior_primary?: boolean | undefined, position?: number | undefined, primary?: boolean | undefined, rental_id?: number | undefined, review?: RentalImageReview | undefined, skip_enhance?: boolean | undefined, status?: string | undefined, tags?: string | undefined, title?: string | undefined, url?: string | undefined, video?: boolean | undefined, width?: number | undefined}; export type RentalImages = Array; export type PlanOverride = {created?: string | undefined, dealer_owned_owner_fee_percentage?: number | undefined, dealer_owned_renter_fee_percentage?: number | undefined, id?: number | undefined, insurance_plan_id?: Plan | undefined, owner_fee_percentage?: number | undefined, owner_id?: number | undefined, renter_fee_percentage?: number | undefined, updated?: string | undefined}; export type Plan = {allow_unregistered?: boolean | undefined, approved_vehicle_types?: DBStringSlice | undefined, bundle_required?: boolean | undefined, claims_number?: string | undefined, comp_policy_url?: string | undefined, comprehensive_coverage?: boolean | undefined, comprehensive_maximum?: string | undefined, country?: string | undefined, created?: string | undefined, created_by_id?: (number | null) | undefined, dealer_only?: boolean | undefined, hidden?: boolean | undefined, id?: number | undefined, insurance_address_1?: string | undefined, insurance_city?: string | undefined, insurance_end_date?: string | undefined, insurance_name?: string | undefined, insurance_plan_override?: PlanOverride | undefined, insurance_policy_number?: string | undefined, insurance_start_date?: string | undefined, insurance_state?: string | undefined, insurance_zip?: string | undefined, insured_address_1?: string | undefined, insured_city?: string | undefined, insured_name?: string | undefined, insured_state?: string | undefined, insured_zip?: string | undefined, label?: string | undefined, last_updated_by_id?: (number | null) | undefined, liability_coverage?: boolean | undefined, liability_maximum?: string | undefined, liability_policy_url?: string | undefined, locality?: string | undefined, minimum_daily_fee?: number | undefined, minimum_year?: number | undefined, owner_comprehensive_deductible?: string | undefined, owner_fee_percentage?: number | undefined, owner_liability_deductible?: string | undefined, owner_liability_maximum?: string | undefined, rental_category?: string | undefined, renter_comprehensive_deductible?: string | undefined, renter_fee_percentage?: number | undefined, renter_liability_deductible?: string | undefined, renter_liability_maximum?: string | undefined, requires_driver_verification?: boolean | undefined, tiered?: boolean | undefined, updated?: string | undefined}; 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 RentalFullReview = {avatar_url?: string | undefined, first_name?: string | undefined, last_name?: string | undefined, score?: number | undefined, text?: string | undefined}; export type UnitLocale = {base_currency?: string | undefined, distance_unit?: string | undefined, length_unit?: string | undefined, liquid_unit?: string | undefined, weight_unit?: string | undefined}; export type PrepFee = {amount?: number | undefined, description?: string | undefined, id?: number | undefined, tax_rate_ids?: Array | undefined}; export type PriceEstimatePrediction = {meta?: {[key: string]: unknown} | undefined, name?: string | undefined, prediction?: number | undefined}; export type PriceEstimate = {predictions?: Array | undefined, price_est_mean?: number | undefined}; export type Price = {can_charge_security_deposit?: boolean | undefined, day?: number | undefined, estimate?: number | undefined, minimum_security_deposit?: number | undefined, month?: number | undefined, price_estimate?: PriceEstimate | undefined, security_deposit?: number | undefined, week?: number | undefined}; export type ReviewScores = {bayesian_rating?: number | undefined}; export type StayDetails = {baths?: (number | null) | undefined, bedrooms?: (number | null) | undefined, beds?: (number | null) | undefined, check_in_type?: string | undefined, display_stay_type?: string | undefined, features?: DBInterfaceMap | undefined, features_other_items?: string | undefined, location_description?: (string | null) | undefined, location_highlights_other_items?: string | undefined, max_parking_spaces?: (number | null) | undefined, parking_onsite?: (boolean | null) | undefined, rental_id?: number | undefined, sleeps?: (number | null) | undefined, type?: (string | null) | undefined}; export type Vehicle = {amps?: number | undefined, box_length?: number | undefined, class?: string | undefined, current_generator?: number | undefined, current_lat?: number | undefined, current_lng?: number | undefined, current_mileage?: number | undefined, dry_weight?: number | undefined, gvwr?: number | undefined, height?: number | undefined, insurance_renewal_month?: string | undefined, length?: number | undefined, length_with_hitch?: number | undefined, license_plate?: string | undefined, license_plate_country?: string | undefined, license_plate_state?: string | undefined, make?: string | undefined, model?: string | undefined, replacement_value?: string | undefined, trim?: string | undefined, unit_of_measure?: string | undefined, vin?: string | undefined, width?: number | undefined, year?: number | undefined}; export type VinCheck = {clean?: boolean | undefined, created?: string | undefined, error?: string | undefined, failed?: boolean | undefined, forced_approval_by?: string | undefined, forced_approval_reason?: string | undefined, id?: number | undefined, last_title_date?: string | undefined, last_title_state?: string | undefined, raw_response?: string | undefined, salvage?: boolean | undefined, status?: string | undefined, validation_id?: string | undefined, vin?: string | undefined}; export type Rental = {active_options?: ActiveOptions | undefined, active_price?: ActivePrice | undefined, auto_insurance_type?: string | undefined, average_ratings?: AverageRatings | undefined, average_reviews?: AverageReviews | undefined, booking_leeway_days?: (number | null) | undefined, bypass_new_york_regulations?: boolean | undefined, campsite_category?: CampsiteCategory | undefined, can_manage_tax_rates?: boolean | undefined, cancel_policy?: (string | null) | undefined, cancel_policy_combo_bookings?: (string | null) | undefined, check_in?: number | undefined, check_out?: number | undefined, checkout_questions?: DBMSISlice | undefined, consignment?: RentalConsignment | undefined, created?: string | undefined, current_location_id?: number | undefined, custom_insurance_text?: (string | null) | undefined, delivery_usage_item_id?: number | undefined, deposit_percentage?: NullFloat64 | undefined, description?: string | undefined, description_included?: string | undefined, description_other?: string | undefined, description_recommendations?: string | undefined, distributed_ratings?: DistributedRatings | undefined, eligible_for_custom_tax_rates?: boolean | undefined, eligible_for_system_tax_rates?: boolean | undefined, exempt_rental_sales_tax?: boolean | undefined, external?: (boolean | null) | undefined, external_site_url?: string | undefined, features?: DBInterfaceMap | undefined, first_published?: string | undefined, free_form_typed?: boolean | undefined, generator_usage_item_id?: number | undefined, group_on_map?: boolean | undefined, has_checkout_questions?: boolean | undefined, has_completed_lyrv?: boolean | undefined, hidden?: boolean | undefined, hidden_reason?: (string | null) | undefined, home?: Home | undefined, id?: number | undefined, images?: RentalImages | undefined, images_verified?: (boolean | null) | undefined, images_verified_by?: (number | null) | undefined, import_id?: string | undefined, inactive?: boolean | undefined, instant_book?: (boolean | null) | undefined, instant_book_ban_date?: string | undefined, instant_book_banned?: boolean | undefined, instant_book_leeway?: (number | null) | undefined, instant_book_type?: string | undefined, insurance_coverage?: string | undefined, insurance_plan_id?: Plan | undefined, insurance_renter_adjustable?: (boolean | null) | undefined, interior_primary_image_id?: number | undefined, interior_primary_image_url?: string | undefined, internal_id?: string | undefined, internal_notes?: string | undefined, items?: Array | undefined, last_published?: string | undefined, last_unpublish_date?: string | undefined, latest_review?: RentalFullReview | undefined, listing_steps?: DBInterfaceMap | undefined, locale?: UnitLocale | undefined, metadata?: IMap | undefined, mileage_usage_item_id?: number | undefined, minimum_days?: (number | null) | undefined, minimum_deposit?: (number | null) | undefined, minimum_renter_age?: number | undefined, name?: string | undefined, ny_insurance_warning?: boolean | undefined, od_stays_opt_in?: boolean | undefined, od_stays_opt_in_eligible?: boolean | undefined, od_stays_opt_in_missing_requirements?: Array | undefined, one_way_rental_maximum_radius?: (number | null) | undefined, one_way_rental_requests?: (boolean | null) | undefined, original_url?: string | undefined, parent_id?: number | undefined, pet_fee?: PetFee | undefined, photo_score?: (number | null) | undefined, position?: number | undefined, prep_fee?: PrepFee | undefined, price?: Price | undefined, primary_image_id?: number | undefined, primary_image_url?: string | undefined, publish_field_errors?: Array | undefined, published?: boolean | undefined, rejected_images_count?: number | undefined, rental_category?: string | undefined, request_less_than_minimum_days?: number | undefined, require_insurance?: (boolean | null) | undefined, require_roadside?: (boolean | null) | undefined, review_notes?: (string | null) | undefined, review_scores?: ReviewScores | undefined, review_status?: (string | null) | undefined, roamly_policy_number?: string | undefined, sd_waiver_enabled?: (boolean | null) | undefined, seatbelts?: number | undefined, settings?: DBInterfaceMap | undefined, sleeps?: number | undefined, sleeps_adults?: number | undefined, sleeps_kids?: number | undefined, smart_pricing_enabled?: boolean | undefined, smart_pricing_max?: number | undefined, smart_pricing_min?: number | undefined, smart_pricing_mode?: string | undefined, snooze_expiration_date?: string | undefined, sort?: number | undefined, sort_metrics?: DBInterfaceMap | undefined, stay?: StayDetails | undefined, summary?: string | undefined, tags?: Array | undefined, tax_rate_id?: TaxRate | undefined, tax_rate_ids?: Array | undefined, tollspot_id?: number | undefined, turnaround_days_after?: (number | null) | undefined, turo_vehicle_id?: string | undefined, type?: string | undefined, unpublish_reason?: string | undefined, updated?: string | undefined, use_system_tax_rates?: boolean | undefined, vehicle?: Vehicle | undefined, vehicle_title?: string | undefined, vin_check?: VinCheck | undefined, waived_insurance_text?: (string | null) | undefined}; export type PatchApiRentalsIdArgs = {id: number, body: Rental}; export type PatchApiRentalsIdOptions = {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 }; /** * Update rental * * PATCH /rentals/{id} * * Also accepts auth: API-Key */ export const patchApiRentalsId = async (args: PatchApiRentalsIdArgs, options: PatchApiRentalsIdOptions) => { const {baseUrl, fetch: fetchFn = fetch, Bearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (Bearer !== undefined) headers.set("Authorization", Bearer) const url = `${baseUrl.replace(/\/+$/, '')}/rentals/${encodeURIComponent(String(args.id))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "PATCH", 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(rental, await res.json()) };