{ "consumes": [ "application/json" ], "produces": [ "application/vnd.api+json", "application/json" ], "swagger": "2.0", "info": { "description": "The Outdoorsy Search API is organized around REST. It uses\npredictable, resource-oriented URLs and implements standard HTTP response\ncodes, verbs, authentication mechanisms, and a variety of request encodings.\n\n## Versioning\n\nThe API implements semantic versioning.", "title": "Outdoorsy Search Documentation", "version": "0.0.1" }, "paths": { "/breadcrumbs": { "get": { "description": "Breadcrumb search", "tags": [ "breadcrumbs" ], "operationId": "breadcrumbSearch", "parameters": [ { "type": "string", "name": "Locale", "in": "query" }, { "type": "number", "format": "double", "name": "Lat", "in": "query" }, { "type": "number", "format": "double", "name": "Lon", "in": "query" }, { "type": "integer", "format": "int64", "name": "Radius", "in": "query" }, { "type": "integer", "format": "int64", "name": "Limit", "in": "query" }, { "type": "integer", "format": "int64", "name": "Offset", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/breadcrumbResponse" } } } }, "/breadcrumbs/closest": { "get": { "description": "Get closest breadcrumb to lag/lng", "tags": [ "breadcrumbs" ], "operationId": "closestBreadcrumb", "parameters": [ { "type": "number", "format": "double", "name": "Lat", "in": "query" }, { "type": "number", "format": "double", "name": "Lon", "in": "query" }, { "type": "string", "name": "Locale", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/closestResponse" } } } }, "/breadcrumbs/{id}": { "get": { "description": "Get breadcrumb by id", "tags": [ "breadcrumbs" ], "operationId": "getBreadcrumb", "responses": { "200": { "$ref": "#/responses/retrieveResponse" } } } }, "/campgrounds": { "get": { "description": "Search performs search on campgrounds", "tags": [ "campgrounds" ], "operationId": "searchCampgrounds", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/campgrounds/nearby-for-rental/{rental_id}": { "get": { "description": "Searches nearby campgrounds for given rental with rental_id", "tags": [ "campgrounds" ], "operationId": "searchCampgrounds", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/campgrounds/{id}": { "get": { "description": "Get campgrounds by id", "tags": [ "campgrounds" ], "operationId": "getCampground", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/external-campgrounds": { "get": { "description": "Search performs search on external campgrounds", "tags": [ "externalCampgrounds" ], "operationId": "searchExternalCampgrounds", "parameters": [ { "type": "string", "x-go-name": "KeywordsSwaggerPlaceholder", "description": "List of keywords, comma-separated, e.g. \"Komfort,wifi\"\nThe fields checked for keywords are: name, description, vehicle_make, vehicle_model, and tags", "name": "filter[keywords]", "in": "query" }, { "type": "string", "x-go-name": "RentalTypeSwaggerPlaceholder", "description": "List of rental types, e.g. \"b,c,camper-van\"", "name": "filter[type]", "in": "query" }, { "type": "string", "x-go-name": "RentalCategorySwaggerPlaceholder", "description": "Rental category, e.g. \"rv\", \"stay\", \"campground\"", "name": "filter[rental_category]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryTypesSwaggerPlaceholder", "description": "Campsite category types, e.g. \"rv_site\", \"lodging_site\", \"tent_site\"", "name": "cs[category_types]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryRVSiteFeaturesSwaggerPlaceholder", "description": "Campsite category rv site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[rv_site_features]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryTentSiteFeaturesSwaggerPlaceholder", "description": "Campsite category tent site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[tent_site_features]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryLodgingSiteFeaturesSwaggerPlaceholder", "description": "Campsite category lodging site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[lodging_features]", "in": "query" }, { "type": "string", "x-go-name": "ExcludeTypeSwaggerPlaceholder", "description": "List of rental types to exclude, e.g. \"b,c\"", "name": "filter[exclude_type]", "in": "query" }, { "type": "string", "x-go-name": "StyleSwaggerPlaceholder", "description": "List of styles, e.g. \"drivable,towable,both\"", "name": "filter[style]", "in": "query" }, { "type": "string", "x-go-name": "TagsSwaggerPlaceholder", "description": "List of tags, e.g. \"Family Friendly,Luxury,Photo Friendly,Easy to Drive,Good for couples\"", "name": "filter[tags]", "in": "query" }, { "type": "string", "x-go-name": "FeaturesSwaggerPlaceholder", "description": "Feature list, e.g. \"dining_table,inside_shower,wifi\"", "name": "filter[feature]", "in": "query" }, { "type": "string", "x-go-name": "OwnerTypeSwaggerPlaceholder", "description": "Owner type, one of: \"dealer\",\" pro\"", "name": "filter[owner_type]", "in": "query" }, { "type": "string", "x-go-name": "LocationIDsSwaggerPlaceholder", "description": "Location IDs, e.g. \"1697,791,1369\"", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "IDsSwaggerPlaceholder", "description": "Rental IDs to return, e.g. \"50302,50303\"", "name": "ids", "in": "query" }, { "type": "string", "x-go-name": "ExcludeIDsSwaggerPlaceholder", "description": "Rental IDs to exclude, e.g. \"50303,503034\"", "name": "exclude", "in": "query" }, { "type": "string", "x-go-name": "OwnerIDsSwaggerPlaceholder", "description": "Owner IDs, e.g. \"255926,251875\"", "name": "owner_ids", "in": "query" }, { "type": "string", "x-go-name": "SortBySwaggerPlaceholder", "description": "One or many of \"price\", \"-price\", \"position\", \"-position\", \"seatbelts\", \"-seatbelts\", \"sleeps\", \"-sleeps\", \"rating\", \"-rating\", \"distance\", \"-distance\", \"num_reviews\", \"-num_reviews\", \"new_listings\"", "name": "sort", "in": "query" }, { "type": "boolean", "x-go-name": "AutoRadiusSwaggerPlaceholder", "description": "Increment search radius until enough results are provided (specified by 'page[limit]' parameter.)\nMax radius is 1000 miles. (default false)", "name": "auto_radius", "in": "query" }, { "type": "string", "x-go-name": "Source", "description": "making a variable for source", "name": "source", "in": "query" }, { "type": "boolean", "x-go-name": "Random", "description": "Random Score", "name": "random", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Seatbelts", "description": "Number of seatbelts", "name": "seatbelts", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Sleeps", "description": "Total people to sleep", "name": "sleeps", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsAdults", "description": "Adults to sleep", "name": "sleeps[adults]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsKids", "description": "Kids to sleep", "name": "sleeps[kids]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsInfants", "description": "Infants to sleep", "name": "sleeps[infants]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RenterAge", "description": "Minimum renter age required for rental", "name": "renter_age", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "description": "Limit the number of results (default 25, max 150)", "name": "page[limit]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "description": "Skip some results and return results starting with this offset (min 0, max 1000)", "name": "page[offset]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMin", "description": "Min price", "name": "price[min]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMax", "description": "Max price", "name": "price[max]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TotalPriceMin", "description": "Min price", "name": "total_price[min]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TotalPriceMax", "description": "Max price", "name": "total_price[max]", "in": "query" }, { "type": "string", "x-go-name": "DateFrom", "description": "Date from, for date range query, e.g. 2021-06-01", "name": "date[from]", "in": "query" }, { "type": "string", "x-go-name": "DateTo", "description": "Date to, for date range query, e.g. 2021-06-14", "name": "date[to]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "FlexibleDays", "description": "Flexible Days +/- 1-3 days. (default 0)", "name": "flexible_days", "in": "query" }, { "type": "string", "x-go-name": "Near", "description": "Latitude,longitude to search near, e.g. \"38.302,-121.972\". Supersedes address. Superseded by bounding box.", "name": "near", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "Address", "description": "Street address to search near. Superseded by latitude/longitude and by bounding box.\nIf no `address` is passed, GeoIP is used to get geo coordinates.", "name": "address", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "DeliveryAddress", "description": "Street address to be delivered to. Supersedes `address` field. Default radius 100 miles", "name": "delivery_address", "in": "query" }, { "type": "string", "x-go-name": "BoundsNE", "description": "Bounding box'es north-east, e.g. \"37.812, -122.3482\"", "name": "bounds[ne]", "in": "query" }, { "type": "string", "x-go-name": "BoundsSW", "description": "Bounding box'es south-west, e.g. \"37.703399, -122.526999\"", "name": "bounds[sw]", "in": "query" }, { "type": "string", "x-go-name": "NearRentalID", "description": "Rental ID to search near, e.g. 37183. Superseded by bounding box.\nSpecified rental is boosted to be at the top of the results.", "name": "near_rental", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Radius", "description": "Search radius (miles)", "name": "radius", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "description": "Owner ID, e.g. 255926", "name": "owner_id", "in": "query" }, { "type": "string", "x-go-name": "Slug", "description": "Pro user slug, e.g. \"hwyonerentals\"", "name": "slug", "in": "query" }, { "type": "boolean", "x-go-name": "ShowHidden", "description": "Show hidden results? (Non-hidden results will not be returned.)", "name": "hidden", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Score", "description": "Only return results with scores greater or equal than this", "name": "score", "in": "query" }, { "type": "boolean", "x-go-name": "UnlimitedMiles", "description": "Only return results with unlimited miles? Boolean string, e.g. 1, 0, T, f, true, False", "name": "unlimited_miles", "in": "query" }, { "type": "boolean", "x-go-name": "UnlimitedGenerator", "description": "Only return results with unlimited generator hours? Boolean string", "name": "unlimited_generator", "in": "query" }, { "type": "boolean", "x-go-name": "InstantBook", "description": "Only return results with instant book? Boolean string", "name": "instant_book", "in": "query" }, { "type": "boolean", "x-go-name": "RequireDriverVerification", "description": "Only return results with insurance requiring driver verification? Boolean string", "name": "requires_driver_verification", "in": "query" }, { "type": "string", "x-go-name": "Currency", "description": "Currency unit for price range requests (default USD)", "name": "currency", "in": "query" }, { "type": "string", "x-go-name": "DistanceUnit", "description": "Distance unit for location search requests", "name": "distance_unit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LengthLTE", "description": "Max vehicle length, integer", "name": "length[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LengthGTE", "description": "Min vehicle length, integer", "name": "length[gte]", "in": "query" }, { "type": "array", "items": { "type": "array", "items": { "type": "integer", "format": "int64" } }, "x-go-name": "LengthBetween", "description": "Length ranges (e.g.: \"18-24,25-31,32-38\")", "name": "length[between]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearLTE", "description": "Max vehicle year, e.g. 2019", "name": "year[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearGTE", "description": "Min vehicle year, e.g. 1960", "name": "year[gte]", "in": "query" }, { "type": "string", "format": "date-time", "x-go-name": "LastPublishedLTE", "description": "Published on or before date, e.g. 2020-12-02", "name": "last_published[lte]", "in": "query" }, { "type": "string", "format": "date-time", "x-go-name": "LastPublishedGTE", "description": "Published on or after date, e.g. 2006-01-02", "name": "last_published[gte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TrailerWeightLTE", "description": "Max trailer weight, integer", "name": "trailer_weight[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TrailerWeightGTE", "description": "Min trailer weight, integer", "name": "trailer_weight[gte]", "in": "query" }, { "type": "string", "x-go-name": "WeightUnit", "description": "Weight unit, one of: \"kg\", \"lbs\"", "name": "weight_unit", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CancelPolicy", "description": "Cancel policy: values \"strict\", \"moderate\", \"flexible\", \"custom\"", "name": "cancel_policy", "in": "query" }, { "type": "string", "x-go-name": "InsuranceState", "description": "State of insurance, e.g. \"approved\"", "name": "insurance_state", "in": "query" }, { "type": "string", "x-go-name": "VehicleMake", "description": "Vehicle make. Examples: \"Jeep\", \"Horse\", \"Catering\", \"Winnebago\", \"Champion\", \"Komfort\", \"Thor Motor Coach\"", "name": "filter[vehicle_make]", "in": "query" }, { "type": "string", "x-go-name": "VehicleModel", "description": "Vehicle model. Examples: \"Wrangler\", \"Trailer Bar\", \"Westfalia\", \"Four Winds\"", "name": "filter[vehicle_model]", "in": "query" }, { "type": "string", "x-go-name": "Transmission", "description": "Transmission type. Examples: \"automatic\", \"manual\"", "name": "filter[transmission]", "in": "query" }, { "type": "string", "x-go-name": "FuelType", "description": "Fuel type. Examples: \"gas\", \"diesel\", \"electric\"", "name": "filter[fuel_type]", "in": "query" }, { "type": "boolean", "x-go-name": "Delivery", "description": "Delivery available?", "name": "delivery", "in": "query" }, { "type": "string", "x-go-name": "DeliveryStationary", "name": "delivery_stationary", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "DeliveryCampgroundID", "description": "Are we searching for vehicles to deliver to a campground?", "name": "delivery_campground_id", "in": "query" }, { "type": "boolean", "x-go-name": "Debug", "description": "Include some debug output, such as hit count and query source", "name": "debug", "in": "query" }, { "type": "boolean", "x-go-name": "AllowsLongTerm", "description": "Include rentals which have a monthly discount", "name": "allows_long_term", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeUnavailable", "description": "Include vehicles already booked for the specified date range?\nIn results, each rental will get a boolean field unavailable set to true or false.", "name": "include_unavailable", "in": "query" }, { "type": "string", "x-go-name": "Only", "description": "Limit returned keys. One of: \"meta\", \"rentals\"", "name": "only", "in": "query" }, { "type": "string", "x-go-name": "CountrySwaggerPlaceholder", "description": "Limit search to a specific locale, e.g. en-us (default en-us)", "name": "locale", "in": "query" }, { "type": "boolean", "x-go-name": "NewOwnersSwaggerPlaceholder", "description": "Rentals of owners who have published a first listing in the past 30 days", "name": "new_owners", "in": "query" }, { "$ref": "#/definitions/ABTest", "name": "ABTest", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "CampsiteCategoryMaxVehicleLength", "name": "cs[max_vehicle_length]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBeds", "name": "cs[beds]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBedrooms", "name": "cs[bedrooms]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBathrooms", "name": "cs[bathrooms]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryParkingOnsite", "name": "cs[parking_onsite]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryMaxParkingSpaces", "name": "cs[max_parking_spaces]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryIsODN", "name": "cs[is_odn]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CampsiteCategorySupportedTypes", "name": "cs[supported_types]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategorySupportedLength", "name": "cs[supported_length]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CampsiteCategorySupportedSlideouts", "name": "cs[supported_slideouts]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryHasPricing", "name": "cs[has_pricing]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "PropertyTypes", "description": "Property type filter Examples: \"campground\", \"private-property\"", "name": "filter[property]", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeNearbyCampgrounds", "description": "Include nearby campgrounds in the response", "name": "include_nearby_campgrounds", "in": "query" }, { "type": "boolean", "name": "TotalPriceSortDirection", "in": "query" }, { "type": "string", "x-go-name": "CampgroundFeaturesSwaggerPlaceholder", "description": "Campground specific: */\nCampground Features list, e.g. \"pet_friendly,accessible\"", "name": "cg[features]", "in": "query" }, { "type": "string", "x-go-name": "NearExternalCampgroundID", "description": "Specified external campground is boosted to be at the top of the results.", "name": "cg[near_campground]", "in": "query" }, { "type": "string", "x-go-name": "CampgroundVacationPackageSlug", "name": "cg[vacation_package_slug]", "in": "query" }, { "type": "string", "x-go-name": "CampgroundCategoriesSwaggerPlaceholder", "description": "Campground Categories list, e.g. \"city,forest,etc.\"", "name": "cg[categories]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/jsonApiExternalCampgroundsResponse" }, "400": { "$ref": "#/responses/badRequestError" } } } }, "/external-campgrounds/nearby-for-rental/{rental_id}": { "get": { "description": "Searches nearby claimed and unclaimed campgrounds for a given rental with rental_id", "tags": [ "externalCampgrounds" ], "operationId": "searchNearbyCampgrounds", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/jsonApiNearbyCampgroundsResponse" } } } }, "/external-campgrounds/{id}": { "get": { "description": "Get external campgrounds by id", "tags": [ "externalCampgrounds" ], "operationId": "getExternalCampground", "parameters": [ { "type": "string", "x-go-name": "KeywordsSwaggerPlaceholder", "description": "List of keywords, comma-separated, e.g. \"Komfort,wifi\"\nThe fields checked for keywords are: name, description, vehicle_make, vehicle_model, and tags", "name": "filter[keywords]", "in": "query" }, { "type": "string", "x-go-name": "RentalTypeSwaggerPlaceholder", "description": "List of rental types, e.g. \"b,c,camper-van\"", "name": "filter[type]", "in": "query" }, { "type": "string", "x-go-name": "RentalCategorySwaggerPlaceholder", "description": "Rental category, e.g. \"rv\", \"stay\", \"campground\"", "name": "filter[rental_category]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryTypesSwaggerPlaceholder", "description": "Campsite category types, e.g. \"rv_site\", \"lodging_site\", \"tent_site\"", "name": "cs[category_types]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryRVSiteFeaturesSwaggerPlaceholder", "description": "Campsite category rv site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[rv_site_features]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryTentSiteFeaturesSwaggerPlaceholder", "description": "Campsite category tent site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[tent_site_features]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryLodgingSiteFeaturesSwaggerPlaceholder", "description": "Campsite category lodging site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[lodging_features]", "in": "query" }, { "type": "string", "x-go-name": "ExcludeTypeSwaggerPlaceholder", "description": "List of rental types to exclude, e.g. \"b,c\"", "name": "filter[exclude_type]", "in": "query" }, { "type": "string", "x-go-name": "StyleSwaggerPlaceholder", "description": "List of styles, e.g. \"drivable,towable,both\"", "name": "filter[style]", "in": "query" }, { "type": "string", "x-go-name": "TagsSwaggerPlaceholder", "description": "List of tags, e.g. \"Family Friendly,Luxury,Photo Friendly,Easy to Drive,Good for couples\"", "name": "filter[tags]", "in": "query" }, { "type": "string", "x-go-name": "FeaturesSwaggerPlaceholder", "description": "Feature list, e.g. \"dining_table,inside_shower,wifi\"", "name": "filter[feature]", "in": "query" }, { "type": "string", "x-go-name": "OwnerTypeSwaggerPlaceholder", "description": "Owner type, one of: \"dealer\",\" pro\"", "name": "filter[owner_type]", "in": "query" }, { "type": "string", "x-go-name": "LocationIDsSwaggerPlaceholder", "description": "Location IDs, e.g. \"1697,791,1369\"", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "IDsSwaggerPlaceholder", "description": "Rental IDs to return, e.g. \"50302,50303\"", "name": "ids", "in": "query" }, { "type": "string", "x-go-name": "ExcludeIDsSwaggerPlaceholder", "description": "Rental IDs to exclude, e.g. \"50303,503034\"", "name": "exclude", "in": "query" }, { "type": "string", "x-go-name": "OwnerIDsSwaggerPlaceholder", "description": "Owner IDs, e.g. \"255926,251875\"", "name": "owner_ids", "in": "query" }, { "type": "string", "x-go-name": "SortBySwaggerPlaceholder", "description": "One or many of \"price\", \"-price\", \"position\", \"-position\", \"seatbelts\", \"-seatbelts\", \"sleeps\", \"-sleeps\", \"rating\", \"-rating\", \"distance\", \"-distance\", \"num_reviews\", \"-num_reviews\", \"new_listings\"", "name": "sort", "in": "query" }, { "type": "boolean", "x-go-name": "AutoRadiusSwaggerPlaceholder", "description": "Increment search radius until enough results are provided (specified by 'page[limit]' parameter.)\nMax radius is 1000 miles. (default false)", "name": "auto_radius", "in": "query" }, { "type": "string", "x-go-name": "Source", "description": "making a variable for source", "name": "source", "in": "query" }, { "type": "boolean", "x-go-name": "Random", "description": "Random Score", "name": "random", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Seatbelts", "description": "Number of seatbelts", "name": "seatbelts", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Sleeps", "description": "Total people to sleep", "name": "sleeps", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsAdults", "description": "Adults to sleep", "name": "sleeps[adults]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsKids", "description": "Kids to sleep", "name": "sleeps[kids]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsInfants", "description": "Infants to sleep", "name": "sleeps[infants]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RenterAge", "description": "Minimum renter age required for rental", "name": "renter_age", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "description": "Limit the number of results (default 25, max 150)", "name": "page[limit]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "description": "Skip some results and return results starting with this offset (min 0, max 1000)", "name": "page[offset]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMin", "description": "Min price", "name": "price[min]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMax", "description": "Max price", "name": "price[max]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TotalPriceMin", "description": "Min price", "name": "total_price[min]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TotalPriceMax", "description": "Max price", "name": "total_price[max]", "in": "query" }, { "type": "string", "x-go-name": "DateFrom", "description": "Date from, for date range query, e.g. 2021-06-01", "name": "date[from]", "in": "query" }, { "type": "string", "x-go-name": "DateTo", "description": "Date to, for date range query, e.g. 2021-06-14", "name": "date[to]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "FlexibleDays", "description": "Flexible Days +/- 1-3 days. (default 0)", "name": "flexible_days", "in": "query" }, { "type": "string", "x-go-name": "Near", "description": "Latitude,longitude to search near, e.g. \"38.302,-121.972\". Supersedes address. Superseded by bounding box.", "name": "near", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "Address", "description": "Street address to search near. Superseded by latitude/longitude and by bounding box.\nIf no `address` is passed, GeoIP is used to get geo coordinates.", "name": "address", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "DeliveryAddress", "description": "Street address to be delivered to. Supersedes `address` field. Default radius 100 miles", "name": "delivery_address", "in": "query" }, { "type": "string", "x-go-name": "BoundsNE", "description": "Bounding box'es north-east, e.g. \"37.812, -122.3482\"", "name": "bounds[ne]", "in": "query" }, { "type": "string", "x-go-name": "BoundsSW", "description": "Bounding box'es south-west, e.g. \"37.703399, -122.526999\"", "name": "bounds[sw]", "in": "query" }, { "type": "string", "x-go-name": "NearRentalID", "description": "Rental ID to search near, e.g. 37183. Superseded by bounding box.\nSpecified rental is boosted to be at the top of the results.", "name": "near_rental", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Radius", "description": "Search radius (miles)", "name": "radius", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "description": "Owner ID, e.g. 255926", "name": "owner_id", "in": "query" }, { "type": "string", "x-go-name": "Slug", "description": "Pro user slug, e.g. \"hwyonerentals\"", "name": "slug", "in": "query" }, { "type": "boolean", "x-go-name": "ShowHidden", "description": "Show hidden results? (Non-hidden results will not be returned.)", "name": "hidden", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Score", "description": "Only return results with scores greater or equal than this", "name": "score", "in": "query" }, { "type": "boolean", "x-go-name": "UnlimitedMiles", "description": "Only return results with unlimited miles? Boolean string, e.g. 1, 0, T, f, true, False", "name": "unlimited_miles", "in": "query" }, { "type": "boolean", "x-go-name": "UnlimitedGenerator", "description": "Only return results with unlimited generator hours? Boolean string", "name": "unlimited_generator", "in": "query" }, { "type": "boolean", "x-go-name": "InstantBook", "description": "Only return results with instant book? Boolean string", "name": "instant_book", "in": "query" }, { "type": "boolean", "x-go-name": "RequireDriverVerification", "description": "Only return results with insurance requiring driver verification? Boolean string", "name": "requires_driver_verification", "in": "query" }, { "type": "string", "x-go-name": "Currency", "description": "Currency unit for price range requests (default USD)", "name": "currency", "in": "query" }, { "type": "string", "x-go-name": "DistanceUnit", "description": "Distance unit for location search requests", "name": "distance_unit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LengthLTE", "description": "Max vehicle length, integer", "name": "length[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LengthGTE", "description": "Min vehicle length, integer", "name": "length[gte]", "in": "query" }, { "type": "array", "items": { "type": "array", "items": { "type": "integer", "format": "int64" } }, "x-go-name": "LengthBetween", "description": "Length ranges (e.g.: \"18-24,25-31,32-38\")", "name": "length[between]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearLTE", "description": "Max vehicle year, e.g. 2019", "name": "year[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearGTE", "description": "Min vehicle year, e.g. 1960", "name": "year[gte]", "in": "query" }, { "type": "string", "format": "date-time", "x-go-name": "LastPublishedLTE", "description": "Published on or before date, e.g. 2020-12-02", "name": "last_published[lte]", "in": "query" }, { "type": "string", "format": "date-time", "x-go-name": "LastPublishedGTE", "description": "Published on or after date, e.g. 2006-01-02", "name": "last_published[gte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TrailerWeightLTE", "description": "Max trailer weight, integer", "name": "trailer_weight[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TrailerWeightGTE", "description": "Min trailer weight, integer", "name": "trailer_weight[gte]", "in": "query" }, { "type": "string", "x-go-name": "WeightUnit", "description": "Weight unit, one of: \"kg\", \"lbs\"", "name": "weight_unit", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CancelPolicy", "description": "Cancel policy: values \"strict\", \"moderate\", \"flexible\", \"custom\"", "name": "cancel_policy", "in": "query" }, { "type": "string", "x-go-name": "InsuranceState", "description": "State of insurance, e.g. \"approved\"", "name": "insurance_state", "in": "query" }, { "type": "string", "x-go-name": "VehicleMake", "description": "Vehicle make. Examples: \"Jeep\", \"Horse\", \"Catering\", \"Winnebago\", \"Champion\", \"Komfort\", \"Thor Motor Coach\"", "name": "filter[vehicle_make]", "in": "query" }, { "type": "string", "x-go-name": "VehicleModel", "description": "Vehicle model. Examples: \"Wrangler\", \"Trailer Bar\", \"Westfalia\", \"Four Winds\"", "name": "filter[vehicle_model]", "in": "query" }, { "type": "string", "x-go-name": "Transmission", "description": "Transmission type. Examples: \"automatic\", \"manual\"", "name": "filter[transmission]", "in": "query" }, { "type": "string", "x-go-name": "FuelType", "description": "Fuel type. Examples: \"gas\", \"diesel\", \"electric\"", "name": "filter[fuel_type]", "in": "query" }, { "type": "boolean", "x-go-name": "Delivery", "description": "Delivery available?", "name": "delivery", "in": "query" }, { "type": "string", "x-go-name": "DeliveryStationary", "name": "delivery_stationary", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "DeliveryCampgroundID", "description": "Are we searching for vehicles to deliver to a campground?", "name": "delivery_campground_id", "in": "query" }, { "type": "boolean", "x-go-name": "Debug", "description": "Include some debug output, such as hit count and query source", "name": "debug", "in": "query" }, { "type": "boolean", "x-go-name": "AllowsLongTerm", "description": "Include rentals which have a monthly discount", "name": "allows_long_term", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeUnavailable", "description": "Include vehicles already booked for the specified date range?\nIn results, each rental will get a boolean field unavailable set to true or false.", "name": "include_unavailable", "in": "query" }, { "type": "string", "x-go-name": "Only", "description": "Limit returned keys. One of: \"meta\", \"rentals\"", "name": "only", "in": "query" }, { "type": "string", "x-go-name": "CountrySwaggerPlaceholder", "description": "Limit search to a specific locale, e.g. en-us (default en-us)", "name": "locale", "in": "query" }, { "type": "boolean", "x-go-name": "NewOwnersSwaggerPlaceholder", "description": "Rentals of owners who have published a first listing in the past 30 days", "name": "new_owners", "in": "query" }, { "$ref": "#/definitions/ABTest", "name": "ABTest", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "CampsiteCategoryMaxVehicleLength", "name": "cs[max_vehicle_length]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBeds", "name": "cs[beds]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBedrooms", "name": "cs[bedrooms]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBathrooms", "name": "cs[bathrooms]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryParkingOnsite", "name": "cs[parking_onsite]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryMaxParkingSpaces", "name": "cs[max_parking_spaces]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryIsODN", "name": "cs[is_odn]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CampsiteCategorySupportedTypes", "name": "cs[supported_types]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategorySupportedLength", "name": "cs[supported_length]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CampsiteCategorySupportedSlideouts", "name": "cs[supported_slideouts]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryHasPricing", "name": "cs[has_pricing]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "PropertyTypes", "description": "Property type filter Examples: \"campground\", \"private-property\"", "name": "filter[property]", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeNearbyCampgrounds", "description": "Include nearby campgrounds in the response", "name": "include_nearby_campgrounds", "in": "query" }, { "type": "boolean", "name": "TotalPriceSortDirection", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/jsonApiExternalCampgroundsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/geodata/my-ip": { "get": { "description": "Returns geographic data based on request IP", "tags": [ "geodata" ], "operationId": "getAddressForIP", "parameters": [ { "type": "string", "x-go-name": "Locale", "name": "locale", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/jsonApiGetAddressForIPResponse" }, "400": { "$ref": "#/responses/badRequestError" } } } }, "/localities": { "get": { "description": "Search localities", "tags": [ "localities" ], "operationId": "getLocalities", "parameters": [ { "type": "string", "name": "Locale", "in": "query" }, { "type": "string", "name": "Slug", "in": "query" }, { "type": "number", "format": "double", "name": "Lat", "in": "query" }, { "type": "number", "format": "double", "name": "Lon", "in": "query" }, { "type": "integer", "format": "int64", "name": "Radius", "in": "query" }, { "type": "number", "format": "double", "name": "NELat", "in": "query" }, { "type": "number", "format": "double", "name": "NELon", "in": "query" }, { "type": "number", "format": "double", "name": "SWLat", "in": "query" }, { "type": "number", "format": "double", "name": "SWLon", "in": "query" }, { "type": "array", "items": { "$ref": "#/definitions/ESFilter" }, "name": "Filters", "in": "query" }, { "type": "integer", "format": "int64", "name": "Limit", "in": "query" }, { "type": "integer", "format": "int64", "name": "Offset", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listResponse" } } } }, "/localities/{id}": { "get": { "description": "Returns a specific locality by id", "tags": [ "localities" ], "operationId": "getLocality", "responses": { "200": { "$ref": "#/responses/retrieveResponse" } } } }, "/parks": { "get": { "description": "Search performs search on parks", "tags": [ "parks" ], "operationId": "searchParks", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/parks/homepage": { "get": { "description": "Get parks for Outdoorsy homepage", "tags": [ "parks", "getHomepageParks" ], "operationId": "parks", "responses": { "200": { "$ref": "#/responses/jsonApiHomepageParks" } } } }, "/parks/nearby-for-rental/{rental_id}": { "get": { "description": "Searches nearby parks for given rental with rental_id", "tags": [ "parks" ], "operationId": "searchParks", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/parks/popular": { "get": { "description": "Searches 6 national parks near location with images", "tags": [ "parks" ], "operationId": "searchParks", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/parks/{id}": { "get": { "description": "Get park by id", "tags": [ "parks" ], "operationId": "getPark", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/rentals": { "get": { "description": "Search performs search on rentals", "tags": [ "rentals" ], "operationId": "searchRentals", "parameters": [ { "type": "string", "x-go-name": "KeywordsSwaggerPlaceholder", "description": "List of keywords, comma-separated, e.g. \"Komfort,wifi\"\nThe fields checked for keywords are: name, description, vehicle_make, vehicle_model, and tags", "name": "filter[keywords]", "in": "query" }, { "type": "string", "x-go-name": "RentalTypeSwaggerPlaceholder", "description": "List of rental types, e.g. \"b,c,camper-van\"", "name": "filter[type]", "in": "query" }, { "type": "string", "x-go-name": "RentalCategorySwaggerPlaceholder", "description": "Rental category, e.g. \"rv\", \"stay\", \"campground\"", "name": "filter[rental_category]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryTypesSwaggerPlaceholder", "description": "Campsite category types, e.g. \"rv_site\", \"lodging_site\", \"tent_site\"", "name": "cs[category_types]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryRVSiteFeaturesSwaggerPlaceholder", "description": "Campsite category rv site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[rv_site_features]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryTentSiteFeaturesSwaggerPlaceholder", "description": "Campsite category tent site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[tent_site_features]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryLodgingSiteFeaturesSwaggerPlaceholder", "description": "Campsite category lodging site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[lodging_features]", "in": "query" }, { "type": "string", "x-go-name": "ExcludeTypeSwaggerPlaceholder", "description": "List of rental types to exclude, e.g. \"b,c\"", "name": "filter[exclude_type]", "in": "query" }, { "type": "string", "x-go-name": "StyleSwaggerPlaceholder", "description": "List of styles, e.g. \"drivable,towable,both\"", "name": "filter[style]", "in": "query" }, { "type": "string", "x-go-name": "TagsSwaggerPlaceholder", "description": "List of tags, e.g. \"Family Friendly,Luxury,Photo Friendly,Easy to Drive,Good for couples\"", "name": "filter[tags]", "in": "query" }, { "type": "string", "x-go-name": "FeaturesSwaggerPlaceholder", "description": "Feature list, e.g. \"dining_table,inside_shower,wifi\"", "name": "filter[feature]", "in": "query" }, { "type": "string", "x-go-name": "OwnerTypeSwaggerPlaceholder", "description": "Owner type, one of: \"dealer\",\" pro\"", "name": "filter[owner_type]", "in": "query" }, { "type": "string", "x-go-name": "LocationIDsSwaggerPlaceholder", "description": "Location IDs, e.g. \"1697,791,1369\"", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "IDsSwaggerPlaceholder", "description": "Rental IDs to return, e.g. \"50302,50303\"", "name": "ids", "in": "query" }, { "type": "string", "x-go-name": "ExcludeIDsSwaggerPlaceholder", "description": "Rental IDs to exclude, e.g. \"50303,503034\"", "name": "exclude", "in": "query" }, { "type": "string", "x-go-name": "OwnerIDsSwaggerPlaceholder", "description": "Owner IDs, e.g. \"255926,251875\"", "name": "owner_ids", "in": "query" }, { "type": "string", "x-go-name": "SortBySwaggerPlaceholder", "description": "One or many of \"price\", \"-price\", \"position\", \"-position\", \"seatbelts\", \"-seatbelts\", \"sleeps\", \"-sleeps\", \"rating\", \"-rating\", \"distance\", \"-distance\", \"num_reviews\", \"-num_reviews\", \"new_listings\"", "name": "sort", "in": "query" }, { "type": "boolean", "x-go-name": "AutoRadiusSwaggerPlaceholder", "description": "Increment search radius until enough results are provided (specified by 'page[limit]' parameter.)\nMax radius is 1000 miles. (default false)", "name": "auto_radius", "in": "query" }, { "type": "string", "x-go-name": "Source", "description": "making a variable for source", "name": "source", "in": "query" }, { "type": "boolean", "x-go-name": "Random", "description": "Random Score", "name": "random", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Seatbelts", "description": "Number of seatbelts", "name": "seatbelts", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Sleeps", "description": "Total people to sleep", "name": "sleeps", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsAdults", "description": "Adults to sleep", "name": "sleeps[adults]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsKids", "description": "Kids to sleep", "name": "sleeps[kids]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsInfants", "description": "Infants to sleep", "name": "sleeps[infants]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RenterAge", "description": "Minimum renter age required for rental", "name": "renter_age", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "description": "Limit the number of results (default 25, max 150)", "name": "page[limit]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "description": "Skip some results and return results starting with this offset (min 0, max 1000)", "name": "page[offset]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMin", "description": "Min price", "name": "price[min]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMax", "description": "Max price", "name": "price[max]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TotalPriceMin", "description": "Min price", "name": "total_price[min]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TotalPriceMax", "description": "Max price", "name": "total_price[max]", "in": "query" }, { "type": "string", "x-go-name": "DateFrom", "description": "Date from, for date range query, e.g. 2021-06-01", "name": "date[from]", "in": "query" }, { "type": "string", "x-go-name": "DateTo", "description": "Date to, for date range query, e.g. 2021-06-14", "name": "date[to]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "FlexibleDays", "description": "Flexible Days +/- 1-3 days. (default 0)", "name": "flexible_days", "in": "query" }, { "type": "string", "x-go-name": "Near", "description": "Latitude,longitude to search near, e.g. \"38.302,-121.972\". Supersedes address. Superseded by bounding box.", "name": "near", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "Address", "description": "Street address to search near. Superseded by latitude/longitude and by bounding box.\nIf no `address` is passed, GeoIP is used to get geo coordinates.", "name": "address", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "DeliveryAddress", "description": "Street address to be delivered to. Supersedes `address` field. Default radius 100 miles", "name": "delivery_address", "in": "query" }, { "type": "string", "x-go-name": "BoundsNE", "description": "Bounding box'es north-east, e.g. \"37.812, -122.3482\"", "name": "bounds[ne]", "in": "query" }, { "type": "string", "x-go-name": "BoundsSW", "description": "Bounding box'es south-west, e.g. \"37.703399, -122.526999\"", "name": "bounds[sw]", "in": "query" }, { "type": "string", "x-go-name": "NearRentalID", "description": "Rental ID to search near, e.g. 37183. Superseded by bounding box.\nSpecified rental is boosted to be at the top of the results.", "name": "near_rental", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Radius", "description": "Search radius (miles)", "name": "radius", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "description": "Owner ID, e.g. 255926", "name": "owner_id", "in": "query" }, { "type": "string", "x-go-name": "Slug", "description": "Pro user slug, e.g. \"hwyonerentals\"", "name": "slug", "in": "query" }, { "type": "boolean", "x-go-name": "ShowHidden", "description": "Show hidden results? (Non-hidden results will not be returned.)", "name": "hidden", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Score", "description": "Only return results with scores greater or equal than this", "name": "score", "in": "query" }, { "type": "boolean", "x-go-name": "UnlimitedMiles", "description": "Only return results with unlimited miles? Boolean string, e.g. 1, 0, T, f, true, False", "name": "unlimited_miles", "in": "query" }, { "type": "boolean", "x-go-name": "UnlimitedGenerator", "description": "Only return results with unlimited generator hours? Boolean string", "name": "unlimited_generator", "in": "query" }, { "type": "boolean", "x-go-name": "InstantBook", "description": "Only return results with instant book? Boolean string", "name": "instant_book", "in": "query" }, { "type": "boolean", "x-go-name": "RequireDriverVerification", "description": "Only return results with insurance requiring driver verification? Boolean string", "name": "requires_driver_verification", "in": "query" }, { "type": "string", "x-go-name": "Currency", "description": "Currency unit for price range requests (default USD)", "name": "currency", "in": "query" }, { "type": "string", "x-go-name": "DistanceUnit", "description": "Distance unit for location search requests", "name": "distance_unit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LengthLTE", "description": "Max vehicle length, integer", "name": "length[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LengthGTE", "description": "Min vehicle length, integer", "name": "length[gte]", "in": "query" }, { "type": "array", "items": { "type": "array", "items": { "type": "integer", "format": "int64" } }, "x-go-name": "LengthBetween", "description": "Length ranges (e.g.: \"18-24,25-31,32-38\")", "name": "length[between]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearLTE", "description": "Max vehicle year, e.g. 2019", "name": "year[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearGTE", "description": "Min vehicle year, e.g. 1960", "name": "year[gte]", "in": "query" }, { "type": "string", "format": "date-time", "x-go-name": "LastPublishedLTE", "description": "Published on or before date, e.g. 2020-12-02", "name": "last_published[lte]", "in": "query" }, { "type": "string", "format": "date-time", "x-go-name": "LastPublishedGTE", "description": "Published on or after date, e.g. 2006-01-02", "name": "last_published[gte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TrailerWeightLTE", "description": "Max trailer weight, integer", "name": "trailer_weight[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TrailerWeightGTE", "description": "Min trailer weight, integer", "name": "trailer_weight[gte]", "in": "query" }, { "type": "string", "x-go-name": "WeightUnit", "description": "Weight unit, one of: \"kg\", \"lbs\"", "name": "weight_unit", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CancelPolicy", "description": "Cancel policy: values \"strict\", \"moderate\", \"flexible\", \"custom\"", "name": "cancel_policy", "in": "query" }, { "type": "string", "x-go-name": "InsuranceState", "description": "State of insurance, e.g. \"approved\"", "name": "insurance_state", "in": "query" }, { "type": "string", "x-go-name": "VehicleMake", "description": "Vehicle make. Examples: \"Jeep\", \"Horse\", \"Catering\", \"Winnebago\", \"Champion\", \"Komfort\", \"Thor Motor Coach\"", "name": "filter[vehicle_make]", "in": "query" }, { "type": "string", "x-go-name": "VehicleModel", "description": "Vehicle model. Examples: \"Wrangler\", \"Trailer Bar\", \"Westfalia\", \"Four Winds\"", "name": "filter[vehicle_model]", "in": "query" }, { "type": "string", "x-go-name": "Transmission", "description": "Transmission type. Examples: \"automatic\", \"manual\"", "name": "filter[transmission]", "in": "query" }, { "type": "string", "x-go-name": "FuelType", "description": "Fuel type. Examples: \"gas\", \"diesel\", \"electric\"", "name": "filter[fuel_type]", "in": "query" }, { "type": "boolean", "x-go-name": "Delivery", "description": "Delivery available?", "name": "delivery", "in": "query" }, { "type": "string", "x-go-name": "DeliveryStationary", "name": "delivery_stationary", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "DeliveryCampgroundID", "description": "Are we searching for vehicles to deliver to a campground?", "name": "delivery_campground_id", "in": "query" }, { "type": "boolean", "x-go-name": "Debug", "description": "Include some debug output, such as hit count and query source", "name": "debug", "in": "query" }, { "type": "boolean", "x-go-name": "AllowsLongTerm", "description": "Include rentals which have a monthly discount", "name": "allows_long_term", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeUnavailable", "description": "Include vehicles already booked for the specified date range?\nIn results, each rental will get a boolean field unavailable set to true or false.", "name": "include_unavailable", "in": "query" }, { "type": "string", "x-go-name": "Only", "description": "Limit returned keys. One of: \"meta\", \"rentals\"", "name": "only", "in": "query" }, { "type": "string", "x-go-name": "CountrySwaggerPlaceholder", "description": "Limit search to a specific locale, e.g. en-us (default en-us)", "name": "locale", "in": "query" }, { "type": "boolean", "x-go-name": "NewOwnersSwaggerPlaceholder", "description": "Rentals of owners who have published a first listing in the past 30 days", "name": "new_owners", "in": "query" }, { "$ref": "#/definitions/ABTest", "name": "ABTest", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "CampsiteCategoryMaxVehicleLength", "name": "cs[max_vehicle_length]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBeds", "name": "cs[beds]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBedrooms", "name": "cs[bedrooms]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBathrooms", "name": "cs[bathrooms]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryParkingOnsite", "name": "cs[parking_onsite]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryMaxParkingSpaces", "name": "cs[max_parking_spaces]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryIsODN", "name": "cs[is_odn]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CampsiteCategorySupportedTypes", "name": "cs[supported_types]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategorySupportedLength", "name": "cs[supported_length]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CampsiteCategorySupportedSlideouts", "name": "cs[supported_slideouts]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryHasPricing", "name": "cs[has_pricing]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "PropertyTypes", "description": "Property type filter Examples: \"campground\", \"private-property\"", "name": "filter[property]", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeNearbyCampgrounds", "description": "Include nearby campgrounds in the response", "name": "include_nearby_campgrounds", "in": "query" }, { "type": "boolean", "name": "TotalPriceSortDirection", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/jsonApiRentalsSearchResponse" } } } }, "/rentals/homepage-recommendations": { "get": { "description": "GetHomepageRecomendationRentals finds for homepage based on passed rental tag", "tags": [ "rentals" ], "operationId": "searchHomepageRecomendationRentals", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/rentals/minimal": { "get": { "description": "SearchMinimal performs search on rentals with a limited subset of\noptions, returning a minimal payload. This is generally intended for use in\n3rd party products that need a subset of data to display a link to a rental.\nFor example, iterable wants to show name, image, type, city and state as a\nlink in an email.", "tags": [ "rentals" ], "operationId": "searchRentalsMinimal", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/rentals/random": { "get": { "description": "Random Search Results, does not use user's geo location", "tags": [ "rentals" ], "operationId": "searchRandom", "parameters": [ { "type": "string", "x-go-name": "KeywordsSwaggerPlaceholder", "description": "List of keywords, comma-separated, e.g. \"Komfort,wifi\"\nThe fields checked for keywords are: name, description, vehicle_make, vehicle_model, and tags", "name": "filter[keywords]", "in": "query" }, { "type": "string", "x-go-name": "RentalTypeSwaggerPlaceholder", "description": "List of rental types, e.g. \"b,c,camper-van\"", "name": "filter[type]", "in": "query" }, { "type": "string", "x-go-name": "RentalCategorySwaggerPlaceholder", "description": "Rental category, e.g. \"rv\", \"stay\", \"campground\"", "name": "filter[rental_category]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryTypesSwaggerPlaceholder", "description": "Campsite category types, e.g. \"rv_site\", \"lodging_site\", \"tent_site\"", "name": "cs[category_types]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryRVSiteFeaturesSwaggerPlaceholder", "description": "Campsite category rv site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[rv_site_features]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryTentSiteFeaturesSwaggerPlaceholder", "description": "Campsite category tent site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[tent_site_features]", "in": "query" }, { "type": "string", "x-go-name": "CampsiteCategoryLodgingSiteFeaturesSwaggerPlaceholder", "description": "Campsite category lodging site Features list, e.g. \"pet_friendly,accessible\"", "name": "cs[lodging_features]", "in": "query" }, { "type": "string", "x-go-name": "ExcludeTypeSwaggerPlaceholder", "description": "List of rental types to exclude, e.g. \"b,c\"", "name": "filter[exclude_type]", "in": "query" }, { "type": "string", "x-go-name": "StyleSwaggerPlaceholder", "description": "List of styles, e.g. \"drivable,towable,both\"", "name": "filter[style]", "in": "query" }, { "type": "string", "x-go-name": "TagsSwaggerPlaceholder", "description": "List of tags, e.g. \"Family Friendly,Luxury,Photo Friendly,Easy to Drive,Good for couples\"", "name": "filter[tags]", "in": "query" }, { "type": "string", "x-go-name": "FeaturesSwaggerPlaceholder", "description": "Feature list, e.g. \"dining_table,inside_shower,wifi\"", "name": "filter[feature]", "in": "query" }, { "type": "string", "x-go-name": "OwnerTypeSwaggerPlaceholder", "description": "Owner type, one of: \"dealer\",\" pro\"", "name": "filter[owner_type]", "in": "query" }, { "type": "string", "x-go-name": "LocationIDsSwaggerPlaceholder", "description": "Location IDs, e.g. \"1697,791,1369\"", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "IDsSwaggerPlaceholder", "description": "Rental IDs to return, e.g. \"50302,50303\"", "name": "ids", "in": "query" }, { "type": "string", "x-go-name": "ExcludeIDsSwaggerPlaceholder", "description": "Rental IDs to exclude, e.g. \"50303,503034\"", "name": "exclude", "in": "query" }, { "type": "string", "x-go-name": "OwnerIDsSwaggerPlaceholder", "description": "Owner IDs, e.g. \"255926,251875\"", "name": "owner_ids", "in": "query" }, { "type": "string", "x-go-name": "SortBySwaggerPlaceholder", "description": "One or many of \"price\", \"-price\", \"position\", \"-position\", \"seatbelts\", \"-seatbelts\", \"sleeps\", \"-sleeps\", \"rating\", \"-rating\", \"distance\", \"-distance\", \"num_reviews\", \"-num_reviews\", \"new_listings\"", "name": "sort", "in": "query" }, { "type": "boolean", "x-go-name": "AutoRadiusSwaggerPlaceholder", "description": "Increment search radius until enough results are provided (specified by 'page[limit]' parameter.)\nMax radius is 1000 miles. (default false)", "name": "auto_radius", "in": "query" }, { "type": "string", "x-go-name": "Source", "description": "making a variable for source", "name": "source", "in": "query" }, { "type": "boolean", "x-go-name": "Random", "description": "Random Score", "name": "random", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Seatbelts", "description": "Number of seatbelts", "name": "seatbelts", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Sleeps", "description": "Total people to sleep", "name": "sleeps", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsAdults", "description": "Adults to sleep", "name": "sleeps[adults]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsKids", "description": "Kids to sleep", "name": "sleeps[kids]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsInfants", "description": "Infants to sleep", "name": "sleeps[infants]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RenterAge", "description": "Minimum renter age required for rental", "name": "renter_age", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "description": "Limit the number of results (default 25, max 150)", "name": "page[limit]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "description": "Skip some results and return results starting with this offset (min 0, max 1000)", "name": "page[offset]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMin", "description": "Min price", "name": "price[min]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMax", "description": "Max price", "name": "price[max]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TotalPriceMin", "description": "Min price", "name": "total_price[min]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TotalPriceMax", "description": "Max price", "name": "total_price[max]", "in": "query" }, { "type": "string", "x-go-name": "DateFrom", "description": "Date from, for date range query, e.g. 2021-06-01", "name": "date[from]", "in": "query" }, { "type": "string", "x-go-name": "DateTo", "description": "Date to, for date range query, e.g. 2021-06-14", "name": "date[to]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "FlexibleDays", "description": "Flexible Days +/- 1-3 days. (default 0)", "name": "flexible_days", "in": "query" }, { "type": "string", "x-go-name": "Near", "description": "Latitude,longitude to search near, e.g. \"38.302,-121.972\". Supersedes address. Superseded by bounding box.", "name": "near", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "Address", "description": "Street address to search near. Superseded by latitude/longitude and by bounding box.\nIf no `address` is passed, GeoIP is used to get geo coordinates.", "name": "address", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "DeliveryAddress", "description": "Street address to be delivered to. Supersedes `address` field. Default radius 100 miles", "name": "delivery_address", "in": "query" }, { "type": "string", "x-go-name": "BoundsNE", "description": "Bounding box'es north-east, e.g. \"37.812, -122.3482\"", "name": "bounds[ne]", "in": "query" }, { "type": "string", "x-go-name": "BoundsSW", "description": "Bounding box'es south-west, e.g. \"37.703399, -122.526999\"", "name": "bounds[sw]", "in": "query" }, { "type": "string", "x-go-name": "NearRentalID", "description": "Rental ID to search near, e.g. 37183. Superseded by bounding box.\nSpecified rental is boosted to be at the top of the results.", "name": "near_rental", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Radius", "description": "Search radius (miles)", "name": "radius", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "description": "Owner ID, e.g. 255926", "name": "owner_id", "in": "query" }, { "type": "string", "x-go-name": "Slug", "description": "Pro user slug, e.g. \"hwyonerentals\"", "name": "slug", "in": "query" }, { "type": "boolean", "x-go-name": "ShowHidden", "description": "Show hidden results? (Non-hidden results will not be returned.)", "name": "hidden", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Score", "description": "Only return results with scores greater or equal than this", "name": "score", "in": "query" }, { "type": "boolean", "x-go-name": "UnlimitedMiles", "description": "Only return results with unlimited miles? Boolean string, e.g. 1, 0, T, f, true, False", "name": "unlimited_miles", "in": "query" }, { "type": "boolean", "x-go-name": "UnlimitedGenerator", "description": "Only return results with unlimited generator hours? Boolean string", "name": "unlimited_generator", "in": "query" }, { "type": "boolean", "x-go-name": "InstantBook", "description": "Only return results with instant book? Boolean string", "name": "instant_book", "in": "query" }, { "type": "boolean", "x-go-name": "RequireDriverVerification", "description": "Only return results with insurance requiring driver verification? Boolean string", "name": "requires_driver_verification", "in": "query" }, { "type": "string", "x-go-name": "Currency", "description": "Currency unit for price range requests (default USD)", "name": "currency", "in": "query" }, { "type": "string", "x-go-name": "DistanceUnit", "description": "Distance unit for location search requests", "name": "distance_unit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LengthLTE", "description": "Max vehicle length, integer", "name": "length[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LengthGTE", "description": "Min vehicle length, integer", "name": "length[gte]", "in": "query" }, { "type": "array", "items": { "type": "array", "items": { "type": "integer", "format": "int64" } }, "x-go-name": "LengthBetween", "description": "Length ranges (e.g.: \"18-24,25-31,32-38\")", "name": "length[between]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearLTE", "description": "Max vehicle year, e.g. 2019", "name": "year[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearGTE", "description": "Min vehicle year, e.g. 1960", "name": "year[gte]", "in": "query" }, { "type": "string", "format": "date-time", "x-go-name": "LastPublishedLTE", "description": "Published on or before date, e.g. 2020-12-02", "name": "last_published[lte]", "in": "query" }, { "type": "string", "format": "date-time", "x-go-name": "LastPublishedGTE", "description": "Published on or after date, e.g. 2006-01-02", "name": "last_published[gte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TrailerWeightLTE", "description": "Max trailer weight, integer", "name": "trailer_weight[lte]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TrailerWeightGTE", "description": "Min trailer weight, integer", "name": "trailer_weight[gte]", "in": "query" }, { "type": "string", "x-go-name": "WeightUnit", "description": "Weight unit, one of: \"kg\", \"lbs\"", "name": "weight_unit", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CancelPolicy", "description": "Cancel policy: values \"strict\", \"moderate\", \"flexible\", \"custom\"", "name": "cancel_policy", "in": "query" }, { "type": "string", "x-go-name": "InsuranceState", "description": "State of insurance, e.g. \"approved\"", "name": "insurance_state", "in": "query" }, { "type": "string", "x-go-name": "VehicleMake", "description": "Vehicle make. Examples: \"Jeep\", \"Horse\", \"Catering\", \"Winnebago\", \"Champion\", \"Komfort\", \"Thor Motor Coach\"", "name": "filter[vehicle_make]", "in": "query" }, { "type": "string", "x-go-name": "VehicleModel", "description": "Vehicle model. Examples: \"Wrangler\", \"Trailer Bar\", \"Westfalia\", \"Four Winds\"", "name": "filter[vehicle_model]", "in": "query" }, { "type": "string", "x-go-name": "Transmission", "description": "Transmission type. Examples: \"automatic\", \"manual\"", "name": "filter[transmission]", "in": "query" }, { "type": "string", "x-go-name": "FuelType", "description": "Fuel type. Examples: \"gas\", \"diesel\", \"electric\"", "name": "filter[fuel_type]", "in": "query" }, { "type": "boolean", "x-go-name": "Delivery", "description": "Delivery available?", "name": "delivery", "in": "query" }, { "type": "string", "x-go-name": "DeliveryStationary", "name": "delivery_stationary", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "DeliveryCampgroundID", "description": "Are we searching for vehicles to deliver to a campground?", "name": "delivery_campground_id", "in": "query" }, { "type": "boolean", "x-go-name": "Debug", "description": "Include some debug output, such as hit count and query source", "name": "debug", "in": "query" }, { "type": "boolean", "x-go-name": "AllowsLongTerm", "description": "Include rentals which have a monthly discount", "name": "allows_long_term", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeUnavailable", "description": "Include vehicles already booked for the specified date range?\nIn results, each rental will get a boolean field unavailable set to true or false.", "name": "include_unavailable", "in": "query" }, { "type": "string", "x-go-name": "Only", "description": "Limit returned keys. One of: \"meta\", \"rentals\"", "name": "only", "in": "query" }, { "type": "string", "x-go-name": "CountrySwaggerPlaceholder", "description": "Limit search to a specific locale, e.g. en-us (default en-us)", "name": "locale", "in": "query" }, { "type": "boolean", "x-go-name": "NewOwnersSwaggerPlaceholder", "description": "Rentals of owners who have published a first listing in the past 30 days", "name": "new_owners", "in": "query" }, { "$ref": "#/definitions/ABTest", "name": "ABTest", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "CampsiteCategoryMaxVehicleLength", "name": "cs[max_vehicle_length]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBeds", "name": "cs[beds]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBedrooms", "name": "cs[bedrooms]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryBathrooms", "name": "cs[bathrooms]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryParkingOnsite", "name": "cs[parking_onsite]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategoryMaxParkingSpaces", "name": "cs[max_parking_spaces]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryIsODN", "name": "cs[is_odn]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CampsiteCategorySupportedTypes", "name": "cs[supported_types]", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampsiteCategorySupportedLength", "name": "cs[supported_length]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "CampsiteCategorySupportedSlideouts", "name": "cs[supported_slideouts]", "in": "query" }, { "type": "boolean", "x-go-name": "CampsiteCategoryHasPricing", "name": "cs[has_pricing]", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "PropertyTypes", "description": "Property type filter Examples: \"campground\", \"private-property\"", "name": "filter[property]", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeNearbyCampgrounds", "description": "Include nearby campgrounds in the response", "name": "include_nearby_campgrounds", "in": "query" }, { "type": "boolean", "name": "TotalPriceSortDirection", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/jsonApiRentalsSearchResponse" } } } }, "/rentals/similar": { "get": { "description": "GetSimilarByID finds rentals that are similar to the requested rental ID", "tags": [ "rentals" ], "operationId": "searchRentalsSimilar", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/rentals/weekend": { "get": { "description": "GetAvailableForWeekend finds rentals that are available for upcoming weekend", "tags": [ "rentals" ], "operationId": "searchWeekendAvailableRentals", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/rentals/{id}": { "get": { "description": "Returns a specific rental by id", "tags": [ "rentals" ], "operationId": "getRental", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/jsonApiRentalResponse" } } } }, "/users": { "get": { "description": "User search", "tags": [ "users" ], "operationId": "userSearch", "parameters": [ { "type": "boolean", "name": "IncludeRentals", "in": "query" }, { "type": "boolean", "name": "IncludeReviews", "in": "query" }, { "type": "boolean", "name": "Debug", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/users/{id}": { "get": { "description": "Returns a user by id", "tags": [ "users" ], "operationId": "getUser", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/jsonApiRentalsResponse" } } } }, "/vacation-packages": { "get": { "description": "Search performs search on vacation packages", "tags": [ "vacationPackages" ], "operationId": "searchVacationPackages", "responses": { "200": { "$ref": "#/responses/jsonApiVacationPackagesResponse" }, "400": { "$ref": "#/responses/badRequestError" } } } }, "/vacation-packages/campgrounds": { "get": { "description": "Search performs search on vacation packages campgrounds", "tags": [ "vacationPackages" ], "operationId": "searchVacationPackagesCampgrounds", "responses": { "200": { "$ref": "#/responses/jsonApiExternalCampgroundsResponse" }, "400": { "$ref": "#/responses/badRequestError" } } } }, "/vacation-packages/rentals": { "get": { "description": "Search performs search on vacation packages rentals", "tags": [ "vacationPackages" ], "operationId": "searchVacationPackagesRentals", "responses": { "200": { "$ref": "#/responses/jsonApiRentalsSearchResponse" }, "400": { "$ref": "#/responses/badRequestError" } } } } }, "definitions": { "ABTest": { "type": "object", "x-go-package": "github.com/outdoorsy/ds-abtest/abtest" }, "Amenity": { "type": "object", "properties": { "name": { "type": "string", "x-go-name": "Name" }, "options": { "$ref": "#/definitions/JSONB" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "slug": { "type": "string", "x-go-name": "Slug" }, "unavailable_name": { "type": "string", "x-go-name": "UnavailableName" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "AmenityCategory": { "type": "object", "properties": { "id": { "type": "string", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "AmenityGroup": { "type": "object", "properties": { "amenities": { "type": "array", "items": { "$ref": "#/definitions/Amenity" }, "x-go-name": "Amenities" }, "group": { "type": "string", "x-go-name": "Slug" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "AverageRatings": { "type": "object", "properties": { "cleanliness_score": { "type": "number", "format": "double", "x-go-name": "CleanlinessScore" }, "cleanliness_score_percentage": { "type": "number", "format": "double", "x-go-name": "CleanlinessScorePercentage" }, "communication_score": { "type": "number", "format": "double", "x-go-name": "CommunicationScore" }, "communication_score_percentage": { "type": "number", "format": "double", "x-go-name": "CommunicationScorePercentage" }, "listing_score": { "type": "number", "format": "double", "x-go-name": "ListingAccuracyScore" }, "listing_score_percentage": { "type": "number", "format": "double", "x-go-name": "ListingAccuracyScorePercentage" }, "mechanical_score": { "type": "number", "format": "double", "x-go-name": "MechanicalScore" }, "mechanical_score_percentage": { "type": "number", "format": "double", "x-go-name": "MechanicalScorePercentage" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "score_percentage": { "type": "number", "format": "double", "x-go-name": "ScorePercentage" }, "value_score": { "type": "number", "format": "double", "x-go-name": "ValueScore" }, "value_score_percentage": { "type": "number", "format": "double", "x-go-name": "ValueScorePercentage" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "AverageReviews": { "type": "object", "properties": { "owner": { "type": "array", "items": { "$ref": "#/definitions/AverageReviewsScores" }, "x-go-name": "Owner" }, "rental": { "type": "array", "items": { "$ref": "#/definitions/AverageReviewsScores" }, "x-go-name": "Rental" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "AverageReviewsScores": { "type": "object", "properties": { "key": { "type": "string", "x-go-name": "Key" }, "name": { "type": "string", "x-go-name": "Name" }, "percentage": { "type": "number", "format": "double", "x-go-name": "Percentage" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "BlockedWeekDays": { "description": "BlockedWeekDays to handle day of the week availability\nif set to true means unavailable", "type": "object", "properties": { "friday": { "type": "boolean", "x-go-name": "Friday" }, "monday": { "type": "boolean", "x-go-name": "Monday" }, "saturday": { "type": "boolean", "x-go-name": "Saturday" }, "sunday": { "type": "boolean", "x-go-name": "Sunday" }, "thursday": { "type": "boolean", "x-go-name": "Thursday" }, "tuesday": { "type": "boolean", "x-go-name": "Tuesday" }, "wednesday": { "type": "boolean", "x-go-name": "Wednesday" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "BookingPrice": { "type": "object", "properties": { "booking_end": { "type": "string", "x-go-name": "BookingEnd" }, "booking_start": { "type": "string", "x-go-name": "BookingStart" }, "date_range": { "$ref": "#/definitions/DateRange" }, "max_price": { "type": "integer", "format": "int64", "x-go-name": "MaxPrice" }, "minimum_booking_days": { "type": "integer", "format": "int64", "x-go-name": "MinimumBookingDays" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" }, "range": { "type": "string", "x-go-name": "Range" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Breadcrumb": { "type": "object", "x-go-package": "github.com/outdoorsy/odc-search/internal/breadcrumb" }, "CampgroundActivityFeature": { "type": "object", "properties": { "feature": { "type": "string", "x-go-name": "Slug" }, "name": { "type": "string", "x-go-name": "Name" }, "options": { "$ref": "#/definitions/JSONB" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "CampgroundCarouselImages": { "type": "object", "properties": { "description": { "type": "string", "x-go-name": "Description" }, "group_slug": { "type": "string", "x-go-name": "GroupSlug" }, "image_id": { "type": "integer", "format": "int64", "x-go-name": "ImageID" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "url": { "type": "string", "x-go-name": "URL" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "CampgroundRentalCatalog": { "type": "object", "properties": { "activity_features": { "type": "array", "items": { "$ref": "#/definitions/CampgroundActivityFeature" }, "x-go-name": "ActivityFeatures" }, "amenities_categories": { "type": "array", "items": { "$ref": "#/definitions/CampsiteCategoryAmenityCategory" }, "x-go-name": "ProcessedCampgroundCategoryAmenity" }, "processed_amenities": { "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/definitions/ProcessedCampsiteCategoryAmenity" } }, "x-go-name": "ProcessedCampgroundCategory" }, "scenery_features": { "type": "array", "items": { "$ref": "#/definitions/CampgroundSceneryFeature" }, "x-go-name": "SceneryFeatures" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "CampgroundSceneryFeature": { "type": "object", "properties": { "feature": { "type": "string", "x-go-name": "Slug" }, "name": { "type": "string", "x-go-name": "Name" }, "options": { "$ref": "#/definitions/JSONB" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "CampsiteCategory": { "type": "object", "properties": { "active_options": { "$ref": "#/definitions/CustomPrices" }, "available_for_dates": { "type": "boolean", "x-go-name": "AvailableForDates" }, "bathrooms": { "type": "integer", "format": "int64", "x-go-name": "Bathrooms" }, "bedrooms": { "type": "integer", "format": "int64", "x-go-name": "Bedrooms" }, "beds": { "type": "integer", "format": "int64", "x-go-name": "Beds" }, "campground_id": { "type": "integer", "format": "int64", "x-go-name": "CampgroundID" }, "campground_is_odn": { "type": "boolean", "x-go-name": "CampgroundIsODN" }, "campground_name": { "type": "string", "x-go-name": "CampgroundName" }, "campground_odn_id": { "type": "string", "x-go-name": "CampgroundOdnID" }, "campground_slug": { "type": "string", "x-go-name": "CampgroundSlug" }, "campsite_category_catalog": { "$ref": "#/definitions/CampsiteCategoryRentalCatalog" }, "category_type": { "type": "string", "x-go-name": "CategoryType" }, "description": { "type": "string", "x-go-name": "Description" }, "display_category_type": { "type": "string", "x-go-name": "DisplayCategoryType" }, "display_site_type": { "type": "string", "x-go-name": "DisplaySiteType" }, "enabled_for_rental_categories": { "$ref": "#/definitions/JSONB" }, "features": { "$ref": "#/definitions/JSONB" }, "has_pricing": { "type": "boolean", "x-go-name": "HasPricing" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "images": { "$ref": "#/definitions/Images" }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "matching": { "type": "boolean", "x-go-name": "Matching" }, "max_occupancy": { "type": "integer", "format": "int64", "x-go-name": "MaxOccupancy" }, "max_occupancy_adult": { "type": "integer", "format": "int64", "x-go-name": "MaxOccupancyAdult" }, "max_occupancy_kids": { "type": "integer", "format": "int64", "x-go-name": "MaxOccupancyKids" }, "max_parking_spaces": { "type": "integer", "format": "int64", "x-go-name": "MaxParkingSpaces" }, "max_vehicle_length": { "type": "number", "format": "double", "x-go-name": "MaxVehicleLength" }, "name": { "type": "string", "x-go-name": "Name" }, "parking_onsite": { "type": "boolean", "x-go-name": "ParkingOnsite" }, "presentment_currency": { "type": "string", "x-go-name": "PresentmentCurrency" }, "price_per_day": { "type": "integer", "format": "int64", "x-go-name": "PricePerDay" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "quantity": { "type": "integer", "format": "int64", "x-go-name": "Quantity" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "reviews_num": { "type": "integer", "format": "int64", "x-go-name": "ReviewsNum" }, "score": { "description": "Score (applicable only for external campground)", "type": "number", "format": "double", "x-go-name": "Score" }, "settlement_currency": { "type": "string", "x-go-name": "SettlementCurrency" }, "site_type": { "type": "string", "x-go-name": "SiteType" }, "slug": { "type": "string", "x-go-name": "Slug" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "CampsiteCategoryAmenityCategory": { "type": "object", "properties": { "id": { "type": "string", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "CampsiteCategoryRentalCatalog": { "type": "object", "properties": { "amenities_categories": { "type": "array", "items": { "$ref": "#/definitions/CampsiteCategoryAmenityCategory" }, "x-go-name": "AmenitiesCategories" }, "processed_amenities": { "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/definitions/ProcessedCampsiteCategoryAmenity" } }, "x-go-name": "ProcessedAmenities" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Category": { "type": "object", "properties": { "name": { "type": "string", "x-go-name": "Name" }, "slug": { "type": "string", "x-go-name": "Slug" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "ChildRental": { "type": "object", "properties": { "bookings": { "$ref": "#/definitions/DateRanges" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "platform_blocks": { "$ref": "#/definitions/DateRanges" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "CustomPrices": { "type": "object", "properties": { "cancel_policy": { "type": "string", "x-go-name": "CancelPolicy" }, "cancel_policy_combo_bookings": { "type": "string", "x-go-name": "CancelPolicyComboBookings" }, "date": { "type": "string", "x-go-name": "Date" }, "day_price": { "type": "integer", "format": "int64", "x-go-name": "DayPrice" }, "estimated_price_breakdown": { "$ref": "#/definitions/PriceBreakdownResponse" }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "max_override_price": { "type": "integer", "format": "int64", "x-go-name": "MaxOverridePrice" }, "minimum_days": { "type": "integer", "format": "int64", "x-go-name": "MinimumDays" }, "month_price": { "type": "integer", "format": "int64", "x-go-name": "MonthPrice" }, "monthly_discount_percentage": { "type": "number", "format": "double", "x-go-name": "MonthlyDiscountPercentage" }, "monthly_rate_per_day": { "type": "integer", "format": "int64", "x-go-name": "MonthlyRatePerDay" }, "tax": { "type": "integer", "format": "int64", "x-go-name": "Tax" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" }, "use_tax_inclusive_pricing": { "type": "boolean", "x-go-name": "UseTaxInclusivePricing" }, "week_price": { "type": "integer", "format": "int64", "x-go-name": "WeekPrice" }, "weekly_discount_percentage": { "type": "number", "format": "double", "x-go-name": "WeeklyDiscountPercentage" }, "weekly_rate_per_day": { "type": "integer", "format": "int64", "x-go-name": "WeeklyRatePerDay" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "DateRange": { "description": "DateRanges to handle Elastic date range", "type": "object", "properties": { "gte": { "type": "string", "x-go-name": "From" }, "lte": { "type": "string", "x-go-name": "To" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "DateRanges": { "type": "array", "items": { "type": "object", "properties": { "gte": { "type": "string", "x-go-name": "From" }, "lte": { "type": "string", "x-go-name": "To" } } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "DistributedRatings": { "type": "object", "properties": { "score": { "type": "object", "properties": { "r1": { "type": "number", "format": "double", "x-go-name": "R1" }, "r2": { "type": "number", "format": "double", "x-go-name": "R2" }, "r3": { "type": "number", "format": "double", "x-go-name": "R3" }, "r4": { "type": "number", "format": "double", "x-go-name": "R4" }, "r5": { "type": "number", "format": "double", "x-go-name": "R5" } }, "x-go-name": "Score" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "ESFilter": { "type": "object", "properties": { "Key": { "type": "string" }, "Operator": { "type": "string" }, "Value": { } }, "x-go-package": "github.com/outdoorsy/odc-search/pkg/query" }, "EducationalModule": { "type": "object", "x-go-package": "github.com/outdoorsy/odc-search/internal/educational_module" }, "ExternalCampground": { "description": "New Campground type", "type": "object", "properties": { "average_reviews": { "$ref": "#/definitions/AverageReviews" }, "breadcrumb": { "$ref": "#/definitions/Breadcrumb" }, "campground_catalog": { "$ref": "#/definitions/CampgroundRentalCatalog" }, "campsite_categories": { "type": "array", "items": { "$ref": "#/definitions/CampsiteCategory" }, "x-go-name": "CampsiteCategories" }, "campsite_category_ids": { "description": "Campsite Categories", "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "CampsiteCategoriesIDs" }, "carousel_images": { "type": "array", "items": { "$ref": "#/definitions/CampgroundCarouselImages" }, "x-go-name": "CarouselImages" }, "categories": { "$ref": "#/definitions/JSONBStringArr" }, "category_counts_display_subtitle": { "description": "category counts display subtitle", "type": "string", "x-go-name": "CategoryCountsDisplaySubtitle" }, "check_in_time": { "type": "string", "x-go-name": "CheckInTime" }, "check_out_time": { "type": "string", "x-go-name": "CheckOutTime" }, "created": { "description": "Publication data", "type": "string", "format": "date-time", "x-go-name": "Created" }, "description": { "type": "string", "x-go-name": "Description" }, "display_type": { "type": "string", "x-go-name": "DisplayType" }, "distance": { "type": "number", "format": "double", "x-go-name": "Distance" }, "distance_in_miles": { "description": "When calculating distance from campground to a given point", "type": "number", "format": "double", "x-go-name": "DistanceInMiles" }, "email": { "type": "string", "x-go-name": "Email" }, "explanation": { "$ref": "#/definitions/SearchExplanation" }, "features": { "$ref": "#/definitions/JSONB" }, "filtered_description": { "type": "string", "x-go-name": "FilteredDescription" }, "filtered_name": { "type": "string", "x-go-name": "FilteredName" }, "filtered_tagline": { "type": "string", "x-go-name": "FilteredTagline" }, "first_published": { "type": "string", "format": "date-time", "x-go-name": "FirstPublished" }, "geopoint": { "$ref": "#/definitions/Geopoint" }, "has_been_published": { "type": "boolean", "x-go-name": "HasBeenPublished" }, "hidden": { "description": "Flags", "type": "boolean", "x-go-name": "Hidden" }, "id": { "description": "Main", "type": "integer", "format": "int64", "x-go-name": "ID" }, "images": { "$ref": "#/definitions/Images" }, "is_odn": { "type": "boolean", "x-go-name": "IsODN" }, "last_published": { "type": "string", "format": "date-time", "x-go-name": "LastPublished" }, "locale": { "$ref": "#/definitions/Locale" }, "location": { "$ref": "#/definitions/Location" }, "lowest_price": { "type": "integer", "format": "int64", "x-go-name": "LowestPrice" }, "matching_campsite_category_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "MatchingCampsiteCategoriesIDs" }, "meta_description": { "type": "string", "x-go-name": "MetaDescription" }, "meta_title": { "type": "string", "x-go-name": "MetaTitle" }, "name": { "type": "string", "x-go-name": "Name" }, "nearby_content": { "type": "array", "items": { "$ref": "#/definitions/NearbyContent" }, "x-go-name": "NearbyContent" }, "nearby_guide_parks": { "type": "array", "items": { "$ref": "#/definitions/NearbyGuideParkContent" }, "x-go-name": "NearbyGuideParks" }, "odn_id": { "type": "string", "x-go-name": "OdnID" }, "operating_months": { "$ref": "#/definitions/JSONB" }, "owner": { "$ref": "#/definitions/User" }, "phone": { "type": "string", "x-go-name": "Phone" }, "presentment_currency": { "type": "string", "x-go-name": "PresentmentCurrency" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "published": { "type": "boolean", "x-go-name": "Published" }, "reviews_num": { "type": "integer", "format": "int64", "x-go-name": "ReviewsNum" }, "rules": { "type": "string", "x-go-name": "Rules" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "settlement_currency": { "type": "string", "x-go-name": "SettlementCurrency" }, "site_map_image_url": { "type": "string", "x-go-name": "SiteMapImageURL" }, "slug": { "type": "string", "x-go-name": "Slug" }, "supported_rv_types": { "$ref": "#/definitions/JSONBStringArr" }, "tagline": { "type": "string", "x-go-name": "Tagline" }, "total_category_counts": { "$ref": "#/definitions/TotalCategoryCounts" }, "type": { "type": "string", "x-go-name": "Type" }, "unavailable": { "type": "boolean", "x-go-name": "Unavailable" }, "unavailable_campsite_category_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "UnavailableCampsiteCategoriesIDs" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" }, "vacation_package_min_nightly_rate": { "type": "integer", "format": "int64", "x-go-name": "VacationPackageMinNightlyRate" }, "vacation_package_slug": { "type": "string", "x-go-name": "VacationPackageSlug" }, "website_url": { "description": "Links and Images", "type": "string", "x-go-name": "WebsiteURL" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "GeodataResponse": { "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "country": { "type": "string", "x-go-name": "Country" }, "country_code": { "type": "string", "x-go-name": "CountryCode" }, "country_name": { "type": "string", "x-go-name": "CountryName" }, "county": { "type": "string", "x-go-name": "County" }, "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lng": { "type": "number", "format": "double", "x-go-name": "Lon" }, "state": { "type": "string", "x-go-name": "State" } }, "x-go-package": "github.com/outdoorsy/odc-search/app/controllers" }, "Geopoint": { "description": "Geopoint type to handle postgres jsonb location data type string", "type": "object", "properties": { "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lon": { "type": "number", "format": "double", "x-go-name": "Lon" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "GeopointMySQL": { "description": "GeopointMySQL type to handle mysql json location data type which scans as []byte", "type": "object", "properties": { "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lon": { "type": "number", "format": "double", "x-go-name": "Lon" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Image": { "description": "Image type to handle all images", "type": "object", "properties": { "ai_description": { "type": "string", "x-go-name": "AIDescription" }, "ai_position": { "type": "integer", "format": "int64", "x-go-name": "AIPosition" }, "amenity": { "$ref": "#/definitions/ImageAmenity" }, "best": { "type": "boolean", "x-go-name": "Best" }, "category": { "$ref": "#/definitions/Category" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "interior_primary": { "type": "boolean", "x-go-name": "InteriorPrimary" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "primary": { "type": "boolean", "x-go-name": "Primary" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "review": { "$ref": "#/definitions/Review" }, "skip_enhance": { "type": "boolean", "x-go-name": "SkipEnhance" }, "status": { "type": "string", "x-go-name": "Status" }, "tags": { "type": "string", "x-go-name": "Tags" }, "url": { "type": "string", "x-go-name": "URL" }, "video": { "type": "boolean", "x-go-name": "Video" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "ImageAmenity": { "type": "object", "properties": { "description": { "type": "string", "x-go-name": "Description" }, "name": { "type": "string", "x-go-name": "Name" }, "slug": { "type": "string", "x-go-name": "Slug" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Images": { "description": "Images type to handle jsonb images", "type": "array", "items": { "$ref": "#/definitions/Image" }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "InsurancePlan": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "label": { "type": "string", "x-go-name": "Label" }, "renter_body": { "type": "string", "x-go-name": "RenterBody" }, "renter_headline": { "description": "Generated after load", "type": "string", "x-go-name": "RenterHeadline" }, "requires_driver_verification": { "type": "boolean", "x-go-name": "RequiresDriverVerification" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Item": { "description": "Item type to handle all items", "type": "object", "properties": { "available": { "type": "integer", "format": "int64", "x-go-name": "Available" }, "category": { "type": "string", "x-go-name": "Category" }, "daily": { "type": "boolean", "x-go-name": "Daily" }, "deferred": { "type": "boolean", "x-go-name": "Deferred" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "required": { "type": "boolean", "x-go-name": "Required" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "JSONB": { "description": "JSONB type to handle postgres jsonb data type", "type": "object", "additionalProperties": { }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "JSONBArr": { "description": "JSONBArr type to handle postgres jsonb array data type", "type": "array", "items": { "$ref": "#/definitions/JSONB" }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "JSONBStringArr": { "description": "JSONBStringArr type to handle postgres jsonb string array data type", "type": "array", "items": { "type": "string" }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Links": { "description": "http://jsonapi.org/format/#document-links", "type": "object", "title": "Links represents a JSON API links object, which can include JSON API link objects or strings representing links.", "additionalProperties": { }, "x-go-package": "github.com/smotes/jsonapi" }, "ListingQuestions": { "type": "object", "properties": { "answer": { "type": "string", "x-go-name": "Answer" }, "question": { "type": "string", "x-go-name": "Question" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Locale": { "description": "Locale to hold locale units and currency details", "type": "object", "properties": { "base_currency": { "type": "string", "x-go-name": "Currency" }, "distance_unit": { "type": "string", "x-go-name": "DistanceUnit" }, "length_unit": { "type": "string", "x-go-name": "LengthUnit" }, "liquid_unit": { "type": "string", "x-go-name": "LiquidUnit" }, "weight_unit": { "type": "string", "x-go-name": "WeightUnit" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "LocalizedContent": { "type": "object", "properties": { "field": { "type": "string", "x-go-name": "Field" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "locale": { "type": "string", "x-go-name": "Locale" }, "object_type": { "type": "string", "x-go-name": "ObjectType" }, "text": { "type": "string", "x-go-name": "Text" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "LocalizedContents": { "type": "array", "items": { "$ref": "#/definitions/LocalizedContent" }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Location": { "description": "Location to hold address details", "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "country": { "type": "string", "x-go-name": "Country" }, "county": { "type": "string", "x-go-name": "County" }, "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lng": { "type": "number", "format": "double", "x-go-name": "Lng" }, "state": { "type": "string", "x-go-name": "State" }, "street": { "type": "string", "x-go-name": "Street" }, "zip": { "type": "string", "x-go-name": "Zip" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "NearbyCampground": { "description": "Combines external campgrounds and unclaimed campgrounds (locality content of type campground)", "type": "object", "properties": { "claimed_campground_id": { "type": "integer", "format": "int64", "x-go-name": "ClaimedCampgroundID" }, "distance_in_miles": { "type": "number", "format": "double", "x-go-name": "DistanceInMiles" }, "is_claimed": { "type": "boolean", "x-go-name": "Claimed" }, "is_odn": { "type": "boolean", "x-go-name": "IsODN" }, "location": { "$ref": "#/definitions/Location" }, "name": { "type": "string", "x-go-name": "Name" }, "odn_id": { "type": "string", "x-go-name": "OdnID" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "url": { "type": "string", "x-go-name": "URL" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "NearbyContent": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/NearbyLocation" }, "x-go-name": "Data" }, "title": { "type": "string", "x-go-name": "Title" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "NearbyGuideParkContent": { "type": "object", "properties": { "id": { "type": "string", "x-go-name": "ID" }, "images": { "type": "array", "items": { }, "x-go-name": "Images" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "title": { "type": "string", "x-go-name": "Title" }, "url": { "type": "string", "x-go-name": "URL" }, "url_path": { "type": "string", "x-go-name": "URLPath" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "NearbyLocation": { "description": "NearbyLocation type", "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "city_page_path": { "type": "string", "x-go-name": "Path" }, "data_type": { "type": "string", "x-go-name": "DataType" }, "description": { "type": "string", "x-go-name": "Description" }, "display": { "type": "string", "x-go-name": "Display" }, "geopoint": { "$ref": "#/definitions/GeopointMySQL" }, "id": { "type": "string", "x-go-name": "ID" }, "listing_count": { "type": "integer", "format": "int64", "x-go-name": "ListingCount" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "state": { "type": "string", "x-go-name": "State" }, "state_name": { "type": "string", "x-go-name": "StateName" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "OwnerReviewResponse": { "type": "object", "properties": { "text": { "type": "string", "x-go-name": "Text" }, "timestamp": { "type": "string", "format": "date-time", "x-go-name": "Timestamp" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "PrepFee": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "description": { "type": "string", "x-go-name": "Description" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "PriceBreakdownResponse": { "type": "object", "properties": { "delivery_fee": { "type": "integer", "format": "int64", "x-go-name": "DeliveryFee" }, "duration": { "type": "integer", "format": "int64", "x-go-name": "Duration" }, "guest_fee": { "type": "integer", "format": "int64", "x-go-name": "GuestFee" }, "insurance": { "type": "integer", "format": "int64", "x-go-name": "Insurance" }, "original_total": { "type": "integer", "format": "int64", "x-go-name": "OriginalTotal" }, "prep_fee": { "type": "integer", "format": "int64", "x-go-name": "PrepFee" }, "rental_amount": { "type": "integer", "format": "int64", "x-go-name": "RentalAmount" }, "rental_amount_per_day": { "type": "integer", "format": "int64", "x-go-name": "RentalAmountPerDay" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "ProcessedAmenity": { "type": "object", "properties": { "available": { "type": "boolean", "x-go-name": "Available" }, "category": { "type": "string", "x-go-name": "Category" }, "id": { "type": "string", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "name_available": { "type": "string", "x-go-name": "NameAvailable" }, "name_unavailable": { "type": "string", "x-go-name": "NameUnavailable" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "ProcessedCampsiteCategoryAmenity": { "type": "object", "properties": { "available": { "type": "boolean", "x-go-name": "Available" }, "category": { "type": "string", "x-go-name": "Category" }, "id": { "type": "string", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Relationship": { "type": "object", "title": "Relationship represents a member of the JSON API relationships object.", "properties": { "data": { "type": "object", "x-go-name": "Data" }, "links": { "$ref": "#/definitions/Links" }, "meta": { "type": "object", "additionalProperties": { }, "x-go-name": "Meta" } }, "x-go-package": "github.com/smotes/jsonapi" }, "Relationships": { "description": "http://jsonapi.org/format/#document-resource-object-relationships", "type": "object", "title": "Relationships represents a JSON API relationships object", "additionalProperties": { "$ref": "#/definitions/Relationship" }, "x-go-package": "github.com/smotes/jsonapi" }, "Rental": { "description": "Rental type", "type": "object", "properties": { "FeaturesMap": { "type": "object", "additionalProperties": { } }, "active_options": { "$ref": "#/definitions/CustomPrices" }, "ai_data": { "$ref": "#/definitions/JSONB" }, "allows_long_term": { "type": "boolean", "x-go-name": "AllowsLongTerm" }, "availability_set": { "type": "boolean", "x-go-name": "AvailabilitySet" }, "average_ratings": { "$ref": "#/definitions/AverageRatings" }, "average_reviews": { "$ref": "#/definitions/AverageReviews" }, "blend_logic_source": { "type": "string", "x-go-name": "BlendLogicSource" }, "booking_leeway_days": { "type": "integer", "format": "int64", "x-go-name": "BookingLeewayDays" }, "booking_prices": { "description": "Pricing", "type": "array", "items": { "$ref": "#/definitions/BookingPrice" }, "x-go-name": "BookingPrices" }, "bookings": { "$ref": "#/definitions/DateRanges" }, "breadcrumb": { "$ref": "#/definitions/Breadcrumb" }, "campground": { "$ref": "#/definitions/ExternalCampground" }, "campground_catalog": { "$ref": "#/definitions/CampgroundRentalCatalog" }, "campground_odn_id": { "type": "string", "x-go-name": "CampgroundOdnID" }, "campsite_category": { "$ref": "#/definitions/CampsiteCategory" }, "campsite_category_catalog": { "$ref": "#/definitions/CampsiteCategoryRentalCatalog" }, "can_charge_security_deposit": { "type": "boolean", "x-go-name": "CanChargeSecurityDeposit" }, "cancel_policy": { "type": "string", "x-go-name": "CancelPolicy" }, "cancel_policy_combo_bookings": { "type": "string", "x-go-name": "CancelPolicyComboBookings" }, "cancel_text": { "type": "string", "x-go-name": "CancelText" }, "catalog": { "$ref": "#/definitions/RentalCatalog" }, "check_in": { "type": "integer", "format": "int64", "x-go-name": "CheckIn" }, "check_out": { "type": "integer", "format": "int64", "x-go-name": "CheckOut" }, "child_rental_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "ChildRentalIDs" }, "child_rentals": { "type": "array", "items": { "$ref": "#/definitions/ChildRental" }, "x-go-name": "ChildRentals" }, "children_count": { "type": "integer", "format": "int64", "x-go-name": "ChildrenCount" }, "coachnet_ready": { "type": "boolean", "x-go-name": "CoachnetReady" }, "coachnet_required": { "type": "boolean", "x-go-name": "CoachnetRequired" }, "combined_special_hours": { "$ref": "#/definitions/SpecialHours" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "current_location_id": { "type": "integer", "format": "int64", "x-go-name": "CurrentLocationID" }, "custom_insurance_text": { "type": "string", "x-go-name": "CustomInsuranceText" }, "dates": { "$ref": "#/definitions/DateRanges" }, "dealer": { "type": "boolean", "x-go-name": "Dealer" }, "delivery": { "type": "boolean", "x-go-name": "Delivery" }, "delivery_radius": { "type": "integer", "format": "int64", "x-go-name": "DeliveryRadius" }, "delivery_radius_miles": { "type": "number", "format": "double", "x-go-name": "DeliveryRadiusMiles" }, "delivery_radius_unit": { "type": "string", "x-go-name": "DeliveryRadiusUnit" }, "delivery_usage_item": { "$ref": "#/definitions/UsageBasedItem" }, "delivery_usage_item_id": { "type": "integer", "format": "int64", "x-go-name": "DeliveryUsageItemID" }, "deposit_percentage": { "type": "number", "format": "double", "x-go-name": "DepositPercentage" }, "description": { "type": "string", "x-go-name": "Description" }, "description_included": { "description": "Experimental fields", "type": "string", "x-go-name": "DescriptionIncluded" }, "description_other": { "type": "string", "x-go-name": "DescriptionOther" }, "description_recommendations": { "type": "string", "x-go-name": "DescriptionRecommendations" }, "disallow_movement": { "type": "boolean", "x-go-name": "DisallowMovement" }, "display_vehicle_type": { "type": "string", "x-go-name": "DisplayType" }, "distance": { "type": "number", "format": "double", "x-go-name": "Distance" }, "distributed_ratings": { "$ref": "#/definitions/DistributedRatings" }, "driving_distance": { "type": "number", "format": "double", "x-go-name": "DrivingDistance" }, "dropoff_unavailable": { "$ref": "#/definitions/BlockedWeekDays" }, "education": { "type": "array", "items": { "$ref": "#/definitions/EducationalModule" }, "x-go-name": "EducationalContent" }, "estimated_delivery_price_per_mile": { "type": "integer", "format": "int64", "x-go-name": "EstimatedDeliveryPricePerMile" }, "explanation": { "$ref": "#/definitions/SearchExplanation" }, "external": { "type": "boolean", "x-go-name": "External" }, "external_site_url": { "type": "string", "x-go-name": "ExternalSiteURL" }, "favorite": { "description": "Using a bool pointer trick to get around indexing this computed field in elastic\nIf this was a regular bool, it would index the `favorite` field which we don't need to do.\nwe do want to return this field when raw_json=true is used since ios and android apps don't use the json-api response", "type": "boolean", "x-go-name": "Favorite" }, "favorite_count": { "type": "integer", "format": "int64", "x-go-name": "FavoriteCount" }, "features": { "$ref": "#/definitions/JSONB" }, "filtered_description": { "type": "string", "x-go-name": "FilteredDescription" }, "filtered_name": { "type": "string", "x-go-name": "FilteredName" }, "first_published": { "type": "string", "format": "date-time", "x-go-name": "FirstPublished" }, "generator_usage_item": { "$ref": "#/definitions/UsageBasedItem" }, "generator_usage_item_id": { "description": "Usage Items", "type": "integer", "format": "int64", "x-go-name": "GeneratorUsageItemID" }, "geopoint": { "$ref": "#/definitions/Geopoint" }, "group_on_map": { "type": "boolean", "x-go-name": "GroupOnMap" }, "group_reviews_num": { "type": "integer", "format": "int64", "x-go-name": "GroupReviewsNum" }, "group_reviews_score": { "type": "number", "format": "double", "x-go-name": "GroupReviewsScore" }, "group_score": { "type": "number", "format": "double", "x-go-name": "GroupScore" }, "has_been_published": { "type": "boolean", "x-go-name": "HasBeenPublished" }, "has_checkout_questions": { "type": "boolean", "x-go-name": "HasCheckoutQuestions" }, "hidden": { "type": "boolean", "x-go-name": "Hidden" }, "host_notes": { "type": "string", "x-go-name": "HostNotes" }, "house_rules": { "type": "string", "x-go-name": "HouseRules" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "images": { "$ref": "#/definitions/Images" }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "instant_book_banned": { "type": "boolean", "x-go-name": "InstantBookBanned" }, "instant_book_leeway": { "type": "integer", "format": "int64", "x-go-name": "InstantBookLeeway" }, "instant_book_type": { "type": "string", "x-go-name": "InstantBookType" }, "insurance_coverage": { "type": "string", "x-go-name": "InsuranceCoverage" }, "insurance_eligible": { "type": "boolean", "x-go-name": "InsuranceEligible" }, "insurance_plan": { "$ref": "#/definitions/InsurancePlan" }, "insurance_renter_adjustable": { "description": "Insurance", "type": "boolean", "x-go-name": "InsuranceRenterAdjustable" }, "insurance_state": { "type": "string", "x-go-name": "InsuranceState" }, "items": { "$ref": "#/definitions/RentalItems" }, "last_published": { "type": "string", "format": "date-time", "x-go-name": "LastPublished" }, "listing_questions": { "type": "array", "items": { "$ref": "#/definitions/ListingQuestions" }, "x-go-name": "ListingQuestions" }, "locale": { "$ref": "#/definitions/Locale" }, "localized_content": { "$ref": "#/definitions/LocalizedContents" }, "location": { "$ref": "#/definitions/Location" }, "low_price_per_day": { "type": "integer", "format": "int64", "x-go-name": "LowPricePerDay" }, "low_price_per_month": { "type": "integer", "format": "int64", "x-go-name": "LowPricePerMonth" }, "low_price_per_week": { "type": "integer", "format": "int64", "x-go-name": "LowPricePerWeek" }, "mileage_usage_item": { "$ref": "#/definitions/UsageBasedItem" }, "mileage_usage_item_id": { "type": "integer", "format": "int64", "x-go-name": "MileageUsageItemID" }, "min_bundle_day_price": { "type": "integer", "format": "int64", "x-go-name": "MinBundleDayPrice" }, "min_bundle_day_price_with_delivery": { "type": "integer", "format": "int64", "x-go-name": "MinBundleDayPriceWithDelivery" }, "minimum_days": { "type": "integer", "format": "int64", "x-go-name": "MinimumDays" }, "minimum_days_pricing_rule": { "type": "integer", "format": "int64", "x-go-name": "MinimumDaysPricingRule" }, "minimum_deposit": { "type": "integer", "format": "int64", "x-go-name": "MinimumDeposit" }, "minimum_renter_age": { "type": "integer", "format": "int64", "x-go-name": "MinimumRenterAge" }, "misc": { "type": "object", "additionalProperties": { }, "x-go-name": "Misc" }, "monthly_discount": { "type": "integer", "format": "int64", "x-go-name": "MonthlyDiscount" }, "name": { "type": "string", "x-go-name": "Name" }, "nearby_content": { "type": "array", "items": { "$ref": "#/definitions/NearbyContent" }, "x-go-name": "NearbyContent" }, "od_stays_opt_in": { "type": "boolean", "x-go-name": "ODStaysOptIn" }, "original_url": { "type": "string", "x-go-name": "OriginalURL" }, "owner": { "$ref": "#/definitions/User" }, "owner_metric_scores": { "description": "Debugging", "type": "object", "additionalProperties": { }, "x-go-name": "OwnerMetricScores" }, "owner_score": { "type": "number", "format": "double", "x-go-name": "OwnerScore" }, "owner_user_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerUserID" }, "parent_id": { "description": "Grouping", "type": "integer", "format": "int64", "x-go-name": "ParentID" }, "pickup_unavailable": { "$ref": "#/definitions/BlockedWeekDays" }, "platform_blocks": { "$ref": "#/definitions/DateRanges" }, "position": { "description": "Score", "type": "integer", "format": "int64", "x-go-name": "Position" }, "preferred_primary_image": { "$ref": "#/definitions/Image" }, "prep_fee": { "$ref": "#/definitions/PrepFee" }, "presentment_currency": { "description": "json keys are used for elastic serialization AND raw_json=true response.\nuse omitempty to keep these fields out of elastic since they are calculated", "type": "string", "x-go-name": "PresentmentCurrency" }, "price_estimate": { "type": "integer", "format": "int64", "x-go-name": "PriceEstimate" }, "price_gap": { "type": "integer", "format": "int64", "x-go-name": "PriceGap" }, "price_per_day": { "type": "integer", "format": "int64", "x-go-name": "PricePerDay" }, "price_per_month": { "type": "integer", "format": "int64", "x-go-name": "PricePerMonth" }, "price_per_week": { "type": "integer", "format": "int64", "x-go-name": "PricePerWeek" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "pro": { "type": "boolean", "x-go-name": "Pro" }, "published": { "description": "flags", "type": "boolean", "x-go-name": "Published" }, "ranking": { "type": "object", "additionalProperties": { }, "x-go-name": "Ranking" }, "rental_category": { "type": "string", "x-go-name": "RentalCategory" }, "rental_price_usage_item": { "$ref": "#/definitions/UsageBasedItem" }, "rental_price_usage_item_id": { "type": "integer", "format": "int64", "x-go-name": "RentalPriceUsageItemID" }, "rental_score": { "type": "number", "format": "double", "x-go-name": "RentalScore" }, "rental_views_last_30_days": { "type": "integer", "format": "int64", "x-go-name": "RentalViewsLast30Days" }, "request_less_than_minimum_days": { "type": "integer", "format": "int64", "x-go-name": "RequestLessThanMinimumDays" }, "review_scores": { "$ref": "#/definitions/ReviewScores" }, "reviews_num": { "type": "integer", "format": "int64", "x-go-name": "ReviewsNum" }, "same_sort_count": { "type": "integer", "format": "int64", "x-go-name": "SameSortCount" }, "same_sort_types": { "type": "integer", "format": "int64", "x-go-name": "SameSortTypes" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "seatbelts": { "type": "integer", "format": "int64", "x-go-name": "Seatbelts" }, "security_deposit": { "type": "integer", "format": "int64", "x-go-name": "SecurityDeposit" }, "seo_content": { "description": "SEO Links fetched from the Content index and CMS API during rental indexing", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "additionalProperties": { } } }, "x-go-name": "SEOContent" }, "settlement_currency": { "type": "string", "x-go-name": "SettlementCurrency" }, "sleeps": { "type": "integer", "format": "int64", "x-go-name": "Sleeps" }, "sleeps_adults": { "type": "integer", "format": "int64", "x-go-name": "SleepsAdults" }, "sleeps_kids": { "type": "integer", "format": "int64", "x-go-name": "SleepsKids" }, "slug": { "type": "string", "x-go-name": "Slug" }, "smart_photo_score": { "type": "number", "format": "double", "x-go-name": "SmartPhotoScore" }, "sort_score": { "type": "number", "format": "double", "x-go-name": "SortScore" }, "summary": { "type": "string", "x-go-name": "Summary" }, "tags": { "$ref": "#/definitions/Tags" }, "tax_rates": { "type": "array", "items": { "$ref": "#/definitions/TaxRate" }, "x-go-name": "TaxRates" }, "type": { "type": "string", "x-go-name": "Type" }, "unavailable": { "type": "boolean", "x-go-name": "Unavailable" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" }, "use_tax_inclusive_pricing": { "type": "boolean", "x-go-name": "UseTaxInclusivePricing" }, "user_slug": { "type": "string", "x-go-name": "UserSlug" }, "vacation_package_min_nightly_rate": { "type": "integer", "format": "int64", "x-go-name": "VacationPackageMinNightlyRate" }, "vacation_package_nightly_rate": { "type": "integer", "format": "int64", "x-go-name": "VacationPackageNightlyRate" }, "vehicle_amps": { "type": "integer", "format": "int64", "x-go-name": "VehicleAmps" }, "vehicle_box_length": { "type": "number", "format": "double", "x-go-name": "VehicleBoxLength" }, "vehicle_class": { "type": "string", "x-go-name": "VehicleClass" }, "vehicle_dry_weight": { "type": "integer", "format": "int64", "x-go-name": "VehicleDryWeight" }, "vehicle_gvwr": { "type": "integer", "format": "int64", "x-go-name": "VehicleGVWR" }, "vehicle_height": { "type": "number", "format": "double", "x-go-name": "VehicleHeight" }, "vehicle_length": { "type": "number", "format": "double", "x-go-name": "VehicleLength" }, "vehicle_length_with_hitch": { "type": "number", "format": "double", "x-go-name": "VehicleLengthWithHitch" }, "vehicle_license_plate_state": { "type": "string", "x-go-name": "VehicleLicensePlateState" }, "vehicle_make": { "type": "string", "x-go-name": "VehicleMake" }, "vehicle_model": { "type": "string", "x-go-name": "VehicleModel" }, "vehicle_title": { "type": "string", "x-go-name": "VehicleTitle" }, "vehicle_width": { "type": "number", "format": "double", "x-go-name": "VehicleWidth" }, "vehicle_year": { "type": "integer", "format": "int64", "x-go-name": "VehicleYear" }, "weekly_discount": { "type": "integer", "format": "int64", "x-go-name": "WeeklyDiscount" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "RentalCatalog": { "type": "object", "properties": { "amenities_categories": { "type": "array", "items": { "$ref": "#/definitions/AmenityCategory" }, "x-go-name": "AmenitiesCategories" }, "amenity_groups": { "type": "array", "items": { "$ref": "#/definitions/AmenityGroup" }, "x-go-name": "AmenityGroups" }, "processed_amenities": { "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/definitions/ProcessedAmenity" } }, "x-go-name": "ProcessedAmenities" }, "towable_features": { "type": "array", "items": { "$ref": "#/definitions/TowableFeature" }, "x-go-name": "TowableFeatures" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "RentalItems": { "description": "RentalItems type to handle jsonb items", "type": "array", "items": { "$ref": "#/definitions/Item" }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Resource": { "description": "Note that any of the optional keys will be omitted if a value is not provided.\n\nFor more information, see the specification at:\n\nhttp://jsonapi.org/format/#document-resource-object\n\nhttp://jsonapi.org/format/#document-resource-identifier-objects", "type": "object", "title": "Resource represents a JSON API resource identifier or resource object.\nEach valid JSON API resource object must contain at least the \"id\" and \"type\" keys,\nand may contain the optional \"attributes\", \"relationships\", \"links\" and \"meta\" keys.", "properties": { "attributes": { "type": "object", "additionalProperties": { }, "x-go-name": "Attributes" }, "id": { "type": "string", "x-go-name": "ID" }, "links": { "$ref": "#/definitions/Links" }, "meta": { "type": "object", "additionalProperties": { }, "x-go-name": "Meta" }, "relationships": { "$ref": "#/definitions/Relationships" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/smotes/jsonapi" }, "Review": { "description": "Review type", "type": "object", "properties": { "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "cleanliness_score": { "type": "number", "format": "double", "x-go-name": "CleanlinessScore" }, "communication_score": { "type": "number", "format": "double", "x-go-name": "CommunicationScore" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "geopoint": { "$ref": "#/definitions/Geopoint" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "images": { "$ref": "#/definitions/JSONBStringArr" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "listing_score": { "type": "number", "format": "double", "x-go-name": "ListingAccuracyScore" }, "mechanical_score": { "type": "number", "format": "double", "x-go-name": "MechanicalScore" }, "outdoorsy_only": { "type": "boolean", "x-go-name": "OutdoorsyOnly" }, "owner_can_respond": { "type": "boolean", "x-go-name": "OwnerCanRespond" }, "owner_response": { "$ref": "#/definitions/OwnerReviewResponse" }, "rental": { "$ref": "#/definitions/Rental" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "rental_name": { "type": "string", "x-go-name": "RentalName" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "slug": { "type": "string", "x-go-name": "RentalSlug" }, "text": { "type": "string", "x-go-name": "Text" }, "user_id": { "type": "integer", "format": "int64", "x-go-name": "UserID" }, "user_recommend": { "type": "boolean", "x-go-name": "UserRecommend" }, "value_score": { "type": "number", "format": "double", "x-go-name": "ValueScore" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "ReviewScores": { "type": "object", "properties": { "bayesian_rating": { "type": "number", "format": "double", "x-go-name": "BayesianRating" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "SearchExplanation": { "description": "See https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search-request-explain.html.", "type": "object", "title": "SearchExplanation explains how the score for a hit was computed.", "properties": { "description": { "type": "string", "x-go-name": "Description" }, "details": { "type": "array", "items": { "$ref": "#/definitions/SearchExplanation" }, "x-go-name": "Details" }, "value": { "type": "number", "format": "double", "x-go-name": "Value" } }, "x-go-package": "github.com/olivere/elastic/v7" }, "SpecialHour": { "description": "used to handle special hours for rental", "type": "object", "properties": { "drop_off_unavailable": { "type": "boolean", "x-go-name": "DropOffUnavailable" }, "end_date": { "type": "string", "x-go-name": "EndDate" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "pick_up_unavailable": { "type": "boolean", "x-go-name": "PickUpUnavailable" }, "repeats": { "type": "boolean", "x-go-name": "Repeats" }, "start_date": { "type": "string", "x-go-name": "StartDate" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "SpecialHours": { "type": "array", "items": { "$ref": "#/definitions/SpecialHour" }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "Tags": { "description": "Tags type to handle rental tags from prostgres jsonb data type", "type": "array", "items": { "$ref": "#/definitions/tag" }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "TaxRate": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "rate": { "type": "number", "format": "double", "x-go-name": "Rate" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "TotalCategoryCounts": { "type": "object", "properties": { "lodging_site": { "type": "integer", "format": "uint64", "x-go-name": "LodgingSite" }, "rv_site": { "type": "integer", "format": "uint64", "x-go-name": "RvSite" }, "stationary_camper_site": { "type": "integer", "format": "uint64", "x-go-name": "StationaryCamperSite" }, "tent_site": { "type": "integer", "format": "uint64", "x-go-name": "TentSite" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "TowableFeature": { "type": "object", "properties": { "feature": { "type": "string", "x-go-name": "Slug" }, "name": { "type": "string", "x-go-name": "Name" }, "options": { "$ref": "#/definitions/JSONB" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "UbiTier": { "description": "UbiTier to hold usage based item tier", "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "maximum": { "type": "integer", "format": "int64", "x-go-name": "Maximum" }, "minimum_fee": { "type": "integer", "format": "uint64", "x-go-name": "MinimumFee" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" }, "usage_based_item_id": { "type": "integer", "format": "int64", "x-go-name": "UsageBasedItemID" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "UbiTiers": { "description": "UbiTiers of type []UbiTier", "type": "array", "items": { "$ref": "#/definitions/UbiTier" }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "UsageBasedItem": { "description": "UsageBasedItem based on usage items added by user for their rentals", "type": "object", "properties": { "archived": { "type": "boolean", "x-go-name": "Archived" }, "fee_type": { "type": "string", "x-go-name": "FeeType" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "included": { "type": "number", "format": "double", "x-go-name": "Included" }, "included_period": { "type": "string", "x-go-name": "IncludedPeriod" }, "name": { "type": "string", "x-go-name": "Name" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "single_tier": { "type": "boolean", "x-go-name": "SingleTier" }, "tax_rate_id": { "type": "integer", "format": "int64", "x-go-name": "TaxRateID" }, "tiers": { "$ref": "#/definitions/UbiTiers" }, "unit": { "type": "string", "x-go-name": "Unit" }, "unlimited": { "type": "boolean", "x-go-name": "Unlimited" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "User": { "description": "User type", "type": "object", "properties": { "accept_percent": { "type": "number", "format": "double", "x-go-name": "AcceptPercent" }, "accepted_bookings": { "type": "integer", "format": "int64", "x-go-name": "AcceptedBookings" }, "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "average_response_time": { "type": "number", "format": "double", "x-go-name": "AverageResponseTime" }, "business_description": { "type": "string", "x-go-name": "BusinessDescription" }, "business_name": { "description": "business", "type": "string", "x-go-name": "BusinessName" }, "business_phone": { "type": "string", "x-go-name": "BusinessPhone" }, "business_website": { "type": "string", "x-go-name": "BusinessWebsite" }, "cancel_policy": { "type": "string", "x-go-name": "CancelPolicy" }, "cancel_policy_combo_bookings": { "type": "string", "x-go-name": "CancelPolicyComboBookings" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "dealer": { "type": "boolean", "x-go-name": "Dealer" }, "description": { "description": "bio", "type": "string", "x-go-name": "Description" }, "disable_phone": { "type": "boolean", "x-go-name": "DisablePhone" }, "experience": { "type": "string", "x-go-name": "Experience" }, "filtered_business_description": { "type": "string", "x-go-name": "FilteredBusinessDescription" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "guest": { "type": "boolean", "x-go-name": "Guest" }, "hidden": { "type": "boolean", "x-go-name": "Hidden" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "locale_base_currency": { "type": "string", "x-go-name": "LocaleBaseCurrency" }, "locale_language": { "description": "locale", "type": "string", "x-go-name": "LocaleLanguage" }, "logo_url": { "type": "string", "x-go-name": "Logo" }, "mast_image_url": { "type": "string", "x-go-name": "MastImageURL" }, "median_response_time": { "type": "number", "format": "double", "x-go-name": "MedianResponseTime" }, "outdoorsy_display_name": { "type": "string", "x-go-name": "OutdoorsyDisplayName" }, "owner_reviews_count": { "type": "integer", "format": "int64", "x-go-name": "OwnerReviewsCount" }, "owner_score": { "type": "number", "format": "double", "x-go-name": "OwnerScore" }, "phone": { "description": "metric influencing fields", "type": "string", "x-go-name": "Phone" }, "pro": { "type": "boolean", "x-go-name": "Pro" }, "response_percent": { "type": "number", "format": "double", "x-go-name": "ResponsePercent" }, "reviews_count": { "type": "integer", "format": "int64", "x-go-name": "ReviewsCount" }, "score": { "description": "score", "type": "number", "format": "double", "x-go-name": "Score" }, "search_metrics_start_date": { "type": "string", "format": "date-time", "x-go-name": "SearchMetricsStartDate" }, "slug": { "type": "string", "x-go-name": "Slug" }, "social": { "$ref": "#/definitions/JSONBArr" }, "time_to_first_action": { "type": "integer", "format": "int64", "x-go-name": "TimeToFirstAction" }, "total_bookings": { "type": "integer", "format": "int64", "x-go-name": "TotalBookings" }, "years_owned": { "type": "integer", "format": "int64", "x-go-name": "YearsOwned" }, "years_rving": { "type": "integer", "format": "int64", "x-go-name": "YearsRVing" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" }, "crumb": { "type": "object", "properties": { "title": { "type": "string", "x-go-name": "Title" }, "url": { "type": "string", "x-go-name": "URL" } }, "x-go-package": "github.com/outdoorsy/odc-search/internal/breadcrumb/transport/http" }, "geoBounds": { "type": "object", "properties": { "ne": { "$ref": "#/definitions/geoPoint" }, "sw": { "$ref": "#/definitions/geoPoint" } }, "x-go-package": "github.com/outdoorsy/odc-search/internal/locality/transport/http" }, "geoPoint": { "type": "object", "properties": { "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lon": { "type": "number", "format": "double", "x-go-name": "Lon" } }, "x-go-package": "github.com/outdoorsy/odc-search/internal/locality/transport/http" }, "tag": { "type": "object", "properties": { "count": { "type": "integer", "format": "int64", "x-go-name": "Count" }, "slug": { "type": "string", "x-go-name": "Slug" }, "tag": { "type": "string", "x-go-name": "Tag" } }, "x-go-package": "github.com/outdoorsy/odc-search/types" } }, "responses": { "badRequestError": { "description": "Invalid input or state means you're bad", "headers": { "Error": { "type": "string" } } }, "closestResponse": { "description": "", "schema": { "$ref": "#/definitions/geoPoint" }, "headers": { "crumbs": { "type": "array", "items": { "$ref": "#/definitions/crumb" } }, "locale": { "type": "string" }, "location": { } } }, "jsonApiExternalCampgroundsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Resource" } } }, "jsonApiGetAddressForIPResponse": { "description": "", "schema": { "$ref": "#/definitions/GeodataResponse" } }, "jsonApiHomepageParks": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Resource" } } }, "jsonApiNearbyCampgroundsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/NearbyCampground" } } }, "jsonApiRentalResponse": { "description": "", "schema": { "$ref": "#/definitions/Resource" } }, "jsonApiRentalsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Resource" } } }, "jsonApiRentalsSearchResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Rental" } } }, "jsonApiVacationPackagesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Resource" } } }, "listResponse": { "description": "", "schema": { "type": "object", "additionalProperties": { }, "$ref": "#/definitions/geoBounds" }, "headers": { "bounds": { }, "id": { "type": "string" }, "locale": { "type": "string" }, "location": { }, "metadata": { }, "parent": { "type": "string" }, "slug": { "type": "string" }, "url": { "type": "string" } } }, "notFoundError": { "description": "Not found error" }, "retrieveResponse": { "description": "", "schema": { "type": "object", "additionalProperties": { }, "$ref": "#/definitions/geoBounds" }, "headers": { "bounds": { }, "id": { "type": "string" }, "locale": { "type": "string" }, "location": { }, "metadata": { }, "parent": { "type": "string" }, "slug": { "type": "string" }, "url": { "type": "string" } } } }, "securityDefinitions": { "Bearer": { "type": "apiKey", "name": "Authorization", "in": "header" } }, "security": [ { "Bearer": [ "[]" ] } ] }