{ "consumes": [ "application/json" ], "produces": [ "application/json" ], "swagger": "2.0", "info": { "description": "The Outdoorsy API (or simply \"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 API Documentation", "version": "0.0.1" }, "basePath": "/v0", "paths": { "/2fa/send": { "post": { "description": "Create and send verification code", "tags": [ "twoFactorAuth" ], "operationId": "sendCode", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/TwoFARequest" } } ], "responses": { "201": { "$ref": "#/responses/successResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/2fa/setup-method": { "post": { "description": "Setup preferred method", "tags": [ "twoFactorAuth" ], "operationId": "setupPreferredMethod", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/TwoFASetupMethod" } } ], "responses": { "201": { "$ref": "#/responses/successResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/2fa/verify": { "patch": { "description": "Verify code", "tags": [ "twoFactorAuth" ], "operationId": "verifyCode", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/VerifyCodeRequest" } } ], "responses": { "200": { "$ref": "#/responses/successResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/admin/ai-reply-suggestions": { "get": { "description": "Returns a paginated list of AI-generated reply suggestions for the specified conversation.\nSuggestions are ordered by creation date in descending order (newest first).\nRequires conversation_id query parameter. Supports pagination via offset and limit.\nFilter by confidence level with threshold_min and threshold_max (inclusive); if omitted,\nthreshold_min defaults to 0 and threshold_max defaults to 1.\nAdmin access required.", "tags": [ "conversations" ], "summary": "List AI reply suggestions for a conversation.", "operationId": "listAiReplySuggestions", "parameters": [ { "type": "integer", "format": "int64", "name": "Offset", "in": "query" }, { "type": "integer", "format": "int64", "name": "Limit", "in": "query" }, { "type": "number", "format": "double", "name": "ThresholdMin", "in": "query" }, { "type": "number", "format": "double", "name": "ThresholdMax", "in": "query" }, { "type": "string", "x-go-name": "ConversationID", "name": "conversation_id", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/aiReplySuggestionsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/admin/announcement-groups": { "get": { "description": "Lists all announcement groups (admin only)", "tags": [ "announcements" ], "operationId": "readManyAnnouncementGroups", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "AnnouncementID", "name": "announcement_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/readManyAnnouncementGroupsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Creates a new announcement group (admin only)", "tags": [ "announcements" ], "operationId": "createAnnouncementGroup", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CreateUpdateAnnouncementGroupRequest" } } ], "responses": { "201": { "$ref": "#/responses/createAnnouncementGroupResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/admin/announcement-groups/{announcement_group_id}": { "get": { "description": "Gets a specific announcement group by ID (admin only)", "tags": [ "announcements" ], "operationId": "readOneAnnouncementGroup", "responses": { "200": { "$ref": "#/responses/readOneAnnouncementGroupResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Deletes an announcement (admin only)", "tags": [ "announcements" ], "operationId": "deleteAnnouncementGroup", "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Updates an announcement (admin only)", "tags": [ "announcements" ], "operationId": "updateAnnouncementGroup", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CreateUpdateAnnouncementGroupRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/admin/announcements": { "get": { "description": "Lists all announcements (admin only)", "tags": [ "announcements" ], "operationId": "readManyAnnouncements", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UserId", "name": "user_id", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/readManyAnnouncementsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Creates a new announcement (admin only)", "tags": [ "announcements" ], "operationId": "createAnnouncement", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CreateUpdateAnnouncementRequest" } } ], "responses": { "201": { "$ref": "#/responses/createAnnouncementResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/admin/announcements/{announcement_id}": { "get": { "description": "Gets a specific announcement by ID (admin only)", "tags": [ "announcements" ], "operationId": "readOneAnnouncement", "responses": { "200": { "$ref": "#/responses/readOneAnnouncementResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Deletes an announcement (admin only)", "tags": [ "announcements" ], "operationId": "deleteAnnouncement", "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Updates an announcement (admin only)", "tags": [ "announcements" ], "operationId": "updateAnnouncement", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CreateUpdateAnnouncementRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/admin/users/banks/payouts-triggered": { "get": { "description": "List all payment processing infos with payouts-triggered missing field (admin only)", "tags": [ "banks" ], "operationId": "getBanksWithPayoutsTriggered", "responses": { "200": { "$ref": "#/responses/listBankResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/admin/users/banks/update": { "post": { "description": "Updates the specified connected bank", "tags": [ "banks" ], "operationId": "updateBankAccount", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/VendorBody" } } ], "responses": { "204": { "$ref": "#/responses/bankResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/admin/users/{user_id}/resend-confirmation": { "post": { "description": "Resends email confirmation for a specific user (Admin only)", "tags": [ "admin" ], "operationId": "adminAuthCredsResendForUser", "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/admin/validations": { "get": { "tags": [ "validations" ], "summary": "Returns a list of validations in the system.", "operationId": "adminListValidations", "parameters": [ { "type": "string", "description": "A hash[string]string object containing the fields you wish to query on. If the field names and values match an entry exactly, that entry will be returned. For example, this could be used to fetch a specific tint validation row by sending `{\"booking_id\":\"1234\",\"driver_id\":\"5678\",\"validator\":\"tint\"}`", "name": "args", "in": "query" }, { "type": "string", "description": "A hash[string]string object containing the fields you wish to query on. If the field names and values are contained by one or more entries, those entries will be returned. For example, this could be used to fetch all tint validations for a specific booking by sending `{\"booking_id\":\"1234\",\"validator\":\"tint\"}`", "name": "contains_args", "in": "query" }, { "type": "string", "description": "The status on which you wish to filter. Valid options are `pending, processing, passed, flagged, error, failed`", "name": "status", "in": "query" }, { "type": "string", "description": "The validator on which you wish to filter. Valid options are `tint`.", "name": "validator", "in": "query" }, { "type": "string", "description": "The order in which to return results. Typically you may pass the name of a field in the object to order by that field ASC. If you want DESC, prepend the name with `-`", "name": "order_by", "in": "query" }, { "type": "integer", "description": "Returns list of results for a given limit.", "name": "limit", "in": "query" }, { "type": "integer", "description": "Returns list of results for a given offset.", "name": "offset", "in": "query" } ] } }, "/admin/validations/{id}": { "get": { "tags": [ "validations" ], "summary": "Returns a validation in the system by its ID.", "operationId": "adminGetValidation", "parameters": [ { "pattern": "^[a-f\\\\d]{24}$", "type": "string", "description": "A 24 character hex-encoded ObjectID value.", "name": "id", "in": "path", "required": true } ] }, "delete": { "tags": [ "validations" ], "summary": "Flags a validation as deleted.", "operationId": "adminDeleteValidation", "parameters": [ { "pattern": "^[a-f\\\\d]{24}$", "type": "string", "description": "A 24 character hex-encoded ObjectID value.", "name": "id", "in": "path", "required": true } ] } }, "/admin/validations/{id}/duplicate": { "post": { "tags": [ "validations" ], "summary": "Duplicates a validation, overwriting its arguments to copy its data to another object in the system. This is intended to be used when creating a more specific version of a validation. For example, a user-level validation that needs to be \\\"locked\\\" to a booking by using a user_id,booking_id tuple. Send the tuple you wish this duplicate to use as its identifier as the new_args key in the body.", "operationId": "adminDuplicateValidation", "parameters": [ { "pattern": "^[a-f\\\\d]{24}$", "type": "string", "description": "A 24 character hex-encoded ObjectID value.", "name": "id", "in": "path", "required": true }, { "$ref": "#/definitions/adminDuplicateValidationRequest", "name": "body", "in": "body", "required": true } ] } }, "/admin/validations/{id}/force": { "post": { "tags": [ "validations" ], "summary": "Forces an validation into a `passed` state.", "operationId": "adminForceValidationApproval", "parameters": [ { "pattern": "^[a-f\\\\d]{24}$", "type": "string", "description": "A 24 character hex-encoded ObjectID value.", "name": "id", "in": "path", "required": true } ] } }, "/admin/validations/{id}/history": { "get": { "tags": [ "validations" ], "summary": "Returns the historical list of validation entries.", "operationId": "adminGetValidationHistoryByID", "parameters": [ { "pattern": "^[a-f\\\\d]{24}$", "type": "string", "description": "A 24 character hex-encoded ObjectID value.", "name": "id", "in": "path", "required": true } ] } }, "/admin/validations/{id}/retry": { "post": { "tags": [ "validations" ], "summary": "Retry a validation request if failed or error", "operationId": "adminRetryValidation", "parameters": [ { "pattern": "^[a-f\\\\d]{24}$", "type": "string", "description": "A 24 character hex-encoded ObjectID value.", "name": "id", "in": "path", "required": true } ] } }, "/aggregate-reviews-for-locality": { "get": { "description": "Return a aggregation for reviews for given locality", "tags": [ "reviews" ], "operationId": "aggregateLocalityReviews", "parameters": [ { "type": "number", "format": "double", "x-go-name": "Lat", "name": "lat", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Lng", "name": "lng", "in": "query" }, { "type": "string", "x-go-name": "LocalityType", "name": "locality_type", "in": "query" }, { "type": "string", "x-go-name": "RegionCode", "name": "region_code", "in": "query" }, { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/aggregateLocalityReviewsResponse" } } } }, "/amenities": { "get": { "description": "Returns a list of amenities and the group they belong to", "tags": [ "amenities" ], "operationId": "listAmenitiesGroups", "responses": { "200": { "$ref": "#/responses/amenitiesResponse" }, "default": { "$ref": "#/responses/genericError" } } } }, "/announcements": { "get": { "description": "Gets announcements for current user", "tags": [ "announcements" ], "operationId": "getAnnouncementsForUser", "responses": { "200": { "$ref": "#/responses/getAnnouncementsForUserResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/announcements/{announcement_id}": { "get": { "description": "Gets a specific announcement by ID", "tags": [ "announcements" ], "operationId": "getAnnouncementForID", "responses": { "200": { "$ref": "#/responses/getAnnouncementForUserResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/announcements/{announcement_id}/read": { "post": { "description": "Marks an announcement as read for the current user", "tags": [ "announcements" ], "operationId": "markAnnouncementAsRead", "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/auth/creds/create": { "post": { "description": "If no password is provided then user is considered a guest.", "tags": [ "auth" ], "summary": "Register a new user given a name and email address.", "operationId": "authCredsCreate", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/UserCreateRequest" } } ], "responses": { "200": { "$ref": "#/responses/authCreateResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/auth/creds/forgot": { "post": { "description": "Sends email to registered email with password reset instructions", "tags": [ "auth" ], "operationId": "authCredsForget", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/PasswordForgotRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/auth/creds/login": { "post": { "tags": [ "auth" ], "operationId": "authCredsLogin", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/UserLoginRequest" } } ], "responses": { "200": { "$ref": "#/responses/userAuthResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/auth/creds/resend": { "post": { "description": "Resends password reset email", "tags": [ "auth" ], "operationId": "authCredsResend", "responses": { "200": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/auth/dealers/create": { "post": { "description": "Creates a dealer account for unauthenticated users through the self-serve signup flow.\nThe dealer will need to complete email verification and subscription payment before\ngaining full access to Wheelbase.", "tags": [ "auth" ], "summary": "Register a new self-serve dealer account.", "operationId": "authDealersSelfServeCreate", "responses": { "201": { "$ref": "#/responses/userAuthResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/auth/{provider}/callback": { "get": { "tags": [ "auth" ], "summary": "Redirect endpoint after performing oauth flow with facebook, google, apple.", "operationId": "oauthCallback", "parameters": [ { "enum": [ "google", "facebook", "apple" ], "type": "string", "name": "provider", "in": "path", "required": true } ] } }, "/auth/{provider}/login": { "get": { "description": "Redirects to respective identity provider.", "tags": [ "auth" ], "summary": "Entry point for starting oauth flow with specified provider.", "operationId": "oauthLogin", "parameters": [ { "enum": [ "google", "facebook" ], "type": "string", "name": "provider", "in": "path", "required": true } ], "responses": { "200": { "description": "OK" } } } }, "/autosuggestions": { "get": { "tags": [ "users" ], "summary": "Returns a breakdown of previous rentals, bookings or pending reviews.", "operationId": "getAutosuggestions", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/getAutosuggestionsResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/availability": { "get": { "tags": [ "rentals" ], "summary": "Returns list of available rentals for a given date range.", "operationId": "listAvailability", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CampgroundID", "name": "campground_id", "in": "query" }, { "x-go-name": "From", "name": "from", "in": "query", "type": "string" }, { "x-go-name": "To", "name": "to", "in": "query", "type": "string" }, { "type": "boolean", "x-go-name": "OverrideProtections", "name": "override_protections", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeChildren", "name": "include_children", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "query" }, { "type": "boolean", "description": "IncludeMarketplaceOnlyBlocks, if true, includes unavailable bookings\nmarked with outdoorsy_marketplace_only metadata. By default, these blocks\nare excluded. Set to true for Outdoorsy marketplace bookings (combo bookings).", "name": "IncludeMarketplaceOnlyBlocks", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listAvailabilityResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bids": { "get": { "description": "Return list of bids", "tags": [ "instamatch" ], "operationId": "listBids", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "query" }, { "type": "string", "x-go-name": "IDs", "name": "ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "boolean", "x-go-name": "Open", "name": "open", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Order", "name": "order", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "BidMatchOwnerID", "name": "bid_match_owner_id", "in": "query" }, { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "LocationIDs", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "Source", "name": "source", "in": "query" }, { "x-go-name": "CreatedGT", "description": "Date range filters", "name": "created_gt", "in": "query", "type": "string" }, { "x-go-name": "CreatedLT", "name": "created_lt", "in": "query", "type": "string" }, { "x-go-name": "FromGT", "name": "from_gt", "in": "query", "type": "string" }, { "x-go-name": "FromLT", "name": "from_lt", "in": "query", "type": "string" }, { "x-go-name": "ToGT", "name": "to_gt", "in": "query", "type": "string" }, { "x-go-name": "ToLT", "name": "to_lt", "in": "query", "type": "string" }, { "type": "integer", "format": "uint64", "x-go-name": "MaxDayPriceGT", "description": "Price range filters", "name": "max_day_price_gt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "MaxDayPriceLT", "name": "max_day_price_lt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "MinDayPriceGT", "name": "min_day_price_gt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "MinDayPriceLT", "name": "min_day_price_lt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "PricePerDayGT", "name": "price_per_day_gt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "PricePerDayLT", "name": "price_per_day_lt", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CreatedByBookingID", "description": "Booking ID filters", "name": "created_by_booking_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "ClosedByBookingID", "name": "closed_by_booking_id", "in": "query" }, { "type": "boolean", "x-go-name": "Delivery", "description": "Delivery filters", "name": "delivery", "in": "query" }, { "type": "boolean", "x-go-name": "StationaryDelivery", "name": "stationary_delivery", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Travelers", "description": "Travelers filter", "name": "travelers", "in": "query" }, { "type": "string", "x-go-name": "Make", "description": "Vehicle info filters", "name": "make", "in": "query" }, { "type": "string", "x-go-name": "Model", "name": "model", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Year", "name": "year", "in": "query" }, { "type": "string", "x-go-name": "Type", "name": "type", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RenterID", "description": "Admin filters - filter bids through bid_matches", "name": "renter_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listBidsResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Create instamatch request", "tags": [ "instamatch" ], "operationId": "createBid", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Bid" } } ], "responses": { "200": { "$ref": "#/responses/bidResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/bids/available": { "get": { "description": "Returns list of available bids for an owner", "tags": [ "instamatch" ], "operationId": "bidsAvailable", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "query" }, { "type": "string", "x-go-name": "IDs", "name": "ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "boolean", "x-go-name": "Open", "name": "open", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Order", "name": "order", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "BidMatchOwnerID", "name": "bid_match_owner_id", "in": "query" }, { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "LocationIDs", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "Source", "name": "source", "in": "query" }, { "x-go-name": "CreatedGT", "description": "Date range filters", "name": "created_gt", "in": "query", "type": "string" }, { "x-go-name": "CreatedLT", "name": "created_lt", "in": "query", "type": "string" }, { "x-go-name": "FromGT", "name": "from_gt", "in": "query", "type": "string" }, { "x-go-name": "FromLT", "name": "from_lt", "in": "query", "type": "string" }, { "x-go-name": "ToGT", "name": "to_gt", "in": "query", "type": "string" }, { "x-go-name": "ToLT", "name": "to_lt", "in": "query", "type": "string" }, { "type": "integer", "format": "uint64", "x-go-name": "MaxDayPriceGT", "description": "Price range filters", "name": "max_day_price_gt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "MaxDayPriceLT", "name": "max_day_price_lt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "MinDayPriceGT", "name": "min_day_price_gt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "MinDayPriceLT", "name": "min_day_price_lt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "PricePerDayGT", "name": "price_per_day_gt", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "PricePerDayLT", "name": "price_per_day_lt", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CreatedByBookingID", "description": "Booking ID filters", "name": "created_by_booking_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "ClosedByBookingID", "name": "closed_by_booking_id", "in": "query" }, { "type": "boolean", "x-go-name": "Delivery", "description": "Delivery filters", "name": "delivery", "in": "query" }, { "type": "boolean", "x-go-name": "StationaryDelivery", "name": "stationary_delivery", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Travelers", "description": "Travelers filter", "name": "travelers", "in": "query" }, { "type": "string", "x-go-name": "Make", "description": "Vehicle info filters", "name": "make", "in": "query" }, { "type": "string", "x-go-name": "Model", "name": "model", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Year", "name": "year", "in": "query" }, { "type": "string", "x-go-name": "Type", "name": "type", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RenterID", "description": "Admin filters - filter bids through bid_matches", "name": "renter_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listBidsResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bids/{bid_id}/bid-matches/{bid_match_id}/renter-decline": { "post": { "description": "Decline a specific bid match as a renter (guest)", "tags": [ "instamatch" ], "operationId": "renterDeclineBidMatch", "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bids/{id}": { "get": { "description": "Return bid by id", "tags": [ "instamatch" ], "operationId": "getBidById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bidResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Delete instamatch request", "tags": [ "instamatch" ], "operationId": "deleteBid", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BidID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bidResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Update instamatch bid", "tags": [ "instamatch" ], "operationId": "updateBidById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BidID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Bid" } } ], "responses": { "200": { "$ref": "#/responses/bidResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bids/{id}/decline": { "post": { "description": "Decline instamatch request", "tags": [ "instamatch" ], "operationId": "declineBid", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BidID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings": { "get": { "description": "Read many bookings", "tags": [ "bookings" ], "operationId": "listBookings", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "OrderBy", "name": "order_by", "in": "query" }, { "type": "string", "name": "FromLT", "in": "query" }, { "type": "string", "name": "FromGT", "in": "query" }, { "type": "string", "name": "ToLT", "in": "query" }, { "type": "string", "name": "ToGT", "in": "query" }, { "type": "string", "name": "UpdatedLT", "in": "query" }, { "type": "string", "name": "UpdatedGT", "in": "query" }, { "type": "string", "name": "CreatedLT", "in": "query" }, { "type": "string", "name": "CreatedGT", "in": "query" }, { "type": "string", "name": "BookedLT", "in": "query" }, { "type": "string", "name": "BookedGT", "in": "query" }, { "type": "string", "x-go-name": "CSVToken", "name": "csv-token", "in": "query" }, { "type": "boolean", "x-go-name": "Blocking", "name": "blocking", "in": "query" }, { "type": "boolean", "x-go-name": "Calendar", "name": "calendar", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" }, { "type": "string", "x-go-name": "RentalIDsRaw", "name": "rental_ids", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeCoachnet", "name": "include_coachnet", "in": "query" }, { "type": "boolean", "x-go-name": "CSV", "name": "csv", "in": "query" }, { "type": "boolean", "x-go-name": "FullObject", "name": "full_object", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeChildren", "name": "include_children", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RenterID", "name": "renter_id", "in": "query" }, { "type": "boolean", "x-go-name": "Dealer", "name": "dealer", "in": "query" }, { "type": "boolean", "x-go-name": "Instamatch", "name": "instamatch", "in": "query" }, { "type": "boolean", "x-go-name": "HasConsignedPayout", "name": "has_consigned_payout", "in": "query" }, { "type": "string", "x-go-name": "ReturnedLT", "name": "returned_lt", "in": "query" }, { "type": "string", "x-go-name": "ReturnedGT", "name": "returned_gt", "in": "query" }, { "type": "boolean", "x-go-name": "Abandoned", "name": "abandoned", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeAbandoned", "name": "include_abandoned", "in": "query" }, { "type": "string", "x-go-name": "Status", "name": "status", "in": "query" }, { "type": "string", "x-go-name": "Order", "name": "order", "in": "query" }, { "type": "boolean", "x-go-name": "Archived", "name": "archived", "in": "query" }, { "type": "boolean", "x-go-name": "NeedsReview", "name": "needs_review", "in": "query" }, { "type": "boolean", "x-go-name": "Refunded", "name": "refunded", "in": "query" }, { "type": "boolean", "x-go-name": "New", "name": "new", "in": "query" }, { "type": "boolean", "x-go-name": "CoachnetIDSet", "name": "coachnet_id_set", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "ForUserID", "name": "for_user_id", "in": "query" }, { "type": "string", "x-go-name": "IDs", "name": "ids", "in": "query" }, { "type": "string", "x-go-name": "LocationIDs", "name": "location_ids", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeShared", "name": "include_shared", "in": "query" }, { "type": "boolean", "x-go-name": "SharedOnly", "name": "shared", "in": "query" }, { "type": "string", "x-go-name": "Filter", "name": "filter", "in": "query" }, { "type": "string", "x-go-name": "Role", "name": "role", "in": "query" }, { "type": "string", "x-go-name": "HandoffFilter", "name": "handoff_filter", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeQuoteMetadata", "name": "include_quote_metadata", "in": "query" }, { "type": "boolean", "x-go-name": "DeliverableCampground", "name": "deliverable_campground", "in": "query" }, { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" }, { "type": "string", "x-go-name": "Source", "name": "source", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listBookingsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Creates a booking", "tags": [ "bookings" ], "operationId": "createBooking", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BookingRequest" } } ], "responses": { "201": { "$ref": "#/responses/getBookingResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bookings/soonest": { "get": { "description": "Get the current trip or an upcoming trip or returned trip that are within 14 days", "operationId": "bookings", "responses": { "200": { "$ref": "#/responses/getSoonestResponse" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/bookings/stage": { "get": { "description": "Read Many By Stage", "tags": [ "bookings" ], "operationId": "readManyByStageRequest", "parameters": [ { "type": "boolean", "x-go-name": "Archived", "name": "archived", "in": "query" }, { "type": "string", "x-go-name": "StageFilter", "name": "filter", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "Search", "name": "search", "in": "query" }, { "type": "string", "x-go-name": "OrderBy", "name": "order_by", "in": "query" }, { "x-go-name": "CreatedGT", "name": "created_gt", "in": "query", "type": "string" }, { "x-go-name": "CreatedLT", "name": "created_lt", "in": "query", "type": "string" }, { "x-go-name": "FromGT", "name": "from_gt", "in": "query", "type": "string" }, { "x-go-name": "FromLT", "name": "from_lt", "in": "query", "type": "string" }, { "type": "boolean", "x-go-name": "IncludeItems", "name": "include_items", "in": "query" }, { "type": "boolean", "x-go-name": "IncludePassengers", "name": "include_passengers", "in": "query" }, { "type": "string", "x-go-name": "Statuses", "name": "statuses", "in": "query" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" }, { "type": "boolean", "x-go-name": "ExcludeAbandoned", "name": "exclude_abandoned", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/readManyByStageResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/bookings/{booking_id}/bundles": { "get": { "description": "List available insurance bundles for booking", "tags": [ "bookingBundles" ], "operationId": "listBookingBundles", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bookingBundlesResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } }, "post": { "tags": [ "bookingBundles" ], "summary": "Assign insurance bundle to booking (assign, replace or delete).", "operationId": "assignBookingBundle", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/ChangeBundleRequest" } } ], "responses": { "200": { "$ref": "#/responses/bookingBundleResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bookings/{booking_id}/bundles/{bundle_id}": { "get": { "description": "Retrieve specific bundle by id", "tags": [ "bookingBundles" ], "operationId": "getBookingBundleById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BundleID", "name": "bundle_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bookingBundleResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bookings/{booking_id}/calculate-delivery": { "post": { "description": "Calculate estimated delivery for booking", "tags": [ "bookings" ], "operationId": "estimatedDeliveryRequest", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/DeliveryEstimatedRequest" } } ], "responses": { "200": { "$ref": "#/responses/estimatedDeliveryResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/bookings/{booking_id}/collect-post-trip-charges": { "post": { "description": "Collect post-trip charges for booking", "tags": [ "bookings" ], "operationId": "collectBookingPostTripCharges", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CollectPostTripChargesRequest" } } ], "responses": { "201": { "$ref": "#/responses/transactionsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/items": { "post": { "description": "Creates/adds an item to the requested booking", "tags": [ "bookingItems" ], "operationId": "createBookingItem", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BookingItem" } } ], "responses": { "200": { "$ref": "#/responses/bookingItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/items/batch": { "post": { "tags": [ "bookingItems" ], "summary": "Updates a batch of items on the booking.", "operationId": "bookingItemsBatchUpdateLegacy", "deprecated": true, "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" } } } ], "responses": { "200": { "$ref": "#/responses/bookingItemsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/items/batch-items": { "post": { "tags": [ "bookingItems" ], "summary": "Updates a batch of items on the booking.", "operationId": "bookingItemsBatchUpdate", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BatchOptions" } } ], "responses": { "200": { "$ref": "#/responses/bookingItemsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/items/copy": { "post": { "description": "Copies a rental item to the specified booking", "tags": [ "bookingItems" ], "operationId": "copyRentalItemToBooking", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/RentalItemCopy" } } ], "responses": { "200": { "$ref": "#/responses/bookingItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/items/{id}": { "get": { "description": "Copies an item to the requested booking", "tags": [ "bookingItems" ], "operationId": "getBookingItemById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bookingItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Copies an item to the requested booking", "tags": [ "bookingItems" ], "operationId": "deleteBookingItem", "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Updates an existing item on the booking", "tags": [ "bookingItems" ], "operationId": "updateBookingItem", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BookingItem" } } ], "responses": { "200": { "$ref": "#/responses/bookingItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/items/{id}/update-consigned": { "patch": { "tags": [ "bookingItems" ], "summary": "Updates the consigned pay amount for an item.", "operationId": "updateConsignedBookingItem", "responses": { "200": { "$ref": "#/responses/bookingItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/noPermissionError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/payout/{transaction_id}": { "delete": { "description": "Delete scheduled payout on the specified booking", "tags": [ "bookingTransactions" ], "operationId": "deleteScheduledPayout", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "TransactionID", "name": "transaction_id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/proposals": { "get": { "description": "Return a list of proposals for the booking", "tags": [ "bookingProposals" ], "operationId": "getProposals", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/proposalsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "post": { "description": "Creates a new booking proposal", "tags": [ "bookingProposals" ], "operationId": "createProposal", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Proposal" } } ], "responses": { "200": { "$ref": "#/responses/proposalResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bookings/{booking_id}/proposals/batch-delete": { "delete": { "description": "Delete a proposal", "tags": [ "bookingProposals" ], "operationId": "batchDeleteProposals", "parameters": [ { "name": "Body", "in": "body", "schema": { "type": "array", "items": { "$ref": "#/definitions/Proposal" } } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bookings/{booking_id}/proposals/batch-update": { "patch": { "description": "Batch update a proposals only for addons", "tags": [ "bookingProposals" ], "operationId": "batchUpdateProposals", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Proposal" } } ], "responses": { "200": { "$ref": "#/responses/proposalsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bookings/{booking_id}/proposals/{id}": { "get": { "description": "Returns a single booking proposal by id", "tags": [ "bookingProposals" ], "operationId": "getProposalById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/proposalResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "delete": { "description": "Delete a proposal", "tags": [ "bookingProposals" ], "operationId": "deleteProposal", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "patch": { "description": "Update a proposal", "tags": [ "bookingProposals" ], "operationId": "updateProposal", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Proposal" } } ], "responses": { "200": { "$ref": "#/responses/proposalResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bookings/{booking_id}/proposals/{id}/act": { "get": { "description": "Accept or decline the open proposal", "tags": [ "bookingProposals" ], "operationId": "actOnProposal", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "type": "string", "x-go-name": "Action", "name": "action", "in": "query", "required": true } ], "responses": { "302": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bookings/{booking_id}/scheduled-emails": { "get": { "description": "Fetch paginated scheduled emails (custom email jobs with status = \"scheduled\") for a booking", "tags": [ "systemEmails" ], "operationId": "readManyScheduledEmails", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/readManyScheduledEmailsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/bookings/{booking_id}/services": { "get": { "description": "Not all services will be available for all bookings, depending on the owner,\nvehicle, or location of the vehicle (country).", "tags": [ "bookingServices" ], "summary": "Returns the list of available premium services for the requested booking.", "operationId": "listBookingServices", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bookingServicesResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/services/{id}": { "delete": { "description": "Removes a premium service from the booking", "tags": [ "bookingServices" ], "operationId": "deleteBookingService", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ServiceID", "name": "service_id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/services/{service_id}": { "get": { "tags": [ "bookingServices" ], "summary": "Returns the booking service associated with the booking.", "operationId": "getBookingServiceById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ServiceID", "name": "service_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bookingServiceResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "tags": [ "bookingServices" ], "summary": "Adds an available premium service to the booking based on the service id.", "operationId": "createBookingService", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ServiceID", "name": "service_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BookingServiceData" } } ], "responses": { "200": { "$ref": "#/responses/bookingServiceResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "tags": [ "bookingServices" ], "summary": "Updates an existing premium service on this booking using the service id.", "operationId": "updateBookingService", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ServiceID", "name": "service_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BookingServiceData" } } ], "responses": { "200": { "$ref": "#/responses/bookingServiceResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/system-emails": { "get": { "description": "Returns list of System Emails for a given limit and offset", "tags": [ "systemEmails" ], "operationId": "readSystemEmailsRequest", "responses": { "200": { "$ref": "#/responses/readSystemEmailsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bookings/{booking_id}/system-emails/resend": { "post": { "description": "Resend or forward an email from the System Emails tab on the reservation page", "tags": [ "systemEmails" ], "operationId": "resendSystemEmail", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/resendSystemEmailRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/bookings/{booking_id}/transactions": { "get": { "tags": [ "bookingTransactions" ], "summary": "Returns all transactions for a booking. Optionally filtered by type.", "operationId": "listBookingTransactions", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "string", "x-go-name": "TransactionTypes", "name": "type", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/transactionsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Create transaction or pending transaction when due date is set", "tags": [ "bookingTransactions" ], "operationId": "createTransaction", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Transaction" } } ], "responses": { "200": { "$ref": "#/responses/transactionResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/transactions/{transaction_id}": { "get": { "description": "Retrieve booking transaction record by id", "tags": [ "bookingTransactions" ], "operationId": "getBookingTransaction", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "TransactionID", "name": "transaction_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/transactionResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Delete pending transaction on the specified booking", "tags": [ "bookingTransactions" ], "operationId": "deletePendingTransaction", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "TransactionID", "name": "transaction_id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Update booking pending transaction", "tags": [ "bookingTransactions" ], "operationId": "updateBookingTransaction", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "TransactionID", "name": "transaction_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/ptxUpdate" } } ], "responses": { "200": { "$ref": "#/responses/transactionResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{booking_id}/weather": { "post": { "tags": [ "bookingServices" ], "summary": "Returns the booking weather from Roamly.", "operationId": "getBookingWeather", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/WeatherRequest" } } ], "responses": { "200": { "$ref": "#/responses/bookingWeatherResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{id}": { "get": { "description": "Read one booking", "tags": [ "bookings" ], "operationId": "getBookingById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getBookingResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "tags": [ "bookings" ], "summary": "Archives the booking which hides it from view.", "operationId": "deleteBookingById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Certain changes are only allowed while the booking is in the negotiating state.\nDealers, owners, renters and admins all have different access level on what can be changed.\nThis often results in a recalculation of the booking total.", "tags": [ "bookings" ], "summary": "Updates the booking with requested changes.", "operationId": "updateBooking", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BookingUpdateRequest" } } ], "responses": { "200": { "$ref": "#/responses/getBookingResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{id}/cancellation-details": { "get": { "description": "Returns the cancellation details for the requested booking", "tags": [ "bookings" ], "operationId": "getBookingCancellationDetails", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bookingCancelDetailsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{id}/collect-overage-fee": { "post": { "description": "Collect booking overage fee", "tags": [ "bookings" ], "operationId": "collectBookingOverageFee", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CollectOverageFeeRequest" } } ], "responses": { "200": { "$ref": "#/responses/transactionsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bookings/{id}/status": { "patch": { "description": "Examples:\n\nnegotiating -> approved\napproved -> handed_off\nhanded_off -> returned\napproved -> renter_cancelled/owner_cancelled", "tags": [ "bookings" ], "summary": "Progresses the status of the booking to the requested state.", "operationId": "bookingChangeStatus", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/StatusChangeRequest" } } ], "responses": { "200": { "$ref": "#/responses/bookingResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/bundles": { "get": { "description": "List insurance bundles", "tags": [ "bundles" ], "operationId": "listBundles", "responses": { "200": { "$ref": "#/responses/bundlesResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } }, "post": { "description": "Create a bundle", "tags": [ "bundles" ], "operationId": "createBundle", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Bundle" } } ], "responses": { "201": { "$ref": "#/responses/bundleResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bundles/{bundle_id}/features": { "post": { "description": "Create a bundle feature", "tags": [ "bundleFeatures" ], "operationId": "createBundleFeature", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BundleFeature" } } ], "responses": { "201": { "$ref": "#/responses/bundleFeatureResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bundles/{bundle_id}/features/{id}": { "get": { "description": "Retrieve bundle feature by id", "tags": [ "bundleFeatures" ], "operationId": "getBundleFeatureById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BundleID", "name": "bundle_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bundleFeatureResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "delete": { "description": "Delete bundle feature", "tags": [ "bundleFeatures" ], "operationId": "deleteBundleFeature", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BundleID", "name": "bundle_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "patch": { "description": "Update bundle feature", "tags": [ "bundleFeatures" ], "operationId": "updateBundleFeature", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BundleID", "name": "bundle_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BundleFeature" } } ], "responses": { "200": { "$ref": "#/responses/bundleFeatureResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bundles/{bundle_id}/rules": { "post": { "description": "Creates a bundle rule", "tags": [ "bundleRules" ], "operationId": "createRule", "responses": { "201": { "$ref": "#/responses/bundleRuleResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bundles/{bundle_id}/rules/{id}": { "get": { "description": "Retrieve bundle rule by id", "tags": [ "bundleRules" ], "operationId": "getBundleRuleById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BundleID", "name": "bundle_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bundleRuleResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "delete": { "description": "Delete bundle rule", "tags": [ "bundleRules" ], "operationId": "deleteBundleRule", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BundleID", "name": "bundle_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "patch": { "description": "Update bundle rule", "tags": [ "bundleRules" ], "operationId": "updateBundleRule", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BundleID", "name": "bundle_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/BundleRule" } } ], "responses": { "200": { "$ref": "#/responses/bundleRuleResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/bundles/{id}": { "get": { "description": "Retrieve bundle by id", "tags": [ "bundles" ], "operationId": "getBundleById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bundleResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "delete": { "description": "Delete insurance bundle", "tags": [ "bundles" ], "operationId": "deleteBundle", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "patch": { "description": "Update insurance bundle", "tags": [ "bundles" ], "operationId": "updateBundle", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Bundle" } } ], "responses": { "200": { "$ref": "#/responses/bundleResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/checkout_steps/{booking_id}": { "get": { "description": "Returns the list objects, containing step name, order and status for clients to use when\nsending a renter through the reservation (checkout) flow.", "tags": [ "checkoutSteps" ], "operationId": "getCheckoutSteps", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/checkoutStepsResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Updates the status of steps for the specified booking. Send incomplete/complete for each\nstep in the list.", "tags": [ "checkoutSteps" ], "operationId": "updateCheckoutSteps", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/UpdateRequest" } } ], "responses": { "200": { "$ref": "#/responses/checkoutStepsResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/confirm": { "get": { "description": "Confirm new or changed user email", "tags": [ "users" ], "operationId": "confirmEmail", "parameters": [ { "type": "string", "x-go-name": "ChangeEmailToken", "name": "change_email_token", "in": "query" }, { "type": "string", "x-go-name": "NewEmailToken", "name": "new_email_token", "in": "query" } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/conversations": { "get": { "description": "Lists conversations", "tags": [ "conversations" ], "operationId": "listConversations", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "query" }, { "type": "string", "x-go-name": "LocationIDs", "name": "location_ids", "in": "query" }, { "type": "boolean", "x-go-name": "Single", "name": "single", "in": "query" }, { "type": "string", "x-go-name": "Statuses", "name": "booking_status", "in": "query" }, { "type": "boolean", "x-go-name": "Archived", "name": "archived", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RenterID", "name": "renter_id", "in": "query" }, { "type": "boolean", "x-go-name": "HasMessages", "name": "has_messages", "in": "query" }, { "type": "string", "x-go-name": "Order", "name": "order", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "boolean", "x-go-name": "OnlyNew", "name": "new", "in": "query" }, { "type": "boolean", "x-go-name": "ExcludeBookings", "name": "exclude_bookings", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listConversationResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Creates a new conversation between two users", "tags": [ "conversations" ], "operationId": "createConversation", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/ConversationBody" } } ], "responses": { "200": { "$ref": "#/responses/conversationResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/conversations/{id}": { "get": { "description": "Get conversation by id", "tags": [ "conversations" ], "operationId": "getConversationById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "OrderBy", "name": "order_by", "in": "query" }, { "type": "boolean", "x-go-name": "Active", "description": "false -> bookings: MinBooking, true -> bookings: Booking", "name": "active", "in": "query" }, { "type": "boolean", "x-go-name": "WithoutBookings", "description": "when true, bookings array will be empty", "name": "without_bookings", "in": "query" }, { "type": "boolean", "x-go-name": "MinBookings", "description": "when true, bookings array will only contain the most relevant booking", "name": "min_bookings", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeSystem", "description": "when true, system messages will be included in the messages array", "name": "include_system", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeCurrent", "description": "when true, bookings array will contain bookings with status negotiating, approved, imminent, handed_off", "name": "include_current", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/conversationResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "put": { "description": "Update conversation by id", "tags": [ "conversations" ], "operationId": "updateConversation", "responses": { "200": { "$ref": "#/responses/conversationResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Archive a conversation", "tags": [ "conversations" ], "operationId": "archiveConversation", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/conversations/{id}/ai-reply-suggestion": { "get": { "description": "This endpoint returns an AI-generated reply suggestion based on the conversation history.\nThe suggestion is cached, so subsequent requests for the same message will return the cached suggestion.\nOnly conversation owners can access this endpoint.", "tags": [ "conversations" ], "summary": "Get AI-generated reply suggestion for a conversation.", "operationId": "getReplySuggestion", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/conversationSuggestionResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/convert-currency": { "get": { "summary": "Converts currency.", "operationId": "convertCurrency", "parameters": [ { "type": "string", "x-go-name": "From", "name": "from", "in": "path", "required": true }, { "type": "string", "x-go-name": "To", "name": "to", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "Amount", "name": "amount", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/convertCurrencyResponse" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/favorites": { "get": { "description": "Get list of rental favorites for authenticated user", "tags": [ "favorites" ], "operationId": "getFavorites", "responses": { "200": { "$ref": "#/responses/favoritesResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Marks a rental as a favorite for the user", "tags": [ "favorites" ], "operationId": "createFavorite", "responses": { "200": { "$ref": "#/responses/favoriteResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Delete favorite using the rental id", "tags": [ "favorites" ], "operationId": "deleteFavoriteByRentalId", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/favorites/{id}": { "delete": { "description": "Delete favorite by id", "tags": [ "favorites" ], "operationId": "deleteFavoriteById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/files": { "get": { "description": "Return files", "tags": [ "files" ], "operationId": "listFiles", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "OrderBy", "name": "order_by", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "query" }, { "type": "boolean", "x-go-name": "Signable", "name": "signable", "in": "query" }, { "type": "string", "x-go-name": "IDs", "name": "ids", "in": "query" }, { "type": "boolean", "x-go-name": "AutoInclude", "name": "auto_include", "in": "query" }, { "type": "boolean", "x-go-name": "AccountOnly", "name": "account_only", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeEsign", "name": "include_esign", "in": "query" }, { "type": "string", "x-go-name": "Type", "name": "type", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/filesResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "post": { "description": "Create file", "tags": [ "files" ], "operationId": "createFile", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/File" } } ], "responses": { "200": { "$ref": "#/responses/fileResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/files/{id}": { "get": { "description": "Response will redirect to authenticated file", "tags": [ "files" ], "operationId": "getFile", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "FileID", "name": "id", "in": "path", "required": true }, { "type": "boolean", "x-go-name": "JSON", "name": "json", "in": "query" }, { "type": "boolean", "x-go-name": "UpdateURL", "name": "update_url", "in": "query" } ], "responses": { "302": { "$ref": "#/responses/redirectResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "delete": { "description": "Delete file", "tags": [ "files" ], "operationId": "deleteFile", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "FileID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "patch": { "description": "Update file details", "tags": [ "files" ], "operationId": "updateFile", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "FileID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/File" } } ], "responses": { "200": { "$ref": "#/responses/fileResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/gateways/fund_creation_form": { "get": { "description": "Get gateway creation form", "tags": [ "gateways" ], "operationId": "getGatewayCreationForm", "parameters": [ { "type": "string", "x-go-name": "GatewayType", "name": "gateway_type", "in": "query" }, { "type": "string", "x-go-name": "AuthMode", "name": "auth_mode", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "GatewayID", "name": "fund_id", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/successResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/gateways/list_options": { "get": { "description": "List available gateways", "tags": [ "gateways" ], "operationId": "listGatewayOptions", "parameters": [ { "type": "string", "x-go-name": "CountryCode", "name": "country_code", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/successResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/gift_cards/claim": { "get": { "tags": [ "GiftCards" ], "summary": "Send referral communications to a list of friends.", "operationId": "claimGiftCardRequest", "parameters": [ { "x-go-name": "Code", "name": "code", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Code" } } ], "responses": { "200": { "$ref": "#/responses/createGiftCardResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/gift_cards/{gift_card_id}": { "get": { "tags": [ "GiftCards" ], "summary": "Read a gift card.", "operationId": "readGiftCardRequest", "parameters": [ { "type": "string", "x-go-name": "GiftCardID", "name": "gift_card_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/readGiftCardResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/gift_cards/{gift_card_id}/fund": { "post": { "tags": [ "GiftCards" ], "summary": "Send referral communications to a list of friends.", "operationId": "createGiftCardRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "CreditCardID", "name": "credit_card_id", "in": "path", "required": true }, { "x-go-name": "Amount", "name": "amount", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Amount" } }, { "x-go-name": "Currency", "name": "currency", "in": "body", "required": true, "schema": { "$ref": "#/definitions/Currency" } }, { "x-go-name": "RecipientEmail", "name": "recipient_email", "in": "body", "required": true, "schema": { "type": "string" } }, { "x-go-name": "RecipientMessage", "name": "recipient_message", "in": "body", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "$ref": "#/responses/createGiftCardResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/ics-calendars": { "get": { "tags": [ "ics-calendars" ], "summary": "Returns list of ICSCalendar for a given user. Optionally could filter by user owned rental.", "operationId": "fetchCalendars", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "OwnerId", "name": "owner_user_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/calendarsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "tags": [ "ics-calendars" ], "summary": "Create calendar record with pending calendar log and trigger SyncICSCalendar job to sync it.", "operationId": "linkCalendar", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "OwnerId", "name": "owner_user_id", "in": "query" }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/LinkICSCalendarRequest" } } ], "responses": { "200": { "$ref": "#/responses/calendarResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/ics-calendars/sync": { "post": { "tags": [ "ics-calendars" ], "summary": "Trigger a job to sync all user eligible (last sync started at least 3 minutes ago) callendars. Optionally could be triggered for a specific user's calendar or user owned rental.", "operationId": "syncCalendars", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "OwnerId", "name": "owner_user_id", "in": "query" }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/GetManyRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/ics-calendars/{calendar_id}": { "delete": { "tags": [ "ics-calendars" ], "summary": "Delete calendar record with and calendar's logs.", "operationId": "unlinkCalendar", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "OwnerId", "name": "owner_user_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CalendarID", "name": "calendar_id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/ics-export.ics": { "get": { "tags": [ "ics-calendars" ], "summary": "Returns an .ics file with Outdoorsy availability per rental.", "operationId": "downloadICSFile", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalId", "name": "rental_id", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/icsFileResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/ics/export-url": { "get": { "tags": [ "ics-calendars" ], "summary": "Returns URL to the .ics file download link.", "operationId": "exportURL", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalId", "name": "rental_id", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/urlResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/items": { "get": { "description": "Creates a new item for a given rental", "tags": [ "rentalItems" ], "operationId": "listRentalItems", "parameters": [ { "type": "boolean", "x-go-name": "AllAvailableItems", "name": "all_available_items", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "AvailableForRentalID", "name": "available_for_rental_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LocationID", "name": "location_id", "in": "query" }, { "type": "string", "x-go-name": "LocationIDs", "name": "location_ids", "in": "query" }, { "type": "boolean", "x-go-name": "Translate", "name": "translate", "in": "query" }, { "type": "string", "x-go-name": "PresentmentCurrency", "name": "presentment_currency", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/rentalItemsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Creates a new item for a given rental", "tags": [ "rentalItems" ], "operationId": "createRentalItem", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/RentalItem" } } ], "responses": { "200": { "$ref": "#/responses/rentalItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/items/{id}": { "get": { "description": "Creates a new item for a given rental", "tags": [ "rentalItems" ], "operationId": "getRentalItemById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/rentalItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Creates a new item for a given rental", "tags": [ "rentalItems" ], "operationId": "deleteRentalItemById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Creates a new item for a given rental", "tags": [ "rentalItems" ], "operationId": "updateRentalItem", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/RentalItem" } } ], "responses": { "200": { "$ref": "#/responses/rentalItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/locations": { "get": { "description": "List dealer locations", "tags": [ "locations" ], "operationId": "listLocations", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "LocationID", "name": "location_id", "in": "query" }, { "type": "string", "x-go-name": "LocationIDs", "name": "location_ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "string", "x-go-name": "OwnerIDs", "name": "owner_ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Order", "name": "order", "in": "query" }, { "type": "boolean", "x-go-name": "Archived", "name": "archived", "in": "query" }, { "type": "string", "x-go-name": "Keyword", "name": "keyword", "in": "query" }, { "type": "boolean", "x-go-name": "DiscardLimit", "name": "discard_limit", "in": "query" }, { "type": "array", "items": { "type": "integer", "format": "int64" }, "name": "IDs", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/locationsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } }, "post": { "description": "Create dealer location", "tags": [ "locations" ], "operationId": "createLocation", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Location" } } ], "responses": { "200": { "$ref": "#/responses/locationResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/locations/{id}": { "get": { "description": "Retrieve location by id", "tags": [ "locations" ], "operationId": "getLocationByOwner", "responses": { "200": { "$ref": "#/responses/locationResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "delete": { "description": "Delete dealer location", "tags": [ "locations" ], "operationId": "deleteLocation", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "patch": { "description": "Update dealer location details", "tags": [ "locations" ], "operationId": "updateLocation", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Location" } } ], "responses": { "200": { "$ref": "#/responses/locationResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/locations/{owner_id}/for-pro-page": { "get": { "description": "List dealer locations for his pro page (locations with connected bank account, ordered by having the most rentals desc). Provide falback in the form of city and state with most bookable rentals", "tags": [ "locations" ], "operationId": "getLocationsByOwnerID", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/locationsProPageResponse" }, "400": { "$ref": "#/responses/badRequestError" } } } }, "/message-templates": { "get": { "description": "Lists message templates", "tags": [ "messageTemplates" ], "operationId": "listMessageTemplates", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "OrderBy", "name": "order_by", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "query" }, { "type": "array", "items": { "type": "integer", "format": "int64" }, "name": "LocationIDs", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listMessageTemplatesResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "When an employee creates a template, it's owned by their dealer.\nEmployees with location restrictions must specify location_ids within their assigned locations.", "tags": [ "messageTemplates" ], "summary": "Creates a new message template", "operationId": "createMessageTemplate", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Template" } } ], "responses": { "200": { "$ref": "#/responses/messageTemplateResponse" }, "400": { "$ref": "#/responses/invalidFieldsError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/message-templates/{id}": { "get": { "description": "Users can only access templates they own (or their dealer's templates if they're an employee).", "tags": [ "messageTemplates" ], "summary": "Get message template by id", "operationId": "getMessageTemplateById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/messageTemplateResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Users can only delete templates they own (or their dealer's templates if they're an employee).", "tags": [ "messageTemplates" ], "summary": "Archive a message template", "operationId": "archiveMessageTemplate", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "patch": { "description": "Employees with location restrictions can only update templates with location_ids within their assigned locations.", "tags": [ "messageTemplates" ], "summary": "Update message template by id", "operationId": "updateMessageTemplate", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Template" } } ], "responses": { "200": { "$ref": "#/responses/messageTemplateResponse" }, "400": { "$ref": "#/responses/invalidFieldsError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/messages": { "get": { "description": "Returns a list of messages based on search criteria", "tags": [ "messages" ], "operationId": "listMessages", "parameters": [ { "type": "string", "name": "OrderBy", "in": "query" }, { "type": "integer", "format": "int64", "name": "Offset", "in": "query" }, { "type": "integer", "format": "int64", "name": "Limit", "in": "query" }, { "type": "integer", "format": "int64", "name": "ConversationID", "in": "query" }, { "type": "integer", "format": "int64", "name": "UserID", "in": "query" }, { "type": "integer", "format": "int64", "name": "ReceiverID", "in": "query" }, { "type": "integer", "format": "int64", "name": "SenderID", "in": "query" }, { "type": "array", "items": { "type": "string" }, "name": "Sentiments", "in": "query" }, { "type": "string", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime", "name": "From", "in": "query" }, { "type": "string", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime", "name": "To", "in": "query" }, { "type": "boolean", "name": "SkipBannedFilter", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/messagesResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "tags": [ "messages" ], "summary": "Creates a new message as part of a conversation between owner and renter.", "operationId": "createMessage", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Message" } } ], "responses": { "200": { "$ref": "#/responses/messageResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/messages/twilio/sms": { "get": { "description": "Returns the reply if someone responds to one of our twilio sms messages", "tags": [ "messages" ], "operationId": "getTwilioSmsReply", "responses": { "200": { "$ref": "#/responses/string" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/messages/{id}": { "get": { "description": "Returns a message by id", "tags": [ "messages" ], "operationId": "getMessageById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/messageResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Marks a message as being read or unread", "tags": [ "messages" ], "operationId": "updateMessage", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/MessageUpdate" } } ], "responses": { "200": { "$ref": "#/responses/messageResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/notes-to-renters": { "get": { "description": "Returns a list of notes to renters", "tags": [ "notes-to-renters" ], "operationId": "listNotesToRenters", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "AvailableForRentalID", "name": "available_for_rental_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "query" }, { "type": "string", "x-go-name": "LocationRaw", "name": "location_ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "Translate", "name": "translate", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/notesToRentersResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Create a note to renters", "tags": [ "notes-to-renters" ], "operationId": "createNoteToRenters", "responses": { "201": { "$ref": "#/responses/noteToRentersResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/notes-to-renters/{id}": { "delete": { "description": "Delete a note to renters", "tags": [ "notes-to-renters" ], "operationId": "deleteNoteToRenters", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Update a note to renters", "tags": [ "notes-to-renters" ], "operationId": "updateNoteToRenters", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/NoteToRenters" } } ], "responses": { "200": { "$ref": "#/responses/noteToRentersResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/notices": { "get": { "description": "Return list of available notices", "tags": [ "notices" ], "operationId": "listNotices", "responses": { "200": { "$ref": "#/responses/listNoticeResponse" } } } }, "/pricing": { "get": { "description": "Only used during the LYRV flow to show an owner a range of possible income.", "tags": [ "pricing" ], "summary": "Return estimated price when listing your vehicle by make, model and location.", "operationId": "getPricing", "parameters": [ { "type": "number", "format": "double", "x-go-name": "Lat", "name": "lat", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Lng", "name": "lng", "in": "query" }, { "type": "string", "x-go-name": "Make", "name": "make", "in": "query" }, { "type": "string", "x-go-name": "Model", "name": "model", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Year", "name": "year", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/pricingResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/pricing/aggregate": { "get": { "tags": [ "pricing" ], "summary": "Return price aggregation for nearby rentals around given lat and lng in 50 miles radius.", "operationId": "getPricingAggregation", "parameters": [ { "type": "number", "format": "double", "x-go-name": "Lat", "name": "lat", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Lng", "name": "lng", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/aggregateResponseV2" }, "400": { "$ref": "#/responses/badRequestError" } } } }, "/pricing/v2": { "get": { "description": "Only used during the LYRV flow to show an owner a range of possible income.\nBetter calculation than the original endpoint. i think this is the actual one we use", "tags": [ "pricing" ], "summary": "Return estimated price when listing your vehicle by make, model and location.", "operationId": "getPricingV2", "parameters": [ { "type": "number", "format": "double", "x-go-name": "Lat", "name": "lat", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Lng", "name": "lng", "in": "query" }, { "type": "string", "x-go-name": "Type", "name": "type", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "VehicleLength", "name": "length", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Sleeps", "name": "sleeps", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "VehicleYear", "name": "year", "in": "query" }, { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/pricingResponseV2" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/quotes": { "post": { "tags": [ "quotes" ], "summary": "Generates a quote for a given rental based on start and stop dates.", "operationId": "createQuote", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Request" } } ], "responses": { "200": { "$ref": "#/responses/quoteResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/quotes/{id}/services": { "get": { "description": "List of available services for quote", "tags": [ "quote" ], "operationId": "services", "responses": { "200": { "$ref": "#/responses/quoteResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/referrals/refer": { "post": { "tags": [ "Referrals" ], "summary": "Send referral communications to a list of friends.", "operationId": "referFriendsRequest", "parameters": [ { "type": "string", "x-go-name": "RefereeType", "name": "referee_type", "in": "query" }, { "$ref": "#/definitions/Referees", "x-go-name": "Referees", "name": "referees", "in": "query" }, { "type": "string", "x-go-name": "ReferralType", "name": "referral_type", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/referFriendsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/referrals/stats": { "get": { "summary": "Send referral communications to a list of friends.", "operationId": "Referrals", "responses": { "200": { "$ref": "#/responses/getReferralCreditStatsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/referrals/{referral_code}/display-data": { "get": { "tags": [ "Referrals" ], "summary": "Send referral communications to a list of friends.", "operationId": "GetReferrerInfoRequest", "parameters": [ { "type": "string", "x-go-name": "ReferralCode", "name": "referral_code", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/GetReferrerInfoResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/referrals/{referral_code}/eligibility": { "get": { "summary": "Check eligibility of the referee.", "operationId": "CheckEligibilityResponse", "parameters": [ { "x-go-name": "Eligible", "name": "eligible", "in": "body", "schema": { "type": "boolean" } } ], "responses": { "200": { "$ref": "#/responses/CheckEligibilityResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rental-items-categories": { "get": { "description": "Returns a list of approved rental items categories, optionally filtered by rental_category (rv, auto, stay).\nIf owner_user_id is provided, the host's pending categories are also returned.", "tags": [ "RentalItemsCategories" ], "summary": "List available rental items categories", "operationId": "listCategoriesRequest", "responses": { "200": { "$ref": "#/responses/listCategoriesResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rental-items-categories/admin": { "get": { "description": "Returns a list of rental items categories with support for filtering by id, type, name,\nrental_category, status, ai_decision, and reason_code. Supports sorting by any field.\nSupports pagination via limit and offset parameters (omit limit to return all matching records).", "tags": [ "RentalItemsCategories" ], "summary": "Admin endpoint to list all rental items categories with comprehensive filtering and sorting", "operationId": "adminListCategoriesRequest", "responses": { "200": { "$ref": "#/responses/adminListCategoriesResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Allows admins to manually create rental items categories with full control over all fields.", "tags": [ "RentalItemsCategories" ], "summary": "Admin endpoint to create a new rental items category", "operationId": "adminCreateCategoryRequest", "responses": { "201": { "$ref": "#/responses/RentalItemsCategory" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rental-items-categories/admin/analytics": { "get": { "description": "Returns aggregated counts of AI decisions (rejected, merged, approved) and category\nstatuses (rejected, approved, pending, processing) for categories created within the\nspecified date range. Useful for monitoring the AI triage system in shadow mode.", "tags": [ "RentalItemsCategories" ], "summary": "Admin endpoint to retrieve add-on triage analytics for a time period", "operationId": "adminAnalyticsRequest", "responses": { "200": { "$ref": "#/responses/AnalyticsResult" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rental-items-categories/admin/{id}": { "patch": { "description": "Allows admins to update any field of a rental items category. Only provided fields will be updated.", "tags": [ "RentalItemsCategories" ], "summary": "Admin endpoint to update a rental items category", "operationId": "adminUpdateCategoryRequest", "responses": { "200": { "$ref": "#/responses/RentalItemsCategory" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals": { "get": { "description": "GET /rentals/{rental_id}/fleet-vehicle", "tags": [ "rentals" ], "summary": "Read many rentals\nGetFleetVehicle retrieves vehicle data from the Fleet service for a rental.\nThis includes real-time information like odometer reading, connection status, and other attributes.\nThe frontend can use this data to update mileage fields or display vehicle status.", "operationId": "listRentals", "parameters": [ { "type": "string", "x-go-name": "Near", "name": "near", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Radius", "name": "radius", "in": "query" }, { "x-go-name": "From", "name": "from", "in": "query", "type": "string" }, { "x-go-name": "To", "name": "to", "in": "query", "type": "string" }, { "x-go-name": "CreatedFrom", "name": "created_from", "in": "query", "type": "string" }, { "x-go-name": "CreatedTo", "name": "created_to", "in": "query", "type": "string" }, { "type": "integer", "format": "int64", "x-go-name": "Sleeps", "name": "sleeps", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsAdults", "name": "sleeps_adults", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsKids", "name": "sleeps_kids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Seatbelts", "name": "seatbelts", "in": "query" }, { "type": "string", "x-go-name": "Type", "name": "type", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMin", "name": "price_min", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PriceMax", "name": "price_max", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearMin", "name": "year_min", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "YearMax", "name": "year_max", "in": "query" }, { "type": "string", "x-go-name": "Order", "name": "order", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "Unlimited", "name": "unlimited", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Status", "name": "status", "in": "query" }, { "type": "string", "x-go-name": "BoundsNE", "name": "bounds_NE", "in": "query" }, { "type": "string", "x-go-name": "BoundsSW", "name": "bounds_SW", "in": "query" }, { "type": "string", "x-go-name": "InsuranceState", "name": "insurance_state", "in": "query" }, { "type": "string", "x-go-name": "Exclude", "name": "exclude", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LocationID", "name": "location_id", "in": "query" }, { "type": "string", "x-go-name": "LocationIDs", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "Hidden", "name": "hidden", "in": "query" }, { "type": "string", "x-go-name": "IncludeVariableFees", "name": "include_variable_fees", "in": "query" }, { "type": "string", "x-go-name": "IDs", "name": "ids", "in": "query" }, { "type": "string", "x-go-name": "Address", "name": "address", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "ParentID", "name": "parent_id", "in": "query" }, { "type": "string", "x-go-name": "IncludeChildren", "name": "include_children", "in": "query" }, { "type": "string", "x-go-name": "Locale", "name": "locale", "in": "query" }, { "type": "string", "x-go-name": "PresentmentCurrency", "name": "presentment_currency", "in": "query" }, { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" } ] }, "post": { "description": "Create rental", "tags": [ "rentals" ], "operationId": "createRentalRequest", "parameters": [ { "$ref": "#/definitions/RentalImages", "x-go-name": "Images", "name": "images", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "query" }, { "type": "string", "x-go-name": "Name", "name": "name", "in": "query" }, { "type": "string", "x-go-name": "VehicleTitle", "name": "vehicle_title", "in": "query" }, { "type": "string", "x-go-name": "Type", "name": "type", "in": "query" }, { "type": "string", "x-go-name": "Description", "name": "description", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Sleeps", "name": "sleeps", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Seatbelts", "name": "seatbelts", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "MinimumRenterAge", "name": "minimum_renter_age", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsAdults", "name": "sleeps_adults", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SleepsKids", "name": "sleeps_kids", "in": "query" }, { "type": "string", "x-go-name": "Summary", "name": "summary", "in": "query" }, { "$ref": "#/definitions/DBInterfaceMap", "x-go-name": "Features", "name": "features", "in": "query" }, { "$ref": "#/definitions/Price", "x-go-name": "Price", "name": "price", "in": "query" }, { "$ref": "#/definitions/activePrice", "x-go-name": "ActivePrice", "name": "active_price", "in": "query" }, { "$ref": "#/definitions/activeOptions", "x-go-name": "ActiveOptions", "name": "active_options", "in": "query" }, { "$ref": "#/definitions/Home", "x-go-name": "Home", "name": "home", "in": "query" }, { "$ref": "#/definitions/Vehicle", "x-go-name": "Vehicle", "name": "vehicle", "in": "query" }, { "type": "boolean", "x-go-name": "Published", "name": "published", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "PublishedFieldErrors", "name": "publish_field_errors", "in": "query" }, { "type": "string", "x-go-name": "UnpublishReason", "name": "unpublish_reason", "in": "query" }, { "type": "string", "x-go-name": "LastUnpublishDate", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime", "name": "last_unpublish_date", "in": "query" }, { "type": "boolean", "x-go-name": "GroupOnMap", "name": "group_on_map", "in": "query" }, { "type": "string", "x-go-name": "PrimaryImageURL", "name": "primary_image_url", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "PrimaryImageID", "name": "primary_image_id", "in": "query" }, { "type": "string", "x-go-name": "InteriorPrimaryImageURL", "name": "interior_primary_image_url", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "InteriorPrimaryImageID", "name": "interior_primary_image_id", "in": "query" }, { "$ref": "#/definitions/DBMSISlice", "x-go-name": "CheckoutQuestions", "name": "checkout_questions", "in": "query" }, { "type": "boolean", "x-go-name": "HasCheckoutQuestions", "name": "has_checkout_questions", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Position", "name": "position", "in": "query" }, { "x-go-name": "External", "name": "external", "in": "query", "type": "boolean", "nullable": true }, { "$ref": "#/definitions/DBInterfaceMap", "x-go-name": "Settings", "name": "settings", "in": "query" }, { "$ref": "#/definitions/DBInterfaceMap", "x-go-name": "ListingSteps", "name": "listing_steps", "in": "query" }, { "type": "string", "x-go-name": "DescriptionIncluded", "name": "description_included", "in": "query" }, { "type": "string", "x-go-name": "DescriptionRecommendations", "name": "description_recommendations", "in": "query" }, { "type": "string", "x-go-name": "DescriptionOther", "name": "description_other", "in": "query" }, { "$ref": "#/definitions/PrepFee", "x-go-name": "PrepFee", "name": "prep_fee", "in": "query" }, { "$ref": "#/definitions/UnitLocale", "x-go-name": "Locale", "name": "locale", "in": "query" }, { "$ref": "#/definitions/Plan", "x-go-name": "InsurancePlan", "name": "insurance_plan_id", "in": "query" }, { "x-go-name": "WaivedInsuranceText", "name": "waived_insurance_text", "in": "query", "type": "string", "nullable": true }, { "x-go-name": "CustomInsuranceText", "name": "custom_insurance_text", "in": "query", "type": "string", "nullable": true }, { "type": "string", "x-go-name": "InsuranceCoverage", "name": "insurance_coverage", "in": "query" }, { "x-go-name": "RequireRoadside", "name": "require_roadside", "in": "query", "type": "boolean", "nullable": true }, { "type": "integer", "format": "int64", "x-go-name": "CurrentLocationID", "name": "current_location_id", "in": "query" }, { "x-go-name": "MileageUsageItem", "name": "mileage_usage_item_id", "in": "query", "type": "integer", "format": "int64" }, { "x-go-name": "GeneratorUsageItem", "name": "generator_usage_item_id", "in": "query", "type": "integer", "format": "int64" }, { "x-go-name": "DeliveryUsageItem", "name": "delivery_usage_item_id", "in": "query", "type": "integer", "format": "int64" }, { "x-go-name": "CancelPolicy", "description": "configurable rental options. must be stored as a pointer so we can know\nif it is unset in the database or not and fall back to the user level", "name": "cancel_policy", "in": "query", "type": "string", "nullable": true }, { "x-go-name": "CancelPolicyComboBookings", "name": "cancel_policy_combo_bookings", "in": "query", "type": "string", "nullable": true }, { "$ref": "#/definitions/NullFloat64", "x-go-name": "DepositPercentage", "name": "deposit_percentage", "in": "query" }, { "x-go-name": "MinimumDeposit", "name": "minimum_deposit", "in": "query", "type": "integer", "format": "int64", "nullable": true }, { "x-go-name": "MinimumDays", "name": "minimum_days", "in": "query", "type": "integer", "format": "int64", "nullable": true }, { "x-go-name": "InstantBook", "name": "instant_book", "in": "query", "type": "boolean", "nullable": true }, { "x-go-name": "InstantBookLeeway", "name": "instant_book_leeway", "in": "query", "type": "integer", "format": "int64", "nullable": true }, { "type": "string", "x-go-name": "InstantBookType", "name": "instant_book_type", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RequestLessThanMinimumDays", "name": "request_less_than_minimum_days", "in": "query" }, { "x-go-name": "InsuranceRenterAdjustable", "name": "insurance_renter_adjustable", "in": "query", "type": "boolean", "nullable": true }, { "x-go-name": "TurnaroundDaysAfter", "name": "turnaround_days_after", "in": "query", "type": "integer", "format": "int64", "nullable": true }, { "x-go-name": "BookingLeewayDays", "name": "booking_leeway_days", "in": "query", "type": "integer", "format": "int64", "nullable": true }, { "x-go-name": "RequireInsurance", "name": "require_insurance", "in": "query", "type": "boolean", "nullable": true }, { "type": "boolean", "x-go-name": "SmartPricingEnabled", "name": "smart_pricing_enabled", "in": "query" }, { "type": "string", "x-go-name": "SmartPricingMode", "name": "smart_pricing_mode", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SmartPricingMin", "name": "smart_pricing_min", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "SmartPricingMax", "name": "smart_pricing_max", "in": "query" }, { "type": "boolean", "x-go-name": "NYInsuranceWarning", "name": "ny_insurance_warning", "in": "query" }, { "x-go-name": "OneWayRentalRequests", "name": "one_way_rental_requests", "in": "query", "type": "boolean", "nullable": true }, { "x-go-name": "OneWayRentalMaximumRadius", "name": "one_way_rental_maximum_radius", "in": "query", "type": "integer", "format": "int64", "nullable": true }, { "$ref": "#/definitions/TaxRate", "x-go-name": "TaxRate", "name": "tax_rate_id", "in": "query" }, { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "TaxRateIDs", "name": "tax_rate_ids", "in": "query" }, { "type": "boolean", "x-go-name": "ExemptRentalSalesTax", "name": "exempt_rental_sales_tax", "in": "query" }, { "$ref": "#/definitions/RentalConsignment", "x-go-name": "Consignment", "name": "consignment", "in": "query" }, { "type": "array", "items": { "$ref": "#/definitions/RentalItem" }, "x-go-name": "Items", "name": "items", "in": "query" }, { "type": "boolean", "x-go-name": "InstantBookBanned", "description": "Rental-level instant book ban (stored in metadata, combo bookings only)", "name": "instant_book_banned", "in": "query" }, { "x-go-name": "InstantBookBanDate", "name": "instant_book_ban_date", "in": "query", "type": "string" }, { "type": "string", "x-go-name": "OriginalURL", "description": "Importing", "name": "original_url", "in": "query" }, { "type": "string", "x-go-name": "InternalNotes", "name": "internal_notes", "in": "query" }, { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime", "description": "Admin, owner Fields", "name": "created", "in": "query" }, { "type": "string", "x-go-name": "LastPublished", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime", "name": "last_published", "in": "query" }, { "type": "string", "x-go-name": "FirstPublished", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime", "name": "first_published", "in": "query" }, { "x-go-name": "SnoozeExpirationDate", "name": "snooze_expiration_date", "in": "query", "type": "string" }, { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime", "name": "updated", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Sort", "description": "Admin Fields", "name": "sort", "in": "query" }, { "$ref": "#/definitions/DBInterfaceMap", "x-go-name": "SortMetrics", "name": "sort_metrics", "in": "query" }, { "type": "boolean", "x-go-name": "Hidden", "name": "hidden", "in": "query" }, { "x-go-name": "HiddenReason", "name": "hidden_reason", "in": "query", "type": "string", "nullable": true }, { "type": "string", "x-go-name": "ImportID", "name": "import_id", "in": "query" }, { "type": "string", "x-go-name": "InternalID", "name": "internal_id", "in": "query" }, { "type": "string", "x-go-name": "RoamlyPolicyNumber", "name": "roamly_policy_number", "in": "query" }, { "type": "boolean", "x-go-name": "Inactive", "name": "inactive", "in": "query" }, { "type": "string", "x-go-name": "ExternalSiteURL", "name": "external_site_url", "in": "query" }, { "type": "string", "x-go-name": "AutoInsuranceType", "name": "auto_insurance_type", "in": "query" }, { "$ref": "#/definitions/DistributedRatings", "x-go-name": "DistributedRatings", "name": "distributed_ratings", "in": "query" }, { "$ref": "#/definitions/AverageRatings", "x-go-name": "AverageRatings", "name": "average_ratings", "in": "query" }, { "$ref": "#/definitions/AverageReviews", "x-go-name": "AverageReviews", "name": "average_reviews", "in": "query" }, { "$ref": "#/definitions/ReviewScores", "x-go-name": "ReviewScores", "name": "review_scores", "in": "query" }, { "$ref": "#/definitions/RentalFullReview", "x-go-name": "LatestReview", "description": "special fields populated before response, but not stored in DB", "name": "latest_review", "in": "query" }, { "$ref": "#/definitions/VinCheck", "x-go-name": "VinCheck", "name": "vin_check", "in": "query" }, { "type": "boolean", "x-go-name": "HasCompletedLYRV", "name": "has_completed_lyrv", "in": "query" }, { "type": "string", "x-go-name": "TuroVehicleID", "name": "turo_vehicle_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "TollspotID", "name": "tollspot_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RejectedImagesCount", "description": "holds the count of images with status rejected and ignore rejected false", "name": "rejected_images_count", "in": "query" }, { "$ref": "#/definitions/IMap", "x-go-name": "Metadata", "name": "metadata", "in": "query" }, { "type": "boolean", "x-go-name": "CanManageTaxRates", "description": "used by dashboard to disable tax editing", "name": "can_manage_tax_rates", "in": "query" }, { "type": "boolean", "x-go-name": "UseSystemTaxRates", "description": "used by rental listing page to display system tax notice", "name": "use_system_tax_rates", "in": "query" }, { "type": "boolean", "x-go-name": "IsEligibleForSystemTaxRates", "description": "For wheelbase so we can show when a rental will use system tax rates", "name": "eligible_for_system_tax_rates", "in": "query" }, { "type": "boolean", "x-go-name": "IsEligibleForCustomTaxRates", "description": "We allow custom taxes for Quebec which has also system tax rates", "name": "eligible_for_custom_tax_rates", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "ParentID", "description": "grouping functionality", "name": "parent_id", "in": "query" }, { "x-go-name": "ImagesVerified", "description": "moderation", "name": "images_verified", "in": "query", "type": "boolean", "nullable": true }, { "x-go-name": "ImagesVerifiedBy", "name": "images_verified_by", "in": "query", "type": "integer", "format": "int64", "nullable": true }, { "x-go-name": "PhotoScore", "name": "photo_score", "in": "query", "type": "integer", "format": "int64", "nullable": true }, { "x-go-name": "ReviewStatus", "name": "review_status", "in": "query", "type": "string", "nullable": true }, { "x-go-name": "ReviewNotes", "name": "review_notes", "in": "query", "type": "string", "nullable": true }, { "type": "array", "items": { "$ref": "#/definitions/TagRental" }, "x-go-name": "Tags", "name": "tags", "in": "query" }, { "type": "boolean", "x-go-name": "FreeFormTyped", "description": "free form typed flag", "name": "free_form_typed", "in": "query" }, { "$ref": "#/definitions/StayDetails", "x-go-name": "Stay", "name": "stay", "in": "query" }, { "$ref": "#/definitions/CampsiteCategory", "x-go-name": "CampsiteCategory", "name": "campsite_category", "in": "query" }, { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CheckIn", "name": "check_in", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "CheckOut", "name": "check_out", "in": "query" }, { "type": "boolean", "x-go-name": "BypassNewYorkRegulations", "description": "Admins can mark a vehicle to bypass New York regulations check", "name": "bypass_new_york_regulations", "in": "query" }, { "$ref": "#/definitions/PetFee", "x-go-name": "PetFee", "name": "pet_fee", "in": "query" }, { "type": "boolean", "x-go-name": "ODStaysOptIn", "name": "od_stays_opt_in", "in": "query" }, { "type": "boolean", "x-go-name": "ODStaysOptInEligible", "name": "od_stays_opt_in_eligible", "in": "query" }, { "type": "array", "items": { "type": "string" }, "x-go-name": "ODStaysOptInMissingRequirements", "name": "od_stays_opt_in_missing_requirements", "in": "query" }, { "x-go-name": "SDWaiverEnabled", "name": "sd_waiver_enabled", "in": "query", "type": "boolean", "nullable": true } ], "responses": { "200": { "$ref": "#/responses/createRentalResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/vehicle-types": { "get": { "description": "Read available vehicle types and return them in 2 arrays - towables and drivables", "tags": [ "rentals" ], "operationId": "listVehicleTypes", "parameters": [ { "$ref": "#/definitions/RentalTypesOptions", "name": "Body", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/getVehicleTypesResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{id}": { "get": { "description": "Read one rental", "tags": [ "rentals" ], "operationId": "getRentalById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/getRentalResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Delete rental", "tags": [ "rentals" ], "operationId": "deleteRentalById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Update rental", "tags": [ "rentals" ], "operationId": "updateRentalRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Rental" } } ], "responses": { "200": { "$ref": "#/responses/updateRentalResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{id}/complete-consignment": { "post": { "tags": [ "rentals" ], "summary": "Create consignment for a rental.", "operationId": "consignmentCompleteResponse", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/ConsignmentRequest" } } ], "responses": { "200": { "$ref": "#/responses/consignmentCompleteResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{id}/duplicate": { "post": { "description": "Duplicate a rental", "tags": [ "rentals" ], "operationId": "duplicateRental", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Rental" } } ], "responses": { "200": { "$ref": "#/responses/createRentalResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{id}/price": { "patch": { "description": "Update Rental Price", "tags": [ "rentals" ], "operationId": "updateRentalPriceRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/RentalPriceRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{id}/remove": { "post": { "description": "Remove rental", "tags": [ "rentals" ], "operationId": "rentalRemoveRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/RentalRemoveRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{id}/vin": { "patch": { "description": "Update Rental VIN", "tags": [ "rentals" ], "operationId": "updateRentalVINRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/RentalVinRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{rental_id}/delivery": { "post": { "description": "Get the delivery price for a rental for a given location", "operationId": "getDeliveryPrice", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "path", "required": true }, { "x-go-name": "Body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/DeliveryRequest" } } ], "responses": { "200": { "$ref": "#/responses/deliveryPriceResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{rental_id}/image-order": { "patch": { "description": "Updates position on rental images and optionally set new primary image", "tags": [ "rentalImages" ], "operationId": "orderRentalImages", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "type": "array", "items": { "$ref": "#/definitions/ImageOrder" } } } ], "responses": { "200": { "$ref": "#/responses/rentalImagesResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{rental_id}/images": { "get": { "description": "Retrieve list of rental images for rental id", "tags": [ "rentalImages" ], "operationId": "listRentalImages", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/rentalImagesResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "tags": [ "rentalImages" ], "summary": "Creates, updates, and deletes a set of rental images based on list of objects.", "operationId": "setRentalImages", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "type": "array", "items": { "$ref": "#/definitions/RentalImage" } } } ], "responses": { "200": { "$ref": "#/responses/rentalImagesResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{rental_id}/images/raw": { "post": { "description": "Create a single rental image using raw binary file upload", "tags": [ "rentalImages" ], "operationId": "createRawRentalImage", "responses": { "201": { "$ref": "#/responses/rentalImageResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{rental_id}/images/{id}": { "get": { "description": "Retrieve a single rental image by id", "tags": [ "rentalImages" ], "operationId": "getRentalImageById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/rentalImageResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Deletes the requested rental image by id", "tags": [ "rentalImages" ], "operationId": "deleteRentalImageById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Update rental image by id", "tags": [ "rentalImages" ], "operationId": "updateRentalImage", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/RentalImage" } } ], "responses": { "200": { "$ref": "#/responses/rentalImageResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/rentals/{rental_id}/services": { "get": { "description": "Not all services will be available for all rentals, depending on the owner,\nvehicle, or location of the vehicle (country).", "tags": [ "rentals" ], "summary": "Returns the list of available premium services for the request rental.", "operationId": "listRentalServices", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/rentalServicesResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/reports/checkout-questions": { "get": { "description": "Generate checkout questions report request", "tags": [ "reports" ], "operationId": "checkoutQuestionsReport", "responses": { "200": { "$ref": "#/responses/checkoutQuestionsReportResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/reports/credit": { "get": { "description": "Generate credit report request", "tags": [ "reports" ], "operationId": "creditReportRequest", "parameters": [ { "type": "boolean", "x-go-name": "IsOutstanding", "name": "outstanding", "in": "query" }, { "type": "boolean", "x-go-name": "Consumed", "name": "consumed", "in": "query" }, { "x-go-name": "From", "name": "from", "in": "query", "type": "string" }, { "x-go-name": "To", "name": "to", "in": "query", "type": "string" }, { "type": "integer", "format": "uint64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/creditReportResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/reports/end-of-day": { "get": { "description": "Generate end of day report request", "tags": [ "reports" ], "operationId": "endOfDayReportRequest", "parameters": [ { "x-go-name": "From", "name": "from", "in": "query", "type": "string" }, { "x-go-name": "To", "name": "to", "in": "query", "type": "string" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/endOfDayReportResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/reports/rental-prep": { "get": { "description": "Generate morning report request", "tags": [ "reports" ], "operationId": "morningReportRequest", "parameters": [ { "type": "string", "x-go-name": "Status", "name": "status", "in": "query" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" }, { "x-go-name": "Start", "name": "start", "in": "query", "type": "string" }, { "x-go-name": "End", "name": "end", "in": "query", "type": "string" }, { "type": "boolean", "x-go-name": "SkipNextDeparture", "name": "skip_next_departure", "in": "query" }, { "type": "boolean", "x-go-name": "ShowDeparting", "name": "show_departing", "in": "query" }, { "type": "boolean", "x-go-name": "ShowReturning", "name": "show_returning", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "uint64", "x-go-name": "Limit", "name": "limit", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/morningReportResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/reports/security-deposits": { "get": { "description": "Generate security deposits report request", "tags": [ "reports" ], "operationId": "securityDepositsReport", "responses": { "200": { "$ref": "#/responses/securityDepositsReportResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/reviews": { "get": { "description": "Return a list of reviews", "tags": [ "reviews" ], "operationId": "listReviews", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ReviewerID", "name": "reviewer_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" }, { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "RentalIDs", "name": "rental_ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "x-go-name": "TimestampLTE", "name": "timestamp_lte", "in": "query", "type": "string" }, { "x-go-name": "TimestampGTE", "name": "timestamp_gte", "in": "query", "type": "string" }, { "type": "number", "format": "double", "x-go-name": "ScoreLTE", "name": "score_lte", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "ScoreGTE", "name": "score_gte", "in": "query" }, { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "Scores", "name": "scores", "in": "query" }, { "type": "string", "x-go-name": "Search", "name": "search", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Order", "name": "order", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Lat", "name": "lat", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Lng", "name": "lng", "in": "query" }, { "type": "string", "x-go-name": "State", "name": "state", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Radius", "name": "radius", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeImages", "name": "images", "in": "query" }, { "type": "boolean", "x-go-name": "ExcludedFromRating", "name": "exclude_from_rating", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeDeleted", "name": "deleted", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeAll", "name": "include_all", "in": "query" }, { "type": "boolean", "x-go-name": "OnlyPublished", "name": "only_published", "in": "query" }, { "type": "boolean", "x-go-name": "OmitWithoutText", "name": "omit_without_text", "in": "query" }, { "type": "boolean", "x-go-name": "OmitHidden", "name": "omit_hidden", "in": "query" }, { "type": "string", "x-go-name": "OwnerSlug", "name": "owner_slug", "in": "query" }, { "type": "string", "x-go-name": "CSVToken", "name": "csv-token", "in": "query" }, { "type": "boolean", "x-go-name": "CSV", "name": "csv", "in": "query" }, { "type": "array", "items": { "type": "string" }, "name": "LocationIDs", "in": "query" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "CampgroundID", "name": "campground_id", "in": "query" }, { "type": "boolean", "x-go-name": "OnlyRentalReviews", "name": "only_rental_reviews", "in": "query" }, { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/reviewsResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "post": { "description": "Create a new review for a user or rental owner", "tags": [ "reviews" ], "operationId": "createReview", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Review" } } ], "responses": { "200": { "$ref": "#/responses/reviewResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/reviews-for-locality": { "get": { "description": "Return a list of reviews for given locality", "tags": [ "reviews" ], "operationId": "listLocalityReviews", "parameters": [ { "type": "number", "format": "double", "x-go-name": "Lat", "name": "lat", "in": "query" }, { "type": "number", "format": "double", "x-go-name": "Lng", "name": "lng", "in": "query" }, { "type": "string", "x-go-name": "State", "name": "state", "in": "query" }, { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/localityReviewsResponse" } } } }, "/reviews/{id}": { "get": { "description": "Return a single review by id", "tags": [ "reviews" ], "operationId": "getReviewById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/reviewResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "patch": { "description": "Update a review", "tags": [ "reviews" ], "operationId": "updateReview", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/ReviewUpdateOptions" } } ], "responses": { "200": { "$ref": "#/responses/reviewResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/search/bookings": { "get": { "description": "Search Bookings", "tags": [ "search" ], "operationId": "searchBookingsRequest", "parameters": [ { "type": "boolean", "x-go-name": "Archived", "name": "archived", "in": "query" }, { "type": "string", "x-go-name": "Filter", "name": "filter", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "Search", "name": "search", "in": "query" }, { "type": "string", "x-go-name": "OrderBy", "name": "order_by", "in": "query" }, { "x-go-name": "CreatedGT", "name": "created_gt", "in": "query", "type": "string" }, { "x-go-name": "CreatedLT", "name": "created_lt", "in": "query", "type": "string" }, { "x-go-name": "FromGT", "name": "from_gt", "in": "query", "type": "string" }, { "x-go-name": "FromLT", "name": "from_lt", "in": "query", "type": "string" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "StatusesRaw", "name": "statuses", "in": "query" }, { "type": "boolean", "x-go-name": "New", "name": "new", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/searchBookingsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/search/global": { "get": { "description": "Global Search", "tags": [ "search" ], "operationId": "globalSearchRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Search", "name": "search", "in": "query" }, { "type": "string", "x-go-name": "Types", "name": "types", "in": "query" }, { "type": "string", "x-go-name": "Status", "name": "status", "in": "query" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/globalSearchResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/search/meta-count": { "get": { "description": "Search Meta Count", "tags": [ "search" ], "operationId": "searchMetaCountRequest", "parameters": [ { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/searchMetaCountResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/search/parent-bookings": { "get": { "description": "Search Parent Bookings", "tags": [ "search" ], "operationId": "searchParentBookingsRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "Search", "name": "search", "in": "query" }, { "type": "string", "x-go-name": "OrderBy", "name": "order_by", "in": "query" }, { "x-go-name": "CreatedGT", "name": "created_gt", "in": "query", "type": "string" }, { "x-go-name": "CreatedLT", "name": "created_lt", "in": "query", "type": "string" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "Purpose", "name": "purpose", "in": "query" }, { "type": "boolean", "x-go-name": "Deleted", "name": "deleted", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/searchParentBookingsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/search/rentals": { "get": { "description": "Search Rentals", "tags": [ "search" ], "operationId": "searchRentalsRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Search", "name": "search", "in": "query" }, { "type": "string", "x-go-name": "OrderBy", "name": "order_by", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeUnpublished", "name": "include_unpublished", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeChildren", "name": "include_children", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeAllCategoryMeta", "name": "include_all_category_meta", "in": "query" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "TypesRaw", "name": "types", "in": "query" }, { "type": "string", "x-go-name": "MakesRaw", "name": "makes", "in": "query" }, { "type": "string", "x-go-name": "CategoriesRaw", "name": "categories", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/searchRentalsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/search/{user_id}/customers": { "get": { "description": "Search Customers for a dealer", "tags": [ "search" ], "operationId": "searchCustomersRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "Search", "name": "search", "in": "query" }, { "x-go-name": "FromGT", "name": "from_gt", "in": "query", "type": "string" }, { "x-go-name": "FromLT", "name": "from_lt", "in": "query", "type": "string" }, { "type": "string", "x-go-name": "LocationsRaw", "name": "location_ids", "in": "query" }, { "type": "boolean", "x-go-name": "RepeatGuest", "name": "repeat_guest", "in": "query" }, { "type": "boolean", "x-go-name": "ActiveGuest", "name": "active_guest", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/searchCustomersResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/special-hours": { "get": { "description": "Retrieve list of special hours", "tags": [ "specialHours" ], "operationId": "getSpecialHours", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "string", "x-go-name": "OrderBy", "name": "order_by", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LocationID", "name": "location_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" }, { "type": "array", "items": { "type": "integer", "format": "int64" }, "name": "EmployeeLocations", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/specialHoursResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } }, "post": { "description": "Create special hours for the specified date", "tags": [ "specialHours" ], "operationId": "createSpecialHour", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/SpecialHour" } } ], "responses": { "200": { "$ref": "#/responses/specialHourResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/special-hours/{id}": { "get": { "description": "Retrieve special hour by id", "tags": [ "specialHours" ], "operationId": "getSpecialHour", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/specialHourResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "delete": { "description": "Delete special hour", "tags": [ "specialHours" ], "operationId": "deleteSpecialHour", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "patch": { "description": "Update special hour", "tags": [ "specialHours" ], "operationId": "updateSpecialHour", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/SpecialHour" } } ], "responses": { "200": { "$ref": "#/responses/specialHourResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/towable_features": { "get": { "description": "Returns a list of toweable features", "tags": [ "toweable" ], "operationId": "features", "responses": { "200": { "$ref": "#/responses/towableFeaturesResponse" }, "default": { "$ref": "#/responses/genericError" } } } }, "/towing_info": { "get": { "description": "Returns a list of towing info for vehicles", "tags": [ "towingInfo" ], "operationId": "towingInfoRequest", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Year", "name": "year", "in": "query" }, { "type": "string", "x-go-name": "Make", "name": "make", "in": "query" }, { "type": "string", "x-go-name": "Model", "name": "model", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/towingInfoResponse" }, "default": { "$ref": "#/responses/genericError" } } } }, "/transactions": { "get": { "tags": [ "transactions" ], "summary": "Global read many transactions, across all bookings.", "operationId": "listTransactions", "parameters": [ { "type": "boolean", "x-go-name": "Scheduled", "name": "scheduled", "in": "query" }, { "x-go-name": "From", "name": "from", "in": "query", "type": "string" }, { "x-go-name": "To", "name": "to", "in": "query", "type": "string" }, { "x-go-name": "DepGT", "name": "deposited_gt", "in": "query", "type": "string" }, { "x-go-name": "DepLT", "name": "deposited_lt", "in": "query", "type": "string" }, { "type": "string", "x-go-name": "CreatedGT", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime", "name": "created_gt", "in": "query" }, { "type": "string", "x-go-name": "CreatedLT", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime", "name": "created_lt", "in": "query" }, { "type": "string", "x-go-name": "Type", "name": "type", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Brand", "name": "brand", "in": "query" }, { "type": "string", "x-go-name": "LocationIDs", "name": "location_ids", "in": "query" }, { "type": "string", "x-go-name": "RentalIDs", "name": "rental_ids", "in": "query" }, { "type": "string", "x-go-name": "SortBy", "name": "sort_by", "in": "query" }, { "type": "string", "x-go-name": "SortDir", "name": "sort_dir", "in": "query" }, { "type": "string", "x-go-name": "PaymentSource", "name": "payment_source", "in": "query" }, { "type": "string", "x-go-name": "Status", "name": "status", "in": "query" }, { "type": "string", "x-go-name": "ProcessorSettlementID", "name": "processor_settlement_id", "in": "query" }, { "type": "string", "x-go-name": "PaymentProcessorIDs", "name": "payment_processor_ids", "in": "query" }, { "x-go-name": "ActualDepGT", "name": "actual_deposited_gt", "in": "query", "type": "string" }, { "x-go-name": "ActualDepLT", "name": "actual_deposited_lt", "in": "query", "type": "string" }, { "type": "string", "x-go-name": "CSVToken", "name": "csv-token", "in": "query" }, { "type": "boolean", "x-go-name": "CSV", "name": "csv", "in": "query" }, { "type": "boolean", "x-go-name": "Simple", "name": "simple", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeFailed", "name": "include_failed", "in": "query" }, { "type": "boolean", "x-go-name": "IncludeIncomplete", "name": "include_incomplete", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/transactionsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/transactions/batch-events": { "get": { "description": "List batch events", "tags": [ "transactions" ], "operationId": "getBatchEvents", "parameters": [ { "$ref": "#/definitions/Date", "x-go-name": "DateLowerBound", "name": "date_lower_bound", "in": "query" }, { "$ref": "#/definitions/Date", "x-go-name": "DateUpperBound", "name": "date_upper_bound", "in": "query" }, { "type": "string", "x-go-name": "PaymentProcessorIDs", "name": "payment_processor_ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "boolean", "x-go-name": "OK", "name": "ok", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/batchEventsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/transactions/batches/{batch_id}/details": { "get": { "description": "List batch events", "tags": [ "transactions" ], "operationId": "getBatchDetails", "responses": { "200": { "$ref": "#/responses/batchDetailsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/transactions/deposits": { "get": { "description": "Grouped deposits report", "tags": [ "transactions" ], "operationId": "getGroupedDeposits", "parameters": [ { "type": "string", "x-go-name": "CSVToken", "name": "csv-token", "in": "query" }, { "x-go-name": "DateGT", "name": "date_gt", "in": "query", "type": "string" }, { "x-go-name": "DateLT", "name": "date_lt", "in": "query", "type": "string" }, { "type": "boolean", "x-go-name": "CSV", "name": "csv", "in": "query" }, { "type": "string", "x-go-name": "PaymentProcessorIDs", "name": "payment_processor_ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/groupedDepositsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/transactions/deposits/details": { "get": { "description": "Details for requested transfers", "tags": [ "transactions" ], "operationId": "getDepositDetails", "parameters": [ { "type": "string", "x-go-name": "TransferIDs", "name": "transfer_ids", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/depositDetailsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/transactions/payout-history": { "get": { "tags": [ "payouts" ], "operationId": "listPayouts", "responses": { "200": { "$ref": "#/responses/transactionsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/usage-based-items": { "get": { "tags": [ "usageBasedItems" ], "summary": "Returns an array of usage based items owned by the user.", "operationId": "getUsageBasedItems", "responses": { "200": { "$ref": "#/responses/usageBasedItemsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Create new usage based item (Ex. mileage, generator, delivery)", "tags": [ "usageBasedItems" ], "operationId": "createUsageBasedItem", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/UsageBasedItem" } } ], "responses": { "200": { "$ref": "#/responses/usageBasedItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/usage-based-items/:id": { "get": { "tags": [ "usageBasedItems" ], "summary": "Returns the usage based item by id.", "operationId": "getUsageBasedItemById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/usageBasedItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Delete record by id", "tags": [ "usageBasedItems" ], "operationId": "deleteUsageBasedItem", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "tags": [ "usageBasedItems" ], "summary": "Update record by id.", "operationId": "updateUsageBasedItem", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/UsageBasedItem" } } ], "responses": { "200": { "$ref": "#/responses/usageBasedItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/usage-based-items/{usage_based_item_id}/tiers": { "get": { "description": "Return array of tiers for the specified usage based item", "tags": [ "usageBasedItemTiers" ], "operationId": "getUsageBasedItemTiers", "responses": { "200": { "$ref": "#/responses/usageBasedItemTiersResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Create new usage based item (Ex. mileage, generator, delivery)", "tags": [ "usageBasedItemTiers" ], "operationId": "createUsageBasedItemTier", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UsageBasedItemID", "name": "usage_based_item_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/UsageBasedItemTier" } } ], "responses": { "200": { "$ref": "#/responses/usageBasedItemResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/usage-based-items/{usage_based_item_id}/tiers/{id}": { "get": { "description": "Return array of tiers for the specified usage based item", "tags": [ "usageBasedItemTiers" ], "operationId": "getUsageBasedItemTierById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UsageBasedItemID", "name": "usage_based_item_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/usageBasedItemTierResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Update usage based item tier record", "tags": [ "usageBasedItemTiers" ], "operationId": "deleteUsageBasedItemTier", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UsageBasedItemID", "name": "usage_based_item_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Update usage based item tier record", "tags": [ "usageBasedItemTiers" ], "operationId": "updateUsageBasedItemTier", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UsageBasedItemID", "name": "usage_based_item_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/UsageBasedItemTier" } } ], "responses": { "200": { "$ref": "#/responses/usageBasedItemTierResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/user-notice-events": { "get": { "description": "Lists user notice events", "tags": [ "userNoticeEvents" ], "operationId": "listUserNoticeEvents", "parameters": [ { "type": "string", "name": "IDs", "in": "query" }, { "type": "string", "name": "Name", "in": "query" }, { "type": "boolean", "name": "RequiresBookingRequest", "in": "query" }, { "type": "boolean", "name": "Enabled", "in": "query" }, { "name": "From", "in": "query", "type": "string" }, { "name": "To", "in": "query", "type": "string" }, { "type": "number", "format": "double", "name": "Lat", "in": "query" }, { "type": "number", "format": "double", "name": "Lng", "in": "query" }, { "type": "string", "name": "Country", "in": "query" }, { "type": "boolean", "name": "ExcludeBundleBookings", "in": "query" }, { "type": "integer", "format": "int64", "name": "Limit", "in": "query" }, { "type": "integer", "format": "int64", "name": "Offset", "in": "query" }, { "type": "string", "name": "OrderBy", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/userNoticeEventsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "500": { "$ref": "#/responses/internalServerError" } } }, "post": { "description": "Creates a user notice event", "tags": [ "userNoticeEvents" ], "operationId": "createUserNoticeEvent", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/NoticeEvent" } } ], "responses": { "201": { "$ref": "#/responses/userNoticeEventResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "500": { "$ref": "#/responses/internalServerError" } } } }, "/user-notice-events/{event_id}": { "get": { "description": "Reads a user notice event by id", "tags": [ "userNoticeEvents" ], "operationId": "getUserNoticeEventById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "EventID", "name": "event_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/userNoticeEventResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/internalServerError" } } }, "put": { "description": "Updates a user notice event", "tags": [ "userNoticeEvents" ], "operationId": "updateUserNoticeEvent", "responses": { "200": { "$ref": "#/responses/userNoticeEventResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/internalServerError" } } }, "patch": { "description": "Disables a user notice event by id", "tags": [ "userNoticeEvents" ], "operationId": "disableUserNoticeEvent", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "EventID", "name": "event_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/userNoticeEventResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "404": { "$ref": "#/responses/notFoundError" }, "500": { "$ref": "#/responses/internalServerError" } } } }, "/users": { "get": { "description": "Return list of users", "tags": [ "users" ], "operationId": "listUsers", "responses": { "200": { "$ref": "#/responses/usersResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/authorization": { "get": { "description": "Starts the fund authorization process for the given country", "tags": [ "funds" ], "operationId": "continueAuthorization", "responses": { "200": { "$ref": "#/responses/continueAuthorizationResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Return fund authorization details for country", "tags": [ "funds" ], "operationId": "completeAuthorization", "parameters": [ { "type": "string", "description": "API Key used to perform authorization.", "name": "APIKey", "in": "query" }, { "type": "string", "x-go-name": "Country", "description": "The country in which this account resides. Must be the same as the country\nsent to the `begin` endpoint.", "name": "country", "in": "query" }, { "type": "string", "x-go-name": "BusinessType", "description": "The type of business for which this account is being created.", "name": "business_type", "in": "query" }, { "type": "string", "x-go-name": "Token", "description": "The token returned from the authorizer iframe.", "name": "token", "in": "query" }, { "type": "string", "x-go-name": "AccountID", "description": "The ID of the account chosen by the user. This was gathered after the\n`GetFundCreationForm` request was made.", "name": "account_id", "in": "query" }, { "type": "string", "x-go-name": "AccountName", "description": "The name of the account chosen by the user. This was gathered after the\n`GetFundCreationForm` request was made.", "name": "account_name", "in": "query" }, { "type": "string", "x-go-name": "AccountMask", "description": "The mask of the account chosen by the user. This was gathered after the\n`GetFundCreationForm` request was made.", "name": "account_mask", "in": "query" }, { "type": "string", "x-go-name": "BuiAccept", "description": "A BUI accept header", "name": "Bui-Accept", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/completeAuthorizationResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Archives the authorization", "tags": [ "funds" ], "operationId": "archiveAuthorization", "responses": { "200": { "$ref": "#/responses/continueAuthorizationResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/authorization-form": { "post": { "description": "Return fund authorization BUI form", "tags": [ "funds" ], "operationId": "completeAuthorizationFundCreationFormDeprecated", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CompleteAuthorizationAndGetFundCreationFormRequest" } } ], "responses": { "200": { "$ref": "#/responses/fundCreationFormResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/authorization-form/{bank_id}": { "post": { "description": "Return fund authorization BUI form for existing bank", "tags": [ "funds" ], "operationId": "completeAuthorizationFundCreationFormByIdDeprecated", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "BankID", "name": "bank_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CompleteAuthorizationAndGetFundCreationFormRequest" } } ], "responses": { "200": { "$ref": "#/responses/fundCreationFormResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/authorizations": { "get": { "description": "Lists any pending authorizations for the user", "tags": [ "funds" ], "operationId": "listPendingAuthorizationsAsAdmin", "responses": { "200": { "$ref": "#/responses/listPendingAuthorizationsAsAdminResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/bank": { "post": { "description": "See POST /users/banks", "tags": [ "banks" ], "summary": "Create/Update a single stripe connected bank account. Does not support new Finance funds.", "operationId": "connectStripeBank", "deprecated": true, "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/VendorBody" } } ], "responses": { "200": { "$ref": "#/responses/bankResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/bank/{id}": { "delete": { "tags": [ "banks" ], "summary": "Deletes a connected bank account.", "operationId": "deleteBankAccount", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/banks": { "get": { "description": "List active bank accounts", "tags": [ "banks" ], "operationId": "listBanks", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "query" }, { "type": "string", "x-go-name": "IDs", "name": "ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LocationID", "name": "location_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "query" }, { "type": "string", "x-go-name": "Country", "name": "country", "in": "query" }, { "type": "boolean", "x-go-name": "Archived", "name": "archived", "in": "query" }, { "type": "boolean", "x-go-name": "ManagedAccountsOnly", "name": "managed_accounts_only", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Order", "name": "order", "in": "query" }, { "type": "string", "x-go-name": "FundType", "name": "fund_type", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listBankResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Creates a new bank account", "tags": [ "banks" ], "operationId": "addBankAccount", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/VendorBody" } } ], "responses": { "204": { "$ref": "#/responses/bankResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/banks/{id}": { "get": { "description": "Retrieve single bank by id", "tags": [ "banks" ], "operationId": "getBankById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/bankResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Updates the specified connected bank", "tags": [ "banks" ], "operationId": "updateBankAccount", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/VendorBody" } } ], "responses": { "204": { "$ref": "#/responses/bankResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/fund-steps": { "post": { "description": "Return fund authorization BUI form", "tags": [ "funds" ], "operationId": "getFundSteps", "parameters": [ { "type": "string", "description": "API Key used to perform authorization.", "name": "APIKey", "in": "query" }, { "type": "string", "x-go-name": "AuthorizationID", "description": "The ID of an Authorization object.", "name": "authorization_id", "in": "query" }, { "type": "string", "x-go-name": "BuiAccept", "description": "A BUI accept header", "name": "Bui-Accept", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/successResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/gateways": { "get": { "description": "List available gateways", "tags": [ "gateways" ], "operationId": "listUserGateways", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "query" }, { "type": "string", "x-go-name": "IDs", "name": "ids", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "OwnerID", "name": "owner_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "LocationID", "name": "location_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "RentalID", "name": "rental_id", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "BookingID", "name": "booking_id", "in": "query" }, { "type": "string", "x-go-name": "Country", "name": "country", "in": "query" }, { "type": "boolean", "x-go-name": "Archived", "name": "archived", "in": "query" }, { "type": "boolean", "x-go-name": "ManagedAccountsOnly", "name": "managed_accounts_only", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Limit", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "x-go-name": "Offset", "name": "offset", "in": "query" }, { "type": "string", "x-go-name": "Order", "name": "order", "in": "query" }, { "type": "string", "x-go-name": "FundType", "name": "fund_type", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/listBankResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } }, "post": { "description": "Create payment gateway", "tags": [ "gateways" ], "operationId": "createGateway", "responses": { "200": { "$ref": "#/responses/userResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/users/gateways/{id}": { "delete": { "description": "Archive payment gateway", "tags": [ "gateways" ], "operationId": "archiveUserGateway", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/users/logout": { "get": { "description": "Log user out by invalidating authorization token", "tags": [ "users" ], "operationId": "logoutUser", "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "401": { "$ref": "#/responses/unauthorizedError" } } } }, "/users/me": { "get": { "description": "Must be authenticated to make this request, otherwise an unauthorized error\nis returned.", "tags": [ "users" ], "summary": "Returns currently logged in user.", "operationId": "usersMe", "responses": { "200": { "$ref": "#/responses/userResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/mini_me": { "get": { "description": "Must be authenticated to make this request, otherwise an unauthorized error\nis returned.", "tags": [ "users" ], "summary": "Returns currently logged in user with minimal info.", "operationId": "getMiniMe", "responses": { "200": { "$ref": "#/responses/userResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/todays-activities": { "get": { "description": "Returns today's activities for the owner", "tags": [ "users" ], "operationId": "getTodaysActivities", "responses": { "200": { "$ref": "#/responses/todaysActivitiesResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/{id}": { "get": { "description": "Return requested user model", "tags": [ "users" ], "operationId": "getUserById", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/userResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Update a user", "tags": [ "users" ], "operationId": "updateUser", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "ID", "name": "id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/Profile" } } ], "responses": { "200": { "$ref": "#/responses/userResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/users/{id}/owner-report-card": { "get": { "description": "Returns statistics about the owner", "tags": [ "users" ], "operationId": "ownerReportCard", "parameters": [ { "name": "Start", "in": "query", "type": "string" }, { "name": "End", "in": "query", "type": "string" }, { "type": "boolean", "name": "IncludeAllRentals", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/ownerReportCardResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/{user_id}/bundles": { "get": { "description": "List insurance bundles available to renter of the user (owner) who calls this endpoint", "tags": [ "bundles" ], "operationId": "listBundlesAvailableForUser", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "RenterID", "name": "renter_id", "in": "query", "required": true } ], "responses": { "200": { "$ref": "#/responses/bundlesResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" } } }, "post": { "description": "Creates a bundle rule with the specified bundle and the specified uptake percents for the user (owner) who calls this endpoint", "tags": [ "bundles" ], "operationId": "setBundleUptake", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/SetPercentUptake" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } }, "delete": { "description": "Deletes a bundle rule with the specified bundle for the user (owner) who calls this endpoint", "tags": [ "bundles" ], "operationId": "deleteBundleUptake", "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/users/{user_id}/cards": { "get": { "description": "Retrieve user cards", "tags": [ "userCards" ], "operationId": "getUserCards", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/cardsResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Create a credit card and assigns to user", "tags": [ "userCards" ], "operationId": "createCard", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "path", "required": true }, { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CreateCard" } } ], "responses": { "201": { "$ref": "#/responses/cardResponse" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/users/{user_id}/cards/{card_id}": { "delete": { "description": "Retrieve user cards", "tags": [ "userCards" ], "operationId": "deleteUserCard", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "CardID", "name": "card_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "ReplacementCardId", "name": "replacement_id", "in": "query" } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Set default card for the user", "tags": [ "userCards" ], "operationId": "updateUserCard", "parameters": [ { "type": "integer", "format": "int64", "x-go-name": "UserID", "name": "user_id", "in": "path", "required": true }, { "type": "integer", "format": "int64", "x-go-name": "CardID", "name": "card_id", "in": "path", "required": true } ], "responses": { "200": { "$ref": "#/responses/cardResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" } } } }, "/validations": { "get": { "tags": [ "validations" ], "summary": "Returns a list of validations in the system. The data returned is a public-facing subset of the internal data.", "operationId": "listValidations", "parameters": [ { "type": "string", "description": "A hash[string]string object containing the fields you wish to query on. If the field names and values match an entry exactly, that entry will be returned. For example, this could be used to fetch a specific tint validation row by sending `{\"booking_id\":\"1234\",\"driver_id\":\"5678\",\"validator\":\"tint\"}`", "name": "args", "in": "query" }, { "type": "string", "description": "A hash[string]string object containing the fields you wish to query on. If the field names and values are contained by one or more entries, those entries will be returned. For example, this could be used to fetch all tint validations for a specific booking by sending `{\"booking_id\":\"1234\",\"validator\":\"tint\"}`", "name": "contains_args", "in": "query" }, { "type": "string", "description": "The status on which you wish to filter. Valid options are `pending, processing, passed, flagged, error, failed`", "name": "status", "in": "query" }, { "type": "string", "description": "The validator on which you wish to filter. Valid options are `tint`.", "name": "validator", "in": "query" }, { "type": "string", "description": "The order in which to return results. Typically you may pass the name of a field in the object to order by that field ASC. If you want DESC, prepend the name with `-`", "name": "order_by", "in": "query" }, { "type": "integer", "description": "Returns list of results for a given limit.", "name": "limit", "in": "query" }, { "type": "integer", "description": "Returns list of results for a given offset.", "name": "offset", "in": "query" } ] } }, "/wishlists": { "get": { "description": "Gets wishlists for current user\nUse `examples_only=false&exclude_examples=false` to get all user wishlists and a set of random examples\nUse `examples_only=true&exclude_examples=false` to get all example wishlists and exclude user wishlists\nUse `examples_only=false&exclude_examples=true` to get all user wishlists and exclude examples\nUse `examples_only=true&exclude_examples=true` is not allowed\nUse `rental_category=rv` to filter rentals to RV category (includes campgrounds)\nUse `rental_category=auto` to filter rentals to auto category (excludes campgrounds)", "tags": [ "wishlists" ], "operationId": "readManyWishlists", "parameters": [ { "type": "boolean", "x-go-name": "ExamplesOnly", "name": "examples_only", "in": "query" }, { "type": "boolean", "x-go-name": "ExcludeExamples", "name": "exclude_examples", "in": "query" }, { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/readManyWishlistResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } }, "post": { "description": "Creates a wishlist with current user as owner", "tags": [ "wishlists" ], "operationId": "createWishlist", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/CreateWishlistRequest" } } ], "responses": { "201": { "$ref": "#/responses/createWishlistResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/wishlists-recently-saved": { "get": { "description": "Gets up to 10 most recently saved rentals for current user\nUse `rental_category=rv` to filter rentals to RV category only\nUse `rental_category=auto` to filter rentals to auto category only", "tags": [ "wishlists" ], "operationId": "readRecentlySavedWishlists", "parameters": [ { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/readRecentlySavedWishlistsResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/wishlists/change-wishlist": { "post": { "description": "Removes a rental from one wishlist and adds it to another", "tags": [ "wishlists" ], "operationId": "changeWishlist", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/ChangeWishlistRequest" } } ], "responses": { "201": { "$ref": "#/responses/changeWishlistResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/wishlists/{wishlist_id}": { "get": { "description": "Gets one wishlist by id\nUse `rental_category=rv` to filter rentals to RV category (includes campgrounds)\nUse `rental_category=auto` to filter rentals to auto category (excludes campgrounds)", "tags": [ "wishlists" ], "operationId": "getWishlist", "parameters": [ { "type": "string", "x-go-name": "RentalCategory", "name": "rental_category", "in": "query" } ], "responses": { "200": { "$ref": "#/responses/readOneWishlistResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "delete": { "description": "Deletes one wishlist by id", "tags": [ "wishlists" ], "operationId": "deleteWishlist", "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } }, "patch": { "description": "Updates the details of an existing wishlist", "tags": [ "wishlists" ], "operationId": "updateWishlist", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/UpdateWishlistRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/wishlists/{wishlist_id}/accept-invite": { "post": { "description": "Accepts an invite to a wishlist with a given token", "tags": [ "wishlists" ], "operationId": "acceptWishlistInvite", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/AcceptWishlistInviteRequest" } } ], "responses": { "201": { "$ref": "#/responses/acceptWishlistInviteResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "403": { "$ref": "#/responses/forbiddenError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/wishlists/{wishlist_id}/add": { "put": { "description": "Adds a rental to an existing wishlist", "tags": [ "wishlists" ], "operationId": "addToWishlist", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/AddToWishlistRequest" } } ], "responses": { "200": { "$ref": "#/responses/addToWishlistResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/wishlists/{wishlist_id}/remove": { "post": { "description": "Removes a rental from an existing wishlist", "tags": [ "wishlists" ], "operationId": "removeFromWishlist", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/RemoveFromWishlistRequest" } } ], "responses": { "201": { "$ref": "#/responses/removeFromWishlistResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/wishlists/{wishlist_id}/remove-user": { "delete": { "description": "Removes a user from a wishlist", "tags": [ "wishlists" ], "operationId": "removeUserFromWishlist", "parameters": [ { "name": "Body", "in": "body", "schema": { "$ref": "#/definitions/RemoveUserFromWishlistRequest" } } ], "responses": { "204": { "$ref": "#/responses/noContentResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } }, "/wishlists/{wishlist_id}/token": { "post": { "description": "Gets existing, non-expired invite token for a wishlist or creates and returns a new one", "tags": [ "wishlists" ], "operationId": "getOrCreateInviteToken", "responses": { "201": { "$ref": "#/responses/getOrCreateInviteTokenResponse" }, "400": { "$ref": "#/responses/badRequestError" }, "401": { "$ref": "#/responses/unauthorizedError" }, "404": { "$ref": "#/responses/notFoundError" }, "default": { "$ref": "#/responses/genericError" } } } } }, "definitions": { "AcceptWishlistInviteRequest": { "type": "object", "properties": { "token": { "type": "string", "x-go-name": "Token" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "AcceptWishlistInviteResponse": { "type": "object", "properties": { "role": { "type": "string", "x-go-name": "Role" }, "title": { "type": "string", "x-go-name": "Title" }, "user_details": { "$ref": "#/definitions/WishlistUserDetails" }, "wishlist_id": { "type": "integer", "format": "int64", "x-go-name": "WishlistID" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "Action": { "type": "string", "x-go-package": "github.com/outdoorsy/api/internal/earned_credit" }, "AddToWishlistRequest": { "type": "object", "properties": { "campground_id": { "type": "integer", "format": "int64", "x-go-name": "CampgroundID" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "AddToWishlistResponse": { "type": "object", "properties": { "cover_image_url": { "type": "string", "x-go-name": "CoverImageUrl" }, "title": { "type": "string", "x-go-name": "Title" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "Address": { "description": "Address holds address information for a user", "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "country": { "type": "string", "x-go-name": "Country" }, "county": { "type": "string", "x-go-name": "County" }, "state": { "type": "string", "x-go-name": "State" }, "street": { "type": "string", "x-go-name": "Street" }, "street_etc": { "type": "string", "x-go-name": "StreetEtc" }, "zip": { "type": "string", "x-go-name": "Zip" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "AffirmDetails": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "charge_id": { "type": "string", "x-go-name": "ChargeID" }, "checkout_token": { "type": "string", "x-go-name": "CheckoutToken" }, "status": { "type": "string", "x-go-name": "Status" }, "user_id": { "type": "string", "x-go-name": "UserID" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "AiReplySuggestion": { "type": "object", "properties": { "confidence_level": { "type": "number", "format": "double", "x-go-name": "ConfidenceLevel" }, "conversation_id": { "type": "integer", "format": "int64", "x-go-name": "ConversationID" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_message_id": { "type": "integer", "format": "int64", "x-go-name": "LastMessageID" }, "message": { "type": "integer", "format": "int64" }, "requesting_user_id": { "type": "integer", "format": "int64", "x-go-name": "RequestingUserID" }, "requesting_user_role": { "type": "string", "x-go-name": "RequestingUserRole" }, "suggestion_text": { "type": "string", "x-go-name": "SuggestionText" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/ai_suggestion" }, "Amenity": { "type": "object", "properties": { "name": { "type": "string", "x-go-name": "Name" }, "options": { "$ref": "#/definitions/DBStringMap" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "slug": { "type": "string", "x-go-name": "Slug" } }, "x-go-package": "github.com/outdoorsy/api/internal/amenities" }, "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/api/internal/amenities" }, "Amount": { "type": "integer", "format": "uint64", "x-go-package": "github.com/outdoorsy/api/internal/gift_card" }, "Announcement": { "type": "object", "properties": { "content": { "type": "string", "x-go-name": "Content" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by": { "type": "integer", "format": "int64", "x-go-name": "CreatedBy" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "deleted_at": { "type": "string", "x-go-name": "DeletedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted_by": { "type": "integer", "format": "int64", "x-go-name": "DeletedBy" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "published_at": { "type": "string", "x-go-name": "PublishedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "published_by": { "type": "integer", "format": "int64", "x-go-name": "PublishedBy" }, "title": { "type": "string", "x-go-name": "Title" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "updated_by": { "type": "integer", "format": "int64", "x-go-name": "UpdatedBy" } }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "AnnouncementGroup": { "type": "object", "properties": { "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by": { "type": "integer", "format": "int64", "x-go-name": "CreatedBy" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "deleted_at": { "type": "string", "x-go-name": "DeletedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted_by": { "type": "integer", "format": "int64", "x-go-name": "DeletedBy" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "updated_by": { "type": "integer", "format": "int64", "x-go-name": "UpdatedBy" } }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "AttentionItem": { "type": "object", "properties": { "data": { "$ref": "#/definitions/AttentionItemData" }, "is_actionable": { "type": "boolean", "x-go-name": "IsActionable" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "AttentionItemData": { "type": "object", "properties": { "auto_expires": { "type": "boolean", "x-go-name": "AutoExpires" }, "completed_at": { "type": "string", "x-go-name": "CompletedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "confirmation_message": { "type": "string", "x-go-name": "ConfirmationMessage" }, "conversation_first_message": { "type": "integer", "format": "int64" }, "created_at": { "type": "string", "x-go-name": "CreatedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "daily": { "type": "boolean", "x-go-name": "Daily" }, "description": { "type": "string", "x-go-name": "Description" }, "expires_at": { "type": "string", "x-go-name": "ExpiresAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "from": { "type": "string" }, "group_item_details": { "type": "array", "items": { "$ref": "#/definitions/Proposal" }, "x-go-name": "GroupItemDetails" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "message": { "type": "string", "x-go-name": "Message" }, "name": { "type": "string", "x-go-name": "Name" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" }, "quantity": { "type": "integer", "format": "int64", "x-go-name": "Quantity" }, "rental_amount": { "type": "integer", "format": "int64", "x-go-name": "RentalAmount" }, "to": { "type": "string" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "Authorization": { "type": "object", "properties": { "account_mask": { "type": "string", "x-go-name": "AccountMask" }, "account_name": { "type": "string", "x-go-name": "AccountName" }, "archived": { "type": "boolean", "x-go-name": "Archived" }, "authorization_id": { "$ref": "#/definitions/AuthorizationID" }, "authorization_status": { "$ref": "#/definitions/AuthorizationStatus" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "ppi_id_to_update": { "type": "integer", "format": "int64", "x-go-name": "PPIIDToUpdate" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" }, "user_id": { "$ref": "#/definitions/UserID" } }, "x-go-package": "github.com/outdoorsy/api/internal/teller" }, "AuthorizationID": { "type": "string", "x-go-package": "github.com/outdoorsy/api/internal/teller" }, "AuthorizationStatus": { "type": "string", "x-go-package": "github.com/outdoorsy/api/internal/teller" }, "AutoSuggestionsResponse": { "type": "object", "properties": { "awaiting_review": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "BookingIDsAwaitingReview" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "incomplete_bookings": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "IncompleteBookingIDs" }, "previous_rentals": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "PreviousRentalIDs" }, "recent_searches": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "RecentSearchIDs" } }, "x-go-package": "github.com/outdoorsy/api/internal/autosuggestions" }, "AvailabilityInfo": { "type": "object", "properties": { "campground_id": { "type": "integer", "format": "int64", "x-go-name": "CampgroundID" }, "from": { "type": "string" }, "marketplace_only": { "type": "boolean", "x-go-name": "MarketplaceOnly" }, "next_available": { "type": "string" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "to": { "type": "string" }, "turnaround_days": { "type": "integer", "format": "int64", "x-go-name": "TurnaroundDays" } }, "x-go-package": "github.com/outdoorsy/api/internal/availability" }, "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/api/model" }, "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/api/model" }, "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/api/model" }, "BaseCampsiteCategory": { "type": "object", "properties": { "active_rate_plan": { "type": "string", "x-go-name": "ActiveRatePlan" }, "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" }, "category_type": { "type": "string", "x-go-name": "CategoryType" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "description": { "type": "string", "x-go-name": "Description" }, "external_id": { "type": "string", "x-go-name": "ExternalID" }, "features": { "$ref": "#/definitions/MSI" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "max_occupancy": { "type": "integer", "format": "int64", "x-go-name": "MaxOccupancy" }, "max_occupancy_adult": { "type": "integer", "format": "int64", "x-go-name": "MaxAdultOccupancy" }, "max_occupancy_kids": { "type": "integer", "format": "int64", "x-go-name": "MaxKidsOccupancy" }, "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" }, "quantity": { "type": "integer", "format": "int64", "x-go-name": "Quantity" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/campgrounds" }, "BaseConversation": { "type": "object", "properties": { "all_statuses": { "type": "string", "x-go-name": "AllStatuses" }, "archived": { "type": "boolean", "x-go-name": "Archived" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_location_id": { "type": "integer", "format": "int64", "x-go-name": "LastLocationID" }, "num_messages": { "type": "integer", "format": "uint64", "x-go-name": "NumMessages" }, "owner_sms_proxy_id": { "type": "string", "nullable": true }, "read": { "type": "boolean", "x-go-name": "Read" }, "renter_sms_proxy_id": { "type": "string", "nullable": true }, "sms_proxy_closed": { "type": "boolean", "nullable": true }, "sms_proxy_session_id": { "type": "string", "nullable": true }, "time_to_first_action": { "type": "integer", "format": "int64", "nullable": true }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BatchEventContents": { "type": "object", "properties": { "payout_ids": { "type": "array", "items": { "type": "string" }, "x-go-name": "PayoutIDs" }, "reversal_ids": { "type": "array", "items": { "type": "string" }, "x-go-name": "ReversalIDs" }, "withdrawal_ids": { "type": "array", "items": { "type": "string" }, "x-go-name": "WithdrawalIDs" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BatchEventWithFundInfo": { "type": "object", "properties": { "bank_last_four": { "type": "string", "x-go-name": "BankLastFour" }, "bank_name": { "type": "string", "x-go-name": "BankName" }, "batch_id": { "type": "string", "x-go-name": "BatchID" }, "contents": { "$ref": "#/definitions/BatchEventContents" }, "created": { "$ref": "#/definitions/Date" }, "fund_id": { "type": "string", "x-go-name": "FundID" }, "net": { "type": "integer", "format": "int64", "x-go-name": "Net" }, "result": { "type": "string", "x-go-name": "Result" }, "result_human_readable": { "type": "string", "x-go-name": "ResultHumanReadable" }, "total_payouts": { "type": "integer", "format": "int64", "x-go-name": "TotalPayouts" }, "total_withdrawals": { "type": "integer", "format": "int64", "x-go-name": "TotalWithdrawals" }, "type": { "type": "string", "x-go-name": "Type" }, "type_human_readable": { "type": "string", "x-go-name": "TypeHumanReadable" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BatchOptions": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "Items" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "BeginAuthorizationResponse": { "description": "BeginAuthorizationResponse is the result type of the payouts service\nBeginAuthorization method.", "type": "object", "properties": { "authorizer_link_token": { "description": "The link token to use when initializing the authorizer on the client.", "type": "string", "x-go-name": "AuthorizerLinkToken" }, "authorizer_public_key": { "description": "The public key to use when initializing the authorizer on the client.", "type": "string", "x-go-name": "AuthorizerPublicKey" }, "authorizer_type": { "description": "The type of authorizer to use for user input.", "type": "string", "x-go-name": "AuthorizerType" }, "environment": { "description": "The environment in which the server is operating. Possible values include\n`production` and `sandbox`.", "type": "string", "x-go-name": "Environment" } }, "x-go-package": "github.com/outdoorsy/api/pkg/payouts/gen" }, "Bid": { "type": "object", "properties": { "bid_matches": { "$ref": "#/definitions/BidMatches" }, "close_reason": { "type": "string", "x-go-name": "CloseReason" }, "closed": { "type": "string", "x-go-name": "Closed", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "closed_by_booking_id": { "type": "integer", "format": "int64", "x-go-name": "ClosedByBookingID" }, "comments": { "type": "string", "x-go-name": "Comments" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by_booking_id": { "type": "integer", "format": "int64", "nullable": true }, "delivery": { "type": "boolean", "nullable": true }, "dest_lat": { "type": "number", "format": "double", "x-go-name": "DestLat" }, "dest_lng": { "type": "number", "format": "double", "x-go-name": "DestLng" }, "destination": { "type": "string", "x-go-name": "Destination" }, "email": { "type": "string", "x-go-name": "Email" }, "festival_friendly": { "type": "boolean", "x-go-name": "FestivalFriendly" }, "from": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "ip_lookup": { "type": "boolean", "x-go-name": "IPLookup" }, "make": { "description": "storage for display to owner receiving bid", "type": "string", "x-go-name": "Make" }, "max_budget": { "type": "integer", "format": "uint64", "x-go-name": "MaxBudget" }, "max_day_price": { "type": "integer", "format": "uint64", "x-go-name": "MaxDayPrice" }, "message_sent": { "type": "boolean", "x-go-name": "MessageSent" }, "min_budget": { "type": "integer", "format": "uint64", "x-go-name": "MinBudget" }, "min_day_price": { "type": "integer", "format": "uint64", "x-go-name": "MinDayPrice" }, "model": { "type": "string", "x-go-name": "Model" }, "name": { "type": "string", "x-go-name": "Name" }, "offer_delivery": { "type": "boolean", "x-go-name": "OfferDelivery" }, "open": { "type": "boolean", "x-go-name": "Open" }, "owner_id": { "type": "integer", "format": "int64" }, "owner_read": { "type": "boolean", "x-go-name": "OwnerRead" }, "pet_friendly": { "type": "boolean", "x-go-name": "PetFriendly" }, "pickup_lat": { "type": "number", "format": "double", "x-go-name": "PickupLat" }, "pickup_lng": { "type": "number", "format": "double", "x-go-name": "PickupLng" }, "pickup_location": { "type": "string", "x-go-name": "PickupLocation" }, "price_per_day": { "type": "integer", "format": "uint64", "x-go-name": "PricePerDay" }, "quality": { "$ref": "#/definitions/NullFloat64" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "seatbelts": { "type": "integer", "format": "int64", "x-go-name": "Seatbelts" }, "sent": { "description": "Sent is populated dynamically for the requesting owner", "type": "boolean", "x-go-name": "Sent" }, "smoking_allowed": { "type": "boolean", "x-go-name": "SmokingAllowed" }, "source": { "type": "string", "x-go-name": "Source" }, "stationary_delivery": { "type": "boolean", "nullable": true }, "tailgate_friendly": { "type": "boolean", "x-go-name": "TailgateFriendly" }, "to": { "type": "string" }, "travelers": { "type": "integer", "format": "int64", "x-go-name": "Travelers" }, "type": { "type": "string", "x-go-name": "Type" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "year": { "type": "integer", "format": "int64", "x-go-name": "Year" } }, "x-go-package": "github.com/outdoorsy/api/internal/instamatch" }, "BidMatch": { "type": "object", "properties": { "bid_id": { "$ref": "#/definitions/Bid" }, "booking_id": { "type": "integer", "format": "int64" }, "conversation_id": { "type": "integer", "format": "int64" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "match_location_type": { "type": "string", "nullable": true }, "message_sent": { "type": "boolean", "x-go-name": "MessageSent" }, "owner_id": { "type": "integer", "format": "int64" }, "owner_read": { "type": "boolean", "x-go-name": "OwnerRead" }, "rental_id": { "type": "integer", "format": "int64" }, "renter_id": { "type": "integer", "format": "int64" }, "score": { "type": "integer", "format": "int64", "nullable": true }, "status": { "type": "string", "x-go-name": "Status" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/instamatch" }, "BidMatches": { "type": "array", "items": { "$ref": "#/definitions/BidMatch" }, "x-go-package": "github.com/outdoorsy/api/internal/instamatch" }, "Bio": { "description": "bio holds additional information about a user", "type": "object", "properties": { "description": { "type": "string", "x-go-name": "Description" }, "experience": { "type": "string", "x-go-name": "Experience" }, "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/api/model" }, "Booking": { "description": "A booking is a reservation that references the renter, owner, and rental vehicle\nwith a defined start and stop date\n\nA booking is what we're all about", "type": "object", "title": "Booking represents a reservation", "properties": { "abandoned": { "type": "boolean", "x-go-name": "Abandoned" }, "addons": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "Addons" }, "adults": { "type": "integer", "format": "int64", "x-go-name": "Adults" }, "affirm_details": { "$ref": "#/definitions/AffirmDetails" }, "affirm_total": { "description": "Dynamically calculated. Not stored in DB", "type": "integer", "format": "int64", "x-go-name": "AffirmTotal" }, "applicable_tos_version": { "type": "string", "x-go-name": "ApplicableToSVersion" }, "attention": { "type": "array", "items": { "$ref": "#/definitions/AttentionItem" }, "x-go-name": "Attention" }, "auto_assign_group": { "type": "boolean", "nullable": true }, "auto_insurance_type": { "type": "string", "x-go-name": "AutoInsuranceType" }, "bid_id": { "type": "integer", "format": "int64", "x-go-name": "BidID" }, "block_discount_code": { "type": "boolean", "x-go-name": "BlockDiscountCode" }, "booked": { "description": "Not Mutable", "type": "string", "x-go-name": "Booked", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "booking_agent": { "type": "string", "x-go-name": "BookingAgentID" }, "booking_color": { "type": "string", "nullable": true }, "booking_token": { "type": "string", "x-go-name": "BookingToken" }, "bundle_id": { "description": "calculated field that holds the result of whether the rental has this assigned\nif not, will look at the user/owner", "type": "string", "x-go-name": "BundleID" }, "calculated_day_price": { "type": "integer", "format": "uint64", "x-go-name": "CalculatedDayPrice" }, "calculated_total_paid": { "type": "integer", "format": "uint64", "x-go-name": "CalculatedTotalPaid" }, "campaign": { "description": "dealer only", "type": "string", "x-go-name": "Campaign" }, "campground_booking_url": { "description": "Contains the booking id so ember can call /bookings/:id/default-selections", "type": "string", "x-go-name": "CampgroundBookingURL" }, "campground_data": { "$ref": "#/definitions/SiblingBookingCampgroundData" }, "can_add_ending_generator_values": { "type": "boolean", "x-go-name": "CanAddEndingGeneratorValues" }, "can_add_ending_mileage_values": { "type": "boolean", "x-go-name": "CanAddEndingMileageValues" }, "can_add_starting_generator_values": { "type": "boolean", "x-go-name": "CanAddStartingGeneratorValues" }, "can_add_starting_mileage_values": { "type": "boolean", "x-go-name": "CanAddStartingMileageValues" }, "can_add_trip_protection": { "description": "CanAddTransaction is used to check if the guest can add a trip protection", "type": "boolean", "x-go-name": "CanAddTripProtection" }, "can_apply_credits": { "type": "boolean", "x-go-name": "CanApplyCredits" }, "can_cancel_trip_protection": { "description": "CanCancelTripProtection is used to check if the guest can cancel a trip protection", "type": "boolean", "x-go-name": "CanCancelTripProtection" }, "can_charge_overage_fees": { "type": "boolean", "x-go-name": "CanChargeOverageFees" }, "can_file_claim": { "type": "boolean", "x-go-name": "CanFileClaim" }, "can_generate_weather_quote": { "type": "boolean", "x-go-name": "CanGenerateWeatherQuote" }, "can_manage_security_deposit": { "type": "boolean", "x-go-name": "CanManageSecurityDeposit" }, "can_manage_tax_rates": { "description": "used by dashboard to disable tax editing", "type": "boolean", "x-go-name": "CanManageTaxRates" }, "can_renter_review": { "type": "boolean", "x-go-name": "CanRenterReview" }, "can_renter_review_until": { "type": "string", "x-go-name": "CanRenterReviewUntil" }, "can_see_contract": { "type": "boolean", "x-go-name": "CanSeeContract" }, "can_suggest_date_change": { "type": "boolean", "x-go-name": "CanSuggestDateChange" }, "can_suggest_delivery_change": { "type": "boolean", "x-go-name": "CanSuggestDeliveryChange" }, "cancel_metadata": { "$ref": "#/definitions/CancelMetadata" }, "cancel_policy": { "type": "string", "x-go-name": "CancelPolicy" }, "cancel_reason": { "type": "string", "x-go-name": "CancelReason" }, "canceled": { "type": "string", "x-go-name": "Canceled", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "cancellation_cutoff_date": { "type": "string" }, "cancellation_refund_breakdown": { "$ref": "#/definitions/CancellationRefundBreakdown" }, "cancellation_refund_percentage": { "type": "number", "format": "double", "x-go-name": "CancellationRefundPercentage" }, "cc_fee_percentage": { "description": "Copied rental data - don't want rental changes to affect this booking", "type": "number", "format": "double", "x-go-name": "CCFeePercentage" }, "checkin_stamp": { "description": "Internal", "type": "string", "x-go-name": "CheckinStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "checkout_questions": { "$ref": "#/definitions/DBMSISlice" }, "checkout_stamp": { "type": "string", "x-go-name": "CheckoutStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "checkout_steps_id": { "type": "integer", "format": "int64", "x-go-name": "CheckoutStepsID" }, "children": { "type": "integer", "format": "int64", "x-go-name": "Children" }, "coachnet_id": { "type": "integer", "format": "int64", "x-go-name": "CoachnetID" }, "coachnet_premium": { "type": "integer", "format": "uint64", "x-go-name": "CoachnetPremium" }, "consignment": { "$ref": "#/definitions/bookingConsignment" }, "conversation_id": { "type": "integer", "format": "int64" }, "created": { "type": "string" }, "created_by_id": { "type": "integer", "format": "int64" }, "created_stamp": { "type": "string", "x-go-name": "CreatedStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "custom_insurance_text": { "type": "string", "nullable": true }, "dealer_minimum_days": { "description": "used to display information if a booking is below the dealers minimum days", "type": "integer", "format": "uint64", "x-go-name": "DealerMinimumDays" }, "decline_reason": { "type": "string", "x-go-name": "DeclineReason" }, "default_insurance_coverage": { "type": "string", "x-go-name": "DefaultInsuranceCoverage" }, "deliverable_campground": { "$ref": "#/definitions/ExternalCampground" }, "delivery": { "$ref": "#/definitions/BookingDelivery" }, "delivery_item": { "$ref": "#/definitions/BookingItem" }, "delivery_usage_item": { "x-go-name": "DeliveryUsageItemJSON" }, "delivery_usage_item_id": { "type": "integer", "format": "int64" }, "deposit_percentage": { "type": "number", "format": "double", "x-go-name": "DepositPercentage" }, "destination": { "type": "string", "x-go-name": "Destination" }, "destination_lat": { "type": "number", "format": "double", "x-go-name": "DestinationLat" }, "destination_lng": { "type": "number", "format": "double", "x-go-name": "DestinationLng" }, "details": { "$ref": "#/definitions/DBInterfaceMap" }, "device_id": { "type": "string", "x-go-name": "DeviceID" }, "discount_code": { "description": "Copied discount code data, not allowed in request data.", "type": "string", "x-go-name": "DiscountCode" }, "discount_code_amount": { "type": "integer", "format": "uint64", "x-go-name": "DiscountCodeAmount" }, "discount_code_applied_to": { "type": "string", "x-go-name": "DiscountCodeAppliedTo" }, "discount_code_message": { "type": "string", "x-go-name": "DiscountCodeMessage" }, "display_insurance": { "type": "string", "x-go-name": "DisplayInsurance" }, "display_source": { "type": "string", "x-go-name": "DisplaySource" }, "display_status": { "type": "string", "x-go-name": "DisplayStatus" }, "display_status_style": { "type": "string", "x-go-name": "DisplayStatusStyle" }, "documents": { "$ref": "#/definitions/BookingDocuments" }, "dropoff": { "$ref": "#/definitions/BookingDropoff" }, "duration": { "type": "integer", "format": "uint64", "x-go-name": "Duration" }, "esign_enabled": { "type": "boolean", "x-go-name": "EsignEnabled" }, "esign_pending": { "type": "boolean", "x-go-name": "EsignPending" }, "expire_reason": { "type": "string", "x-go-name": "ExpireReason" }, "express_checkout_id": { "type": "integer", "format": "int64", "x-go-name": "ExpressCheckoutID" }, "external": { "type": "boolean", "nullable": true }, "external_gift_card_details": { "$ref": "#/definitions/ExternalGiftCardDetails" }, "external_gift_card_details_v2": { "type": "array", "items": { "$ref": "#/definitions/ExternalGiftCardDetails" }, "x-go-name": "ExternalGiftCardDetailsV2" }, "fees_locked": { "type": "boolean", "x-go-name": "FeesLocked" }, "fees_total": { "type": "integer", "format": "uint64", "x-go-name": "FeesTotal" }, "final_payment_due_days": { "type": "integer", "format": "int64", "x-go-name": "FinalPaymentDueDays" }, "followup_archived": { "type": "boolean", "x-go-name": "FollowupArchived" }, "formatted": { "$ref": "#/definitions/BookingDisplayFormatted" }, "formatted_total_overage_fee": { "type": "string", "x-go-name": "FormattedTotalOverageFee" }, "fraudulent": { "type": "boolean", "x-go-name": "Fraudulent" }, "free_cancellation_available": { "type": "boolean", "x-go-name": "FreeCancellationAvailable" }, "free_cancellation_period": { "type": "integer", "format": "int64", "x-go-name": "FreeCancellationPeriod" }, "from": { "type": "string" }, "from_time": { "type": "integer", "format": "int64", "x-go-name": "FromTime" }, "fx_fee_paid": { "type": "integer", "format": "int64", "x-go-name": "FXFeePaid" }, "generator": { "$ref": "#/definitions/BookingGenerator" }, "generator_item": { "$ref": "#/definitions/BookingItem" }, "generator_usage_item": { "x-go-name": "GeneratorUsageItemJSON" }, "generator_usage_item_id": { "type": "integer", "format": "int64" }, "grace_period_ends_at": { "type": "string", "x-go-name": "GracePeriodEndsAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "handoff_summary": { "$ref": "#/definitions/BookingHandoff" }, "has_approved_drivers": { "type": "boolean", "x-go-name": "HasApprovedDrivers" }, "has_setup_intent_enabled": { "type": "boolean", "x-go-name": "HasSetupIntentEnabled" }, "hold_sales_tax": { "type": "boolean", "x-go-name": "HoldSalesTax" }, "house_rules": { "type": "string", "x-go-name": "HouseRules" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "import_id": { "type": "string", "x-go-name": "ImportID" }, "imported": { "description": "owner only", "type": "boolean", "x-go-name": "Imported" }, "include_coachnet": { "type": "boolean", "x-go-name": "IncludeCoachnet" }, "infants": { "type": "integer", "format": "int64", "x-go-name": "Infants" }, "initial_duration": { "type": "integer", "format": "uint64", "x-go-name": "InitialDuration" }, "instamatch": { "type": "boolean", "nullable": true }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "insurance": { "type": "string", "x-go-name": "Insurance" }, "insurance_approved": { "type": "boolean", "x-go-name": "InsuranceApproved" }, "insurance_approved_timestamp": { "type": "string", "x-go-name": "InsuranceApprovedTimeStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "insurance_approved_updated_timestamp": { "type": "string", "x-go-name": "InsuranceApprovedUpdateTimeStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "insurance_bundle": { "description": "Using an interface{} to avoid import cycle and from having to move structs into the models package.", "x-go-name": "BookingBundle" }, "insurance_claim_filed": { "type": "boolean", "x-go-name": "InsuranceClaimFiled" }, "insurance_coverage": { "type": "string", "x-go-name": "InsuranceCoverage" }, "insurance_plan_id": { "$ref": "#/definitions/Plan" }, "insurance_renter_adjustable": { "type": "boolean", "x-go-name": "InsuranceRenterAdjustable" }, "internal_notes": { "type": "string", "x-go-name": "InternalNotes" }, "is_request_less_than_minimum_days": { "type": "boolean", "x-go-name": "IsRequestLessThanMinimumDays" }, "is_within_grace_period": { "type": "boolean", "x-go-name": "IsWithinGracePeriod" }, "items": { "description": "Items, calculations, payouts and fees", "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "Items" }, "locale": { "$ref": "#/definitions/BookingLocale" }, "location_id": { "type": "integer", "format": "int64", "x-go-name": "LocationID" }, "locked": { "type": "boolean", "x-go-name": "Locked" }, "loyalty_credit_issued": { "type": "boolean", "x-go-name": "LoyaltyCreditIssued" }, "loyalty_rewards_eligible": { "type": "boolean", "x-go-name": "LoyaltyRewardsEligible" }, "medium": { "type": "string", "x-go-name": "Medium" }, "metadata": { "$ref": "#/definitions/DBInterfaceMap" }, "mileage": { "$ref": "#/definitions/BookingMileage" }, "mileage_item": { "$ref": "#/definitions/BookingItem" }, "mileage_usage_item": { "x-go-name": "MileageUsageItemJSON" }, "mileage_usage_item_id": { "type": "integer", "format": "int64" }, "minimum_deposit": { "type": "integer", "format": "uint64", "x-go-name": "MinimumDeposit" }, "missing_data": { "type": "array", "items": { "type": "string" }, "x-go-name": "MissingData" }, "missing_requirements": { "type": "object", "additionalProperties": { }, "x-go-name": "MissingRequirements" }, "mutual_cancellation": { "type": "boolean", "x-go-name": "MutualCancellation" }, "non_refundable_total": { "description": "NonRefundableTotal is the total amount that cannot be refunded to the\nrenter. Trip Insurance that has been started is an example of something\nthat would be added to this total", "type": "integer", "format": "int64", "x-go-name": "NonRefundableTotal" }, "offer_affirm": { "type": "boolean", "x-go-name": "OfferAffirm" }, "offer_insurance": { "type": "boolean", "x-go-name": "OfferInsurance" }, "offer_paypal_pay_later": { "type": "boolean", "x-go-name": "OfferPayPalPayLater" }, "offer_roadside": { "type": "boolean", "x-go-name": "OfferRoadside" }, "original_booking_source": { "type": "string", "x-go-name": "OriginalBookingSource" }, "original_day_price": { "type": "integer", "format": "uint64", "x-go-name": "OriginalDayPrice" }, "original_security_deposit": { "type": "integer", "format": "uint64", "x-go-name": "OriginalSecurityDeposit" }, "original_security_deposit_v2": { "type": "integer", "format": "uint64", "x-go-name": "OriginalSecurityDeposit_v2" }, "original_service_fee": { "description": "renter only", "type": "integer", "format": "uint64", "x-go-name": "OriginalServiceFee" }, "outdoorsy_fee": { "type": "integer", "format": "uint64", "x-go-name": "RenterIntegrationsFee" }, "outdoorsy_remitted_taxes": { "type": "integer", "format": "uint64", "x-go-name": "OutdoorsyRemittedTaxes" }, "overage_fee_collected": { "type": "boolean", "x-go-name": "OverageFeeCollected" }, "overage_fee_expired": { "type": "boolean", "x-go-name": "OverageFeeExpired" }, "overage_fee_section_display": { "type": "boolean", "x-go-name": "OverageFeeSectionDisplay" }, "owner_addon_total": { "description": "Sum of all addons (booking items from rental_item parent_item_type)", "type": "integer", "format": "int64", "x-go-name": "OwnerAddonTotal" }, "owner_approval_attempted": { "type": "boolean", "nullable": true }, "owner_approved": { "type": "boolean", "x-go-name": "OwnerApproved" }, "owner_approved_at": { "type": "string", "x-go-name": "OwnerApprovedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "owner_archived": { "type": "boolean", "x-go-name": "OwnerArchived" }, "owner_credits_applied": { "type": "integer", "format": "uint64", "x-go-name": "OwnerCreditsApplied" }, "owner_did_review": { "type": "boolean", "x-go-name": "OwnerDidReview" }, "owner_fee": { "type": "integer", "format": "uint64", "x-go-name": "OwnerFee" }, "owner_fee_aggregate_percentage": { "description": "aggregate percentage for all owner fee services that we apply - for UI purpouses", "type": "number", "format": "double", "x-go-name": "OwnerFeeAggregatePercentage" }, "owner_fee_minimum_enforced": { "description": "Owner fee minimum enforced", "type": "boolean", "x-go-name": "OwnerFeeMinimumEnforced" }, "owner_fee_minimum_per_night": { "description": "Owner fee minimum per night", "type": "integer", "format": "uint64", "x-go-name": "OwnerFeeMinimumPerNight" }, "owner_fee_on_renter_cancellation": { "description": "Cancellation payout details - populated for owner/admin when status is renter_cancelled\nEnables the host dashboard cancellation payout breakdown modal (MP-4959)", "type": "integer", "format": "int64", "x-go-name": "OwnerFeeOnRenterCancellation" }, "owner_fee_percentage": { "type": "number", "format": "double", "x-go-name": "OwnerFeePercentage" }, "owner_fee_percentage_record": { "type": "number", "format": "double", "x-go-name": "OwnerFeePercentageRecord" }, "owner_fees": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "OwnerFees" }, "owner_id": { "type": "integer", "format": "int64" }, "owner_insurance_claim_filed": { "type": "boolean", "x-go-name": "OwnerInsuranceClaimFiled" }, "owner_insurance_fee_total": { "type": "integer", "format": "int64", "x-go-name": "OwnerInsuranceFeeTotal" }, "owner_integrations_fee": { "type": "integer", "format": "int64", "nullable": true }, "owner_payout": { "type": "integer", "format": "uint64", "x-go-name": "OwnerPayout" }, "owner_payout_adjustment": { "type": "integer", "format": "int64", "x-go-name": "OwnerPayoutAdjustment" }, "owner_payout_with_claim_adjustments": { "description": "OwnerPayout + Claim adjustments if any", "type": "integer", "format": "uint64", "x-go-name": "OwnerPayoutWithClaimAdjustments" }, "owner_read": { "type": "boolean", "x-go-name": "OwnerRead" }, "owner_summary": { "x-go-name": "OwnerSummary" }, "owner_total": { "type": "integer", "format": "int64", "x-go-name": "OwnerTotal" }, "owner_total_without_tax": { "description": "OwnerTotal - Tax (subtotal)", "type": "integer", "format": "int64", "x-go-name": "OwnerTotalWithoutTax" }, "parent_booking_id": { "type": "integer", "format": "int64", "nullable": true }, "partner_app": { "$ref": "#/definitions/PartnerApp" }, "payment_processor": { "$ref": "#/definitions/PaymentProcessor" }, "payout_actual_transfer_amount": { "description": "booking transfers summary", "type": "integer", "format": "int64", "x-go-name": "PayoutActualTransferAmount" }, "pending_transactions": { "type": "array", "items": { "$ref": "#/definitions/PendingTransaction" }, "x-go-name": "PendingTransactions" }, "personal_insurance_verification": { "type": "boolean", "x-go-name": "PersonalInsuranceVerification" }, "personal_insurance_verification_status": { "type": "string", "x-go-name": "PersonalInsuranceVerificationStatus" }, "pets": { "type": "integer", "format": "int64", "x-go-name": "Pets" }, "pickup": { "$ref": "#/definitions/BookingPickup" }, "premium_total": { "type": "integer", "format": "uint64", "x-go-name": "PremiumTotal" }, "prep_fee_item": { "$ref": "#/definitions/BookingItem" }, "presentment_currency": { "type": "string", "x-go-name": "PresentmentCurrency" }, "processor_name": { "$ref": "#/definitions/PaymentProcessorName" }, "proposals": { "type": "array", "items": { "$ref": "#/definitions/Proposal" }, "x-go-name": "Proposals" }, "provide_insurance_binder": { "type": "boolean", "x-go-name": "ProvideInsuranceBinder" }, "raf_waiver_summary": { "$ref": "#/definitions/RAFWaiverSummary" }, "reason": { "type": "string", "nullable": true }, "referred_owner_paid": { "type": "boolean", "x-go-name": "ReferredOwnerPaid" }, "referred_owner_payout_amount": { "type": "integer", "format": "uint64", "x-go-name": "ReferredOwnerPayoutAmount" }, "referred_renter_paid": { "type": "boolean", "x-go-name": "ReferredRenterPaid" }, "referred_renter_payout_amount": { "type": "integer", "format": "uint64", "x-go-name": "ReferredRenterPayoutAmount" }, "refund_options": { "$ref": "#/definitions/BookingRefundOptions" }, "remainder_amount": { "type": "integer", "format": "uint64", "x-go-name": "RemainderAmount" }, "remainder_due_date": { "type": "string" }, "remaining_days_to_cancellation_cutoff": { "type": "integer", "format": "int64", "x-go-name": "RemainingDaysToCancellationCutoff" }, "rental_amount_item": { "$ref": "#/definitions/BookingItem" }, "rental_charge_card_id": { "type": "integer", "format": "int64", "x-go-name": "RentalChargeCardID" }, "rental_id": { "type": "integer", "format": "int64" }, "rental_summary": { "description": "partial objects", "x-go-name": "RentalSummary" }, "renter_age": { "type": "integer", "format": "int64", "x-go-name": "RenterAge" }, "renter_approved": { "type": "boolean", "x-go-name": "RenterApproved" }, "renter_approved_at": { "type": "string", "x-go-name": "RenterApprovedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "renter_archived": { "type": "boolean", "x-go-name": "RenterArchived" }, "renter_can_waive_insurance": { "type": "boolean", "x-go-name": "RenterCanWaiveInsurance" }, "renter_credits_applied": { "type": "integer", "format": "uint64", "x-go-name": "RenterCreditsApplied" }, "renter_destination_data": { "$ref": "#/definitions/RenterDestinationData" }, "renter_did_review": { "type": "boolean", "x-go-name": "RenterDidReview" }, "renter_fee_percentage": { "type": "number", "format": "double", "x-go-name": "RenterFeePercentage" }, "renter_fee_percentage_record": { "type": "number", "format": "double", "x-go-name": "RenterFeePercentageRecord" }, "renter_id": { "type": "integer", "format": "int64" }, "renter_insurance_claim_filed": { "type": "boolean", "x-go-name": "RenterInsuranceClaimFiled" }, "renter_insurance_fee_total": { "type": "integer", "format": "int64", "x-go-name": "RenterInsuranceFeeTotal" }, "renter_payment_details": { "$ref": "#/definitions/renterPaymentDetails" }, "renter_read": { "type": "boolean", "x-go-name": "RenterRead" }, "renter_summary": { "x-go-name": "RenterSummary" }, "require_booking_time": { "type": "boolean", "x-go-name": "RequireBookingTime" }, "require_dmv_check": { "type": "boolean", "x-go-name": "RequireDMVCheckJSON" }, "require_drivers": { "type": "boolean", "x-go-name": "RequireDMVCheck" }, "require_insurance": { "type": "boolean", "x-go-name": "RequireInsurance" }, "require_renter_id_verification": { "type": "boolean", "x-go-name": "RequireRenterIDVerification" }, "require_roadside": { "type": "boolean", "x-go-name": "RequireRoadside" }, "reserve_amount": { "type": "integer", "format": "uint64", "x-go-name": "ReserveAmount" }, "reserve_amount_after_credits": { "type": "integer", "format": "int64", "x-go-name": "ReserveAmountAfterCredits" }, "revenue_summary": { "$ref": "#/definitions/RevenueSummary" }, "reviews": { "type": "array", "items": { "$ref": "#/definitions/Review" }, "x-go-name": "Reviews" }, "sd_post_trip_charges_data": { "$ref": "#/definitions/DBInterfaceMap" }, "sd_post_trip_charges_enabled": { "type": "boolean", "x-go-name": "SDPostTripChargesEnabled" }, "search_filters": { "$ref": "#/definitions/SearchFilters" }, "security_deposit": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDeposit" }, "security_deposit_card_id": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositCardID" }, "security_deposit_claimed_amount": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDepositClaimedAmount" }, "security_deposit_due_date": { "type": "string" }, "security_deposit_due_days": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositDueDays" }, "security_deposit_payout_amount": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositPayoutAmount" }, "security_deposit_refund_amount": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDepositRefundAmount" }, "security_deposit_remaining": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDepositRemaining" }, "security_deposit_reversable": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDepositReversable" }, "security_deposit_status": { "type": "string", "x-go-name": "SecurityDepositStatus" }, "service_fee": { "type": "integer", "format": "uint64", "x-go-name": "ServiceFee" }, "service_fee_tax_rates": { "type": "array", "items": { "$ref": "#/definitions/BookingTaxRate" }, "x-go-name": "ServiceFeeTaxRates" }, "services": { "type": "array", "items": { "$ref": "#/definitions/BookingService" }, "x-go-name": "Services" }, "session_id": { "type": "string", "x-go-name": "SessionID" }, "sibling_booking_group_id": { "type": "integer", "format": "int64", "nullable": true }, "sibling_bookings_totals": { "$ref": "#/definitions/SiblingTotals" }, "siblings": { "$ref": "#/definitions/SiblingBookings" }, "source": { "type": "string", "x-go-name": "Source" }, "special_insurance_case": { "type": "boolean", "x-go-name": "SpecialInsuranceCase" }, "stage": { "type": "string", "x-go-name": "Stage" }, "status": { "type": "string", "x-go-name": "Status" }, "subtotal": { "type": "integer", "format": "uint64", "x-go-name": "Subtotal" }, "subtotal_with_claim_adjustments": { "description": "Booking subtotal with claim adjustments", "type": "integer", "format": "uint64", "x-go-name": "SubtotalWithClaimAdjustments" }, "support_status": { "type": "string", "x-go-name": "SupportStatus" }, "system_generated": { "type": "boolean", "x-go-name": "SystemGenerated" }, "tax": { "type": "integer", "format": "uint64", "x-go-name": "Tax" }, "tax_rates": { "$ref": "#/definitions/TaxRateTotalItems" }, "tiered_owner_fee_percentage": { "type": "number", "format": "double", "x-go-name": "TieredOwnerFeePercentage" }, "tiered_renter_fee_percentage": { "type": "number", "format": "double", "x-go-name": "TieredRenterFeePercentage" }, "time_to_first_action": { "type": "integer", "format": "int64", "x-go-name": "TimeToFirstAction" }, "timeline": { "type": "array", "items": { "$ref": "#/definitions/TimelineItem" }, "x-go-name": "Timeline" }, "timeline_data": { "$ref": "#/definitions/TimelineData" }, "to": { "type": "string" }, "to_time": { "type": "integer", "format": "int64", "x-go-name": "ToTime" }, "tollspot_monitor_id": { "type": "integer", "format": "int64", "x-go-name": "TollspotMonitorID" }, "total": { "type": "integer", "format": "uint64", "x-go-name": "Total" }, "total_after_credits": { "type": "integer", "format": "uint64", "x-go-name": "TotalAfterCredits" }, "total_after_deductions": { "description": "the total amount that we will take from user card/paypal account for a given booking\ndeprecated use TotalAfterCredits", "type": "integer", "format": "uint64", "x-go-name": "TotalAfterDeductions" }, "total_cc_fees": { "type": "integer", "format": "uint64", "x-go-name": "TotalCCFees" }, "total_overage_fee_amount": { "type": "integer", "format": "int64", "x-go-name": "TotalOverageFeeAmount" }, "total_owner_federal_withholding_tax": { "type": "integer", "format": "int64", "x-go-name": "TotalOwnerFederalWithholdingTax" }, "total_owner_quebec_sales_tax": { "type": "integer", "format": "int64", "x-go-name": "TotalOwnerQuebecSalesTax" }, "total_paid": { "type": "integer", "format": "uint64", "x-go-name": "TotalPaid" }, "total_paid_with_claim_adjustments": { "description": "For admin portal current rental paid = booking total_paind + claim adjustments", "type": "integer", "format": "uint64", "x-go-name": "TotalPaidWithClaimAdjustments" }, "total_security_deposit_cc_fees": { "type": "integer", "format": "int64", "x-go-name": "TotalSecurityDepositCCFees" }, "total_with_claim_adjustments": { "description": "For renter payment detals = total_after_credits (or booking total if not present) + claim adjustments", "type": "integer", "format": "uint64", "x-go-name": "TotalWithClaimAdjustments" }, "transactions": { "type": "array", "items": { "$ref": "#/definitions/Transaction" }, "x-go-name": "Transactions" }, "travel_to_states": { "type": "array", "items": { "type": "string" }, "x-go-name": "TravelToStates" }, "traveler_type": { "type": "string", "x-go-name": "TravelerType" }, "travelers": { "type": "integer", "format": "int64", "x-go-name": "Travelers" }, "trip_credits_disabled": { "type": "boolean", "x-go-name": "TripCreditsDisabled" }, "trip_summary": { "$ref": "#/definitions/TripSummary" }, "unclaimed_fees": { "type": "integer", "format": "uint64", "x-go-name": "UnclaimedFees" }, "undelivered_emails_count": { "type": "integer", "format": "uint64", "x-go-name": "UndeliveredEmailsCount" }, "update_warnings": { "type": "array", "items": { "type": "string" }, "x-go-name": "UpdateWarnings" }, "updated": { "type": "string" }, "updated_stamp": { "type": "string", "x-go-name": "UpdatedStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "use_custom_tax_rates": { "type": "boolean", "x-go-name": "UseCustomTaxRates" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" }, "use_fees_increase": { "type": "boolean", "nullable": true }, "use_insurance_bundles": { "type": "boolean", "x-go-name": "UseInsuranceBundles" }, "use_system_tax_rates": { "description": "used by booking details page to display system tax notice", "type": "boolean", "x-go-name": "UseSystemTaxRates" }, "use_tax_inclusive_pricing": { "type": "boolean", "x-go-name": "UseTaxInclusivePricing" }, "use_tint_check": { "type": "boolean", "x-go-name": "UseTintCheck" }, "user_notice_events": { "type": "array", "items": { "$ref": "#/definitions/NoticeResponse" }, "x-go-name": "UserNoticeEvents" }, "user_notices_acknowledged": { "type": "array", "items": { "$ref": "#/definitions/UserAcknowledgment" }, "x-go-name": "UserNoticesAcknowledged" }, "user_role": { "type": "string", "x-go-name": "UserRole" }, "waived_insurance_text": { "type": "string", "nullable": true }, "waiver_summary": { "$ref": "#/definitions/WaiverSummary" }, "warning": { "$ref": "#/definitions/Warning" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingBundle": { "type": "object", "properties": { "base_price_per_day": { "type": "integer", "format": "int64", "x-go-name": "BasePricePerDay" }, "bundle_features": { "type": "array", "items": { "$ref": "#/definitions/BundleFeatureTransfer" }, "x-go-name": "Features" }, "dealer_owned_renter": { "type": "boolean", "x-go-name": "DealerOwnedRenter" }, "deductible": { "type": "integer", "format": "int64", "x-go-name": "Deductible" }, "default_selection": { "type": "boolean", "x-go-name": "DefaultSelection" }, "delivery": { "type": "boolean", "x-go-name": "Delivery" }, "description": { "type": "string", "x-go-name": "Description" }, "featured_description": { "type": "string", "x-go-name": "FeaturedDescription" }, "featured_title": { "type": "string", "x-go-name": "FeaturedTitle" }, "id": { "type": "string", "x-go-name": "ID" }, "insurance_protection": { "type": "string", "x-go-name": "InsuranceProtection" }, "is_rental_shield": { "type": "boolean", "x-go-name": "IsRentalShield" }, "meta": { "$ref": "#/definitions/IMap" }, "name": { "type": "string", "x-go-name": "Name" }, "note": { "type": "string", "x-go-name": "Note" }, "offer_individual_service_types": { "type": "array", "items": { "type": "string" }, "x-go-name": "OfferIndividualServiceTypes" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "per_mile_price": { "type": "integer", "format": "int64", "x-go-name": "PerMilePrice" }, "per_mile_price_fsd": { "type": "integer", "format": "int64", "x-go-name": "PerMilePriceFSD" }, "percent_uptake": { "type": "number", "format": "double", "x-go-name": "PercentUptake" }, "premium": { "type": "integer", "format": "int64", "x-go-name": "Premium" }, "premium_base_rate": { "type": "integer", "format": "int64", "x-go-name": "PremiumBaseRate" }, "price_per_day": { "type": "integer", "format": "int64", "x-go-name": "PricePerDay" }, "property_damage": { "type": "string", "x-go-name": "PropertyDamage" }, "qualifies_per_mile_pricing": { "type": "boolean", "x-go-name": "QualifiesPerMilePricing" }, "recommended": { "type": "boolean", "x-go-name": "Recommended" }, "subtext": { "type": "string", "x-go-name": "Subtext" }, "supported_types": { "type": "array", "items": { "type": "string" }, "x-go-name": "SupportedTypes" }, "tier": { "type": "integer", "format": "int64", "x-go-name": "Tier" }, "total_price": { "type": "integer", "format": "int64", "x-go-name": "TotalPrice" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" } }, "x-go-package": "github.com/outdoorsy/api/internal/booking_bundle" }, "BookingDelivery": { "type": "object", "properties": { "actual": { "type": "number", "format": "double", "x-go-name": "Actual" }, "departure": { "type": "number", "format": "double", "x-go-name": "Departure" }, "estimated": { "type": "number", "format": "double", "x-go-name": "Estimated" }, "estimated_fee": { "type": "integer", "format": "uint64", "x-go-name": "EstimatedFee" }, "renter_comment": { "type": "string", "x-go-name": "RenterComment" }, "return": { "type": "number", "format": "double", "x-go-name": "Return" }, "stationary": { "type": "boolean", "x-go-name": "Stationary" }, "suggested_fee": { "type": "integer", "format": "uint64", "x-go-name": "SuggestedFee" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingDisplayFormatted": { "type": "object", "properties": { "insurance": { "$ref": "#/definitions/BookingInsuranceFormatted" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingDocuments": { "type": "object", "properties": { "claims_form": { "type": "string", "x-go-name": "ClaimsForm" }, "contract": { "type": "string", "x-go-name": "Contract" }, "departure_form": { "type": "string", "x-go-name": "DepartureForm" }, "departure_form_checklist": { "type": "string", "x-go-name": "DepartureFormChecklist" }, "esign_receipt": { "type": "string", "x-go-name": "EsignReceipt" }, "insurance_binder": { "type": "string", "x-go-name": "InsuranceBinder" }, "pre_arrival_checklist": { "type": "string", "x-go-name": "PreArrivalChecklist" }, "protection_packages": { "type": "string", "x-go-name": "ProtectionPackages" }, "receipt": { "type": "string", "x-go-name": "Receipt" }, "return_form": { "type": "string", "x-go-name": "ReturnForm" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingDriver": { "description": "BookingDriver is the driver(s) of the 'rv' rental or the renter of the 'stay' rental", "type": "object", "properties": { "age_verified": { "type": "boolean", "x-go-name": "AgeVerified" }, "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "birthdate": { "type": "string" }, "booking_id": { "type": "integer", "format": "int64", "x-go-name": "BookingID" }, "checkr_trust_verified": { "type": "boolean", "x-go-name": "CheckrTrustVerified" }, "checks": { "type": "array", "items": { "$ref": "#/definitions/BookingDriverCheck" }, "x-go-name": "Checks" }, "driver_check_verified": { "type": "boolean", "x-go-name": "DriverCheckVerified" }, "driver_verification_status": { "type": "string", "x-go-name": "DriverVerificationStatus" }, "email": { "type": "string", "x-go-name": "Email" }, "evident_check_verified": { "type": "boolean", "x-go-name": "EvidentCheckVerified" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "has_driving_record_check": { "type": "boolean", "x-go-name": "HasDrivingRecordCheck" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "invite_status": { "type": "string", "x-go-name": "InviteStatus" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "legacy_driver": { "type": "boolean", "x-go-name": "LegacyDriver" }, "named_passenger": { "type": "boolean", "x-go-name": "NamedPassenger" }, "owned_by_id": { "type": "integer", "format": "int64", "x-go-name": "OwnedByID" }, "persona_check_verified": { "type": "boolean", "x-go-name": "PersonaCheckVerified" }, "require_evident": { "type": "boolean", "x-go-name": "RequireEvident" }, "require_persona": { "type": "boolean", "x-go-name": "RequirePersona" }, "roamly_risk_check_verified": { "type": "boolean", "x-go-name": "RoamlyRiskCheckVerified" }, "role": { "description": "attrs from Passenger struct so frontend can treat them the same", "type": "string", "x-go-name": "Role" }, "show_persona_flow": { "type": "boolean", "x-go-name": "ShowPersonaFlow" }, "tessera_check_verified": { "type": "boolean", "x-go-name": "TesseraCheckVerified" }, "tint_check_verified": { "type": "boolean", "x-go-name": "TintCheckVerified" }, "token": { "type": "string", "x-go-name": "ConfirmationToken" }, "validation_status": { "type": "string", "x-go-name": "ValidationStatus" }, "verified": { "type": "boolean", "x-go-name": "Verified" }, "verified_checks_count": { "type": "integer", "format": "int64", "x-go-name": "VerifiedChecksCount" } }, "x-go-package": "github.com/outdoorsy/api/internal/booking_helper" }, "BookingDriverCheck": { "type": "object", "properties": { "arguments": { "type": "object", "additionalProperties": { }, "x-go-name": "Arguments" }, "country": { "type": "string", "x-go-name": "Country" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "display_status": { "description": "checkr and sterling specific", "type": "string", "x-go-name": "DisplayStatus" }, "external_id": { "type": "string", "x-go-name": "ExternalID" }, "failure_reason": { "type": "string", "x-go-name": "FailureReason" }, "forced_approval_by": { "type": "string", "x-go-name": "ForcedApprovalBy" }, "forced_approval_reason": { "type": "string", "x-go-name": "ForcedApprovalReason" }, "forced_failure_by": { "type": "integer", "format": "int64", "x-go-name": "ForcedFailureBy" }, "forced_failure_reason": { "type": "string", "x-go-name": "ForcedFailureReason" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "is_old_enough": { "type": "boolean", "x-go-name": "IsOldEnough" }, "last_created": { "type": "string", "x-go-name": "LastCreated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "license_state": { "type": "string", "x-go-name": "LicenseState" }, "method": { "type": "string", "x-go-name": "Method" }, "ofac_sdn_score": { "type": "number", "format": "double", "x-go-name": "OFACScore" }, "rv_length": { "type": "string", "x-go-name": "RVLength" }, "score": { "description": "tint specific", "type": "integer", "format": "int64", "x-go-name": "Score" }, "status": { "type": "string", "x-go-name": "Status" }, "theft_score": { "type": "integer", "format": "int64", "x-go-name": "TheftScore" }, "validation_id": { "type": "string", "x-go-name": "ValidationID" }, "verification_upload_link": { "type": "string", "x-go-name": "VerificationUploadLink" }, "verified": { "type": "boolean", "x-go-name": "Verified" } }, "x-go-package": "github.com/outdoorsy/api/internal/booking_helper" }, "BookingDropoff": { "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "country": { "type": "string", "x-go-name": "Country" }, "delivery": { "type": "boolean", "x-go-name": "Delivery" }, "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" }, "street_etc": { "type": "string", "x-go-name": "StreetEtc" }, "zip": { "type": "string", "x-go-name": "Zip" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingFeesVariant": { "description": "BookingFeesVariant defines a complete price variant rule", "type": "object", "properties": { "block_discount_code": { "type": "boolean", "x-go-name": "BlockDiscountCode" }, "conditions": { "type": "array", "items": { "$ref": "#/definitions/BookingFeesVariantCondition" }, "x-go-name": "Conditions" }, "description": { "type": "string", "x-go-name": "Description" }, "modifications": { "type": "array", "items": { "$ref": "#/definitions/BookingFeesVariantModification" }, "x-go-name": "Modifications" }, "name": { "type": "string", "x-go-name": "Name" }, "priority": { "type": "integer", "format": "int64", "x-go-name": "Priority" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingFeesVariantCondition": { "type": "object", "properties": { "operator": { "type": "string", "x-go-name": "Operator" }, "property": { "type": "string", "x-go-name": "Property" }, "value": { "x-go-name": "Value" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingFeesVariantModification": { "description": "BookingFeesVariantModification defines how to modify a price", "type": "object", "properties": { "modification_type": { "type": "string", "x-go-name": "ModificationType" }, "target": { "type": "string", "x-go-name": "Target" }, "value": { "type": "number", "format": "double", "x-go-name": "Value" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingGenerator": { "type": "object", "properties": { "actual": { "type": "number", "format": "double", "x-go-name": "Actual" }, "departure": { "type": "number", "format": "double", "x-go-name": "Departure" }, "estimated": { "type": "number", "format": "double", "x-go-name": "Estimated" }, "estimated_fee": { "type": "integer", "format": "uint64", "x-go-name": "EstimatedFee" }, "return": { "type": "number", "format": "double", "x-go-name": "Return" }, "suggested_fee": { "type": "integer", "format": "uint64", "x-go-name": "SuggestedFee" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingHandoff": { "type": "object", "properties": { "id": { "$ref": "#/definitions/ID" }, "owner_departure_complete": { "description": "Completed bool `json:\"completed\" db:\"completed\"`", "type": "boolean", "x-go-name": "OwnerDepartureComplete" }, "owner_departure_eligible": { "type": "boolean", "x-go-name": "OwnerDepartureEligible" }, "owner_departure_photo_count": { "type": "integer", "format": "int64", "x-go-name": "OwnerDeparturePhotoCount" }, "owner_departure_signature_timestamp": { "type": "string", "x-go-name": "OwnerDepartureSignatureTimestamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "owner_return_complete": { "type": "boolean", "x-go-name": "OwnerReturnComplete" }, "owner_return_eligible": { "type": "boolean", "x-go-name": "OwnerReturnEligible" }, "owner_return_photo_count": { "type": "integer", "format": "int64", "x-go-name": "OwnerReturnPhotoCount" }, "owner_return_signature_timestamp": { "type": "string", "x-go-name": "OwnerReturnSignatureTimestamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "renter_departure_complete": { "type": "boolean", "x-go-name": "RenterDepartureComplete" }, "renter_departure_eligible": { "type": "boolean", "x-go-name": "RenterDepartureEligible" }, "renter_departure_photo_count": { "type": "integer", "format": "int64", "x-go-name": "RenterDeparturePhotoCount" }, "renter_departure_signature_timestamp": { "type": "string", "x-go-name": "RenterDepartureSignatureTimestamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "renter_return_complete": { "type": "boolean", "x-go-name": "RenterReturnComplete" }, "renter_return_eligible": { "type": "boolean", "x-go-name": "RenterReturnEligible" }, "renter_return_photo_count": { "type": "integer", "format": "int64", "x-go-name": "RenterReturnPhotoCount" }, "renter_return_signature_timestamp": { "type": "string", "x-go-name": "RenterReturnSignatureTimestamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingInsuranceFormatted": { "type": "object", "properties": { "action": { "type": "string", "x-go-name": "Action" }, "description": { "type": "string", "x-go-name": "Description" }, "title": { "type": "string", "x-go-name": "Title" }, "warning": { "type": "string", "x-go-name": "Warning" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingItem": { "type": "object", "properties": { "_deleted": { "description": "special flag for handling batch update/delete", "type": "boolean", "x-go-name": "BatchDeleted" }, "booking_id": { "type": "integer", "format": "int64" }, "coachnet_item": { "type": "boolean", "x-go-name": "CoachnetItem" }, "consigned_pay_amount": { "type": "integer", "format": "int64", "x-go-name": "ConsignedPayAmount" }, "count": { "type": "integer", "format": "uint64", "x-go-name": "Count" }, "created": { "$ref": "#/definitions/NullTime" }, "daily": { "type": "boolean", "x-go-name": "Daily" }, "deferred": { "type": "boolean", "x-go-name": "Deferred" }, "deferred_total": { "type": "integer", "format": "int64", "nullable": true }, "deleted_at": { "$ref": "#/definitions/NullTime" }, "delivery": { "type": "boolean", "x-go-name": "Delivery" }, "description": { "type": "string", "x-go-name": "Description" }, "discount_amount": { "type": "integer", "format": "int64", "x-go-name": "DiscountAmount" }, "generator": { "type": "boolean", "x-go-name": "Generator" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "image_url": { "type": "string", "x-go-name": "ImageURL" }, "maximum_price": { "type": "integer", "format": "int64", "nullable": true }, "mileage": { "type": "boolean", "x-go-name": "Mileage" }, "minimum_price": { "type": "integer", "format": "int64", "nullable": true }, "name": { "type": "string", "x-go-name": "Name" }, "original_consigned_pay_pct": { "description": "consigned owner support", "type": "number", "format": "double", "x-go-name": "OriginalConsignedPayPct" }, "original_tax_rate_id": { "type": "integer", "format": "int64", "x-go-name": "OriginalTaxRateID" }, "other_claim": { "type": "boolean", "x-go-name": "OtherClaim" }, "outdoorsy_item": { "type": "boolean", "x-go-name": "OutdoorsyItem" }, "parent_item_id": { "type": "integer", "format": "int64", "x-go-name": "ParentItemID" }, "parent_item_type": { "type": "string", "x-go-name": "ParentItemType" }, "percent": { "type": "number", "format": "double", "x-go-name": "Percent" }, "percent_type": { "type": "string", "x-go-name": "PercentType" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "premium_amount": { "type": "integer", "format": "int64", "x-go-name": "PremiumAmount" }, "premium_total": { "type": "integer", "format": "int64", "x-go-name": "PremiumTotal" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" }, "rental_amount": { "description": "mutation modifiers", "type": "boolean", "x-go-name": "RentalAmount" }, "required": { "type": "boolean", "x-go-name": "Required" }, "tax_amount": { "type": "integer", "format": "int64", "x-go-name": "TaxAmount" }, "tax_description": { "type": "string", "x-go-name": "TaxDescription" }, "tax_name": { "type": "string", "x-go-name": "TaxName" }, "tax_rate": { "type": "number", "format": "double", "x-go-name": "TaxRate" }, "tax_rates": { "type": "array", "items": { "$ref": "#/definitions/BookingTaxRate" }, "x-go-name": "TaxRates" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "updated": { "$ref": "#/definitions/NullTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingLocale": { "type": "object", "properties": { "base_currency": { "type": "string", "x-go-name": "BaseCurrency" }, "distance_unit": { "type": "string", "x-go-name": "DistanceUnit" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingMileage": { "type": "object", "properties": { "actual": { "type": "number", "format": "double", "x-go-name": "Actual" }, "departure": { "type": "number", "format": "double", "x-go-name": "Departure" }, "estimated": { "type": "number", "format": "double", "x-go-name": "Estimated" }, "estimated_fee": { "type": "integer", "format": "uint64", "x-go-name": "EstimatedFee" }, "return": { "type": "number", "format": "double", "x-go-name": "Return" }, "suggested_fee": { "type": "integer", "format": "uint64", "x-go-name": "SuggestedFee" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingOptions": { "type": "object", "properties": { "bid_quality_preference": { "$ref": "#/definitions/NullFloat64" }, "coachnet_premium": { "type": "integer", "format": "uint64", "x-go-name": "CoachnetPremium" }, "custom_insurance_text": { "type": "string", "nullable": true }, "default_auto_insurance_bundle_tier": { "type": "integer", "format": "int64", "x-go-name": "DefaultAutoInsuranceBundleTier" }, "default_insurance_bundle_tier": { "type": "integer", "format": "int64", "x-go-name": "DefaultInsuranceBundleTier" }, "deposit_percentage": { "type": "number", "format": "double", "x-go-name": "DepositPercentage" }, "disable_coachnet": { "type": "boolean", "x-go-name": "DisableCoachnet" }, "disable_instamatch": { "type": "boolean", "nullable": true }, "final_payment_due_days": { "description": "0 - manual charge due at the start of the trip, -1 manual due at the end of the trip, >0 automatic charge N days before trip start", "type": "integer", "format": "int64", "x-go-name": "FinalPaymentDueDays" }, "from_time": { "type": "integer", "format": "int64", "x-go-name": "FromTime" }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "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_renter_adjustable": { "type": "boolean", "x-go-name": "InsuranceRenterAdjustable" }, "minimum_days": { "description": "Deprecated: MinimumDays is deprecated, use TripCalculator.Calculate().MinimumBookingDays", "type": "integer", "format": "int64", "x-go-name": "MinimumDays" }, "minimum_deposit": { "type": "integer", "format": "uint64", "x-go-name": "MinimumDeposit" }, "request_less_than_minimum_days": { "type": "integer", "format": "int64", "x-go-name": "RequestLessThanMinimumDays" }, "require_booking_time": { "type": "boolean", "x-go-name": "RequireBookingTime" }, "require_driver_checks": { "type": "boolean", "x-go-name": "RequireDriverChecks" }, "require_insurance": { "type": "boolean", "x-go-name": "RequireInsurance" }, "security_deposit_due_days": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositDueDays" }, "tax_rate_id": { "description": "deprecated", "type": "integer", "format": "int64", "x-go-name": "TaxRateID" }, "tax_rate_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "TaxRateIDs" }, "to_time": { "type": "integer", "format": "int64", "x-go-name": "ToTime" }, "turnaround_days_after": { "type": "integer", "format": "uint32", "x-go-name": "TurnaroundDaysAfter" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" }, "use_tax_inclusive_pricing": { "type": "boolean", "x-go-name": "UseTaxInclusivePricing" }, "variable_fees_upfront": { "type": "boolean", "x-go-name": "VariableFeesUpfront" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingPickup": { "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "country": { "type": "string", "x-go-name": "Country" }, "delivery": { "type": "boolean", "x-go-name": "Delivery" }, "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" }, "street_etc": { "type": "string", "x-go-name": "StreetEtc" }, "zip": { "type": "string", "x-go-name": "Zip" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingRefundOptions": { "type": "object", "properties": { "allow_user_refund_method": { "description": "return numbers for display but user may not be allowed to choose", "type": "boolean", "x-go-name": "AllowUserRefundMethod" }, "cash_amount": { "type": "integer", "format": "int64", "x-go-name": "CashAmount" }, "credit_amount": { "type": "integer", "format": "int64", "x-go-name": "CreditAmount" }, "credit_source": { "type": "object", "additionalProperties": { "type": "integer", "format": "int64" }, "x-go-name": "CreditSource" }, "display_cash_amount": { "type": "string", "x-go-name": "DisplayCashAmount" }, "display_credit_amount": { "type": "string", "x-go-name": "DisplayCreditAmount" }, "is_pending_cancellation": { "type": "boolean", "x-go-name": "IsPendingCancellation" }, "non_refundable_percentage": { "type": "number", "format": "double", "x-go-name": "NonRefundablePercentage" }, "owner_payout_amount": { "description": "show admin what to expect for owner payout", "type": "integer", "format": "int64", "x-go-name": "OwnerPayoutAmount" }, "refund_percentage": { "type": "number", "format": "double", "x-go-name": "RefundPercentage" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingRequest": { "type": "object", "properties": { "Renter": { "type": "object", "properties": { "birthdate": { "type": "string" }, "business": { "type": "object", "properties": { "name": { "type": "string", "x-go-name": "Name" } }, "x-go-name": "Business" }, "city": { "type": "string", "x-go-name": "City" }, "country": { "type": "string", "x-go-name": "Country" }, "county": { "type": "string", "x-go-name": "County" }, "disable_sms": { "type": "boolean", "x-go-name": "DisableSms" }, "email": { "type": "string", "x-go-name": "Email" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "locale": { "type": "string", "x-go-name": "Locale" }, "nationality": { "type": "string", "x-go-name": "Nationality" }, "phone": { "type": "string", "x-go-name": "Phone" }, "signup_source": { "type": "string", "x-go-name": "SignupSource" }, "state": { "type": "string", "x-go-name": "State" }, "street": { "type": "string", "x-go-name": "Street" }, "street_etc": { "type": "string", "x-go-name": "StreetEtc" }, "title": { "type": "string", "x-go-name": "Title" }, "zip": { "type": "string", "x-go-name": "Zip" } } }, "auto_assign_group": { "type": "boolean", "x-go-name": "AutoAssignGroup" }, "bid_id": { "type": "integer", "format": "int64", "x-go-name": "BidID" }, "booking_agent": { "type": "string", "x-go-name": "BookingAgentID" }, "booking_color": { "type": "string", "x-go-name": "BookingColor" }, "bundle_id": { "type": "string", "x-go-name": "BundleID" }, "campaign": { "type": "string", "x-go-name": "Campaign" }, "comments": { "type": "string", "x-go-name": "Comments" }, "delivery": { "$ref": "#/definitions/BookingDelivery" }, "destination": { "type": "string", "x-go-name": "Destination" }, "details": { "$ref": "#/definitions/DBInterfaceMap" }, "discount_code": { "type": "string", "x-go-name": "DiscountCode" }, "dropoff": { "$ref": "#/definitions/BookingDropoff" }, "festival_friendly": { "type": "boolean", "x-go-name": "FestivalFriendly" }, "free_cancellation_period": { "type": "integer", "format": "int64", "x-go-name": "FreeCancellationPeriod" }, "from": { "type": "string" }, "from_time": { "type": "integer", "format": "int64", "x-go-name": "FromTime" }, "include_coachnet": { "type": "boolean", "x-go-name": "IncludeCoachnet" }, "insurance_coverage": { "type": "string", "x-go-name": "InsuranceCoverage" }, "internal_notes": { "type": "string", "x-go-name": "InternalNotes" }, "items": { "type": "array", "items": { "$ref": "#/definitions/ItemRequest" }, "x-go-name": "Items" }, "loyalty_credit_issued": { "type": "boolean", "x-go-name": "LoyaltyCreditIssued" }, "loyalty_rewards_eligible": { "type": "boolean", "x-go-name": "LoyaltyRewardsEligible" }, "make": { "type": "string", "x-go-name": "Make" }, "medium": { "type": "string", "x-go-name": "Medium" }, "message": { "type": "string", "x-go-name": "Message" }, "model": { "type": "array", "items": { "type": "string" }, "x-go-name": "Model" }, "occupancy": { "$ref": "#/definitions/Occupancy" }, "parent_booking_id": { "description": "Owner-initiated bookings", "type": "integer", "format": "int64", "x-go-name": "ParentBookingID" }, "partner_app_id": { "$ref": "#/definitions/PartnerApp" }, "pet_friendly": { "type": "boolean", "x-go-name": "PetFriendly" }, "pets": { "type": "integer", "format": "int64", "x-go-name": "Pets" }, "pickup": { "$ref": "#/definitions/BookingPickup" }, "quote_id": { "type": "string", "x-go-name": "QuoteID" }, "reason": { "type": "string", "x-go-name": "Reason" }, "recaptcha_response": { "type": "string", "x-go-name": "RecaptchaResponse" }, "rental_id": { "type": "integer", "format": "int64" }, "renter_age": { "type": "integer", "format": "int64", "x-go-name": "RenterAge" }, "renter_id": { "type": "integer", "format": "int64", "x-go-name": "RenterID" }, "rv_profile": { "$ref": "#/definitions/RVProfile" }, "services": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "Services" }, "smoking_allowed": { "type": "boolean", "x-go-name": "SmokingAllowed" }, "source": { "type": "string", "x-go-name": "Source" }, "status": { "type": "string", "x-go-name": "Status" }, "stripe_token": { "type": "string", "x-go-name": "StripeToken" }, "system_generated": { "type": "boolean", "x-go-name": "SystemGenerated" }, "tailgate_friendly": { "type": "boolean", "x-go-name": "TailgateFriendly" }, "to": { "type": "string" }, "to_time": { "type": "integer", "format": "int64", "x-go-name": "ToTime" }, "towing_capacity": { "type": "integer", "format": "int64", "x-go-name": "TowingCapacity" }, "towing_vehicle_make": { "type": "string", "x-go-name": "TowingVehicleMake" }, "towing_vehicle_model": { "type": "string", "x-go-name": "TowingVehicleModel" }, "towing_vehicle_year": { "type": "integer", "format": "int64", "x-go-name": "TowingVehicleYear" }, "travel_to_states": { "type": "array", "items": { "type": "string" }, "x-go-name": "TravelToStates" }, "travelers": { "type": "integer", "format": "int64", "x-go-name": "Travelers" }, "trip_credits_disabled": { "type": "boolean", "x-go-name": "TripCreditsDisabled" }, "trip_summary": { "$ref": "#/definitions/TripSummary" }, "user_notices_acknowledged": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "UserNoticesAcknowledged" }, "year_max": { "type": "integer", "format": "int64", "x-go-name": "YearMax" }, "year_min": { "type": "integer", "format": "int64", "x-go-name": "YearMin" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "BookingRestrictions": { "type": "object", "properties": { "all_booking_cancellation_threshold": { "type": "integer", "format": "int64", "x-go-name": "AllBookingCancellationThreshold" }, "all_booking_cancellations_six_months": { "type": "integer", "format": "int64", "x-go-name": "AllBookingCancellationsSixMonths" }, "cancellation_penalty_less_than_7_days": { "type": "integer", "format": "int64", "x-go-name": "CancellationPenaltyLessThan7Days" }, "cancellation_penalty_more_than_7_days": { "type": "integer", "format": "int64", "x-go-name": "CancellationPenaltyMoreThan7Days" }, "instant_book_cancellation_threshold": { "type": "integer", "format": "int64", "x-go-name": "InstantBookCancellationThreshold" }, "instant_book_cancellations_six_months": { "type": "integer", "format": "int64", "x-go-name": "InstantBookCancellationsSixMonths" }, "is_instant_book_banned": { "type": "boolean", "x-go-name": "InstantBookBanned" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingService": { "type": "object", "properties": { "booking_id": { "type": "integer", "format": "int64", "x-go-name": "BookingID" }, "bundle_id": { "type": "string", "nullable": true }, "category": { "type": "string", "x-go-name": "Category" }, "charge_to": { "type": "string", "x-go-name": "ChargeTo" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "daily": { "type": "boolean", "x-go-name": "Daily" }, "dealer_flat_split": { "type": "integer", "format": "int64", "x-go-name": "DealerFlatSplit" }, "dealer_percent_split": { "type": "number", "format": "double", "x-go-name": "DealerPercentSplit" }, "dealer_split_type": { "type": "string", "x-go-name": "DealerSplitType" }, "deleted_at": { "$ref": "#/definitions/NullTime" }, "description": { "type": "string", "x-go-name": "Description" }, "discount_amount": { "type": "integer", "format": "int64", "x-go-name": "DiscountAmount" }, "external_reference_id": { "type": "string", "x-go-name": "ExternalReferenceID" }, "fee_locked": { "type": "boolean", "x-go-name": "FeeLocked" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "is_taxable": { "description": "IsTaxable determines whether this service is taxable. This is defaulted\nto the service's IsTaxable field on BookingService create", "type": "boolean", "x-go-name": "IsTaxable" }, "last_service_log": { "x-go-name": "LastServiceLog" }, "lock_on_booking_status": { "type": "string", "x-go-name": "LockOnBookingStatus" }, "minimum_price": { "type": "integer", "format": "int64", "x-go-name": "MinimumPrice" }, "missing_fields": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } }, "x-go-name": "MissingFields" }, "name": { "type": "string", "x-go-name": "Name" }, "payable_to": { "type": "string", "x-go-name": "PayableTo" }, "percent": { "type": "number", "format": "double", "x-go-name": "Percent" }, "percent_type": { "type": "string", "x-go-name": "PercentType" }, "policy_start_date": { "type": "string", "x-go-name": "PolicyStartDate", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "premium_amount": { "description": "PremiumAmount is the daily rate", "type": "integer", "format": "int64", "x-go-name": "PremiumAmount" }, "premium_total": { "description": "PremiumTotal is what we pay to the dealer", "type": "integer", "format": "int64", "x-go-name": "PremiumTotal" }, "prevent_delete": { "type": "boolean", "x-go-name": "PreventDelete" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" }, "quantity": { "type": "integer", "format": "int64", "x-go-name": "Quantity" }, "required": { "type": "boolean", "x-go-name": "Required" }, "revision": { "type": "integer", "format": "int64", "x-go-name": "Revision" }, "roamly_weather_quote": { "$ref": "#/definitions/DBInterfaceMap" }, "service_data": { "$ref": "#/definitions/DBInterfaceMap" }, "service_id": { "type": "integer", "format": "int64", "x-go-name": "ServiceID" }, "tax_amount": { "type": "integer", "format": "int64", "x-go-name": "TaxAmount" }, "tax_rates": { "type": "array", "items": { "$ref": "#/definitions/BookingTaxRate" }, "x-go-name": "TaxRates" }, "total": { "description": "Total is the full amount of what the renter pays (total + premium total) - does not include taxes", "type": "integer", "format": "int64", "x-go-name": "Total" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "variant_price": { "description": "Calculated price considering pricing variant", "type": "integer", "format": "int64", "x-go-name": "VariantPrice" } }, "x-go-package": "github.com/outdoorsy/api/internal/booking_services" }, "BookingServiceData": { "type": "object", "properties": { "bundle_id": { "type": "string", "x-go-name": "BundleID" }, "data": { "$ref": "#/definitions/DBInterfaceMap" }, "id": { "type": "string", "x-go-name": "ID" }, "revision": { "type": "integer", "format": "int64", "x-go-name": "Revision" }, "tax_rates": { "type": "array", "items": { "$ref": "#/definitions/BookingTaxRate" }, "x-go-name": "TaxRates" } }, "x-go-package": "github.com/outdoorsy/api/integrations" }, "BookingStatusCount": { "type": "object", "properties": { "approved": { "type": "integer", "format": "int64", "x-go-name": "Approved" }, "draft": { "type": "integer", "format": "int64", "x-go-name": "Draft" }, "expired": { "type": "integer", "format": "int64", "x-go-name": "Expired" }, "handed_off": { "type": "integer", "format": "int64", "x-go-name": "HandedOff" }, "imminent": { "type": "integer", "format": "int64", "x-go-name": "Imminent" }, "negotiating": { "type": "integer", "format": "int64", "x-go-name": "Negotiating" }, "owner_cancelled": { "type": "integer", "format": "int64", "x-go-name": "OwnerCancelled" }, "owner_declined": { "type": "integer", "format": "int64", "x-go-name": "OwnerDeclined" }, "renter_cancelled": { "type": "integer", "format": "int64", "x-go-name": "RenterCancelled" }, "renter_withdrew": { "type": "integer", "format": "int64", "x-go-name": "RenterWithdrew" }, "returned": { "type": "integer", "format": "int64", "x-go-name": "Returned" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "BookingSummary": { "type": "object", "properties": { "from": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "to": { "type": "string" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "BookingTaxRate": { "type": "object", "properties": { "booking_id": { "type": "integer", "format": "int64", "x-go-name": "BookingID" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "object_id": { "type": "integer", "format": "int64", "x-go-name": "ObjectID" }, "object_type": { "type": "string", "x-go-name": "ObjectType" }, "payable_to": { "type": "string", "x-go-name": "PayableTo" }, "source": { "type": "string", "x-go-name": "Source" }, "state": { "type": "string", "x-go-name": "State" }, "tax_amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "tax_description": { "type": "string", "x-go-name": "Description" }, "tax_name": { "type": "string", "x-go-name": "Name" }, "tax_rate": { "type": "number", "format": "double", "x-go-name": "Rate" }, "tax_rate_id": { "type": "integer", "format": "int64", "x-go-name": "TaxRateID" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "zip_code": { "type": "string", "x-go-name": "ZipCode" } }, "x-go-package": "github.com/outdoorsy/api/internal/tax_rates" }, "BookingUpdateRequest": { "type": "object", "properties": { "addons": { "type": "array", "items": { "$ref": "#/definitions/ItemRequest" }, "x-go-name": "Addons" }, "auto_assign_group": { "type": "boolean", "x-go-name": "AutoAssignGroup" }, "auto_insurance_type": { "type": "string", "x-go-name": "AutoInsuranceType" }, "bundle_id": { "type": "string", "x-go-name": "BundleID" }, "cancel_policy": { "type": "string", "x-go-name": "CancelPolicy" }, "checkout_questions": { "$ref": "#/definitions/DBMSISlice" }, "decline_reason": { "type": "string", "x-go-name": "DeclineReason" }, "delivery": { "$ref": "#/definitions/BookingDelivery" }, "delivery_usage_item_id": { "type": "integer", "format": "int64", "x-go-name": "DeliveryUsageItemID" }, "deposit_percentage": { "type": "number", "format": "double", "x-go-name": "DepositPercentage" }, "destination": { "type": "string", "x-go-name": "Destination" }, "destination_lat": { "type": "number", "format": "double", "x-go-name": "DestinationLat" }, "destination_lng": { "type": "number", "format": "double", "x-go-name": "DestinationLng" }, "details": { "$ref": "#/definitions/DBInterfaceMap" }, "discount_code": { "type": "string", "x-go-name": "DiscountCode" }, "dropoff": { "$ref": "#/definitions/BookingDropoff" }, "final_payment_due_days": { "type": "integer", "format": "int64", "x-go-name": "FinalPaymentDueDays" }, "from": { "type": "string" }, "from_time": { "type": "integer", "format": "int64", "x-go-name": "FromTime" }, "generator": { "$ref": "#/definitions/BookingGenerator" }, "generator_usage_item_id": { "type": "integer", "format": "int64", "x-go-name": "GeneratorUsageItemID" }, "include_coachnet": { "type": "boolean", "x-go-name": "IncludeCoachnet" }, "insurance_coverage": { "type": "string", "x-go-name": "InsuranceCoverage" }, "insurance_plan_id": { "type": "integer", "format": "int64", "x-go-name": "InsurancePlanID" }, "location_id": { "type": "integer", "format": "int64", "x-go-name": "LocationID" }, "loyalty_credit_issued": { "type": "boolean", "x-go-name": "LoyaltyCreditIssued" }, "loyalty_rewards_eligible": { "type": "boolean", "x-go-name": "LoyaltyRewardsEligible" }, "message": { "type": "string", "x-go-name": "Message" }, "mileage": { "$ref": "#/definitions/BookingMileage" }, "mileage_usage_item_id": { "type": "integer", "format": "int64", "x-go-name": "MileageUsageItemID" }, "minimum_deposit": { "type": "integer", "format": "uint64", "x-go-name": "MinimumDeposit" }, "occupancy": { "$ref": "#/definitions/Occupancy" }, "owner_fee_percentage": { "description": "admin token only", "type": "number", "format": "double", "x-go-name": "OwnerFeePercentage" }, "pets": { "type": "integer", "format": "int64", "x-go-name": "Pets" }, "pickup": { "$ref": "#/definitions/BookingPickup" }, "read": { "type": "boolean", "x-go-name": "Read" }, "recalculate": { "type": "boolean", "x-go-name": "Recalculate" }, "rental_charge_card_id": { "type": "integer", "format": "int64", "x-go-name": "RentalChargeCardID" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "renter_age": { "type": "integer", "format": "int64", "x-go-name": "RenterAge" }, "renter_fee_percentage": { "type": "number", "format": "double", "x-go-name": "RenterFeePercentage" }, "renter_id": { "type": "integer", "format": "int64", "x-go-name": "RenterID" }, "require_insurance": { "type": "boolean", "x-go-name": "RequireInsurance" }, "security_deposit": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDeposit" }, "security_deposit_card_id": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositCardID" }, "security_deposit_due_days": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositDueDays" }, "skip_addons": { "type": "boolean", "x-go-name": "SkipAddons" }, "stripe_token": { "type": "string", "x-go-name": "StripeToken" }, "to": { "type": "string" }, "to_time": { "type": "integer", "format": "int64", "x-go-name": "ToTime" }, "travel_to_states": { "type": "array", "items": { "type": "string" }, "x-go-name": "TravelToStates" }, "travelers": { "type": "integer", "format": "int64", "x-go-name": "Travelers" }, "trip_credits_disabled": { "type": "boolean", "x-go-name": "TripCreditsDisabled" }, "update_location_address": { "type": "boolean", "x-go-name": "UpdateLocationAddress" }, "user_notice_acknowledged_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "UserNoticeAcknowledgedIDs" }, "waive_service_fee": { "type": "boolean", "x-go-name": "WaiveServiceFee" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "BookingsInfo": { "type": "object", "properties": { "statuses": { "type": "array", "items": { "$ref": "#/definitions/FilterStatusGroup" }, "x-go-name": "Statuses" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingsMetaStage": { "type": "object", "properties": { "cancelled": { "$ref": "#/definitions/BookingsMetaStageCount" }, "completed": { "$ref": "#/definitions/BookingsMetaStageCount" }, "pending": { "$ref": "#/definitions/BookingsMetaStageCount" }, "upcoming": { "$ref": "#/definitions/BookingsMetaStageCount" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingsMetaStageCount": { "type": "object", "properties": { "has_actionable_bookings": { "type": "boolean", "x-go-name": "HasActionableBookings" }, "has_bookings": { "type": "boolean", "x-go-name": "HasBookings" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "total_actionable": { "type": "integer", "format": "int64", "x-go-name": "TotalActionable" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingsStageWithMeta": { "type": "object", "properties": { "bookings": { "type": "array", "items": { "$ref": "#/definitions/MinBooking" }, "x-go-name": "Bookings" }, "bookings_info": { "$ref": "#/definitions/BookingsInfo" }, "meta": { "$ref": "#/definitions/BookingsMetaStage" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "BookingsStatusCount": { "type": "object", "properties": { "approved": { "type": "integer", "format": "int64", "x-go-name": "Approved" }, "change_requested": { "type": "integer", "format": "int64", "x-go-name": "ChangeRequested" }, "handed_off": { "type": "integer", "format": "int64", "x-go-name": "HandedOff" }, "imminent": { "type": "integer", "format": "int64", "x-go-name": "Imminent" }, "owner_cancelled": { "type": "integer", "format": "int64", "x-go-name": "OwnerCancelled" }, "renter_cancelled": { "type": "integer", "format": "int64", "x-go-name": "RenterCancelled" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "Bundle": { "type": "object", "properties": { "active": { "type": "boolean", "x-go-name": "Active" }, "country": { "type": "string", "x-go-name": "Country" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "dealer_owned_renter": { "type": "boolean", "x-go-name": "DealerOwnedRenter" }, "delivery": { "type": "boolean", "x-go-name": "Delivery" }, "description": { "type": "string", "x-go-name": "Description" }, "estimated_miles_per_day": { "type": "integer", "format": "int64", "x-go-name": "EstimatedMilesPerDay" }, "features": { "$ref": "#/definitions/BundleFeatures" }, "id": { "type": "string", "x-go-name": "ID" }, "internal_description": { "type": "string", "x-go-name": "InternalDescription" }, "line_item_name": { "type": "string", "x-go-name": "LineItemName" }, "name": { "type": "string", "x-go-name": "Name" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "per_mile_price": { "type": "integer", "format": "int64", "x-go-name": "PerMilePrice" }, "per_mile_price_fsd": { "type": "integer", "format": "int64", "x-go-name": "PerMilePriceFSD" }, "percent_uptake_drivable": { "type": "number", "format": "double", "x-go-name": "PercentUptakeDrivable" }, "percent_uptake_towable": { "type": "number", "format": "double", "x-go-name": "PercentUptakeTowable" }, "qualifies_per_mile_pricing": { "type": "boolean", "x-go-name": "QualifiesPerMilePricing" }, "rental_category": { "type": "string", "x-go-name": "RentalCategory" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "rules": { "type": "array", "items": { "$ref": "#/definitions/BundleRule" }, "x-go-name": "Rules" }, "tax_rate_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "TaxRateIDs" }, "tier": { "type": "integer", "format": "int64", "x-go-name": "Tier" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" }, "use_per_mile_pricing": { "type": "boolean", "x-go-name": "UsePerMilePricing" } }, "x-go-package": "github.com/outdoorsy/api/internal/bundle" }, "BundleFeature": { "type": "object", "properties": { "bundle_id": { "type": "string", "x-go-name": "BundleID" }, "category": { "type": "string", "x-go-name": "Category" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "details": { "type": "string", "x-go-name": "Details" }, "id": { "type": "string", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "regions": { "$ref": "#/definitions/DBStringSlice" }, "service_id": { "type": "integer", "format": "int64", "nullable": true }, "type": { "type": "string", "x-go-name": "Type" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/bundle" }, "BundleFeatureItem": { "type": "object", "properties": { "details": { "type": "string", "x-go-name": "Details" }, "name": { "type": "string", "x-go-name": "Name" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "service_id": { "type": "integer", "format": "int64", "x-go-name": "ServiceID" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/internal/booking_bundle" }, "BundleFeatureTransfer": { "type": "object", "properties": { "category": { "type": "string", "x-go-name": "Category" }, "items": { "type": "array", "items": { "$ref": "#/definitions/BundleFeatureItem" }, "x-go-name": "Items" } }, "x-go-package": "github.com/outdoorsy/api/internal/booking_bundle" }, "BundleFeatures": { "type": "array", "items": { "$ref": "#/definitions/BundleFeature" }, "x-go-package": "github.com/outdoorsy/api/internal/bundle" }, "BundleRule": { "type": "object", "properties": { "bundle_id": { "type": "string", "x-go-name": "BundleID" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "string", "x-go-name": "ID" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "rule": { "$ref": "#/definitions/MSI" }, "type": { "type": "string", "x-go-name": "Type" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/bundle" }, "Business": { "type": "object", "properties": { "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" }, "checkout_questions": { "$ref": "#/definitions/DBMSISlice" }, "consigned_keep_pct_addon_fee": { "type": "number", "format": "double", "x-go-name": "ConsignedKeepPctAddonFee" }, "consigned_keep_pct_cc_fee": { "type": "number", "format": "double", "x-go-name": "ConsignedKeepPctCCFee" }, "consigned_keep_pct_insurance_fee": { "type": "number", "format": "double", "x-go-name": "ConsignedKeepPctInsuranceFee" }, "consigned_pay_pct": { "description": "consigned owner support", "type": "number", "format": "double", "x-go-name": "ConsignedPayPct" }, "consigned_pay_pct_generator": { "type": "number", "format": "double", "x-go-name": "ConsignedPayPctGenerator" }, "consigned_pay_pct_mileage": { "type": "number", "format": "double", "x-go-name": "ConsignedPayPctMileage" }, "description": { "type": "string", "x-go-name": "Description" }, "fax": { "type": "string", "x-go-name": "Fax" }, "ga4_id": { "type": "string", "x-go-name": "GA4ID" }, "google_analytics_id": { "type": "string", "nullable": true }, "google_tag_manager_id": { "type": "string", "nullable": true }, "hide_rentals": { "type": "boolean", "x-go-name": "HideRentals" }, "house_rules": { "type": "string", "x-go-name": "HouseRules" }, "localized_languages": { "$ref": "#/definitions/DBStringSlice" }, "name": { "type": "string", "x-go-name": "Name" }, "outdoorsy_display_name": { "type": "string", "x-go-name": "OutdoorsyDisplayName" }, "phone": { "type": "string", "x-go-name": "Phone" }, "segment_token": { "type": "string", "x-go-name": "SegmentToken" }, "terms_of_service": { "type": "string", "x-go-name": "TermsOfService" }, "website": { "type": "string", "x-go-name": "Website" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "CampgroundActivityFeature": { "type": "object", "properties": { "feature": { "type": "string", "x-go-name": "Slug" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/internal/seeker/client" }, "CampgroundAmenitiesCategory": { "type": "object", "properties": { "id": { "type": "string", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/internal/seeker/client" }, "CampgroundCatalog": { "type": "object", "properties": { "activity_features": { "type": "array", "items": { "$ref": "#/definitions/CampgroundActivityFeature" }, "x-go-name": "ActivityFeatures" }, "amenities_categories": { "type": "array", "items": { "$ref": "#/definitions/CampgroundAmenitiesCategory" }, "x-go-name": "CampgroundAmenitiesCategories" }, "processed_amenities": { "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/definitions/ProcessedCampgroundAmenity" } }, "x-go-name": "ProcessedCampgroundAmenities" }, "scenery_features": { "type": "array", "items": { "$ref": "#/definitions/CampgroundSceneryFeature" }, "x-go-name": "SceneryFeatures" } }, "x-go-package": "github.com/outdoorsy/api/internal/seeker/client" }, "CampgroundSceneryFeature": { "type": "object", "properties": { "feature": { "type": "string", "x-go-name": "Slug" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/internal/seeker/client" }, "CampsiteCategory": { "type": "object", "properties": { "active_rate_plan": { "type": "string", "x-go-name": "ActiveRatePlan" }, "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_name": { "type": "string", "x-go-name": "CampgroundName" }, "campground_site_map_url": { "type": "string", "x-go-name": "CampgroundSiteMapURL" }, "category_type": { "type": "string", "x-go-name": "CategoryType" }, "checkout_questions": { "type": "array", "items": { "$ref": "#/definitions/CampsiteCategoryQuestion" }, "x-go-name": "CheckoutQuestions" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "description": { "type": "string", "x-go-name": "Description" }, "display_category_type": { "type": "string", "x-go-name": "DisplayCategoryType" }, "display_max_vehicle_length": { "type": "string", "x-go-name": "DisplayMaxVehicleLength" }, "display_site_type": { "type": "string", "x-go-name": "DisplaySiteType" }, "enabled_for_rental_categories": { "$ref": "#/definitions/MSI" }, "external_id": { "type": "string", "x-go-name": "ExternalID" }, "features": { "$ref": "#/definitions/MSI" }, "has_pricing": { "type": "boolean", "x-go-name": "HasPricing" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "is_odn": { "type": "boolean", "x-go-name": "IsOdn" }, "max_occupancy": { "type": "integer", "format": "int64", "x-go-name": "MaxOccupancy" }, "max_occupancy_adult": { "type": "integer", "format": "int64", "x-go-name": "MaxAdultOccupancy" }, "max_occupancy_kids": { "type": "integer", "format": "int64", "x-go-name": "MaxKidsOccupancy" }, "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" }, "owner_id_int": { "type": "integer", "format": "int64", "x-go-name": "OwnerIDInt" }, "parking_onsite": { "type": "boolean", "x-go-name": "ParkingOnsite" }, "pet_fee": { "$ref": "#/definitions/PetFee" }, "quantity": { "type": "integer", "format": "int64", "x-go-name": "Quantity" }, "rental_id_int": { "type": "integer", "format": "int64", "x-go-name": "RentalIDInt" }, "rv_rental_id_int": { "type": "integer", "format": "int64", "x-go-name": "RVRentalIDInt" }, "site_type": { "type": "string", "x-go-name": "SiteType" }, "slug": { "type": "string", "x-go-name": "Slug" }, "supplier_category_id": { "type": "integer", "format": "int64", "x-go-name": "SupplierCampsiteCategoryID" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/campgrounds" }, "CampsiteCategoryQuestion": { "type": "object", "properties": { "included": { "type": "boolean", "x-go-name": "Included" }, "label": { "type": "string", "x-go-name": "Label" }, "value": { "type": "string", "x-go-name": "Value" } }, "x-go-package": "github.com/outdoorsy/api/internal/campgrounds" }, "CampsiteSummary": { "type": "object", "properties": { "beds": { "type": "integer", "format": "int64", "x-go-name": "Beds" }, "campground_id": { "type": "integer", "format": "int64", "x-go-name": "CampgroundID" }, "campground_name": { "type": "string", "x-go-name": "CampgroundName" }, "campground_sitemap_url": { "type": "string", "x-go-name": "CampgroundSiteMapURL" }, "display_campsite_type": { "type": "string", "x-go-name": "DisplayCampsiteType" }, "display_max_vehicle_length": { "type": "string", "x-go-name": "DisplayMaxVehicleLength" }, "display_site_type": { "type": "string", "x-go-name": "DisplaySiteType" }, "is_odn": { "type": "boolean", "x-go-name": "IsOdn" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "site_type": { "type": "string", "x-go-name": "SiteType" }, "sleeps": { "type": "integer", "format": "int64", "x-go-name": "Sleeps" }, "type": { "type": "string", "x-go-name": "CategoryType" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "CancelMetadata": { "description": "CancelMetadata is stored as JSONB and contains structured cancellation information for analytics and tracking\nFields: reason_value, penalty_category, timestamp, reason_metadata", "type": "object", "additionalProperties": { }, "x-go-package": "github.com/outdoorsy/api/model" }, "CancellationPenaltyInfoV2": { "description": "CancellationPenaltyInfoV2 contains progressive penalty information for HostCancellationV2 experiment", "type": "object", "properties": { "current_strike": { "type": "integer", "format": "int64", "x-go-name": "CurrentStrike" }, "first_strike_fee": { "type": "integer", "format": "int64", "x-go-name": "FirstStrikeFee" }, "next_cancellation_fee": { "type": "integer", "format": "int64", "x-go-name": "NextCancellationFee" }, "second_strike_fee": { "type": "integer", "format": "int64", "x-go-name": "SecondStrikeFee" }, "third_strike_fee": { "type": "integer", "format": "int64", "x-go-name": "ThirdStrikeFee" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "CancellationRefundBreakdown": { "description": "It captures the full component split computed by getRefundPayoutInputs so that the\nhost dashboard can display a detailed breakdown without having to re-derive the numbers.", "type": "object", "title": "CancellationRefundBreakdown is persisted to booking_metadata at cancellation time.", "properties": { "cancellation_policy": { "type": "string", "x-go-name": "CancellationPolicy" }, "gross_owner_payout": { "type": "integer", "format": "int64", "x-go-name": "GrossOwnerPayout" }, "is_cutoff_cancellation": { "type": "boolean", "x-go-name": "IsCutoffCancellation" }, "is_grace_period": { "type": "boolean", "x-go-name": "IsGracePeriod" }, "is_standardized_policy": { "type": "boolean", "x-go-name": "IsStandardized" }, "net_owner_payout": { "type": "integer", "format": "int64", "x-go-name": "NetOwnerPayout" }, "non_refundable_rif": { "type": "integer", "format": "int64", "x-go-name": "NonRefundableRIF" }, "other_items_amount": { "type": "integer", "format": "int64", "x-go-name": "OtherItemsAmount" }, "owner_fee": { "type": "integer", "format": "int64", "x-go-name": "OwnerFee" }, "owner_fee_base": { "type": "integer", "format": "int64", "x-go-name": "OwnerFeeBase" }, "owner_fee_percentage": { "type": "number", "format": "double", "x-go-name": "OwnerFeePercentage" }, "penalty_percentage": { "type": "number", "format": "double", "x-go-name": "PenaltyPercentage" }, "refund_percentage": { "type": "number", "format": "double", "x-go-name": "RefundPercentage" }, "refundable_rif": { "type": "integer", "format": "int64", "x-go-name": "RefundableRIF" }, "rental_amount": { "type": "integer", "format": "int64", "x-go-name": "RentalAmount" }, "rental_tax": { "type": "integer", "format": "int64", "x-go-name": "RentalTax" }, "rental_tax_payable_to": { "type": "string", "x-go-name": "RentalTaxPayableTo" }, "renter_refund_amount": { "type": "integer", "format": "int64", "x-go-name": "RenterRefundAmount" }, "service_fee": { "type": "integer", "format": "int64", "x-go-name": "ServiceFee" }, "service_fee_tax": { "type": "integer", "format": "int64", "x-go-name": "ServiceFeeTax" }, "total_rif": { "type": "integer", "format": "int64", "x-go-name": "TotalRIF" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "Category": { "type": "object", "properties": { "name": { "type": "string", "x-go-name": "Name" }, "slug": { "type": "string", "x-go-name": "Slug" } }, "x-go-package": "github.com/outdoorsy/api/internal/seeker/client" }, "ChangeBundleRequest": { "type": "object", "properties": { "bundle_id": { "type": "string", "x-go-name": "BundleID" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "ChangeWishlistRequest": { "type": "object", "properties": { "campground_id": { "type": "integer", "format": "int64", "x-go-name": "CampgroundID" }, "new_wishlist_id": { "type": "integer", "format": "int64", "x-go-name": "NewWishlistID" }, "old_wishlist_id": { "type": "integer", "format": "int64", "x-go-name": "OldWishlistID" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "ChangeWishlistResponse": { "type": "object", "properties": { "cover_image_url": { "type": "string", "x-go-name": "CoverImageUrl" }, "title": { "type": "string", "x-go-name": "Title" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "CheckoutAnswer": { "type": "object", "properties": { "label": { "type": "string", "x-go-name": "Label" }, "value": { "type": "string", "x-go-name": "Value" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "CheckoutAnswers": { "type": "array", "items": { "$ref": "#/definitions/CheckoutAnswer" }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "CheckoutStep": { "type": "object", "properties": { "name": { "type": "string", "x-go-name": "Name" }, "order": { "type": "integer", "format": "int64", "x-go-name": "Order" }, "status": { "type": "string", "x-go-name": "Status" } }, "x-go-package": "github.com/outdoorsy/api/pkg/checkout_steps" }, "Code": { "type": "string", "x-go-package": "github.com/outdoorsy/api/internal/gift_card" }, "CollectOverageFeeRequest": { "description": "CollectOverageFeeRequest represents the request body for collecting overage fees", "type": "object", "properties": { "admin_message": { "description": "Admin message for audit trail", "type": "string", "x-go-name": "AdminMessage" }, "dry_claim": { "description": "Dry run mode - calculate charges without executing", "type": "boolean", "x-go-name": "DryClaim" }, "message": { "description": "Message to send to renter about post-trip charges", "type": "string", "x-go-name": "Message" }, "post_trip_charges": { "$ref": "#/definitions/SecurityDepositPostTripCharges" }, "usage_overage_only": { "description": "Legacy usage-based overage collection (mileage/generator)\nSet to true to only collect existing mileage and generator overages", "type": "boolean", "x-go-name": "UsageOverageOnly" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "CollectPostTripChargesRequest": { "description": "CollectPostTripChargesRequest represents the request structure for post-trip charges collection", "type": "object", "properties": { "admin_message": { "description": "Admin message for audit trail", "type": "string", "x-go-name": "AdminMessage" }, "dry_claim": { "description": "Dry run mode - calculate charges without executing", "type": "boolean", "x-go-name": "DryClaim" }, "message": { "description": "Message to send to renter about post-trip charges", "type": "string", "x-go-name": "Message" }, "post_trip_charges": { "$ref": "#/definitions/SecurityDepositPostTripCharges" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "CompleteAuthorizationAndGetFundCreationFormRequest": { "description": "CompleteAuthorizationAndGetFundCreationFormRequest is the payload type of\nthe payouts service CompleteAuthorizationAndGetFundCreationForm method.", "type": "object", "properties": { "APIKey": { "description": "API Key used to perform authorization.", "type": "string" }, "Bui-Accept": { "description": "A BUI accept header", "type": "string", "x-go-name": "BuiAccept" }, "account_id": { "description": "The ID of the account chosen by the user. This was gathered after the\n`GetFundCreationForm` request was made.", "type": "string", "x-go-name": "AccountID" }, "business_type": { "description": "The type of business.", "type": "string", "x-go-name": "BusinessType" }, "country": { "description": "The country in which this account resides. Must be the same as the country\nsent to the `begin` endpoint.", "type": "string", "x-go-name": "Country" }, "token": { "description": "The token returned from the authorizer iframe.", "type": "string", "x-go-name": "Token" } }, "x-go-package": "github.com/outdoorsy/api/pkg/payouts/gen" }, "CompleteAuthorizationResponse": { "description": "CompleteAuthorizationResponse is the result type of the payouts service\nCompleteAuthorization method.", "type": "object", "properties": { "account_mask": { "description": "The mask for the chose account.", "type": "string", "x-go-name": "AccountMask" }, "account_name": { "description": "The name of the chosen account.", "type": "string", "x-go-name": "AccountName" }, "authorization_id": { "description": "The ID of the newly created Authorization object.", "type": "string", "x-go-name": "AuthorizationID" }, "bui": { "description": "The BUI to display", "type": "object", "x-go-name": "BUI" }, "status": { "description": "The status of the authorization. Possible values include `pending`,\n`active`, `expired` and `error`.", "type": "string", "x-go-name": "Status" } }, "x-go-package": "github.com/outdoorsy/api/pkg/payouts/gen" }, "ConsignedPayout": { "type": "object", "properties": { "bookings": { "type": "array", "items": { "$ref": "#/definitions/Booking" }, "x-go-name": "Bookings" }, "consigned_owner_id": { "type": "integer", "format": "int64" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "from": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "items": { "type": "array", "items": { "$ref": "#/definitions/ConsignedPayoutItem" }, "x-go-name": "Items" }, "message": { "type": "string", "x-go-name": "Message" }, "owner_id": { "type": "integer", "format": "int64" }, "paid_date": { "type": "string" }, "rental_id": { "type": "integer", "format": "int64" }, "status": { "type": "string", "x-go-name": "Status" }, "to": { "type": "string" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ConsignedPayoutItem": { "type": "object", "properties": { "consigned_payout_id": { "$ref": "#/definitions/ConsignedPayout" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ConsignmentRequest": { "type": "object", "properties": { "consignment_questions": { "type": "string", "x-go-name": "Questions" } }, "x-go-package": "github.com/outdoorsy/api/internal/consignment" }, "ConsignmentResponse": { "type": "object", "properties": { "consignment_complete_date": { "type": "string", "x-go-name": "CompleteDate", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/consignment" }, "Conversation": { "type": "object", "properties": { "all_statuses": { "type": "string", "x-go-name": "AllStatuses" }, "archived": { "type": "boolean", "x-go-name": "Archived" }, "bookings": { "type": "array", "items": { "$ref": "#/definitions/Booking" }, "x-go-name": "Bookings" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by_id": { "type": "integer", "format": "int64" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_location_id": { "type": "integer", "format": "int64", "x-go-name": "LastLocationID" }, "messages": { "type": "array", "items": { "$ref": "#/definitions/Message" }, "x-go-name": "Messages" }, "num_messages": { "type": "integer", "format": "uint64", "x-go-name": "NumMessages" }, "owner_id": { "type": "integer", "format": "int64" }, "owner_sms_proxy_id": { "type": "string", "nullable": true }, "owner_summary": { "x-go-name": "OwnerSummary" }, "read": { "type": "boolean", "x-go-name": "Read" }, "renter_id": { "type": "integer", "format": "int64" }, "renter_sms_proxy_id": { "type": "string", "nullable": true }, "renter_summary": { "description": "Generated in memory", "x-go-name": "RenterSummary" }, "sms_proxy_closed": { "type": "boolean", "nullable": true }, "sms_proxy_session_id": { "type": "string", "nullable": true }, "time_to_first_action": { "type": "integer", "format": "int64", "nullable": true }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ConversationBody": { "type": "object", "properties": { "email": { "type": "string", "x-go-name": "Email" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "message": { "type": "string", "x-go-name": "Message" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "phone": { "type": "string", "x-go-name": "Phone" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "ConversationSuggestionResponse": { "type": "object", "properties": { "confidence-level": { "type": "number", "format": "double", "x-go-name": "ConfidenceLevel" }, "reply-suggestion": { "type": "string", "x-go-name": "ReplySuggestion" } }, "x-go-package": "github.com/outdoorsy/api/internal/ai_suggestion" }, "CreateCard": { "type": "object", "properties": { "default": { "type": "boolean", "x-go-name": "Default" }, "payment_processor": { "$ref": "#/definitions/PaymentProcessor" }, "stripe_token": { "type": "string", "x-go-name": "StripeToken" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "CreateUpdateAnnouncementGroupRequest": { "description": "Announcement Groups", "type": "object", "properties": { "incremental_removal_user_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "IncrementalRemovalUserIDs" }, "name": { "type": "string", "x-go-name": "Name" }, "user_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "UserIDs" } }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "CreateUpdateAnnouncementRequest": { "description": "Admin\nAnnouncements", "type": "object", "properties": { "content": { "type": "string", "x-go-name": "Content" }, "description": { "type": "string", "x-go-name": "Description" }, "group_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "GroupIDs" }, "published": { "type": "boolean", "x-go-name": "Published" }, "published_at": { "type": "string", "x-go-name": "PublishedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "title": { "type": "string", "x-go-name": "Title" }, "user_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "UserIDs" } }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "CreateWishlistRequest": { "type": "object", "properties": { "campground_id": { "type": "integer", "format": "int64", "x-go-name": "CampgroundID" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "title": { "type": "string", "x-go-name": "Title" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "CreateWishlistResponse": { "type": "object", "properties": { "cover_image_url": { "type": "string", "x-go-name": "CoverImageURL" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "title": { "type": "string", "x-go-name": "Title" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "CreditReportResponse": { "type": "object", "properties": { "Meta": { "type": "object", "properties": { "Limit": { "type": "integer", "format": "uint64" }, "Offset": { "type": "integer", "format": "uint64" }, "Total": { "type": "integer", "format": "int64" }, "total_amount": { "type": "number", "format": "double", "x-go-name": "TotalAmount" } } }, "data": { "type": "object", "properties": { "credits": { "type": "array", "items": { "$ref": "#/definitions/CreditReportUser" }, "x-go-name": "Credits" } }, "x-go-name": "Data" } }, "x-go-package": "github.com/outdoorsy/api/internal/report/credit_report" }, "CreditReportUser": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "description": { "type": "string", "x-go-name": "Description" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_name": { "type": "string", "x-go-name": "LastName" } }, "x-go-package": "github.com/outdoorsy/api/internal/report/credit_report" }, "Currency": { "type": "string", "x-go-package": "github.com/outdoorsy/glibs/currencies" }, "CustomEmailJob": { "type": "object", "properties": { "booking_id": { "type": "integer", "format": "int64", "x-go-name": "BookingID" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "custom_email_id": { "type": "integer", "format": "int64", "x-go-name": "CustomEmailID" }, "custom_email_type": { "type": "string", "x-go-name": "CustomEmailType" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "job_id": { "type": "string", "x-go-name": "JobID" }, "reschedule": { "type": "boolean", "x-go-name": "Reschedule" }, "scheduled_for": { "type": "integer", "format": "int64", "x-go-name": "ScheduledFor" }, "skip_reason": { "type": "string", "nullable": true }, "status": { "type": "string", "x-go-name": "Status" }, "subject": { "type": "string", "x-go-name": "Subject" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/libs/mailer" }, "Customer": { "type": "object", "properties": { "archived": { "type": "boolean", "x-go-name": "Archived" }, "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "city": { "type": "string", "x-go-name": "City" }, "email": { "type": "string", "x-go-name": "Email" }, "employee": { "type": "boolean", "x-go-name": "Employee" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_departure": { "type": "string" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "lifetime_value": { "type": "number", "format": "double", "x-go-name": "LifetimeValue" }, "num_reservations": { "type": "integer", "format": "int64", "x-go-name": "NumReservations" }, "owned_by_user_id": { "type": "integer", "format": "int64", "x-go-name": "OwnedByUserID" }, "phone": { "type": "string", "x-go-name": "Phone" }, "state": { "type": "string", "x-go-name": "State" }, "street": { "type": "string", "x-go-name": "Street" }, "total_reservations": { "type": "integer", "format": "int64", "x-go-name": "TotalReservations" }, "zip": { "type": "string", "x-go-name": "Zip" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "DBAnnouncementGroupSlice": { "type": "array", "items": { "$ref": "#/definitions/AnnouncementGroup" }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "DBBoolMap": { "description": "DBBoolMap is a map[string]boold with database conversion methods", "type": "object", "additionalProperties": { "type": "boolean" }, "x-go-package": "github.com/outdoorsy/api/utils" }, "DBDate": { "description": "DBDate", "type": "object", "x-go-package": "github.com/outdoorsy/api/clocks" }, "DBIntSlice": { "description": "DBIntSlice is a []int with database conversion methods", "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-package": "github.com/outdoorsy/api/utils" }, "DBInterfaceMap": { "description": "DBInterfaceMap is a map[string]interface{} with database conversion methods", "type": "object", "additionalProperties": { }, "x-go-package": "github.com/outdoorsy/api/utils" }, "DBMSISlice": { "description": "DBMSISlice is a []string with database conversion methods", "type": "array", "items": { "type": "object", "additionalProperties": { } }, "x-go-package": "github.com/outdoorsy/api/utils" }, "DBObject": { "description": "───────────────────────────────────────────────────────────────────────────\nDBObject\n───────────────────────────────────────────────────────────────────────────", "type": "object", "properties": { "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/db" }, "DBStringMap": { "description": "DBStringMap is a map[string]string with database conversion methods", "type": "object", "additionalProperties": { "type": "string" }, "x-go-package": "github.com/outdoorsy/api/utils" }, "DBStringSlice": { "description": "DBStringSlice is a []string with database conversion methods", "type": "array", "items": { "type": "string" }, "x-go-package": "github.com/outdoorsy/api/utils" }, "DailyChange": { "type": "object", "properties": { "date": { "type": "string", "x-go-name": "Date" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" }, "rules": { "$ref": "#/definitions/ISlice" } }, "x-go-package": "github.com/outdoorsy/api/internal/booking_price_log" }, "Date": { "type": "object", "x-go-package": "github.com/outdoorsy/api/pkg/time/date" }, "Delivery": { "type": "object", "properties": { "comment": { "type": "string", "x-go-name": "Comment" }, "estimated_distance": { "type": "number", "format": "double", "x-go-name": "EstimatedDistance" }, "location": { "$ref": "#/definitions/DeliveryLocation" }, "stationary": { "type": "boolean", "x-go-name": "Stationary" } }, "x-go-package": "github.com/outdoorsy/api/internal/quote" }, "DeliveryEstimatedRequest": { "type": "object", "properties": { "delivery": { "$ref": "#/definitions/BookingDelivery" }, "delivery_usage_item_id": { "type": "integer", "format": "int64", "x-go-name": "DeliveryUsageItemID" }, "destination": { "type": "string", "x-go-name": "Destination" }, "destination_lat": { "type": "number", "format": "double", "x-go-name": "DestinationLat" }, "destination_lng": { "type": "number", "format": "double", "x-go-name": "DestinationLng" }, "dropoff": { "$ref": "#/definitions/BookingDropoff" }, "pickup": { "$ref": "#/definitions/BookingPickup" } }, "x-go-package": "github.com/outdoorsy/api/libs/bookings" }, "DeliveryEstimatedResponse": { "type": "object", "properties": { "delivery_estimated": { "type": "number", "format": "double", "x-go-name": "DeliveryEstimated" }, "delivery_estimated_fee": { "type": "integer", "format": "uint64", "x-go-name": "DeliveryEstimatedFee" } }, "x-go-package": "github.com/outdoorsy/api/libs/bookings" }, "DeliveryLocation": { "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "country": { "type": "string", "x-go-name": "Country" }, "full_search_name_location": { "type": "string", "x-go-name": "FullSearchNameLocation" }, "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lng": { "type": "number", "format": "double", "x-go-name": "Lng" }, "search_name_location": { "type": "string", "x-go-name": "SearchNameLocation" }, "state": { "type": "string", "x-go-name": "State" }, "street": { "type": "string", "x-go-name": "Street" }, "street_etc": { "type": "string", "x-go-name": "StreetEtc" }, "zip": { "type": "string", "x-go-name": "Zip" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "DeliveryRequest": { "type": "object", "properties": { "currency": { "type": "string", "x-go-name": "Currency" }, "estimated_distance": { "type": "number", "format": "double", "x-go-name": "EstimatedDistance" }, "location": { "$ref": "#/definitions/DeliveryLocation" } }, "x-go-package": "github.com/outdoorsy/api/internal/rentals" }, "DepositAccount": { "description": "DepositAccount defines fields representing the account in which funds will be\ndeposited when a deposit is issued.", "type": "object", "properties": { "id": { "type": "string", "x-go-name": "ID" }, "last_four": { "type": "string", "x-go-name": "LastFour" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/controller/broker" }, "DepositDetail": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "bank_last_four": { "type": "string", "x-go-name": "BankLastFour" }, "bank_name": { "type": "string", "x-go-name": "BankName" }, "booking_id": { "type": "integer", "format": "int64", "x-go-name": "BookingID" }, "date": { "type": "string" }, "location_name": { "type": "string", "x-go-name": "LocationName" }, "processor_settlement_id": { "type": "string", "x-go-name": "ProcessorSettlementID" }, "renter_name": { "type": "string", "x-go-name": "RenterName" }, "transaction_type": { "type": "string", "x-go-name": "TransactionType" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "DepositInfo": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "date": { "type": "string" }, "processor_settlement_id": { "type": "string", "x-go-name": "ProcessorSettlementID" }, "transaction_ids": { "$ref": "#/definitions/DBIntSlice" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "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/api/model" }, "Driver": { "type": "object", "properties": { "approved_by_admin_id": { "type": "integer", "format": "int64", "x-go-name": "ApprovedByAdminID" }, "archived": { "type": "boolean", "x-go-name": "Archived" }, "birthdate": { "type": "string" }, "candidate_id": { "description": "private fields", "type": "string", "x-go-name": "CandidateID" }, "country": { "type": "string", "x-go-name": "Country" }, "created": { "description": "metadata", "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "display_status": { "type": "string", "x-go-name": "DisplayStatus" }, "email": { "type": "string", "x-go-name": "Email" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "gender": { "type": "string", "x-go-name": "Gender" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "is_old_enough": { "type": "boolean", "x-go-name": "IsOldEnough" }, "last_mvr": { "type": "string", "x-go-name": "LastMVR", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "license_number": { "type": "string", "x-go-name": "LicenseNumber" }, "license_state": { "type": "string", "x-go-name": "LicenseState" }, "middle_name": { "type": "string", "x-go-name": "MiddleName" }, "status": { "type": "string", "x-go-name": "Status" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_id": { "type": "integer", "format": "int64" }, "verification_upload_link": { "type": "string", "x-go-name": "VerificationUploadLink" }, "verified": { "type": "boolean", "x-go-name": "Verified" }, "zendesk_ticket_id": { "type": "integer", "format": "int64", "x-go-name": "ZendeskTicketID" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "EarnedCredit": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "booking_id": { "type": "integer", "format": "int64", "nullable": true }, "can_delete": { "type": "boolean", "x-go-name": "CanDelete" }, "can_edit": { "type": "boolean", "x-go-name": "CanEdit" }, "created": { "description": "Created shadows the same field in internal.DBObject which has `created` timestamp side effects", "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by_id": { "type": "integer", "format": "int64", "nullable": true }, "deleted": { "type": "string", "x-go-name": "Deleted", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "description": { "type": "string", "x-go-name": "Description" }, "expires": { "type": "string", "x-go-name": "Expires", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "has_children": { "type": "boolean", "x-go-name": "HasChildren" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "metadata": { "$ref": "#/definitions/DBInterfaceMap" }, "parent_id": { "type": "integer", "format": "int64", "nullable": true }, "referred_by_user_id": { "type": "integer", "format": "int64", "nullable": true }, "referred_user_id": { "type": "integer", "format": "int64", "nullable": true }, "source": { "type": "string" }, "system_action": { "$ref": "#/definitions/Action" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_id": { "type": "integer", "format": "int64", "x-go-name": "UserID" } }, "x-go-package": "github.com/outdoorsy/api/internal/earned_credit" }, "EndOfDayReportBooking": { "type": "object", "properties": { "booked": { "type": "string", "x-go-name": "Booked", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "display_source": { "type": "string", "x-go-name": "DisplaySource" }, "display_status": { "type": "string", "x-go-name": "DisplayStatus" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "from": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "rental_name": { "type": "string", "x-go-name": "RentalName" }, "renter_id": { "type": "integer", "format": "int64", "x-go-name": "RenterID" }, "source": { "type": "string", "x-go-name": "Source" }, "status": { "type": "string", "x-go-name": "Status" }, "subtotal": { "type": "number", "format": "double", "x-go-name": "Subtotal" }, "to": { "type": "string" } }, "x-go-package": "github.com/outdoorsy/api/internal/report/end_of_day_report" }, "EndOfDayReportResponse": { "type": "object", "properties": { "Meta": { "type": "object", "properties": { "total_card_payments": { "type": "number", "format": "double", "x-go-name": "TotalCardPayments" }, "total_cash_payments": { "type": "number", "format": "double", "x-go-name": "TotalCashPayments" }, "total_payments": { "type": "number", "format": "double", "x-go-name": "TotalPayments" }, "total_refund_amount": { "type": "number", "format": "double", "x-go-name": "TotalRefundAmount" }, "total_reservation_amount": { "type": "number", "format": "double", "x-go-name": "TotalReservationAmount" }, "total_reservation_count": { "type": "integer", "format": "int64", "x-go-name": "TotalReservationCount" } } }, "data": { "type": "object", "properties": { "ended_bookings": { "type": "array", "items": { "$ref": "#/definitions/EndOfDayReportBooking" }, "x-go-name": "EndedBookings" }, "new_bookings": { "type": "array", "items": { "$ref": "#/definitions/EndOfDayReportBooking" }, "x-go-name": "NewBookings" }, "started_bookings": { "type": "array", "items": { "$ref": "#/definitions/EndOfDayReportBooking" }, "x-go-name": "StartedBookings" } }, "x-go-name": "Data" } }, "x-go-package": "github.com/outdoorsy/api/internal/report/end_of_day_report" }, "ExternalCampground": { "type": "object", "properties": { "available_for_dates": { "description": "Fields calculated post search", "type": "boolean", "x-go-name": "AvailableForDates" }, "calculated_day_price": { "type": "integer", "format": "uint64", "x-go-name": "CalculatedDayPrice" }, "campground_catalog": { "$ref": "#/definitions/CampgroundCatalog" }, "campsite_category_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "CampsiteCategoriesIDs" }, "check_in_time": { "description": "Check in / Check out times", "type": "string", "x-go-name": "CheckInTime" }, "check_out_time": { "type": "string", "x-go-name": "CheckOutTime" }, "description": { "type": "string", "x-go-name": "Description" }, "email": { "description": "Contact information", "type": "string", "x-go-name": "Email" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "images": { "$ref": "#/definitions/Images" }, "is_odn": { "description": "Flags", "type": "boolean", "x-go-name": "IsODN" }, "is_site_available": { "type": "boolean", "x-go-name": "IsSiteAvailable" }, "locale": { "$ref": "#/definitions/Locale" }, "location": { "type": "integer", "format": "int64" }, "lowest_price": { "type": "integer", "format": "uint64", "x-go-name": "LowestPrice" }, "name": { "type": "string", "x-go-name": "Name" }, "odn_id": { "type": "string", "x-go-name": "OdnID" }, "phone": { "type": "string", "x-go-name": "Phone" }, "presentment_currency": { "description": "Currency", "type": "string", "x-go-name": "PresentmentCurrency" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "reviews_num": { "type": "integer", "format": "int64", "x-go-name": "ReviewsNum" }, "score": { "description": "Ratings and reviews", "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" }, "unavailable": { "type": "boolean", "x-go-name": "Unavailable" }, "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/api/internal/seeker/client" }, "ExternalGiftCardDetails": { "type": "object", "properties": { "alocated_amount": { "type": "integer", "format": "uint64", "x-go-name": "AlocatedAmount" }, "card_number": { "type": "string", "x-go-name": "CardNumber" }, "converted_amount": { "type": "integer", "format": "uint64", "x-go-name": "ConvertedAmount" }, "pin_verivied": { "type": "boolean", "x-go-name": "PinVerified" }, "provider": { "type": "string", "x-go-name": "Provider" }, "refund_amount": { "type": "integer", "format": "uint64", "x-go-name": "RefundAmount" }, "refund_converted_amount": { "type": "integer", "format": "uint64", "x-go-name": "RefundConvertedAmount" }, "refund_req_ref": { "type": "string", "x-go-name": "RefundReqRef" }, "request_ref": { "type": "string", "x-go-name": "RequestRef" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "Favorite": { "type": "object", "properties": { "User": { "type": "integer", "format": "int64" }, "added_at": { "type": "string", "x-go-name": "Added", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "rental_id": { "type": "integer", "format": "int64" } }, "x-go-package": "github.com/outdoorsy/api/internal/favorite" }, "File": { "type": "object", "properties": { "actor_id": { "type": "integer", "format": "int64" }, "auto_include": { "type": "boolean", "x-go-name": "AutoInclude" }, "booking_id": { "type": "integer", "format": "int64" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by_id": { "type": "integer", "format": "int64" }, "description": { "type": "string", "x-go-name": "Description" }, "description_location": { "type": "string", "x-go-name": "DescriptionLocation" }, "description_text": { "type": "string", "x-go-name": "DescriptionText" }, "exif_created": { "type": "string", "x-go-name": "ExifCreated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "format": { "type": "string", "x-go-name": "Format" }, "geo_latitude": { "type": "number", "format": "double", "x-go-name": "GeoLatitude" }, "geo_longitude": { "type": "number", "format": "double", "x-go-name": "GeoLongitude" }, "guid": { "type": "string", "nullable": true }, "has_damage": { "type": "boolean", "x-go-name": "HasDamage" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "include_esign": { "type": "boolean", "nullable": true }, "message_id": { "type": "integer", "format": "int64" }, "name": { "type": "string", "x-go-name": "Name" }, "out_of_date": { "type": "boolean", "nullable": true }, "public_id": { "type": "string", "x-go-name": "PublicID" }, "rental_id": { "type": "integer", "format": "int64" }, "shared": { "type": "boolean", "x-go-name": "Shared" }, "signable": { "type": "boolean", "x-go-name": "Signable" }, "signers": { "type": "array", "items": { }, "x-go-name": "Signers" }, "signing_canceled": { "type": "boolean", "nullable": true }, "signing_complete": { "type": "boolean", "nullable": true }, "signing_service_id": { "description": "Unique identifier for digital signature record", "type": "string", "x-go-name": "SigningServiceID" }, "title": { "type": "string", "x-go-name": "Title" }, "type": { "type": "string", "nullable": true }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "url": { "type": "string", "x-go-name": "URL" }, "user_id": { "type": "integer", "format": "int64" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "FilterStatusGroup": { "type": "object", "properties": { "count": { "type": "integer", "format": "int64", "x-go-name": "Count" }, "status": { "type": "string", "x-go-name": "Status" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "FullRental": { "description": "Full objects", "$ref": "#/definitions/Rental" }, "FullUser": { "description": "Full User", "$ref": "#/definitions/User" }, "GetManyRequest": { "type": "object", "properties": { "calendar_id": { "type": "integer", "format": "int64", "x-go-name": "CalendarID" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" } }, "x-go-package": "github.com/outdoorsy/api/internal/ics/calendar_models" }, "GetSoonestResponse": { "type": "object", "properties": { "booking_id": { "type": "integer", "format": "int64", "x-go-name": "BookingID" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "GetWishlistInviteTokenResponse": { "type": "object", "properties": { "token": { "type": "string", "x-go-name": "Token" }, "wishlist_id": { "type": "integer", "format": "int64", "x-go-name": "WishlistID" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "GiftCard": { "type": "object", "properties": { "amount": { "$ref": "#/definitions/MaybeAmount" }, "charge_id": { "$ref": "#/definitions/MaybeChargeID" }, "claimed": { "$ref": "#/definitions/MaybeDatetimeUTC" }, "claimed_by_id": { "$ref": "#/definitions/MaybeUserID" }, "code": { "$ref": "#/definitions/Code" }, "created": { "$ref": "#/definitions/UTC" }, "funded": { "$ref": "#/definitions/MaybeDatetimeUTC" }, "gift_card_id": { "$ref": "#/definitions/GiftCardID" }, "owner_id": { "$ref": "#/definitions/UserID" }, "updated": { "$ref": "#/definitions/UTC" } }, "x-go-package": "github.com/outdoorsy/api/internal/gift_card" }, "GiftCardID": { "type": "string", "x-go-package": "github.com/outdoorsy/api/internal/gift_card" }, "GlobalSearchItem": { "type": "object", "properties": { "avatar_url": { "type": "string", "x-go-name": "UserAvatarUrl" }, "checkout_answers": { "$ref": "#/definitions/CheckoutAnswers" }, "children_count": { "type": "integer", "format": "int64", "x-go-name": "RentalChildrenCount" }, "first_name": { "type": "string", "x-go-name": "UserFirstName" }, "from": { "type": "string" }, "full_name": { "type": "string", "x-go-name": "UserFullName" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_name": { "type": "string", "x-go-name": "UserLastName" }, "make": { "type": "string", "x-go-name": "RentalMake" }, "model": { "type": "string", "x-go-name": "RentalModel" }, "name": { "type": "string", "x-go-name": "RentalName" }, "parent_booking_name": { "type": "string", "x-go-name": "ParentBookingName" }, "parent_booking_notes": { "type": "string", "x-go-name": "ParentBookingNotes" }, "parent_booking_purpose": { "type": "string", "x-go-name": "ParentBookingPurpose" }, "parent_id": { "type": "integer", "format": "int64", "x-go-name": "RentalParentID" }, "parent_name": { "type": "string", "x-go-name": "RentalParentName" }, "phone": { "type": "string", "x-go-name": "UserPhone" }, "primary_image_url": { "type": "string", "x-go-name": "RentalPrimaryImageUrl" }, "rental_name": { "type": "string", "x-go-name": "BookingRentalName" }, "renter_name": { "type": "string", "x-go-name": "BookingRenterName" }, "result_type": { "type": "string", "x-go-name": "ResultType" }, "status": { "type": "string", "x-go-name": "BookingStatus" }, "to": { "type": "string" }, "type": { "type": "string", "x-go-name": "RentalType" }, "year": { "type": "integer", "format": "int64", "x-go-name": "RentalYear" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "GlobalSearchMeta": { "type": "object", "properties": { "booking_status_count": { "$ref": "#/definitions/BookingStatusCount" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "type_count": { "type": "array", "items": { "$ref": "#/definitions/ResultCount" }, "x-go-name": "TypeCount" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "GlobalSearchResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/GlobalSearchItem" }, "x-go-name": "Items" }, "meta": { "$ref": "#/definitions/GlobalSearchMeta" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "GpsDevicesData": { "type": "object", "properties": { "account_api_key": { "type": "string", "x-go-name": "AccountApiKey" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted": { "type": "string", "x-go-name": "Deleted", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "device_count": { "type": "integer", "format": "int64", "x-go-name": "DeviceCount" }, "id": { "type": "integer", "format": "int64", "x-go-name": "Id" }, "metadata": { "$ref": "#/definitions/IMap" }, "provider_type": { "type": "string", "x-go-name": "ProviderType" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_id": { "type": "integer", "format": "int64", "x-go-name": "UserID" } }, "x-go-package": "github.com/outdoorsy/api/internal/zubie" }, "Guests": { "type": "object", "properties": { "adults": { "type": "integer", "format": "int64", "x-go-name": "Adults" }, "children": { "type": "integer", "format": "int64", "x-go-name": "Children" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "Home": { "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" }, "street_etc": { "type": "string", "x-go-name": "StreetEtc" }, "zip": { "type": "string", "x-go-name": "Zip" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ICSCalendar": { "type": "object", "properties": { "active": { "type": "boolean", "x-go-name": "Active" }, "host": { "type": "string", "x-go-name": "Host" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "owner_user_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerUserID" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "url": { "type": "string", "x-go-name": "URL" } }, "x-go-package": "github.com/outdoorsy/api/internal/ics/calendars" }, "ID": { "description": "ID is the type used throughout the system to identify a unique object. It\nproperly handles marshaling for both json and sql databases. It properly\nhandles null values in the database as well.", "type": "string", "x-go-package": "github.com/outdoorsy/api/internal/platform", "x-go-type": "github.com/globalsign/mgo/bson.ObjectId" }, "IMap": { "type": "object", "additionalProperties": { }, "x-go-package": "github.com/outdoorsy/api/pkg/jsonb" }, "ISlice": { "type": "array", "items": { }, "x-go-package": "github.com/outdoorsy/api/pkg/jsonb" }, "Image": { "type": "object", "properties": { "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" }, "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" }, "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/api/internal/seeker/client" }, "ImageOrder": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "interior_primary": { "type": "boolean", "x-go-name": "InteriorPrimary" }, "primary": { "type": "boolean", "x-go-name": "Primary" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "Images": { "type": "array", "items": { "$ref": "#/definitions/Image" }, "x-go-package": "github.com/outdoorsy/api/internal/seeker/client" }, "Int64Array": { "type": "array", "title": "Int64Array represents a one-dimensional array of the PostgreSQL integer types.", "items": { "type": "integer", "format": "int64" }, "x-go-package": "github.com/lib/pq" }, "IntSlice": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-package": "github.com/outdoorsy/api/pkg/jsonb" }, "ItemRequest": { "type": "object", "properties": { "count": { "type": "integer", "format": "uint64", "x-go-name": "Count" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "original_tax_rate_id": { "type": "integer", "format": "int64", "x-go-name": "OriginalTaxRateID" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "LandingPageCampground": { "type": "object", "properties": { "address": { "$ref": "#/definitions/Address" }, "categories": { "$ref": "#/definitions/StringArray" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "image_urls": { "$ref": "#/definitions/StringArray" }, "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lng": { "type": "number", "format": "double", "x-go-name": "Lng" }, "min_bundle_base_price": { "type": "integer", "format": "int64", "x-go-name": "MinBundleBasePrice" }, "name": { "type": "string", "x-go-name": "Name" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "slug": { "type": "string", "x-go-name": "Slug" }, "vacation_package_slug": { "type": "string", "x-go-name": "VacationPackageSlug" } }, "x-go-package": "github.com/outdoorsy/api/internal/campgrounds" }, "License": { "description": "License holds driver's license information for a user", "type": "object", "x-go-package": "github.com/outdoorsy/api/model" }, "LinkICSCalendarRequest": { "type": "object", "properties": { "name": { "type": "string", "x-go-name": "Name" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "url": { "type": "string", "x-go-name": "URL" } }, "x-go-package": "github.com/outdoorsy/api/internal/ics/calendar_models" }, "LocAvailability": { "type": "object", "properties": { "days": { "type": "object", "additionalProperties": { "$ref": "#/definitions/LocAvailabilityDay" }, "x-go-name": "Days" } }, "x-go-package": "github.com/outdoorsy/api/internal/location" }, "LocAvailabilityDay": { "type": "object", "properties": { "dropoff": { "$ref": "#/definitions/LocAvailabilityInfo" }, "pickup": { "$ref": "#/definitions/LocAvailabilityInfo" } }, "x-go-package": "github.com/outdoorsy/api/internal/location" }, "LocAvailabilityInfo": { "type": "object", "properties": { "end_time": { "type": "integer", "format": "int64", "x-go-name": "EndTime" }, "start_time": { "type": "integer", "format": "int64", "x-go-name": "StartTime" }, "unavailable": { "type": "boolean", "x-go-name": "Unavailable" } }, "x-go-package": "github.com/outdoorsy/api/internal/location" }, "Locale": { "type": "object", "properties": { "base_currency": { "type": "string", "x-go-name": "BaseCurrency" }, "date_format": { "type": "string", "x-go-name": "DateFormat" }, "distance_unit": { "type": "string", "x-go-name": "DistanceUnit" }, "language": { "type": "string", "x-go-name": "Language" }, "length_unit": { "type": "string", "x-go-name": "LengthUnit" }, "liquid_unit": { "type": "string", "x-go-name": "LiquidUnit" }, "time_format": { "type": "string", "x-go-name": "TimeFormat" }, "timezone": { "type": "string", "x-go-name": "Timezone" }, "weight_unit": { "type": "string", "x-go-name": "WeightUnit" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "LocalityReview": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "rental_lat": { "type": "number", "format": "double", "x-go-name": "RentalLat" }, "rental_lng": { "type": "number", "format": "double", "x-go-name": "RentalLng" }, "rental_summary": { "$ref": "#/definitions/RentalSummary" }, "reviewer": { "$ref": "#/definitions/Reviewer" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "text": { "type": "string", "x-go-name": "Text" }, "timestamp": { "type": "string", "x-go-name": "Timestamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "Localizer": { "type": "object", "properties": { "Accept": { "type": "string" }, "Domain": { "type": "string" }, "Language": { "type": "string" } }, "x-go-package": "github.com/outdoorsy/api/libs/intl" }, "Location": { "type": "object", "properties": { "archived": { "type": "boolean", "x-go-name": "Archived" }, "availability": { "$ref": "#/definitions/LocAvailability" }, "city": { "type": "string", "x-go-name": "City" }, "country": { "type": "string", "x-go-name": "Country" }, "county": { "type": "string", "x-go-name": "County" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "custom_insurance_text": { "type": "string", "nullable": true }, "dropoff_end_time": { "type": "integer", "format": "int64", "x-go-name": "DropoffEndTime" }, "dropoff_start_time": { "type": "integer", "format": "int64", "x-go-name": "DropoffStartTime" }, "eligible_for_system_tax_rates": { "description": "Wheelbase only field", "type": "boolean", "x-go-name": "EligibleForSystemTaxRates" }, "employer_identification_number": { "description": "EIN in the US, RCS in France", "type": "string", "x-go-name": "EmployerIdentificationNumber" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lng": { "type": "number", "format": "double", "x-go-name": "Lng" }, "locale": { "$ref": "#/definitions/LocationLocale" }, "name": { "type": "string", "x-go-name": "Name" }, "opt_out_marketplace_taxes": { "description": "these fields are stored in metadata", "type": "boolean", "x-go-name": "OptOutMarketplaceTaxes" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "payment_processing_info_id": { "type": "integer", "format": "int64", "x-go-name": "PaymentProcessingInfoID" }, "phone": { "type": "string", "x-go-name": "Phone" }, "pickup_end_time": { "type": "integer", "format": "int64", "x-go-name": "PickupEndTime" }, "pickup_start_time": { "type": "integer", "format": "int64", "x-go-name": "PickupStartTime" }, "rental_count": { "type": "integer", "format": "int64", "x-go-name": "RentalCount" }, "special_hours": { "type": "array", "items": { "$ref": "#/definitions/SpecialHour" }, "x-go-name": "SpecialHours" }, "state": { "type": "string", "x-go-name": "State" }, "state_tax_id": { "type": "string", "x-go-name": "StateTaxID" }, "street": { "type": "string", "x-go-name": "Street" }, "street_etc": { "type": "string", "x-go-name": "StreetEtc" }, "tax_rate_id": { "$ref": "#/definitions/TaxRate" }, "tax_rate_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "TaxRateIDs" }, "tax_split_eligible": { "description": "find tax_rates.ShouldSplitTaxes()", "type": "boolean", "x-go-name": "TaxSplitEligible" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "waived_insurance_text": { "type": "string", "nullable": true }, "zip": { "type": "string", "x-go-name": "Zip" } }, "x-go-package": "github.com/outdoorsy/api/internal/location" }, "LocationLocale": { "type": "object", "properties": { "base_currency": { "type": "string", "x-go-name": "BaseCurrency" } }, "x-go-package": "github.com/outdoorsy/api/internal/location" }, "MSI": { "type": "object", "additionalProperties": { }, "x-go-package": "github.com/outdoorsy/api/internal/platform/db" }, "ManualTypedVehicle": { "description": "ManualTypedVehicle represents a manual typed vehicle on the platform", "type": "object", "properties": { "checked": { "type": "boolean", "x-go-name": "Checked" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "make": { "type": "string", "x-go-name": "Make" }, "model": { "type": "string", "x-go-name": "Model" }, "trim": { "type": "string", "x-go-name": "Trim" }, "type": { "type": "string", "x-go-name": "Type" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "year": { "type": "integer", "format": "int64", "x-go-name": "Year" } }, "x-go-package": "github.com/outdoorsy/api/internal/manual_typed_vehicles" }, "MaybeAmount": { "description": "the zero value of a MaybeAmount is valid for use as an empty maybe", "type": "object", "x-go-package": "github.com/outdoorsy/api/internal/gift_card" }, "MaybeChargeID": { "description": "the zero value of a MaybeChargeID is valid for use as an empty maybe", "type": "object", "x-go-package": "github.com/outdoorsy/api/internal/teller" }, "MaybeDatetimeUTC": { "description": "the zero value of a MaybeDatetimeUTC is valid for use as an empty maybe", "type": "object", "x-go-package": "github.com/outdoorsy/api/internal/gift_card" }, "MaybeUserID": { "description": "the zero value of a MaybeUserID is valid for use as an empty maybe", "type": "object", "x-go-package": "github.com/outdoorsy/api/internal/gift_card" }, "MediaCategory": { "type": "object", "properties": { "name": { "type": "string", "x-go-name": "Name" }, "slug": { "type": "string", "x-go-name": "Slug" } }, "x-go-package": "github.com/outdoorsy/api/internal/media_category" }, "Message": { "type": "object", "properties": { "actor_id": { "type": "integer", "format": "int64" }, "archived": { "type": "boolean", "x-go-name": "Archived" }, "booking": { "$ref": "#/definitions/MinBooking" }, "booking_summary": { "$ref": "#/definitions/BookingSummary" }, "clicked": { "type": "string", "x-go-name": "Clicked", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "conversation_id": { "type": "integer", "format": "int64" }, "destination_data": { "$ref": "#/definitions/RenterDestinationData" }, "file_urls": { "type": "array", "items": { "type": "string" }, "x-go-name": "FileURLs" }, "files": { "$ref": "#/definitions/DBIntSlice" }, "flagged": { "type": "boolean", "nullable": true }, "flagged_text": { "type": "string", "nullable": true }, "from_email": { "type": "string", "nullable": true }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "image": { "type": "string", "nullable": true }, "latest_status": { "type": "string", "nullable": true }, "opened": { "type": "string", "x-go-name": "Opened", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "origin": { "type": "string", "nullable": true }, "proxy_interaction_id": { "type": "string", "nullable": true }, "read": { "type": "boolean", "x-go-name": "Read" }, "receiver_id": { "type": "integer", "format": "int64" }, "ref_booking_id": { "type": "integer", "format": "int64", "x-go-name": "RefBookingID" }, "ref_rental_id": { "type": "integer", "format": "int64", "x-go-name": "RefRentalID" }, "rental_summary": { "x-go-name": "RentalSummary" }, "sender_id": { "type": "integer", "format": "int64" }, "sentiment": { "type": "string", "x-go-name": "Sentiment" }, "sentiment_confidence": { "type": "number", "format": "double", "x-go-name": "SentimentConfidence" }, "spam": { "type": "boolean", "x-go-name": "Spam" }, "system": { "type": "boolean", "x-go-name": "System" }, "template": { "type": "string", "x-go-name": "Template" }, "text": { "type": "string", "x-go-name": "Text" }, "timestamp": { "type": "string", "x-go-name": "Timestamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "MessageUpdate": { "type": "object", "properties": { "read": { "type": "boolean", "x-go-name": "Read" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "MinBooking": { "type": "object", "properties": { "attention_items": { "type": "array", "items": { "$ref": "#/definitions/AttentionItem" }, "x-go-name": "Attention" }, "conversation_id": { "type": "integer", "format": "int64", "x-go-name": "ConversationID" }, "created": { "type": "string" }, "details": { "$ref": "#/definitions/DBInterfaceMap" }, "display_status": { "type": "string", "x-go-name": "DisplayStatus" }, "display_status_style": { "type": "string", "x-go-name": "DisplayStatusStyle" }, "from": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "is_actionable": { "type": "boolean", "x-go-name": "IsActionable" }, "items": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "Items" }, "locale": { "$ref": "#/definitions/BookingLocale" }, "owner_approved": { "type": "boolean", "x-go-name": "OwnerApproved" }, "owner_payout": { "type": "integer", "format": "int64", "x-go-name": "OwnerPayout" }, "passengers": { "type": "array", "items": { "$ref": "#/definitions/BookingDriver" }, "x-go-name": "Passengers" }, "rental": { "$ref": "#/definitions/RentalSummary" }, "renter": { "$ref": "#/definitions/UserPartial" }, "renter_approved": { "type": "boolean", "x-go-name": "RenterApproved" }, "stage": { "type": "string", "x-go-name": "Stage" }, "status": { "type": "string", "x-go-name": "Status" }, "to": { "type": "string" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "updated": { "type": "string" }, "waiver_summary": { "$ref": "#/definitions/WaiverSummary" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "MinRenterCharge": { "type": "object", "properties": { "amount": { "type": "integer", "format": "uint64", "x-go-name": "Amount" }, "charged_at": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "MiscellaneousCharges": { "type": "object", "properties": { "amount": { "type": "integer", "format": "uint64", "x-go-name": "Amount" }, "description": { "type": "string", "x-go-name": "Description" } }, "x-go-package": "github.com/outdoorsy/api/internal/sd_post_trip_charges" }, "MorningReportResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "dates": { "type": "array", "items": { "$ref": "#/definitions/ReportDateItem" }, "x-go-name": "Dates" }, "reports": { "type": "array", "items": { "$ref": "#/definitions/Report" }, "x-go-name": "Reports" } }, "x-go-name": "Data" }, "meta": { "type": "object", "properties": { "Limit": { "type": "integer", "format": "uint64" }, "Offset": { "type": "integer", "format": "uint64" }, "Total": { "type": "integer", "format": "int64" } }, "x-go-name": "Meta" } }, "x-go-package": "github.com/outdoorsy/api/internal/report/morning_report" }, "Note": { "type": "object", "properties": { "Internal": { "type": "boolean" }, "actor_id": { "type": "integer", "format": "int64" }, "actor_name": { "type": "string", "x-go-name": "ActorName" }, "booking_id": { "type": "integer", "format": "int64" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by_id": { "type": "integer", "format": "int64" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "label": { "type": "string", "x-go-name": "Label" }, "rental_id": { "type": "integer", "format": "int64" }, "system_generated": { "type": "boolean", "x-go-name": "SystemGenerated" }, "text": { "type": "string", "x-go-name": "Text" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_id": { "type": "integer", "format": "int64" } }, "x-go-package": "github.com/outdoorsy/api/internal/notes" }, "NoteListResponse": { "type": "object", "properties": { "meta": { "$ref": "#/definitions/NoteMetadata" }, "notes": { "type": "array", "items": { "$ref": "#/definitions/NoteToRenters" }, "x-go-name": "Notes" } }, "x-go-package": "github.com/outdoorsy/api/internal/notes_to_renters" }, "NoteMetadata": { "type": "object", "properties": { "limit": { "type": "integer", "format": "int64", "x-go-name": "Limit" }, "offset": { "type": "integer", "format": "int64", "x-go-name": "Offset" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" } }, "x-go-package": "github.com/outdoorsy/api/internal/notes_to_renters" }, "NoteToRenters": { "type": "object", "properties": { "applies_to_type": { "$ref": "#/definitions/StringSlice" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "location_ids": { "$ref": "#/definitions/IntSlice" }, "name": { "type": "string", "x-go-name": "Name" }, "owner_user_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerUserID" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/notes_to_renters" }, "NoticeEvent": { "type": "object", "properties": { "countries": { "$ref": "#/definitions/DBStringSlice" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "enabled": { "type": "boolean", "x-go-name": "Enabled" }, "exclude_bundle_bookings": { "type": "boolean", "x-go-name": "ExcludeBundleBookings" }, "from": { "type": "string" }, "guest_acknowledgement_text": { "type": "string", "x-go-name": "GuestAcknowledgementText" }, "guest_need_to_acknowledge": { "type": "boolean", "x-go-name": "GuestNeedToAcknowledge" }, "guest_user_text": { "type": "string", "x-go-name": "GuestUserText" }, "host_acknowledgement_text": { "type": "string", "x-go-name": "HostAcknowledgementText" }, "host_help_url": { "type": "string", "x-go-name": "HostHelpUrl" }, "host_need_to_acknowledge": { "type": "boolean", "x-go-name": "HostNeedToAcknowledge" }, "host_user_text": { "type": "string", "x-go-name": "HostUserText" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lng": { "type": "number", "format": "double", "x-go-name": "Lng" }, "name": { "type": "string", "x-go-name": "Name" }, "radius": { "type": "number", "format": "double", "x-go-name": "Radius" }, "requires_booking_request": { "type": "boolean", "x-go-name": "RequiresBookingRequest" }, "to": { "type": "string" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/user_notice_events" }, "NoticeResponse": { "type": "object", "properties": { "guest_acknowledgement_text": { "type": "string", "x-go-name": "GuestAcknowledgementText" }, "guest_need_to_acknowledge": { "type": "boolean", "x-go-name": "GuestNeedToAcknowledge" }, "guest_user_text": { "type": "string", "x-go-name": "GuestUserText" }, "host_acknowledgement_text": { "type": "string", "x-go-name": "HostAcknowledgementText" }, "host_help_url": { "type": "string", "x-go-name": "HostHelpUrl" }, "host_need_to_acknowledge": { "type": "boolean", "x-go-name": "HostNeedToAcknowledge" }, "host_user_text": { "type": "string", "x-go-name": "HostUserText" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/internal/user_notice_events" }, "NotificationBrowser": { "type": "object", "properties": { "all": { "type": "boolean", "x-go-name": "All" } }, "x-go-package": "github.com/outdoorsy/api/internal/user_helper" }, "NotificationEmail": { "type": "object", "properties": { "abandoned_checkout": { "type": "boolean", "x-go-name": "AbandonedCheckout" }, "all": { "type": "boolean", "x-go-name": "All" } }, "x-go-package": "github.com/outdoorsy/api/internal/user_helper" }, "NotificationMobile": { "type": "object", "properties": { "all": { "type": "boolean", "x-go-name": "All" } }, "x-go-package": "github.com/outdoorsy/api/internal/user_helper" }, "NotificationSMS": { "type": "object", "properties": { "abandoned_checkout": { "type": "boolean", "x-go-name": "AbandonedCheckout" }, "bookings": { "type": "boolean", "x-go-name": "Bookings" }, "marketing": { "type": "boolean", "x-go-name": "Marketing" }, "messages": { "type": "boolean", "x-go-name": "Messages" } }, "x-go-package": "github.com/outdoorsy/api/internal/user_helper" }, "NotificationSettings": { "type": "object", "properties": { "browser": { "$ref": "#/definitions/NotificationBrowser" }, "email": { "$ref": "#/definitions/NotificationEmail" }, "mobile": { "$ref": "#/definitions/NotificationMobile" }, "sms": { "$ref": "#/definitions/NotificationSMS" } }, "x-go-package": "github.com/outdoorsy/api/internal/user_helper" }, "NullBool": { "description": "NullBool implements the [Scanner] interface so\nit can be used as a scan destination, similar to [NullString].", "type": "object", "title": "NullBool represents a bool that may be null.", "properties": { "Bool": { "type": "boolean" }, "Valid": { "type": "boolean" } }, "x-go-package": "database/sql" }, "NullFloat64": { "description": "NullFloat64 implements the [Scanner] interface so\nit can be used as a scan destination, similar to [NullString].", "type": "object", "title": "NullFloat64 represents a float64 that may be null.", "properties": { "Float64": { "type": "number", "format": "double" }, "Valid": { "type": "boolean" } }, "x-go-package": "database/sql" }, "NullInt64": { "description": "NullInt64 implements the [Scanner] interface so\nit can be used as a scan destination, similar to [NullString].", "type": "object", "title": "NullInt64 represents an int64 that may be null.", "properties": { "Int64": { "type": "integer", "format": "int64" }, "Valid": { "type": "boolean" } }, "x-go-package": "database/sql" }, "NullString": { "description": "var s NullString\nerr := db.QueryRow(\"SELECT name FROM foo WHERE id=?\", id).Scan(&s)\n...\nif s.Valid {\nuse s.String\n} else {\nNULL value\n}", "type": "object", "title": "NullString represents a string that may be null.\nNullString implements the [Scanner] interface so\nit can be used as a scan destination:", "properties": { "String": { "type": "string" }, "Valid": { "type": "boolean" } }, "x-go-package": "database/sql" }, "NullTime": { "description": "NullTime represents a time.Time that may be null. NullTime implements the\nsql.Scanner interface so it can be used as a scan destination, similar to\nsql.NullString.", "type": "object", "properties": { "Time": { "type": "string", "format": "date-time" }, "Valid": { "type": "boolean" } }, "x-go-package": "github.com/lib/pq" }, "Occupancy": { "type": "object", "properties": { "adults": { "type": "integer", "format": "int64", "x-go-name": "Adults" }, "children": { "type": "integer", "format": "int64", "x-go-name": "Children" }, "infants": { "type": "integer", "format": "int64", "x-go-name": "Infants" } }, "x-go-package": "github.com/outdoorsy/api/internal/bookings" }, "OverageFeeCalculation": { "type": "object", "properties": { "calculation_tiers": { "type": "array", "items": { "$ref": "#/definitions/UsageTierFormatted" }, "x-go-name": "CalculationTiers" }, "formatted_included_usage": { "type": "string", "x-go-name": "FormattedIncludedUsage" }, "formatted_total_amount": { "type": "string", "x-go-name": "FormattedTotalAmount" }, "total_amount": { "type": "integer", "format": "int64", "x-go-name": "TotalAmount" }, "total_days": { "type": "integer", "format": "int64", "x-go-name": "Days" }, "total_free_used": { "type": "number", "format": "double", "x-go-name": "TotalFreeUsed" }, "total_included": { "type": "number", "format": "double", "x-go-name": "TotalIncluded" }, "total_over_free": { "type": "number", "format": "double", "x-go-name": "TotalOverFree" }, "total_used": { "type": "number", "format": "double", "x-go-name": "TotalUsed" } }, "x-go-package": "github.com/outdoorsy/api/internal/usage_item" }, "OwnerActivity": { "type": "object", "properties": { "details": { "$ref": "#/definitions/MSI" }, "expires_at": { "type": "string", "x-go-name": "ExpiresAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "image_url": { "type": "string", "x-go-name": "ImageURL" }, "subtitle": { "type": "string", "x-go-name": "Subtitle" }, "tier": { "type": "integer", "format": "int64", "x-go-name": "Tier" }, "title": { "type": "string", "x-go-name": "Title" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/internal/todays_activities" }, "OwnerResponseReview": { "type": "object", "properties": { "text": { "type": "string", "x-go-name": "Text" }, "timestamp": { "type": "string", "x-go-name": "Timestamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "Partner": { "type": "object", "properties": { "active": { "type": "boolean", "x-go-name": "Active" }, "apps": { "type": "array", "items": { "$ref": "#/definitions/PartnerApp" }, "x-go-name": "PartnerApps" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "slug": { "type": "string", "x-go-name": "Slug" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/partner" }, "PartnerApp": { "description": "partner app", "type": "object", "properties": { "app_id": { "type": "string", "x-go-name": "AppID" }, "app_name": { "type": "string", "x-go-name": "AppName" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "default_app": { "type": "boolean", "x-go-name": "DefaultApp" }, "enabled": { "type": "boolean", "x-go-name": "Enabled" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "owner_lead_fee_percentage": { "type": "number", "format": "double", "x-go-name": "OwnerLeadFeePercentage" }, "owner_lead_only_fee_percentage": { "type": "number", "format": "double", "x-go-name": "OwnerLeadOnlyFeePercentage" }, "partner": { "$ref": "#/definitions/Partner" }, "renter_lead_fee_percentage": { "type": "number", "format": "double", "x-go-name": "RenterLeadFeePercentage" }, "renter_lead_only_fee_percentage": { "type": "number", "format": "double", "x-go-name": "RenterLeadOnlyFeePercentage" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/partner" }, "PasswordForgotRequest": { "type": "object", "properties": { "email": { "type": "string", "x-go-name": "Email" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "PaymentAddress": { "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "country": { "type": "string", "x-go-name": "Country" }, "state": { "type": "string", "x-go-name": "State" }, "street": { "type": "string", "x-go-name": "Street" }, "street_etc": { "type": "string", "x-go-name": "StreetEtc" }, "zip": { "type": "string", "x-go-name": "Zip" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "PaymentProcessingInfo": { "type": "object", "properties": { "address": { "$ref": "#/definitions/PaymentAddress" }, "archived": { "type": "boolean", "x-go-name": "Archived" }, "bank_address": { "type": "string", "x-go-name": "BankAddress" }, "bank_last_four": { "type": "string", "x-go-name": "BankLastFour" }, "bank_name": { "type": "string", "x-go-name": "BankName" }, "base_currency": { "type": "string", "x-go-name": "BaseCurrency" }, "can_accept_payments": { "description": "Dynamic Fields", "type": "boolean", "x-go-name": "CanAcceptPayments" }, "can_archive_bank": { "type": "boolean", "x-go-name": "CanArchiveBank" }, "can_send_payments": { "type": "boolean", "x-go-name": "CanSendPayments" }, "capabilities": { "$ref": "#/definitions/DBInterfaceMap" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "customer_id": { "type": "string", "x-go-name": "CustomerID" }, "debit_agreement_date": { "type": "string", "x-go-name": "DebitAgreementDate", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deposits_disabled": { "type": "boolean", "x-go-name": "DepositsDisabled" }, "form": { "type": "object", "additionalProperties": { }, "x-go-name": "Form" }, "fund_id": { "type": "string", "x-go-name": "FundID" }, "gateway_type": { "type": "string", "x-go-name": "GatewayType" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "managed_account_id": { "type": "string", "x-go-name": "ManagedAccountID" }, "missing_fields": { "$ref": "#/definitions/DBStringSlice" }, "missing_fields_change_description": { "type": "array", "items": { "type": "string" }, "x-go-name": "MissingFieldsChangeDescription" }, "needs_migration": { "description": "can be used to force an account to re-authorize their bank via plaid", "type": "boolean", "x-go-name": "NeedsMigration" }, "nickname": { "type": "string", "x-go-name": "Nickname" }, "notes": { "type": "string", "x-go-name": "Notes" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "payment_processor": { "$ref": "#/definitions/PaymentProcessor" }, "phone": { "type": "string", "x-go-name": "Phone" }, "reference_number": { "type": "string", "x-go-name": "ReferenceNumber" }, "sort_code": { "type": "string", "x-go-name": "SortCode" }, "status": { "type": "string", "x-go-name": "Status" }, "support_phone": { "type": "string", "x-go-name": "SupportPhone" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "PaymentProcessor": { "description": "Typically this object is composed into a struct, but embedded into the\nsame table using the `db:\",embed\"` struct tag.", "type": "object", "title": "PaymentProcessor is a struct defining identifiers so objects can know which\npayment processor should be used when communicating with a payment processor.", "properties": { "country": { "type": "string", "x-go-name": "Country" }, "external_processor": { "type": "string", "x-go-name": "ExternalProcessor" }, "external_processor_id": { "type": "string", "x-go-name": "ExternalProcessorID" }, "name": { "$ref": "#/definitions/PaymentProcessorName" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "PaymentProcessorName": { "type": "string", "x-go-package": "github.com/outdoorsy/api/controller/broker" }, "PaypalAddress": { "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "countryCode": { "type": "string", "x-go-name": "CountryCode" }, "line1": { "type": "string", "x-go-name": "Line1" }, "line2": { "type": "string", "x-go-name": "Line2" }, "postalCode": { "type": "string", "x-go-name": "PostalCode" }, "state": { "type": "string", "x-go-name": "State" } }, "x-go-package": "github.com/outdoorsy/api/libs/payment" }, "PaypalChargeDetails": { "type": "object", "properties": { "details": { "$ref": "#/definitions/PaypalChargeDetailsDetails" }, "deviceData": { "type": "string", "x-go-name": "DeviceData" }, "nonce": { "type": "string", "x-go-name": "Nonce" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/libs/payment" }, "PaypalChargeDetailsDetails": { "type": "object", "properties": { "billingAddress": { "$ref": "#/definitions/PaypalAddress" }, "countryCode": { "type": "string", "x-go-name": "CountryCode" }, "email": { "type": "string", "x-go-name": "Email" }, "firstName": { "type": "string", "x-go-name": "FirstName" }, "lastName": { "type": "string", "x-go-name": "LastName" }, "payerId": { "type": "string", "x-go-name": "PayerID" }, "phone": { "type": "string", "x-go-name": "Phone" }, "shippingAddress": { "$ref": "#/definitions/PaypalAddress" } }, "x-go-package": "github.com/outdoorsy/api/libs/payment" }, "PaypalChargeInfo": { "type": "object", "properties": { "details": { "$ref": "#/definitions/PaypalChargeDetails" }, "payer_id": { "type": "string", "x-go-name": "PayerID" }, "token": { "type": "string", "x-go-name": "Token" } }, "x-go-package": "github.com/outdoorsy/api/libs/payment" }, "PenaltyPostTripCharge": { "type": "object", "properties": { "amount": { "type": "integer", "format": "uint64", "x-go-name": "Amount" }, "penalty_type": { "type": "string", "x-go-name": "PenaltyType" } }, "x-go-package": "github.com/outdoorsy/api/internal/sd_post_trip_charges" }, "PendingTransaction": { "type": "object", "properties": { "amount": { "type": "integer", "format": "uint64", "x-go-name": "Amount" }, "attempts": { "type": "integer", "format": "int64", "x-go-name": "Attempts" }, "booking_id": { "type": "integer", "format": "int64" }, "brand": { "type": "string", "x-go-name": "Brand" }, "card_id": { "type": "integer", "format": "int64", "x-go-name": "CardID" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "description": { "type": "string", "x-go-name": "Description" }, "display_type": { "type": "string", "x-go-name": "DisplayType" }, "due": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_four": { "type": "string", "x-go-name": "LastFour" }, "original_charge_id": { "type": "integer", "format": "int64", "x-go-name": "OriginalChargeID" }, "payment_intent_id": { "type": "string", "x-go-name": "PaymentIntentID" }, "status": { "type": "string", "x-go-name": "Status" }, "type": { "type": "string", "x-go-name": "Type" }, "zendesk_ticket_id": { "type": "integer", "format": "int64", "x-go-name": "ZendeskTicketID" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "PetFee": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "daily": { "type": "boolean", "x-go-name": "Daily" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "max_count": { "type": "integer", "format": "int64", "x-go-name": "MaxCount" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/pet_fees" }, "Plan": { "type": "object", "properties": { "allow_unregistered": { "type": "boolean", "x-go-name": "AllowUnregistered" }, "approved_vehicle_types": { "$ref": "#/definitions/DBStringSlice" }, "bundle_required": { "type": "boolean", "x-go-name": "BundleRequired" }, "claims_number": { "type": "string", "x-go-name": "ClaimsNumber" }, "comp_policy_url": { "type": "string", "x-go-name": "CompPolicyURL" }, "comprehensive_coverage": { "type": "boolean", "x-go-name": "ComprehensiveCoverage" }, "comprehensive_maximum": { "type": "string", "x-go-name": "ComprehensiveMaximum" }, "country": { "type": "string", "x-go-name": "Country" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by_id": { "type": "integer", "format": "int64", "nullable": true }, "dealer_only": { "type": "boolean", "x-go-name": "DealerOnly" }, "hidden": { "type": "boolean", "x-go-name": "Hidden" }, "id": { "description": "The fields below are returned in the minimum response when this\ninsurance plan is an element inside a rental", "type": "integer", "format": "int64", "x-go-name": "ID" }, "insurance_address_1": { "type": "string", "x-go-name": "InsuranceAddress1" }, "insurance_city": { "type": "string", "x-go-name": "InsuranceCity" }, "insurance_end_date": { "type": "string", "x-go-name": "InsuranceEndDate" }, "insurance_name": { "type": "string", "x-go-name": "InsuranceName" }, "insurance_plan_override": { "$ref": "#/definitions/PlanOverride" }, "insurance_policy_number": { "type": "string", "x-go-name": "InsurancePolicyNumber" }, "insurance_start_date": { "type": "string", "x-go-name": "InsuranceStartDate" }, "insurance_state": { "type": "string", "x-go-name": "InsuranceState" }, "insurance_zip": { "type": "string", "x-go-name": "InsuranceZip" }, "insured_address_1": { "type": "string", "x-go-name": "InsuredAddress1" }, "insured_city": { "type": "string", "x-go-name": "InsuredCity" }, "insured_name": { "type": "string", "x-go-name": "InsuredName" }, "insured_state": { "type": "string", "x-go-name": "InsuredState" }, "insured_zip": { "type": "string", "x-go-name": "InsuredZip" }, "label": { "type": "string", "x-go-name": "Label" }, "last_updated_by_id": { "type": "integer", "format": "int64", "nullable": true }, "liability_coverage": { "type": "boolean", "x-go-name": "LiabilityCoverage" }, "liability_maximum": { "type": "string", "x-go-name": "LiabilityMaximum" }, "liability_policy_url": { "type": "string", "x-go-name": "LiabilityPolicyURL" }, "locality": { "type": "string", "x-go-name": "Locality" }, "minimum_daily_fee": { "type": "integer", "format": "uint64", "x-go-name": "MinimumDailyFee" }, "minimum_year": { "type": "integer", "format": "int64", "x-go-name": "MinimumYear" }, "owner_comprehensive_deductible": { "type": "string", "x-go-name": "OwnerComprehensiveDeductible" }, "owner_fee_percentage": { "type": "number", "format": "double", "x-go-name": "OwnerFeePercentage" }, "owner_liability_deductible": { "type": "string", "x-go-name": "OwnerLiabilityDeductible" }, "owner_liability_maximum": { "type": "string", "x-go-name": "OwnerLiabilityMaximum" }, "rental_category": { "type": "string", "x-go-name": "RentalCategory" }, "renter_comprehensive_deductible": { "type": "string", "x-go-name": "RenterComprehensiveDeductible" }, "renter_fee_percentage": { "type": "number", "format": "double", "x-go-name": "RenterFeePercentage" }, "renter_liability_deductible": { "type": "string", "x-go-name": "RenterLiabilityDeductible" }, "renter_liability_maximum": { "type": "string", "x-go-name": "RenterLiabilityMaximum" }, "requires_driver_verification": { "type": "boolean", "x-go-name": "RequiresDriverVerification" }, "tiered": { "type": "boolean", "x-go-name": "Tiered" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/insurance" }, "PlanOverride": { "type": "object", "properties": { "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "dealer_owned_owner_fee_percentage": { "type": "number", "format": "double", "x-go-name": "DealerOwnedOwnerFeePercentage" }, "dealer_owned_renter_fee_percentage": { "type": "number", "format": "double", "x-go-name": "DealerOwnedRenterFeePercentage" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "insurance_plan_id": { "$ref": "#/definitions/Plan" }, "owner_fee_percentage": { "type": "number", "format": "double", "x-go-name": "OwnerFeePercentage" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerUserID" }, "renter_fee_percentage": { "type": "number", "format": "double", "x-go-name": "RenterFeePercentage" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/insurance" }, "PrepFee": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "tax_rate_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "TaxRateIDs" } }, "x-go-package": "github.com/outdoorsy/api/internal/prep_fees" }, "Price": { "type": "object", "properties": { "can_charge_security_deposit": { "type": "boolean", "x-go-name": "CanChargeSecurityDeposit" }, "day": { "description": "BasePrice *int `json:\"base_price\" db:\"-\"`", "type": "integer", "format": "uint64", "x-go-name": "Day" }, "estimate": { "type": "integer", "format": "int64", "x-go-name": "Estimate" }, "minimum_security_deposit": { "type": "integer", "format": "uint64", "x-go-name": "MinimumSecurityDeposit" }, "month": { "type": "integer", "format": "uint64", "x-go-name": "Month" }, "price_estimate": { "$ref": "#/definitions/PriceEstimate" }, "security_deposit": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDeposit" }, "week": { "type": "integer", "format": "uint64", "x-go-name": "Week" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "PriceEstimate": { "type": "object", "properties": { "predictions": { "type": "array", "items": { "$ref": "#/definitions/PriceEstimatePrediction" }, "x-go-name": "Predictions" }, "price_est_mean": { "type": "number", "format": "double", "x-go-name": "PriceEstimateMean" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "PriceEstimatePrediction": { "type": "object", "properties": { "meta": { "type": "object", "additionalProperties": { }, "x-go-name": "Meta" }, "name": { "type": "string", "x-go-name": "Name" }, "prediction": { "type": "number", "format": "double", "x-go-name": "Prediction" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ProPageFallback": { "type": "object", "properties": { "city": { "type": "string", "x-go-name": "City" }, "state": { "type": "string", "x-go-name": "State" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "ProPageResponse": { "type": "object", "properties": { "fallback": { "$ref": "#/definitions/ProPageFallback" }, "locations": { "type": "array", "items": { "$ref": "#/definitions/Location" }, "x-go-name": "Locations" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "ProStatus": { "type": "object", "properties": { "approval_rate": { "type": "number", "format": "double", "x-go-name": "ApprovalRate" }, "bank_account": { "type": "boolean", "x-go-name": "BankAccount" }, "completed_points": { "type": "integer", "format": "int64", "x-go-name": "CompletedPoints" }, "description": { "type": "boolean", "x-go-name": "Description" }, "eligible_insurance": { "type": "boolean", "x-go-name": "EligibleInsurance" }, "pending_rentals": { "type": "array", "items": { "$ref": "#/definitions/ineligibleRental" }, "x-go-name": "PendingRentals" }, "pro": { "type": "boolean", "x-go-name": "Pro" }, "profile_percent_complete": { "type": "integer", "format": "int64", "x-go-name": "ProfilePercentComplete" }, "rating": { "type": "number", "format": "double", "x-go-name": "Rating" }, "response_time": { "type": "integer", "format": "int64", "x-go-name": "ResponseTime" }, "response_time_rank": { "type": "integer", "format": "int64", "x-go-name": "ResponseTimeRank" }, "total_points": { "type": "integer", "format": "int64", "x-go-name": "TotalPoints" }, "verified_phone": { "type": "boolean", "x-go-name": "VerifiedPhone" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ProcessedCampgroundAmenity": { "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/api/internal/seeker/client" }, "Profile": { "description": "profile holds all profile information for a user", "type": "object", "properties": { "address": { "$ref": "#/definitions/Address" }, "affiliate_description": { "type": "string", "x-go-name": "AffiliateDescription" }, "anonymized_by": { "type": "integer", "format": "int64", "x-go-name": "AnonymizedBy" }, "anonymized_on": { "type": "string", "x-go-name": "AnonymizedOn", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "bio": { "$ref": "#/definitions/Bio" }, "birthdate": { "type": "string" }, "booking_options": { "$ref": "#/definitions/BookingOptions" }, "booking_restrictions": { "$ref": "#/definitions/BookingRestrictions" }, "business": { "$ref": "#/definitions/Business" }, "coaching_completed": { "type": "boolean", "x-go-name": "CoachingCompleted" }, "coaching_completed_on_date": { "type": "string" }, "coaching_dismissed_count": { "type": "integer", "format": "int64", "x-go-name": "CoachingDismissedCount" }, "dealer_locations": { "type": "array", "items": { "$ref": "#/definitions/Location" }, "x-go-name": "DealerLocations" }, "disable_phone": { "type": "boolean", "x-go-name": "DisablePhone" }, "email": { "type": "string", "x-go-name": "Email" }, "employee_locations": { "type": "array", "items": { "$ref": "#/definitions/Location" }, "x-go-name": "EmployeeLocations" }, "exclude_locations": { "$ref": "#/definitions/DBStringSlice" }, "extra": { "$ref": "#/definitions/DBInterfaceMap" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "gender": { "type": "string", "x-go-name": "Gender" }, "google_place_id": { "type": "string", "x-go-name": "GooglePlaceID" }, "guest_smart_match_opt_out": { "type": "boolean", "x-go-name": "GuestSmartMatchOptOut" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "license": { "$ref": "#/definitions/License" }, "listing_coach_dismiss_flag": { "type": "boolean", "x-go-name": "CoachingDismissFlag" }, "locale": { "$ref": "#/definitions/Locale" }, "logo_url": { "type": "string", "x-go-name": "Logo" }, "mast_image_url": { "type": "string", "x-go-name": "MastImageURL" }, "nationality": { "type": "string", "x-go-name": "Nationality" }, "notifications": { "$ref": "#/definitions/NotificationSettings" }, "od_stays_opt_in": { "type": "boolean", "x-go-name": "ODStaysOptIn" }, "phone": { "type": "string", "x-go-name": "Phone" }, "sd_waiver_enabled": { "type": "boolean", "nullable": true }, "sms_exclude_locations": { "$ref": "#/definitions/DBIntSlice" }, "social": { "$ref": "#/definitions/SocialSlice" }, "title": { "type": "string", "x-go-name": "Title" }, "unavailable_color_labels": { "$ref": "#/definitions/DBInterfaceMap" }, "user_type": { "type": "string", "x-go-name": "UserType" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "Proposal": { "type": "object", "properties": { "action": { "type": "string", "x-go-name": "Action" }, "booking_id": { "type": "integer", "format": "int64", "x-go-name": "BookingID" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "daily_changes": { "type": "array", "items": { "$ref": "#/definitions/DailyChange" }, "x-go-name": "DailyChanges" }, "details": { "$ref": "#/definitions/DBInterfaceMap" }, "dry_create": { "type": "boolean", "x-go-name": "DryCreate" }, "future_booking": { "x-go-name": "FutureBooking" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "note": { "type": "string", "x-go-name": "Note" }, "object_id": { "type": "integer", "format": "uint64", "x-go-name": "ObjectID" }, "object_type": { "type": "string", "x-go-name": "ObjectType" }, "owner_acknowledged": { "type": "string", "x-go-name": "OwnerAcknowledged", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "renter_acknowledged": { "type": "string", "x-go-name": "RenterAcknowledged", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "renter_dismissed": { "type": "string", "x-go-name": "RenterDismissed", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "status": { "type": "string", "x-go-name": "Status" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_notice_events": { "type": "array", "items": { "$ref": "#/definitions/NoticeResponse" }, "x-go-name": "UserNoticeEvents" }, "user_notices_acknowledged": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "UserNoticesAcknowledged" } }, "x-go-package": "github.com/outdoorsy/api/internal/proposal" }, "RAFWaiverSummary": { "type": "object", "properties": { "cancellation_amount": { "type": "integer", "format": "int64", "x-go-name": "CancellationAmount" }, "description": { "type": "string", "x-go-name": "Description" }, "popup_message": { "type": "string", "x-go-name": "PopupMessage" }, "referee_amount": { "type": "integer", "format": "int64", "x-go-name": "RefereeAmount" }, "referee_completed": { "type": "boolean", "x-go-name": "RefereeCompleted" }, "referer_user_id": { "type": "integer", "format": "int64", "x-go-name": "RefererUserID" }, "referral_code": { "type": "string", "x-go-name": "ReferralCode" }, "referrer_completed": { "type": "boolean", "x-go-name": "ReferrerCompleted" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "RVProfile": { "type": "object", "properties": { "length": { "type": "integer", "format": "int64", "x-go-name": "Length" }, "slideouts": { "type": "array", "items": { "type": "string" }, "x-go-name": "SlideOuts" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/internal/bookings" }, "ReadManyAdminAnnouncementGroups": { "type": "object", "properties": { "announcement_count": { "type": "integer", "format": "int64", "x-go-name": "AnnouncementCount" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by": { "type": "integer", "format": "int64", "x-go-name": "CreatedBy" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "deleted_at": { "type": "string", "x-go-name": "DeletedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted_by": { "type": "integer", "format": "int64", "x-go-name": "DeletedBy" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "updated_by": { "type": "integer", "format": "int64", "x-go-name": "UpdatedBy" }, "user_count": { "type": "integer", "format": "int64", "x-go-name": "UserCount" } }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "ReadManyAdminAnnouncements": { "type": "object", "properties": { "content": { "type": "string", "x-go-name": "Content" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by": { "type": "integer", "format": "int64", "x-go-name": "CreatedBy" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "deleted_at": { "type": "string", "x-go-name": "DeletedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted_by": { "type": "integer", "format": "int64", "x-go-name": "DeletedBy" }, "description": { "type": "string", "x-go-name": "Description" }, "group_count": { "type": "integer", "format": "int64", "x-go-name": "GroupCount" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "individual_user_count": { "type": "integer", "format": "int64", "x-go-name": "IndividualUserCount" }, "published_at": { "type": "string", "x-go-name": "PublishedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "published_by": { "type": "integer", "format": "int64", "x-go-name": "PublishedBy" }, "title": { "type": "string", "x-go-name": "Title" }, "total_read": { "type": "integer", "format": "int64", "x-go-name": "TotalRead" }, "total_users": { "type": "integer", "format": "int64", "x-go-name": "TotalUsers" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "updated_by": { "type": "integer", "format": "int64", "x-go-name": "UpdatedBy" } }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "ReadManyWishlist": { "type": "object", "properties": { "campground_count": { "type": "integer", "format": "int64", "x-go-name": "CampgroundCount" }, "campgrounds": { "$ref": "#/definitions/DBIntSlice" }, "cover_image_url": { "type": "string", "x-go-name": "CoverImageUrl" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "is_example": { "type": "boolean", "x-go-name": "IsExample" }, "is_public": { "type": "boolean", "x-go-name": "IsPublic" }, "rental_count": { "type": "integer", "format": "int64", "x-go-name": "RentalCount" }, "rentals": { "$ref": "#/definitions/DBIntSlice" }, "title": { "type": "string", "x-go-name": "Title" }, "user_details": { "$ref": "#/definitions/WishlistUserDetails" }, "user_role": { "type": "string", "x-go-name": "UserRole" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "ReadOneAdminAnnouncement": { "type": "object", "properties": { "content": { "type": "string", "x-go-name": "Content" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by": { "type": "integer", "format": "int64", "x-go-name": "CreatedBy" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "deleted_at": { "type": "string", "x-go-name": "DeletedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted_by": { "type": "integer", "format": "int64", "x-go-name": "DeletedBy" }, "description": { "type": "string", "x-go-name": "Description" }, "groups": { "$ref": "#/definitions/DBAnnouncementGroupSlice" }, "historic_user_ids": { "$ref": "#/definitions/DBIntSlice" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "individual_user_ids": { "$ref": "#/definitions/DBIntSlice" }, "published_at": { "type": "string", "x-go-name": "PublishedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "published_by": { "type": "integer", "format": "int64", "x-go-name": "PublishedBy" }, "title": { "type": "string", "x-go-name": "Title" }, "total_read": { "type": "integer", "format": "int64", "x-go-name": "TotalRead" }, "total_users": { "type": "integer", "format": "int64", "x-go-name": "TotalUsers" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "updated_by": { "type": "integer", "format": "int64", "x-go-name": "UpdatedBy" } }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "ReadOneAdminAnnouncementGroup": { "type": "object", "properties": { "announcement_ids": { "$ref": "#/definitions/DBIntSlice" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by": { "type": "integer", "format": "int64", "x-go-name": "CreatedBy" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "deleted_at": { "type": "string", "x-go-name": "DeletedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted_by": { "type": "integer", "format": "int64", "x-go-name": "DeletedBy" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "updated_by": { "type": "integer", "format": "int64", "x-go-name": "UpdatedBy" }, "user_ids": { "$ref": "#/definitions/DBIntSlice" } }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "ReadOneWishlist": { "type": "object", "properties": { "ada": { "type": "boolean", "x-go-name": "ADA" }, "campgrounds": { "$ref": "#/definitions/DBIntSlice" }, "campgrounds_details": { "type": "array", "items": { "$ref": "#/definitions/LandingPageCampground" }, "x-go-name": "CampgroundDetails" }, "cover_image_url": { "type": "string", "x-go-name": "CoverImageUrl" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "end_date": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "is_example": { "type": "boolean", "x-go-name": "IsExample" }, "is_public": { "type": "boolean", "x-go-name": "IsPublic" }, "number_of_adults": { "type": "integer", "format": "int64", "x-go-name": "NumberOfAdults" }, "number_of_children": { "type": "integer", "format": "int64", "x-go-name": "NumberOfChildren" }, "pets": { "type": "boolean", "x-go-name": "Pets" }, "rentals": { "$ref": "#/definitions/DBIntSlice" }, "start_date": { "type": "string" }, "title": { "type": "string", "x-go-name": "Title" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_details": { "$ref": "#/definitions/WishlistUserDetails" }, "user_role": { "type": "string", "x-go-name": "UserRole" }, "users": { "$ref": "#/definitions/DBIntSlice" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "ReadResponse": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "imminent_departure": { "type": "boolean", "x-go-name": "ImminentDeparture" }, "readonly_insurance": { "type": "boolean", "x-go-name": "ReadOnlyInsurance" }, "route": { "type": "string", "x-go-name": "Route" }, "steps": { "type": "array", "items": { "$ref": "#/definitions/CheckoutStep" }, "x-go-name": "Steps" } }, "x-go-package": "github.com/outdoorsy/api/pkg/checkout_steps" }, "Reason": { "type": "object", "properties": { "isOther": { "type": "boolean", "x-go-name": "IsOtherBC" }, "is_other": { "type": "boolean", "x-go-name": "IsOther" }, "placeholder": { "type": "string", "x-go-name": "Placeholder" }, "reasons": { "type": "array", "items": { "$ref": "#/definitions/Reason" }, "x-go-name": "Reasons" }, "subMessage": { "type": "string", "x-go-name": "SubMessageBC" }, "sub_message": { "type": "string", "x-go-name": "SubMessage" }, "text": { "type": "string", "x-go-name": "Text" }, "value": { "type": "string", "x-go-name": "Value" } }, "x-go-package": "github.com/outdoorsy/api/internal/static" }, "Referee": { "type": "object", "properties": { "email": { "type": "string", "nullable": true }, "first_name": { "type": "string", "nullable": true }, "last_name": { "type": "string", "nullable": true }, "phone": { "type": "string", "nullable": true } }, "x-go-package": "github.com/outdoorsy/api/internal/referrals" }, "RefereeType": { "type": "string", "x-go-package": "github.com/outdoorsy/api/internal/referrals" }, "Referees": { "type": "array", "items": { "$ref": "#/definitions/Referee" }, "x-go-package": "github.com/outdoorsy/api/internal/referrals" }, "ReferralAmount": { "type": "integer", "format": "uint64", "x-go-package": "github.com/outdoorsy/api/internal/referrals" }, "ReferralCreditStatsReferee": { "type": "object", "properties": { "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "credit_opportunity": { "$ref": "#/definitions/ReferralAmount" }, "email": { "type": "string", "x-go-name": "Email" }, "name": { "type": "string", "x-go-name": "Name" }, "referee_type": { "$ref": "#/definitions/RefereeType" } }, "x-go-package": "github.com/outdoorsy/api/internal/referrals" }, "RemoveFromWishlistRequest": { "type": "object", "properties": { "campground_id": { "type": "integer", "format": "int64", "x-go-name": "CampgroundID" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "RemoveFromWishlistResponse": { "type": "object", "properties": { "cover_image_url": { "type": "string", "x-go-name": "CoverImageUrl" }, "title": { "type": "string", "x-go-name": "Title" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "RemoveUserFromWishlistRequest": { "type": "object", "properties": { "user_id": { "type": "integer", "format": "int64", "x-go-name": "UserID" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "Rental": { "description": "# A rental is owned by a user\n\n# A rental is all the things about an RV", "type": "object", "title": "Rental represents a vehicle on the platform", "properties": { "active_options": { "$ref": "#/definitions/activeOptions" }, "active_price": { "$ref": "#/definitions/activePrice" }, "auto_insurance_type": { "type": "string", "x-go-name": "AutoInsuranceType" }, "average_ratings": { "$ref": "#/definitions/AverageRatings" }, "average_reviews": { "$ref": "#/definitions/AverageReviews" }, "booking_leeway_days": { "type": "integer", "format": "int64", "nullable": true }, "bypass_new_york_regulations": { "description": "Admins can mark a vehicle to bypass New York regulations check", "type": "boolean", "x-go-name": "BypassNewYorkRegulations" }, "campsite_category": { "$ref": "#/definitions/CampsiteCategory" }, "can_manage_tax_rates": { "description": "used by dashboard to disable tax editing", "type": "boolean", "x-go-name": "CanManageTaxRates" }, "cancel_policy": { "type": "string", "nullable": true }, "cancel_policy_combo_bookings": { "type": "string", "nullable": true }, "check_in": { "type": "integer", "format": "int64", "x-go-name": "CheckIn" }, "check_out": { "type": "integer", "format": "int64", "x-go-name": "CheckOut" }, "checkout_questions": { "$ref": "#/definitions/DBMSISlice" }, "consignment": { "$ref": "#/definitions/RentalConsignment" }, "created": { "description": "Admin, owner Fields", "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "current_location_id": { "type": "integer", "format": "int64", "x-go-name": "CurrentLocationID" }, "custom_insurance_text": { "type": "string", "nullable": true }, "delivery_usage_item_id": { "type": "integer", "format": "int64" }, "deposit_percentage": { "$ref": "#/definitions/NullFloat64" }, "description": { "type": "string", "x-go-name": "Description" }, "description_included": { "type": "string", "x-go-name": "DescriptionIncluded" }, "description_other": { "type": "string", "x-go-name": "DescriptionOther" }, "description_recommendations": { "type": "string", "x-go-name": "DescriptionRecommendations" }, "distributed_ratings": { "$ref": "#/definitions/DistributedRatings" }, "eligible_for_custom_tax_rates": { "description": "We allow custom taxes for Quebec which has also system tax rates", "type": "boolean", "x-go-name": "IsEligibleForCustomTaxRates" }, "eligible_for_system_tax_rates": { "description": "For wheelbase so we can show when a rental will use system tax rates", "type": "boolean", "x-go-name": "IsEligibleForSystemTaxRates" }, "exempt_rental_sales_tax": { "type": "boolean", "x-go-name": "ExemptRentalSalesTax" }, "external": { "type": "boolean", "nullable": true }, "external_site_url": { "type": "string", "x-go-name": "ExternalSiteURL" }, "features": { "$ref": "#/definitions/DBInterfaceMap" }, "first_published": { "type": "string", "x-go-name": "FirstPublished", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "free_form_typed": { "description": "free form typed flag", "type": "boolean", "x-go-name": "FreeFormTyped" }, "generator_usage_item_id": { "type": "integer", "format": "int64" }, "group_on_map": { "type": "boolean", "x-go-name": "GroupOnMap" }, "has_checkout_questions": { "type": "boolean", "x-go-name": "HasCheckoutQuestions" }, "has_completed_lyrv": { "type": "boolean", "x-go-name": "HasCompletedLYRV" }, "hidden": { "type": "boolean", "x-go-name": "Hidden" }, "hidden_reason": { "type": "string", "nullable": true }, "home": { "$ref": "#/definitions/Home" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "images": { "$ref": "#/definitions/RentalImages" }, "images_verified": { "type": "boolean", "nullable": true }, "images_verified_by": { "type": "integer", "format": "int64", "nullable": true }, "import_id": { "type": "string", "x-go-name": "ImportID" }, "inactive": { "type": "boolean", "x-go-name": "Inactive" }, "instant_book": { "type": "boolean", "nullable": true }, "instant_book_ban_date": { "type": "string" }, "instant_book_banned": { "description": "Rental-level instant book ban (stored in metadata, combo bookings only)", "type": "boolean", "x-go-name": "InstantBookBanned" }, "instant_book_leeway": { "type": "integer", "format": "int64", "nullable": true }, "instant_book_type": { "type": "string", "x-go-name": "InstantBookType" }, "insurance_coverage": { "type": "string", "x-go-name": "InsuranceCoverage" }, "insurance_plan_id": { "$ref": "#/definitions/Plan" }, "insurance_renter_adjustable": { "type": "boolean", "nullable": true }, "interior_primary_image_id": { "type": "integer", "format": "int64", "x-go-name": "InteriorPrimaryImageID" }, "interior_primary_image_url": { "type": "string", "x-go-name": "InteriorPrimaryImageURL" }, "internal_id": { "type": "string", "x-go-name": "InternalID" }, "internal_notes": { "type": "string", "x-go-name": "InternalNotes" }, "items": { "type": "array", "items": { "$ref": "#/definitions/RentalItem" }, "x-go-name": "Items" }, "last_published": { "type": "string", "x-go-name": "LastPublished", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "last_unpublish_date": { "type": "string", "x-go-name": "LastUnpublishDate", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "latest_review": { "$ref": "#/definitions/RentalFullReview" }, "listing_steps": { "$ref": "#/definitions/DBInterfaceMap" }, "locale": { "$ref": "#/definitions/UnitLocale" }, "metadata": { "$ref": "#/definitions/IMap" }, "mileage_usage_item_id": { "type": "integer", "format": "int64" }, "minimum_days": { "type": "integer", "format": "int64", "nullable": true }, "minimum_deposit": { "type": "integer", "format": "int64", "nullable": true }, "minimum_renter_age": { "type": "integer", "format": "int64", "x-go-name": "MinimumRenterAge" }, "name": { "type": "string", "x-go-name": "Name" }, "ny_insurance_warning": { "type": "boolean", "x-go-name": "NYInsuranceWarning" }, "od_stays_opt_in": { "type": "boolean", "x-go-name": "ODStaysOptIn" }, "od_stays_opt_in_eligible": { "type": "boolean", "x-go-name": "ODStaysOptInEligible" }, "od_stays_opt_in_missing_requirements": { "type": "array", "items": { "type": "string" }, "x-go-name": "ODStaysOptInMissingRequirements" }, "one_way_rental_maximum_radius": { "type": "integer", "format": "int64", "nullable": true }, "one_way_rental_requests": { "type": "boolean", "nullable": true }, "original_url": { "description": "Importing", "type": "string", "x-go-name": "OriginalURL" }, "parent_id": { "description": "grouping functionality", "type": "integer", "format": "int64", "x-go-name": "ParentID" }, "pet_fee": { "$ref": "#/definitions/PetFee" }, "photo_score": { "type": "integer", "format": "int64", "nullable": true }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "prep_fee": { "$ref": "#/definitions/PrepFee" }, "price": { "$ref": "#/definitions/Price" }, "primary_image_id": { "type": "integer", "format": "int64", "x-go-name": "PrimaryImageID" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "publish_field_errors": { "type": "array", "items": { "type": "string" }, "x-go-name": "PublishedFieldErrors" }, "published": { "type": "boolean", "x-go-name": "Published" }, "rejected_images_count": { "description": "holds the count of images with status rejected and ignore rejected false", "type": "integer", "format": "int64", "x-go-name": "RejectedImagesCount" }, "rental_category": { "type": "string", "x-go-name": "RentalCategory" }, "request_less_than_minimum_days": { "type": "integer", "format": "int64", "x-go-name": "RequestLessThanMinimumDays" }, "require_insurance": { "type": "boolean", "nullable": true }, "require_roadside": { "type": "boolean", "nullable": true }, "review_notes": { "type": "string", "nullable": true }, "review_scores": { "$ref": "#/definitions/ReviewScores" }, "review_status": { "type": "string", "nullable": true }, "roamly_policy_number": { "type": "string", "x-go-name": "RoamlyPolicyNumber" }, "sd_waiver_enabled": { "type": "boolean", "nullable": true }, "seatbelts": { "type": "integer", "format": "int64", "x-go-name": "Seatbelts" }, "settings": { "$ref": "#/definitions/DBInterfaceMap" }, "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" }, "smart_pricing_enabled": { "type": "boolean", "x-go-name": "SmartPricingEnabled" }, "smart_pricing_max": { "type": "integer", "format": "int64", "x-go-name": "SmartPricingMax" }, "smart_pricing_min": { "type": "integer", "format": "int64", "x-go-name": "SmartPricingMin" }, "smart_pricing_mode": { "type": "string", "x-go-name": "SmartPricingMode" }, "snooze_expiration_date": { "type": "string" }, "sort": { "description": "Admin Fields", "type": "number", "format": "double", "x-go-name": "Sort" }, "sort_metrics": { "$ref": "#/definitions/DBInterfaceMap" }, "stay": { "$ref": "#/definitions/StayDetails" }, "summary": { "type": "string", "x-go-name": "Summary" }, "tags": { "type": "array", "items": { "$ref": "#/definitions/TagRental" }, "x-go-name": "Tags" }, "tax_rate_id": { "$ref": "#/definitions/TaxRate" }, "tax_rate_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "TaxRateIDs" }, "tollspot_id": { "type": "integer", "format": "int64", "x-go-name": "TollspotID" }, "turnaround_days_after": { "type": "integer", "format": "int64", "nullable": true }, "turo_vehicle_id": { "type": "string", "x-go-name": "TuroVehicleID" }, "type": { "type": "string", "x-go-name": "Type" }, "unpublish_reason": { "type": "string", "x-go-name": "UnpublishReason" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "use_system_tax_rates": { "description": "used by rental listing page to display system tax notice", "type": "boolean", "x-go-name": "UseSystemTaxRates" }, "vehicle": { "$ref": "#/definitions/Vehicle" }, "vehicle_title": { "type": "string", "x-go-name": "VehicleTitle" }, "vin_check": { "$ref": "#/definitions/VinCheck" }, "waived_insurance_text": { "type": "string", "nullable": true } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalCharge": { "type": "object", "properties": { "card_id": { "type": "integer", "format": "int64", "x-go-name": "CardID" }, "card_token": { "type": "string", "x-go-name": "CardToken" }, "full": { "type": "boolean", "x-go-name": "Full" }, "method": { "type": "string", "x-go-name": "Method" }, "payment_intent_id": { "type": "string", "x-go-name": "PaymentIntentID" }, "payment_meta": { "$ref": "#/definitions/DBInterfaceMap" }, "payment_source": { "type": "string", "x-go-name": "PaymentSource" } }, "x-go-package": "github.com/outdoorsy/api/libs/payment" }, "RentalConsignment": { "type": "object", "properties": { "consignment_completed": { "type": "boolean", "x-go-name": "ConsignmentCompleted" }, "interested_in_consignment": { "type": "boolean", "x-go-name": "InterestedInConsignment" }, "keep_pct_cc_fee": { "$ref": "#/definitions/NullFloat64" }, "keep_pct_insurance_fee": { "$ref": "#/definitions/NullFloat64" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "pay_pct": { "$ref": "#/definitions/NullFloat64" }, "pay_pct_generator": { "$ref": "#/definitions/NullFloat64" }, "pay_pct_mileage": { "$ref": "#/definitions/NullFloat64" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalFullReview": { "type": "object", "properties": { "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "text": { "type": "string", "x-go-name": "Text" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalImage": { "type": "object", "properties": { "ai_aesthetic_score": { "type": "number", "format": "double", "x-go-name": "AIAestheticScore" }, "ai_description": { "type": "string", "x-go-name": "AIDescription" }, "ai_position": { "type": "integer", "format": "int64", "x-go-name": "AIPosition" }, "ai_summary": { "type": "string", "x-go-name": "AISummary" }, "amenity": { "$ref": "#/definitions/RentalImageAmenity" }, "best": { "type": "boolean", "x-go-name": "Best" }, "category": { "$ref": "#/definitions/MediaCategory" }, "description": { "type": "string", "x-go-name": "Description" }, "height": { "type": "integer", "format": "int64", "x-go-name": "Height" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "ignore_rejected": { "type": "boolean", "x-go-name": "IgnoreRejected" }, "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/RentalImageReview" }, "skip_enhance": { "type": "boolean", "x-go-name": "SkipEnhance" }, "status": { "type": "string", "x-go-name": "Status" }, "tags": { "type": "string", "x-go-name": "Tags" }, "title": { "type": "string", "x-go-name": "Title" }, "url": { "type": "string", "x-go-name": "URL" }, "video": { "type": "boolean", "x-go-name": "Video" }, "width": { "type": "integer", "format": "int64", "x-go-name": "Width" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalImageAmenity": { "description": "RentalImageAmenity is used to relate a RentalImage with an Amenity (this\nis a 1 to 1 relationship)", "type": "object", "properties": { "description": { "type": "string", "x-go-name": "Description" }, "name": { "type": "string", "x-go-name": "AmenityName" }, "slug": { "type": "string", "x-go-name": "AmenitySlug" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalImageReview": { "type": "object", "properties": { "apply_credit": { "description": "special incoming field, not stored in DB", "type": "boolean", "x-go-name": "ApplyCredit" }, "booking_id": { "type": "integer", "format": "int64" }, "booking_summary": { "$ref": "#/definitions/BookingSummary" }, "can_edit": { "type": "boolean", "x-go-name": "CanEdit" }, "can_edit_until": { "type": "string", "x-go-name": "CanEditUntil" }, "cleanliness_score": { "type": "number", "format": "double", "x-go-name": "CleanlinessScore" }, "communication_score": { "type": "number", "format": "double", "x-go-name": "CommunicationScore" }, "deleted": { "description": "clocks.RfcTime was resulting in 0001-01-01 which I want to avoid. it should be null or a real date", "type": "string", "format": "date-time", "x-go-name": "Deleted" }, "exclude_from_rating": { "type": "boolean", "x-go-name": "ExcludeFromRating" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "images": { "$ref": "#/definitions/DBStringSlice" }, "imported": { "description": "used for imported reviews only", "type": "boolean", "x-go-name": "Imported" }, "listing_score": { "type": "number", "format": "double", "x-go-name": "ListingAccuracyScore" }, "mechanical_score": { "type": "number", "format": "double", "x-go-name": "MechanicalScore" }, "name": { "type": "string", "x-go-name": "Name" }, "outdoorsy_only": { "type": "boolean", "x-go-name": "OutdoorsyOnly" }, "owner": { "$ref": "#/definitions/ReviewOwner" }, "owner_can_respond": { "type": "boolean", "x-go-name": "OwnerCanRespond" }, "owner_response": { "$ref": "#/definitions/OwnerResponseReview" }, "published": { "type": "boolean", "x-go-name": "Published" }, "rental_id": { "type": "integer", "format": "int64" }, "rental_summary": { "$ref": "#/definitions/RentalSummary" }, "rental_tags": { "type": "array", "items": { "$ref": "#/definitions/TagRental" }, "x-go-name": "RentalTags" }, "review_image_id": { "type": "string", "x-go-name": "ReviewImageID" }, "review_images": { "type": "array", "items": { "$ref": "#/definitions/ReviewImage" }, "x-go-name": "ReviewImages" }, "reviewer": { "$ref": "#/definitions/Reviewer" }, "reviewer_id": { "type": "integer", "format": "int64" }, "score": { "description": "Review Types", "type": "number", "format": "double", "x-go-name": "Score" }, "source_page": { "type": "string", "x-go-name": "SourcePage" }, "tags": { "description": "Tags are saved on tag_rental_join", "type": "array", "items": { "$ref": "#/definitions/Tag" }, "x-go-name": "Tags" }, "text": { "type": "string", "x-go-name": "Text" }, "timestamp": { "type": "string", "x-go-name": "Timestamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_id": { "type": "integer", "format": "int64" }, "user_recommend": { "type": "boolean", "x-go-name": "UserRecommend" }, "value_score": { "type": "number", "format": "double", "x-go-name": "ValueScore" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalImages": { "type": "array", "items": { "$ref": "#/definitions/RentalImage" }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalImagesJSON": { "description": "RentalImagesJSON is used to join a rental to its JSON image object\nso we can load the images in one row without a huge left join", "type": "object", "properties": { "images": { "$ref": "#/definitions/RentalImages" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalItem": { "type": "object", "properties": { "applies_to_type": { "$ref": "#/definitions/DBStringSlice" }, "available": { "type": "integer", "format": "int64", "x-go-name": "Available" }, "category": { "type": "string", "x-go-name": "Category" }, "category_id": { "type": "integer", "format": "int64", "x-go-name": "CategoryID" }, "consigned_pay_pct": { "description": "consigned owner support", "type": "number", "format": "double", "x-go-name": "ConsignedPayPct" }, "created": { "$ref": "#/definitions/NullTime" }, "daily": { "type": "boolean", "x-go-name": "Daily" }, "deferred": { "type": "boolean", "x-go-name": "Deferred" }, "description": { "type": "string", "x-go-name": "Description" }, "hidden": { "type": "boolean", "x-go-name": "Hidden" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "image_url": { "type": "string", "x-go-name": "ImageURL" }, "ledger_account_number": { "type": "integer", "format": "int64", "x-go-name": "LedgerAccountNumber" }, "location_id": { "type": "integer", "format": "int64", "x-go-name": "LocationID" }, "location_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "LocationIDs" }, "maximum_price": { "type": "integer", "format": "int64", "nullable": true }, "metadata": { "$ref": "#/definitions/IMap" }, "minimum_price": { "type": "integer", "format": "int64", "nullable": true }, "name": { "type": "string", "x-go-name": "Name" }, "percent": { "type": "number", "format": "double", "x-go-name": "Percent" }, "percent_type": { "type": "string", "x-go-name": "PercentType" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "presentment_currency": { "type": "string", "x-go-name": "PresentmentCurrency" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" }, "rental_items_category_id": { "type": "integer", "format": "int64", "nullable": true }, "rental_items_category_name": { "type": "string", "x-go-name": "RentalItemsCategoryName" }, "rental_items_category_owner_name": { "type": "string", "x-go-name": "RentalItemsCategoryOwnerName" }, "rental_items_category_reason": { "type": "string", "x-go-name": "RentalItemsCategoryReason" }, "rental_items_category_requested_name": { "type": "string", "x-go-name": "RentalItemsCategoryRequestedName" }, "rental_items_category_status": { "type": "string", "x-go-name": "RentalItemsCategoryStatus" }, "required": { "type": "boolean", "x-go-name": "Required" }, "settlement_currency": { "type": "string", "x-go-name": "SettlementCurrency" }, "tax": { "description": "total tax - calculated", "type": "integer", "format": "int64", "x-go-name": "Tax" }, "tax_rate_id": { "$ref": "#/definitions/TaxRate" }, "tax_rate_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "TaxRateIDs" }, "travelers": { "type": "integer", "format": "int64", "x-go-name": "Travelers" }, "updated": { "$ref": "#/definitions/NullTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalItemCopy": { "type": "object", "properties": { "count": { "type": "integer", "format": "uint64", "x-go-name": "Count" }, "rental_item_id": { "type": "integer", "format": "int64", "x-go-name": "RentalItemID" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "RentalPriceRequest": { "type": "object", "properties": { "price": { "type": "integer", "format": "int64", "x-go-name": "Price" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalRemoveRequest": { "type": "object", "properties": { "unpublish_comment": { "type": "string", "x-go-name": "UnpublishComment" }, "unpublish_reason": { "type": "string", "x-go-name": "UnpublishReason" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalSummary": { "type": "object", "properties": { "campsite_summary": { "$ref": "#/definitions/CampsiteSummary" }, "disallow_movement": { "type": "boolean", "x-go-name": "DisallowMovement" }, "display_type": { "type": "string", "x-go-name": "DisplayType" }, "formatted_length": { "type": "string", "x-go-name": "FormattedLength" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "interior_primary_image_url": { "type": "string", "x-go-name": "InteriorPrimaryImageURL" }, "internal_id": { "type": "string", "x-go-name": "InternalID" }, "location": { "type": "string", "x-go-name": "Location" }, "name": { "type": "string", "x-go-name": "Name" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "rental_category": { "type": "string", "x-go-name": "RentalCategory" }, "sleeps": { "type": "integer", "format": "int64", "x-go-name": "Sleeps" }, "slug": { "type": "string", "x-go-name": "Slug" }, "stay_summary": { "$ref": "#/definitions/StaySummary" }, "style": { "type": "string", "x-go-name": "Style" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "RentalTypesOptions": { "type": "object", "properties": { "Country": { "type": "string" }, "FromOutdoorsy": { "type": "boolean" }, "IncludeAuto": { "type": "boolean" }, "IncludeRV": { "type": "boolean" }, "Localizer": { "$ref": "#/definitions/Localizer" }, "OwnerID": { "type": "integer", "format": "int64" }, "OwnerIDs": { "type": "array", "items": { "type": "integer", "format": "int64" } }, "RentalCategory": { "type": "string" }, "Short": { "type": "boolean" }, "Type": { "type": "string" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RentalVinRequest": { "type": "object", "properties": { "vin": { "type": "string", "x-go-name": "VIN" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "RenterDestinationData": { "type": "object", "properties": { "region": { "type": "string", "x-go-name": "Region" }, "spot_types": { "type": "array", "items": { "type": "string" }, "x-go-name": "SpotTypes" }, "stops": { "type": "array", "items": { "type": "string" }, "x-go-name": "Stops" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "Report": { "type": "object", "properties": { "booking_display_insurance": { "type": "string", "x-go-name": "BookingDisplayInsurance" }, "booking_display_status": { "type": "string", "x-go-name": "BookingDisplayStatus" }, "booking_from": { "type": "string" }, "booking_from_city": { "type": "string", "x-go-name": "BookingFromCity" }, "booking_from_delivery": { "type": "boolean", "x-go-name": "BookingFromDelivery" }, "booking_from_state": { "type": "string", "x-go-name": "BookingFromState" }, "booking_from_street": { "type": "string", "x-go-name": "BookingFromStreet" }, "booking_from_zip": { "type": "string", "x-go-name": "BookingFromZip" }, "booking_id": { "type": "integer", "format": "int64", "x-go-name": "BookingID" }, "booking_insurance": { "type": "string", "x-go-name": "BookingInsurance" }, "booking_items": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "BookingItems" }, "booking_notes": { "type": "array", "items": { "$ref": "#/definitions/Note" }, "x-go-name": "BookingNotes" }, "booking_remainder": { "type": "integer", "format": "uint64", "x-go-name": "BookingRemainder" }, "booking_status": { "type": "string", "x-go-name": "BookingStatus" }, "booking_to": { "type": "string" }, "booking_to_city": { "type": "string", "x-go-name": "BookingToCity" }, "booking_to_delivery": { "type": "boolean", "x-go-name": "BookingToDelivery" }, "booking_to_state": { "type": "string", "x-go-name": "BookingToState" }, "booking_to_street": { "type": "string", "x-go-name": "BookingToStreet" }, "booking_to_zip": { "type": "string", "x-go-name": "BookingToZip" }, "coachnet_id": { "type": "integer", "format": "int64", "x-go-name": "CoachnetID" }, "coachnet_status": { "type": "boolean", "x-go-name": "CoachnetStatus" }, "dropoff_time": { "type": "integer", "format": "int64", "x-go-name": "DropoffTime" }, "insurance_bundle": { "x-go-name": "BookingBundle" }, "insurance_coverage": { "type": "string", "x-go-name": "InsuranceCoverage" }, "insurance_status": { "type": "boolean", "x-go-name": "InsuranceStatus" }, "next_departure_booking_id": { "type": "integer", "format": "int64", "x-go-name": "NextDepartureBookingID" }, "next_departure_date": { "type": "string" }, "pickup_time": { "type": "integer", "format": "int64", "x-go-name": "PickupTime" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "rental_internal_id": { "type": "string", "x-go-name": "RentalInternalID" }, "rental_name": { "type": "string", "x-go-name": "RentalName" }, "renter_id": { "type": "integer", "format": "int64", "x-go-name": "RenterID" }, "renter_name": { "type": "string", "x-go-name": "RenterName" }, "renter_phone": { "type": "string", "x-go-name": "RenterPhone" } }, "x-go-package": "github.com/outdoorsy/api/internal/report/morning_report" }, "ReportDateItem": { "type": "object", "properties": { "date": { "type": "string", "x-go-name": "Date" }, "departing": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "Departing" }, "returning": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "Returning" } }, "x-go-package": "github.com/outdoorsy/api/internal/report/morning_report" }, "Request": { "type": "object", "properties": { "booking_fees_variant": { "$ref": "#/definitions/BookingFeesVariant" }, "bundle_id": { "type": "string", "x-go-name": "BundleID" }, "delivery": { "$ref": "#/definitions/Delivery" }, "delivery_campground_id": { "type": "integer", "format": "int64", "x-go-name": "DeliveryCampgroundId" }, "discount_code": { "type": "string", "x-go-name": "DiscountCode" }, "estimated_generator_hours": { "type": "number", "format": "double", "x-go-name": "EstimatedGeneratorHours" }, "estimated_miles": { "type": "number", "format": "double", "x-go-name": "EstimatedMiles" }, "external_campsite_id": { "type": "string", "x-go-name": "ExternalCampsiteID" }, "festival_friendly": { "type": "boolean", "x-go-name": "FestivalFriendly" }, "from": { "type": "string" }, "from_time": { "type": "integer", "format": "int64", "x-go-name": "FromTime" }, "id": { "type": "string", "x-go-name": "ID" }, "imported": { "type": "boolean", "x-go-name": "Imported" }, "include_coachnet": { "type": "boolean", "x-go-name": "IncludeCoachnet" }, "include_linen_fee": { "type": "boolean", "x-go-name": "IncludeLinenFee" }, "include_pet_fee": { "type": "boolean", "x-go-name": "IncludePetFee" }, "insurance": { "type": "string", "x-go-name": "Insurance" }, "items": { "type": "array", "items": { "$ref": "#/definitions/ItemRequest" }, "x-go-name": "Items" }, "locale": { "type": "string", "x-go-name": "Locale" }, "loyalty_rewards_eligible": { "type": "boolean", "x-go-name": "LoyaltyRewardsEligible" }, "make": { "type": "string", "x-go-name": "Make" }, "model": { "type": "array", "items": { "type": "string" }, "x-go-name": "Model" }, "occupancy": { "$ref": "#/definitions/Occupancy" }, "omit_taxes": { "type": "boolean", "x-go-name": "OmitTaxes" }, "only_price_breakdown": { "type": "boolean", "x-go-name": "OnlyPriceBreakdown" }, "pet_friendly": { "type": "boolean", "x-go-name": "PetFriendly" }, "pets": { "type": "integer", "format": "int64", "x-go-name": "Pets" }, "prefer_cheapest_bundle": { "type": "boolean", "x-go-name": "PreferCheapestBundle" }, "presentment_currency": { "type": "string", "x-go-name": "PresentmentCurrency" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "renter_anon_id": { "type": "string", "x-go-name": "RenterAnonID" }, "renter_id": { "type": "integer", "format": "int64", "x-go-name": "RenterID" }, "reserve": { "type": "boolean", "x-go-name": "Reserve" }, "roamly_weather_quote": { "$ref": "#/definitions/DBInterfaceMap" }, "rv_profile": { "$ref": "#/definitions/RVProfile" }, "services": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "Services" }, "sibling_quote_group_id": { "type": "integer", "format": "int64", "x-go-name": "SiblingQuoteGroupID" }, "smoking_allowed": { "type": "boolean", "x-go-name": "SmokingAllowed" }, "source": { "type": "string", "x-go-name": "Source" }, "tailgate_friendly": { "type": "boolean", "x-go-name": "TailgateFriendly" }, "to": { "type": "string" }, "to_time": { "type": "integer", "format": "int64", "x-go-name": "ToTime" }, "towing_capacity": { "type": "integer", "format": "int64", "x-go-name": "TowingCapacity" }, "towing_vehicle_make": { "type": "string", "x-go-name": "TowingVehicleMake" }, "towing_vehicle_model": { "type": "string", "x-go-name": "TowingVehicleModel" }, "towing_vehicle_year": { "type": "integer", "format": "int64", "x-go-name": "TowingVehicleYear" }, "travelers": { "type": "integer", "format": "int64", "x-go-name": "Travelers" }, "trip_credits_disabled": { "type": "boolean", "x-go-name": "TripCreditsDisabled" }, "year_max": { "type": "integer", "format": "int64", "x-go-name": "YearMax" }, "year_min": { "type": "integer", "format": "int64", "x-go-name": "YearMin" } }, "x-go-package": "github.com/outdoorsy/api/internal/quote" }, "Response": { "type": "object", "properties": { "addons": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "Addons" }, "block_discount_code": { "type": "boolean", "x-go-name": "BlockDiscountCode" }, "bundle_id": { "type": "string", "x-go-name": "BundleID" }, "calculated_day_price": { "type": "integer", "format": "uint64", "x-go-name": "CalculatedDayPrice" }, "can_apply_credits": { "type": "boolean", "x-go-name": "CanApplyCredits" }, "can_generate_weather_quote": { "type": "boolean", "x-go-name": "CanGenerateWeatherQuote" }, "dealer_minimum_days": { "type": "integer", "format": "uint64", "x-go-name": "DealerMinimumDays" }, "deliverable_campgrounds": { "type": "array", "items": { "$ref": "#/definitions/ExternalCampground" }, "x-go-name": "DeliverableCampgrounds" }, "delivery": { "$ref": "#/definitions/Delivery" }, "delivery_campground_id": { "type": "integer", "format": "int64", "x-go-name": "DeliveryCampgroundId" }, "delivery_item": { "$ref": "#/definitions/BookingItem" }, "discount_code": { "type": "string", "x-go-name": "DiscountCode" }, "discount_code_amount": { "type": "integer", "format": "uint64", "x-go-name": "DiscountCodeAmount" }, "discount_code_applied_to": { "type": "string", "x-go-name": "DiscountCodeAppliedTo" }, "discount_code_message": { "type": "string", "x-go-name": "DiscountCodeMessage" }, "discount_message": { "$ref": "#/definitions/Warning" }, "duration": { "type": "integer", "format": "uint64", "x-go-name": "Duration" }, "estimated_generator_cost": { "type": "integer", "format": "uint64", "x-go-name": "EstimatedGeneratorCost" }, "estimated_mileage_cost": { "type": "integer", "format": "uint64", "x-go-name": "EstimatedMileageCost" }, "fees_total": { "type": "integer", "format": "uint64", "x-go-name": "FeesTotal" }, "festival_friendly": { "type": "boolean", "x-go-name": "FestivalFriendly" }, "final_payment_amount": { "type": "integer", "format": "uint64", "x-go-name": "FinalPaymentAmount" }, "final_payment_due_date": { "type": "string" }, "from": { "type": "string" }, "from_time": { "type": "integer", "format": "int64", "x-go-name": "FromTime" }, "generator_item": { "$ref": "#/definitions/BookingItem" }, "generator_total_included": { "type": "number", "format": "double", "x-go-name": "GeneratorTotalIncluded" }, "id": { "type": "string", "x-go-name": "ID" }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "insurance_bundle": { "$ref": "#/definitions/BookingBundle" }, "is_request_less_than_minimum_days": { "type": "boolean", "x-go-name": "IsRequestLessThanMinimumDays" }, "items": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "Items" }, "locale_base_currency": { "type": "string", "x-go-name": "LocaleBaseCurrency" }, "make": { "type": "string", "x-go-name": "Make" }, "mileage_item": { "$ref": "#/definitions/BookingItem" }, "mileage_total_included": { "type": "number", "format": "double", "x-go-name": "MileageTotalIncluded" }, "model": { "type": "array", "items": { "type": "string" }, "x-go-name": "Model" }, "occupancy": { "$ref": "#/definitions/Occupancy" }, "offer_affirm": { "type": "boolean", "x-go-name": "OfferAffirm" }, "offer_paypal_pay_later": { "type": "boolean", "x-go-name": "OfferPayPalPayLater" }, "original_day_override_price": { "type": "integer", "format": "uint64", "x-go-name": "OriginalDayOverridePrice" }, "original_day_price": { "type": "integer", "format": "uint64", "x-go-name": "OriginalDayPrice" }, "original_month_price": { "type": "integer", "format": "uint64", "x-go-name": "OriginalMonthPrice" }, "original_service_fee": { "type": "integer", "format": "uint64", "x-go-name": "OriginalServiceFee" }, "original_week_price": { "type": "integer", "format": "uint64", "x-go-name": "OriginalWeekPrice" }, "outdoorsy_fee": { "type": "integer", "format": "uint64", "x-go-name": "RenterIntegrationsFee" }, "owner_fee": { "type": "integer", "format": "uint64", "x-go-name": "OwnerFee" }, "owner_fees": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "OwnerFees" }, "owner_integrations_fee": { "type": "integer", "format": "uint64", "x-go-name": "OwnerIntegrationsFee" }, "pet_friendly": { "type": "boolean", "x-go-name": "PetFriendly" }, "pets": { "type": "integer", "format": "int64", "x-go-name": "Pets" }, "presentment_currency": { "type": "string", "x-go-name": "PresentmentCurrency" }, "remainder_amount": { "type": "integer", "format": "uint64", "x-go-name": "RemainderAmount" }, "remainder_due_date": { "type": "string" }, "rental_amount": { "type": "integer", "format": "uint64", "x-go-name": "RentalAmount" }, "rental_amount_item": { "$ref": "#/definitions/BookingItem" }, "rental_summary": { "$ref": "#/definitions/RentalSummary" }, "renter_credits_applied": { "type": "integer", "format": "uint64", "x-go-name": "RenterCreditsApplied" }, "renter_reserve_amount": { "type": "integer", "format": "uint64", "x-go-name": "RenterReserveAmount" }, "requested_duration": { "type": "integer", "format": "uint64", "x-go-name": "RequestedDuration" }, "reserve_amount": { "type": "integer", "format": "uint64", "x-go-name": "ReserveAmount" }, "security_deposit": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDeposit" }, "service_fee": { "type": "integer", "format": "uint64", "x-go-name": "ServiceFee" }, "services": { "type": "array", "items": { "$ref": "#/definitions/BookingService" }, "x-go-name": "Services" }, "settlement_currency": { "type": "string", "x-go-name": "SettlementCurrency" }, "sibling_quote_group_id": { "type": "integer", "format": "int64", "x-go-name": "SiblingQuoteGroupID" }, "sibling_quotes_totals": { "$ref": "#/definitions/SiblingTotals" }, "siblings": { "$ref": "#/definitions/SiblingQuotes" }, "smoking_allowed": { "type": "boolean", "x-go-name": "SmokingAllowed" }, "subtotal": { "type": "integer", "format": "uint64", "x-go-name": "Subtotal" }, "tailgate_friendly": { "type": "boolean", "x-go-name": "TailgateFriendly" }, "tax": { "type": "integer", "format": "uint64", "x-go-name": "Tax" }, "tax_rates": { "type": "array", "items": { "$ref": "#/definitions/TaxRateTotalItem" }, "x-go-name": "TaxRates" }, "to": { "type": "string" }, "to_time": { "type": "integer", "format": "int64", "x-go-name": "ToTime" }, "total": { "type": "integer", "format": "uint64", "x-go-name": "Total" }, "total_after_credits": { "type": "integer", "format": "uint64", "x-go-name": "TotalAfterCredits" }, "total_after_deductions": { "description": "the total amount that we will take from user card/paypal account for a given booking\ndeprecated use TotalAfterCredits", "type": "integer", "format": "uint64", "x-go-name": "TotalAfterDeductions" }, "towing_capacity": { "type": "integer", "format": "int64", "x-go-name": "TowingCapacity" }, "towing_vehicle_make": { "type": "string", "x-go-name": "TowingVehicleMake" }, "towing_vehicle_model": { "type": "string", "x-go-name": "TowingVehicleModel" }, "towing_vehicle_year": { "type": "integer", "format": "int64", "x-go-name": "TowingVehicleYear" }, "travelers": { "type": "integer", "format": "int64", "x-go-name": "Travelers" }, "use_day_price": { "type": "boolean", "x-go-name": "UseDayPrice" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" }, "use_system_tax_rates": { "type": "boolean", "x-go-name": "UseSystemTaxRates" }, "use_tax_inclusive_pricing": { "type": "boolean", "x-go-name": "UseTaxInclusivePricing" }, "user_notice_events": { "type": "array", "items": { "$ref": "#/definitions/NoticeResponse" }, "x-go-name": "UserNoticeEvents" }, "waiver_summary": { "$ref": "#/definitions/WaiverSummary" }, "warning": { "$ref": "#/definitions/Warning" }, "year_max": { "type": "integer", "format": "int64", "x-go-name": "YearMax" }, "year_min": { "type": "integer", "format": "int64", "x-go-name": "YearMin" } }, "x-go-package": "github.com/outdoorsy/api/internal/quote" }, "ResultCount": { "type": "object", "properties": { "count": { "type": "integer", "format": "int64", "x-go-name": "Count" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "RevenueLineItem": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/internal/bookings" }, "RevenueSummary": { "type": "object", "properties": { "funds_held_by_outdoorsy": { "type": "integer", "format": "int64", "x-go-name": "FundsHeldByOutdoorsy" }, "line_items": { "type": "array", "items": { "$ref": "#/definitions/RevenueLineItem" }, "x-go-name": "LineItems" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" } }, "x-go-package": "github.com/outdoorsy/api/internal/bookings" }, "Review": { "type": "object", "properties": { "apply_credit": { "description": "special incoming field, not stored in DB", "type": "boolean", "x-go-name": "ApplyCredit" }, "booking_id": { "type": "integer", "format": "int64" }, "booking_summary": { "$ref": "#/definitions/BookingSummary" }, "can_edit": { "type": "boolean", "x-go-name": "CanEdit" }, "can_edit_until": { "type": "string", "x-go-name": "CanEditUntil" }, "cleanliness_score": { "type": "number", "format": "double", "x-go-name": "CleanlinessScore" }, "communication_score": { "type": "number", "format": "double", "x-go-name": "CommunicationScore" }, "deleted": { "description": "clocks.RfcTime was resulting in 0001-01-01 which I want to avoid. it should be null or a real date", "type": "string", "format": "date-time", "x-go-name": "Deleted" }, "exclude_from_rating": { "type": "boolean", "x-go-name": "ExcludeFromRating" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "images": { "$ref": "#/definitions/DBStringSlice" }, "imported": { "description": "used for imported reviews only", "type": "boolean", "x-go-name": "Imported" }, "listing_score": { "type": "number", "format": "double", "x-go-name": "ListingAccuracyScore" }, "mechanical_score": { "type": "number", "format": "double", "x-go-name": "MechanicalScore" }, "name": { "type": "string", "x-go-name": "Name" }, "outdoorsy_only": { "type": "boolean", "x-go-name": "OutdoorsyOnly" }, "owner": { "$ref": "#/definitions/ReviewOwner" }, "owner_can_respond": { "type": "boolean", "x-go-name": "OwnerCanRespond" }, "owner_response": { "$ref": "#/definitions/OwnerResponseReview" }, "published": { "type": "boolean", "x-go-name": "Published" }, "rental_id": { "type": "integer", "format": "int64" }, "rental_summary": { "$ref": "#/definitions/RentalSummary" }, "rental_tags": { "type": "array", "items": { "$ref": "#/definitions/TagRental" }, "x-go-name": "RentalTags" }, "review_images": { "type": "array", "items": { "$ref": "#/definitions/ReviewImage" }, "x-go-name": "ReviewImages" }, "reviewer": { "$ref": "#/definitions/Reviewer" }, "reviewer_id": { "type": "integer", "format": "int64" }, "score": { "description": "Review Types", "type": "number", "format": "double", "x-go-name": "Score" }, "source_page": { "type": "string", "x-go-name": "SourcePage" }, "tags": { "description": "Tags are saved on tag_rental_join", "type": "array", "items": { "$ref": "#/definitions/Tag" }, "x-go-name": "Tags" }, "text": { "type": "string", "x-go-name": "Text" }, "timestamp": { "type": "string", "x-go-name": "Timestamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_id": { "type": "integer", "format": "int64" }, "user_recommend": { "type": "boolean", "x-go-name": "UserRecommend" }, "value_score": { "type": "number", "format": "double", "x-go-name": "ValueScore" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ReviewImage": { "type": "object", "properties": { "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "id": { "$ref": "#/definitions/ID" }, "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lng": { "type": "number", "format": "double", "x-go-name": "Lng" }, "rental_id": { "type": "string", "x-go-name": "RentalID" }, "review_id": { "type": "string", "x-go-name": "ReviewID" }, "reviewed": { "type": "boolean", "x-go-name": "Reviewed" }, "reviewed_by": { "type": "string", "x-go-name": "ReviewedBy" }, "status": { "type": "string", "x-go-name": "Status" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" }, "url": { "type": "string", "x-go-name": "URL" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ReviewOwner": { "type": "object", "properties": { "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_name": { "type": "string", "x-go-name": "LastName" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ReviewScores": { "type": "object", "properties": { "bayesian_rating": { "type": "number", "format": "double", "x-go-name": "BayesianRating" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ReviewUpdateOptions": { "description": "for swagger docs", "type": "object", "properties": { "cleanliness_score": { "type": "number", "format": "double", "x-go-name": "CleanlinessScore" }, "communication_score": { "type": "number", "format": "double", "x-go-name": "CommunicationScore" }, "images": { "description": "array of urls", "type": "array", "items": { "type": "string" }, "x-go-name": "Images" }, "listing_score": { "type": "number", "format": "double", "x-go-name": "ListingAccuracyScore" }, "mechanical_score": { "type": "number", "format": "double", "x-go-name": "MechanicalScore" }, "owner_response": { "$ref": "#/definitions/OwnerResponseReview" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "tags": { "type": "array", "items": { "$ref": "#/definitions/Tag" }, "x-go-name": "Tags" }, "text": { "description": "reviewer can update these values", "type": "string", "x-go-name": "Text" }, "user_recommend": { "type": "boolean", "x-go-name": "UserRecommend" }, "value_score": { "type": "number", "format": "double", "x-go-name": "ValueScore" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "Reviewer": { "type": "object", "properties": { "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_name": { "type": "string", "x-go-name": "LastName" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ReviewsMeta": { "type": "object", "properties": { "avg_cleanliness_score": { "type": "number", "format": "double", "x-go-name": "AvgCleanlinessScore" }, "avg_communication_score": { "type": "number", "format": "double", "x-go-name": "AvgCommunicationScore" }, "avg_listing_score": { "type": "number", "format": "double", "x-go-name": "AvgListingScore" }, "avg_mechanical_score": { "type": "number", "format": "double", "x-go-name": "AvgMechanicalScore" }, "avg_score": { "type": "number", "format": "double", "x-go-name": "AvgScore" }, "avg_value_score": { "type": "number", "format": "double", "x-go-name": "AvgValueScore" }, "max_score": { "type": "number", "format": "double", "x-go-name": "MaxScore" }, "min_score": { "type": "number", "format": "double", "x-go-name": "MinScore" }, "reviews_count": { "type": "integer", "format": "int64", "x-go-name": "ReviewsCount" }, "time_hosting_msg": { "type": "string", "x-go-name": "TimeHostingMsg" }, "time_hosting_num": { "type": "integer", "format": "int64", "x-go-name": "TimeHostingNum" } }, "x-go-package": "github.com/outdoorsy/api/internal/reviews" }, "RoamlyDeclineFeedback": { "description": "RoamlyDeclineFeedback represents an information about customer decline Roamly feedback", "type": "object", "properties": { "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "modal_version": { "type": "string", "x-go-name": "ModalVersion" }, "owner_email": { "type": "string", "x-go-name": "OwnerEmail" }, "owner_phone": { "type": "string", "x-go-name": "OwnerPhone" }, "owner_user_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "response_text": { "type": "string", "x-go-name": "ResponseText" }, "why_not_interested": { "type": "string", "x-go-name": "WhyNotInterested" } }, "x-go-package": "github.com/outdoorsy/api/internal/roamly_decline_feedback" }, "Role": { "type": "object", "properties": { "active": { "type": "boolean", "x-go-name": "Active" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "owner_user_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "permissions": { "type": "array", "items": { "$ref": "#/definitions/RolePermission" }, "x-go-name": "Permissions" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" } }, "x-go-package": "github.com/outdoorsy/api/internal/role" }, "RolePermission": { "type": "object", "properties": { "can_create": { "type": "boolean", "x-go-name": "CanCreate" }, "can_delete": { "type": "boolean", "x-go-name": "CanDelete" }, "can_read": { "type": "boolean", "x-go-name": "CanRead" }, "can_update": { "type": "boolean", "x-go-name": "CanUpdate" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "label": { "type": "string", "x-go-name": "Label" }, "name": { "type": "string", "x-go-name": "Name" }, "permission_id": { "type": "integer", "format": "int64", "x-go-name": "PermissionID" }, "role_id": { "type": "integer", "format": "int64", "x-go-name": "RoleID" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" } }, "x-go-package": "github.com/outdoorsy/api/internal/role_permission" }, "SSO": { "type": "object", "properties": { "auth_url": { "type": "string", "x-go-name": "AuthURL" }, "client_id": { "type": "string", "x-go-name": "ClientID" }, "client_secret": { "type": "string", "x-go-name": "ClientSecret" }, "token_url": { "type": "string", "x-go-name": "TokenURL" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "ScheduledEmailsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/scheduledEmailsDataResponse" }, "meta": { "$ref": "#/definitions/scheduledEmailsMetaResponse" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "SearchBooking": { "type": "object", "properties": { "created": { "type": "string" }, "dealer_minimum_days": { "type": "integer", "format": "uint64", "x-go-name": "DealerMinimumDays" }, "from": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "is_request_less_than_minimum_days": { "type": "boolean", "x-go-name": "IsRequestLessThanMinimumDays" }, "num_reservations": { "type": "integer", "format": "int64", "x-go-name": "NumReservations" }, "owner_approved": { "type": "boolean", "x-go-name": "OwnerApproved" }, "owner_read": { "type": "boolean", "x-go-name": "OwnerRead" }, "rental_category": { "type": "string", "x-go-name": "RentalCategory" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "rental_name": { "type": "string", "x-go-name": "RentalName" }, "renter_approved": { "type": "boolean", "x-go-name": "RenterApproved" }, "renter_first_name": { "type": "string", "x-go-name": "RenterFirstName" }, "renter_id": { "type": "integer", "format": "int64", "x-go-name": "RenterID" }, "renter_last_name": { "type": "string", "x-go-name": "RenterLastName" }, "status": { "type": "string", "x-go-name": "Status" }, "to": { "type": "string" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "undelivered_emails_count": { "type": "integer", "format": "uint64", "x-go-name": "UndeliveredEmailsCount" }, "updated": { "type": "string" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchBookingsMeta": { "type": "object", "properties": { "abandoned": { "$ref": "#/definitions/SearchBookingsMetaCount" }, "cancelled": { "$ref": "#/definitions/SearchBookingsMetaCount" }, "expired": { "$ref": "#/definitions/SearchBookingsMetaCount" }, "pending": { "$ref": "#/definitions/SearchBookingsMetaCount" }, "returned": { "$ref": "#/definitions/SearchBookingsMetaCount" }, "upcoming": { "$ref": "#/definitions/SearchBookingsMetaCount" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchBookingsMetaCount": { "type": "object", "properties": { "status_count": { "$ref": "#/definitions/BookingsStatusCount" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchBookingsResponse": { "type": "object", "properties": { "bookings": { "type": "array", "items": { "$ref": "#/definitions/SearchBooking" }, "x-go-name": "Bookings" }, "meta": { "$ref": "#/definitions/SearchBookingsMeta" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchFilters": { "type": "object", "properties": { "festival_friendly": { "type": "boolean", "x-go-name": "FestivalFriendly" }, "make": { "type": "string", "x-go-name": "Make" }, "model": { "type": "array", "items": { "type": "string" }, "x-go-name": "Model" }, "pet_friendly": { "type": "boolean", "x-go-name": "PetFriendly" }, "smoking_allowed": { "type": "boolean", "x-go-name": "SmokingAllowed" }, "tailgate_friendly": { "type": "boolean", "x-go-name": "TailgateFriendly" }, "towing_capacity": { "type": "integer", "format": "int64", "x-go-name": "TowingCapacity" }, "towing_vehicle_make": { "type": "string", "x-go-name": "TowingVehicleMake" }, "towing_vehicle_model": { "type": "string", "x-go-name": "TowingVehicleModel" }, "towing_vehicle_year": { "type": "integer", "format": "int64", "x-go-name": "TowingVehicleYear" }, "travelers": { "type": "integer", "format": "int64", "x-go-name": "Travelers" }, "year_max": { "type": "integer", "format": "int64", "x-go-name": "YearMax" }, "year_min": { "type": "integer", "format": "int64", "x-go-name": "YearMin" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "SearchMetaCountResponse": { "type": "object", "properties": { "bookings_with_requested_change": { "type": "integer", "format": "int64", "x-go-name": "BookingsWithRequestedChange" }, "rentals_with_rejected_image": { "type": "integer", "format": "int64", "x-go-name": "RentalsWithRejectedImage" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchParentBookingItem": { "type": "object", "properties": { "bookings_count": { "type": "integer", "format": "int64", "x-go-name": "BookingsCount" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "display_status": { "type": "string", "x-go-name": "DisplayStatus" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "notes": { "type": "string", "x-go-name": "Notes" }, "purpose": { "type": "string", "x-go-name": "Purpose" }, "status": { "type": "string", "x-go-name": "Status" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchParentBookingsMeta": { "type": "object", "properties": { "limit": { "type": "integer", "format": "int64", "x-go-name": "Limit" }, "offset": { "type": "integer", "format": "int64", "x-go-name": "Offset" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchParentBookingsResponse": { "type": "object", "properties": { "meta": { "$ref": "#/definitions/SearchParentBookingsMeta" }, "parent_bookings": { "type": "array", "items": { "$ref": "#/definitions/SearchParentBookingItem" }, "x-go-name": "ParentBookings" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchRental": { "type": "object", "properties": { "children_count": { "type": "integer", "format": "int64", "x-go-name": "ChildrenCount" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "has_rejected_image": { "type": "boolean", "x-go-name": "HasRejectedImage" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "internal_id": { "type": "string", "x-go-name": "InternalID" }, "length": { "type": "number", "format": "double", "x-go-name": "Length" }, "location_id": { "type": "integer", "format": "int64", "x-go-name": "LocationID" }, "location_name": { "type": "string", "x-go-name": "LocationName" }, "make": { "type": "string", "x-go-name": "Make" }, "model": { "type": "string", "x-go-name": "Model" }, "name": { "type": "string", "x-go-name": "Name" }, "parent_id": { "type": "integer", "format": "int64", "x-go-name": "ParentID" }, "primary_image_id": { "type": "integer", "format": "int64", "x-go-name": "PrimaryImageID" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageURL" }, "published": { "type": "boolean", "x-go-name": "Published" }, "type": { "type": "string", "x-go-name": "Type" }, "vin": { "type": "string", "x-go-name": "VIN" }, "year": { "type": "integer", "format": "int64", "x-go-name": "Year" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchRentalGroup": { "type": "object", "properties": { "count": { "type": "integer", "format": "int64", "x-go-name": "Count" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchRentalsMeta": { "type": "object", "properties": { "categories": { "type": "array", "items": { "$ref": "#/definitions/SearchRentalGroup" }, "x-go-name": "Categories" }, "makes": { "type": "array", "items": { "$ref": "#/definitions/SearchRentalGroup" }, "x-go-name": "Makes" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "types": { "type": "array", "items": { "$ref": "#/definitions/SearchRentalGroup" }, "x-go-name": "Types" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SearchRentalsResponse": { "type": "object", "properties": { "meta": { "$ref": "#/definitions/SearchRentalsMeta" }, "rentals": { "type": "array", "items": { "$ref": "#/definitions/SearchRental" }, "x-go-name": "Rentals" } }, "x-go-package": "github.com/outdoorsy/api/internal/search" }, "SecurityDepositCharge": { "type": "object", "properties": { "card_id": { "type": "integer", "format": "int64", "x-go-name": "CardID" }, "card_token": { "type": "string", "x-go-name": "CardToken" }, "method": { "type": "string", "x-go-name": "Method" }, "payment_intent_id": { "type": "string", "x-go-name": "PaymentIntentID" }, "payment_meta": { "$ref": "#/definitions/DBInterfaceMap" }, "payment_source": { "type": "string", "x-go-name": "PaymentSource" } }, "x-go-package": "github.com/outdoorsy/api/libs/payment" }, "SecurityDepositPostTripCharges": { "type": "object", "properties": { "miscellaneous_charges": { "$ref": "#/definitions/MiscellaneousCharges" }, "paid_on_return_addons_for_charge": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "PaidOnReturnAddonsForCharge" }, "penalties": { "type": "array", "items": { "$ref": "#/definitions/PenaltyPostTripCharge" }, "x-go-name": "Penalties" }, "unexpected_post_trip_charges": { "type": "array", "items": { "$ref": "#/definitions/UnexpectedPostTripCharge" }, "x-go-name": "UnexpectedPostTripCharges" } }, "x-go-package": "github.com/outdoorsy/api/internal/sd_post_trip_charges" }, "ServiceIntegration": { "type": "object", "properties": { "active": { "type": "boolean", "x-go-name": "Active" }, "allow_dealer_premium": { "type": "boolean", "x-go-name": "AllowDealerPremium" }, "allow_dealer_to_require": { "type": "boolean", "x-go-name": "AllowDealerToRequire" }, "allow_owner_premium": { "type": "boolean", "x-go-name": "AllowOwnerPremium" }, "auth_token": { "type": "string", "x-go-name": "AuthToken" }, "booking_disabled": { "type": "boolean", "x-go-name": "BookingDisabled" }, "booking_id": { "type": "integer", "format": "int64", "x-go-name": "BookingID" }, "category": { "type": "string", "x-go-name": "Category" }, "charge_to": { "type": "string", "x-go-name": "ChargeTo" }, "countries": { "$ref": "#/definitions/DBStringSlice" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "current_data": { "$ref": "#/definitions/DBInterfaceMap" }, "dealer": { "description": "Calculated based on active Booking Services", "type": "boolean", "x-go-name": "Dealer" }, "dealer_default_enabled": { "type": "boolean", "x-go-name": "DealerDefaultEnabled" }, "dealer_flat_split": { "type": "integer", "format": "int64", "x-go-name": "DealerFlatSplit" }, "dealer_percent": { "type": "number", "format": "double", "x-go-name": "DealerPercent" }, "dealer_percent_split": { "type": "number", "format": "double", "x-go-name": "DealerPercentSplit" }, "dealer_percent_type": { "type": "string", "x-go-name": "DealerPercentType" }, "dealer_price": { "type": "integer", "format": "int64", "x-go-name": "DealerPrice" }, "dealer_price_type": { "type": "string", "x-go-name": "DealerPriceType" }, "dealer_qualifies": { "type": "boolean", "x-go-name": "DealerQualifies" }, "dealer_split_type": { "type": "string", "x-go-name": "DealerSplitType" }, "default_enabled": { "type": "boolean", "x-go-name": "DefaultEnabled" }, "description": { "type": "string", "x-go-name": "Description" }, "details": { "$ref": "#/definitions/ServiceIntegrationDetails" }, "hide_from_dealer": { "type": "boolean", "x-go-name": "HideFromDealer" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "is_taxable": { "type": "boolean", "x-go-name": "IsTaxable" }, "lock_on_booking_status": { "type": "string", "x-go-name": "LockOnBookingStatus" }, "minimum_vehicle_year": { "type": "integer", "format": "int64", "x-go-name": "MinimumVehicleYear" }, "missing_fields": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } }, "x-go-name": "MissingFields" }, "name": { "type": "string", "x-go-name": "Name" }, "owner_percent": { "type": "number", "format": "double", "x-go-name": "OwnerPercent" }, "owner_percent_type": { "type": "string", "x-go-name": "OwnerPercentType" }, "owner_price": { "type": "integer", "format": "int64", "x-go-name": "OwnerPrice" }, "owner_price_type": { "type": "string", "x-go-name": "OwnerPriceType" }, "qualified": { "type": "boolean", "x-go-name": "Qualified" }, "regions": { "$ref": "#/definitions/DBStringSlice" }, "renter_region_exclusions": { "$ref": "#/definitions/DBStringSlice" }, "required": { "type": "boolean", "x-go-name": "Required" }, "required_fields": { "$ref": "#/definitions/DBStringSlice" }, "roamly_weather_quote": { "$ref": "#/definitions/DBInterfaceMap" }, "service_data": { "$ref": "#/definitions/DBInterfaceMap" }, "service_endpoint": { "type": "string", "x-go-name": "ServiceEndpoint" }, "slug": { "type": "string", "x-go-name": "Slug" }, "support_phone": { "type": "string", "x-go-name": "SupportPhone" }, "tax_amount": { "type": "integer", "format": "int64", "x-go-name": "TaxAmount" }, "tax_rate_ids": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "TaxRateIDs" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_disabled": { "type": "boolean", "x-go-name": "UserDisabled" }, "user_premium": { "type": "integer", "format": "int64", "x-go-name": "UserPremium" }, "user_required": { "type": "boolean", "x-go-name": "UserRequired" }, "vehicle_types": { "$ref": "#/definitions/DBStringSlice" } }, "x-go-package": "github.com/outdoorsy/api/integrations" }, "ServiceIntegrationDetails": { "type": "object", "properties": { "features": { "type": "array", "items": { "$ref": "#/definitions/ServiceIntegrationFeature" }, "x-go-name": "Features" } }, "x-go-package": "github.com/outdoorsy/api/integrations" }, "ServiceIntegrationFeature": { "type": "object", "properties": { "description": { "type": "string", "x-go-name": "Description" } }, "x-go-package": "github.com/outdoorsy/api/integrations" }, "SetPercentUptake": { "type": "object", "properties": { "bundle_id": { "type": "string", "x-go-name": "BundleID" }, "percent_uptake_drivable": { "type": "number", "format": "double", "x-go-name": "PercentDrivable" }, "percent_uptake_towable": { "type": "number", "format": "double", "x-go-name": "PercentTowable" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" } }, "x-go-package": "github.com/outdoorsy/api/internal/bundle" }, "SiblingBooking": { "description": "SiblingBooking embedded struct to get around Booking struct issues where we only render the first\ninstance in the response then simply render the booking ID.\nSee `func (b *Booking) ResponseElementData(options objx.Map)` for more details.", "type": "object", "properties": { "abandoned": { "type": "boolean", "x-go-name": "Abandoned" }, "addons": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "Addons" }, "adults": { "type": "integer", "format": "int64", "x-go-name": "Adults" }, "affirm_details": { "$ref": "#/definitions/AffirmDetails" }, "affirm_total": { "description": "Dynamically calculated. Not stored in DB", "type": "integer", "format": "int64", "x-go-name": "AffirmTotal" }, "applicable_tos_version": { "type": "string", "x-go-name": "ApplicableToSVersion" }, "attention": { "type": "array", "items": { "$ref": "#/definitions/AttentionItem" }, "x-go-name": "Attention" }, "auto_assign_group": { "type": "boolean", "nullable": true }, "auto_insurance_type": { "type": "string", "x-go-name": "AutoInsuranceType" }, "bid_id": { "type": "integer", "format": "int64", "x-go-name": "BidID" }, "block_discount_code": { "type": "boolean", "x-go-name": "BlockDiscountCode" }, "booked": { "description": "Not Mutable", "type": "string", "x-go-name": "Booked", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "booking_agent": { "type": "string", "x-go-name": "BookingAgentID" }, "booking_color": { "type": "string", "nullable": true }, "booking_token": { "type": "string", "x-go-name": "BookingToken" }, "bundle_id": { "description": "calculated field that holds the result of whether the rental has this assigned\nif not, will look at the user/owner", "type": "string", "x-go-name": "BundleID" }, "calculated_day_price": { "type": "integer", "format": "uint64", "x-go-name": "CalculatedDayPrice" }, "calculated_total_paid": { "type": "integer", "format": "uint64", "x-go-name": "CalculatedTotalPaid" }, "campaign": { "description": "dealer only", "type": "string", "x-go-name": "Campaign" }, "campground_booking_url": { "description": "Contains the booking id so ember can call /bookings/:id/default-selections", "type": "string", "x-go-name": "CampgroundBookingURL" }, "campground_data": { "$ref": "#/definitions/SiblingBookingCampgroundData" }, "can_add_ending_generator_values": { "type": "boolean", "x-go-name": "CanAddEndingGeneratorValues" }, "can_add_ending_mileage_values": { "type": "boolean", "x-go-name": "CanAddEndingMileageValues" }, "can_add_starting_generator_values": { "type": "boolean", "x-go-name": "CanAddStartingGeneratorValues" }, "can_add_starting_mileage_values": { "type": "boolean", "x-go-name": "CanAddStartingMileageValues" }, "can_add_trip_protection": { "description": "CanAddTransaction is used to check if the guest can add a trip protection", "type": "boolean", "x-go-name": "CanAddTripProtection" }, "can_apply_credits": { "type": "boolean", "x-go-name": "CanApplyCredits" }, "can_cancel_trip_protection": { "description": "CanCancelTripProtection is used to check if the guest can cancel a trip protection", "type": "boolean", "x-go-name": "CanCancelTripProtection" }, "can_charge_overage_fees": { "type": "boolean", "x-go-name": "CanChargeOverageFees" }, "can_file_claim": { "type": "boolean", "x-go-name": "CanFileClaim" }, "can_generate_weather_quote": { "type": "boolean", "x-go-name": "CanGenerateWeatherQuote" }, "can_manage_security_deposit": { "type": "boolean", "x-go-name": "CanManageSecurityDeposit" }, "can_manage_tax_rates": { "description": "used by dashboard to disable tax editing", "type": "boolean", "x-go-name": "CanManageTaxRates" }, "can_renter_review": { "type": "boolean", "x-go-name": "CanRenterReview" }, "can_renter_review_until": { "type": "string", "x-go-name": "CanRenterReviewUntil" }, "can_see_contract": { "type": "boolean", "x-go-name": "CanSeeContract" }, "can_suggest_date_change": { "type": "boolean", "x-go-name": "CanSuggestDateChange" }, "can_suggest_delivery_change": { "type": "boolean", "x-go-name": "CanSuggestDeliveryChange" }, "cancel_metadata": { "$ref": "#/definitions/CancelMetadata" }, "cancel_policy": { "type": "string", "x-go-name": "CancelPolicy" }, "cancel_reason": { "type": "string", "x-go-name": "CancelReason" }, "canceled": { "type": "string", "x-go-name": "Canceled", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "cancellation_cutoff_date": { "type": "string" }, "cancellation_refund_breakdown": { "$ref": "#/definitions/CancellationRefundBreakdown" }, "cancellation_refund_percentage": { "type": "number", "format": "double", "x-go-name": "CancellationRefundPercentage" }, "cc_fee_percentage": { "description": "Copied rental data - don't want rental changes to affect this booking", "type": "number", "format": "double", "x-go-name": "CCFeePercentage" }, "checkin_stamp": { "description": "Internal", "type": "string", "x-go-name": "CheckinStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "checkout_questions": { "$ref": "#/definitions/DBMSISlice" }, "checkout_stamp": { "type": "string", "x-go-name": "CheckoutStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "checkout_steps_id": { "type": "integer", "format": "int64", "x-go-name": "CheckoutStepsID" }, "children": { "type": "integer", "format": "int64", "x-go-name": "Children" }, "coachnet_id": { "type": "integer", "format": "int64", "x-go-name": "CoachnetID" }, "coachnet_premium": { "type": "integer", "format": "uint64", "x-go-name": "CoachnetPremium" }, "consignment": { "$ref": "#/definitions/bookingConsignment" }, "conversation_id": { "type": "integer", "format": "int64" }, "created": { "type": "string" }, "created_by_id": { "type": "integer", "format": "int64" }, "created_stamp": { "type": "string", "x-go-name": "CreatedStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "custom_insurance_text": { "type": "string", "nullable": true }, "dealer_minimum_days": { "description": "used to display information if a booking is below the dealers minimum days", "type": "integer", "format": "uint64", "x-go-name": "DealerMinimumDays" }, "decline_reason": { "type": "string", "x-go-name": "DeclineReason" }, "default_insurance_coverage": { "type": "string", "x-go-name": "DefaultInsuranceCoverage" }, "deliverable_campground": { "$ref": "#/definitions/ExternalCampground" }, "delivery": { "$ref": "#/definitions/BookingDelivery" }, "delivery_item": { "$ref": "#/definitions/BookingItem" }, "delivery_usage_item": { "x-go-name": "DeliveryUsageItemJSON" }, "delivery_usage_item_id": { "type": "integer", "format": "int64" }, "deposit_percentage": { "type": "number", "format": "double", "x-go-name": "DepositPercentage" }, "destination": { "type": "string", "x-go-name": "Destination" }, "destination_lat": { "type": "number", "format": "double", "x-go-name": "DestinationLat" }, "destination_lng": { "type": "number", "format": "double", "x-go-name": "DestinationLng" }, "details": { "$ref": "#/definitions/DBInterfaceMap" }, "device_id": { "type": "string", "x-go-name": "DeviceID" }, "discount_code": { "description": "Copied discount code data, not allowed in request data.", "type": "string", "x-go-name": "DiscountCode" }, "discount_code_amount": { "type": "integer", "format": "uint64", "x-go-name": "DiscountCodeAmount" }, "discount_code_applied_to": { "type": "string", "x-go-name": "DiscountCodeAppliedTo" }, "discount_code_message": { "type": "string", "x-go-name": "DiscountCodeMessage" }, "display_insurance": { "type": "string", "x-go-name": "DisplayInsurance" }, "display_source": { "type": "string", "x-go-name": "DisplaySource" }, "display_status": { "type": "string", "x-go-name": "DisplayStatus" }, "display_status_style": { "type": "string", "x-go-name": "DisplayStatusStyle" }, "documents": { "$ref": "#/definitions/BookingDocuments" }, "dropoff": { "$ref": "#/definitions/BookingDropoff" }, "duration": { "type": "integer", "format": "uint64", "x-go-name": "Duration" }, "esign_enabled": { "type": "boolean", "x-go-name": "EsignEnabled" }, "esign_pending": { "type": "boolean", "x-go-name": "EsignPending" }, "expire_reason": { "type": "string", "x-go-name": "ExpireReason" }, "express_checkout_id": { "type": "integer", "format": "int64", "x-go-name": "ExpressCheckoutID" }, "external": { "type": "boolean", "nullable": true }, "external_gift_card_details": { "$ref": "#/definitions/ExternalGiftCardDetails" }, "external_gift_card_details_v2": { "type": "array", "items": { "$ref": "#/definitions/ExternalGiftCardDetails" }, "x-go-name": "ExternalGiftCardDetailsV2" }, "fees_locked": { "type": "boolean", "x-go-name": "FeesLocked" }, "fees_total": { "type": "integer", "format": "uint64", "x-go-name": "FeesTotal" }, "final_payment_due_days": { "type": "integer", "format": "int64", "x-go-name": "FinalPaymentDueDays" }, "followup_archived": { "type": "boolean", "x-go-name": "FollowupArchived" }, "formatted": { "$ref": "#/definitions/BookingDisplayFormatted" }, "formatted_total_overage_fee": { "type": "string", "x-go-name": "FormattedTotalOverageFee" }, "fraudulent": { "type": "boolean", "x-go-name": "Fraudulent" }, "free_cancellation_available": { "type": "boolean", "x-go-name": "FreeCancellationAvailable" }, "free_cancellation_period": { "type": "integer", "format": "int64", "x-go-name": "FreeCancellationPeriod" }, "from": { "type": "string" }, "from_time": { "type": "integer", "format": "int64", "x-go-name": "FromTime" }, "fx_fee_paid": { "type": "integer", "format": "int64", "x-go-name": "FXFeePaid" }, "generator": { "$ref": "#/definitions/BookingGenerator" }, "generator_item": { "$ref": "#/definitions/BookingItem" }, "generator_usage_item": { "x-go-name": "GeneratorUsageItemJSON" }, "generator_usage_item_id": { "type": "integer", "format": "int64" }, "grace_period_ends_at": { "type": "string", "x-go-name": "GracePeriodEndsAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "handoff_summary": { "$ref": "#/definitions/BookingHandoff" }, "has_approved_drivers": { "type": "boolean", "x-go-name": "HasApprovedDrivers" }, "has_setup_intent_enabled": { "type": "boolean", "x-go-name": "HasSetupIntentEnabled" }, "hold_sales_tax": { "type": "boolean", "x-go-name": "HoldSalesTax" }, "house_rules": { "type": "string", "x-go-name": "HouseRules" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "import_id": { "type": "string", "x-go-name": "ImportID" }, "imported": { "description": "owner only", "type": "boolean", "x-go-name": "Imported" }, "include_coachnet": { "type": "boolean", "x-go-name": "IncludeCoachnet" }, "infants": { "type": "integer", "format": "int64", "x-go-name": "Infants" }, "initial_duration": { "type": "integer", "format": "uint64", "x-go-name": "InitialDuration" }, "instamatch": { "type": "boolean", "nullable": true }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "insurance": { "type": "string", "x-go-name": "Insurance" }, "insurance_approved": { "type": "boolean", "x-go-name": "InsuranceApproved" }, "insurance_approved_timestamp": { "type": "string", "x-go-name": "InsuranceApprovedTimeStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "insurance_approved_updated_timestamp": { "type": "string", "x-go-name": "InsuranceApprovedUpdateTimeStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "insurance_bundle": { "description": "Using an interface{} to avoid import cycle and from having to move structs into the models package.", "x-go-name": "BookingBundle" }, "insurance_claim_filed": { "type": "boolean", "x-go-name": "InsuranceClaimFiled" }, "insurance_coverage": { "type": "string", "x-go-name": "InsuranceCoverage" }, "insurance_plan_id": { "$ref": "#/definitions/Plan" }, "insurance_renter_adjustable": { "type": "boolean", "x-go-name": "InsuranceRenterAdjustable" }, "internal_notes": { "type": "string", "x-go-name": "InternalNotes" }, "is_request_less_than_minimum_days": { "type": "boolean", "x-go-name": "IsRequestLessThanMinimumDays" }, "is_within_grace_period": { "type": "boolean", "x-go-name": "IsWithinGracePeriod" }, "items": { "description": "Items, calculations, payouts and fees", "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "Items" }, "locale": { "$ref": "#/definitions/BookingLocale" }, "location_id": { "type": "integer", "format": "int64", "x-go-name": "LocationID" }, "locked": { "type": "boolean", "x-go-name": "Locked" }, "loyalty_credit_issued": { "type": "boolean", "x-go-name": "LoyaltyCreditIssued" }, "loyalty_rewards_eligible": { "type": "boolean", "x-go-name": "LoyaltyRewardsEligible" }, "medium": { "type": "string", "x-go-name": "Medium" }, "metadata": { "$ref": "#/definitions/DBInterfaceMap" }, "mileage": { "$ref": "#/definitions/BookingMileage" }, "mileage_item": { "$ref": "#/definitions/BookingItem" }, "mileage_usage_item": { "x-go-name": "MileageUsageItemJSON" }, "mileage_usage_item_id": { "type": "integer", "format": "int64" }, "minimum_deposit": { "type": "integer", "format": "uint64", "x-go-name": "MinimumDeposit" }, "missing_data": { "type": "array", "items": { "type": "string" }, "x-go-name": "MissingData" }, "missing_requirements": { "type": "object", "additionalProperties": { }, "x-go-name": "MissingRequirements" }, "mutual_cancellation": { "type": "boolean", "x-go-name": "MutualCancellation" }, "non_refundable_total": { "description": "NonRefundableTotal is the total amount that cannot be refunded to the\nrenter. Trip Insurance that has been started is an example of something\nthat would be added to this total", "type": "integer", "format": "int64", "x-go-name": "NonRefundableTotal" }, "offer_affirm": { "type": "boolean", "x-go-name": "OfferAffirm" }, "offer_insurance": { "type": "boolean", "x-go-name": "OfferInsurance" }, "offer_paypal_pay_later": { "type": "boolean", "x-go-name": "OfferPayPalPayLater" }, "offer_roadside": { "type": "boolean", "x-go-name": "OfferRoadside" }, "original_booking_source": { "type": "string", "x-go-name": "OriginalBookingSource" }, "original_day_price": { "type": "integer", "format": "uint64", "x-go-name": "OriginalDayPrice" }, "original_security_deposit": { "type": "integer", "format": "uint64", "x-go-name": "OriginalSecurityDeposit" }, "original_security_deposit_v2": { "type": "integer", "format": "uint64", "x-go-name": "OriginalSecurityDeposit_v2" }, "original_service_fee": { "description": "renter only", "type": "integer", "format": "uint64", "x-go-name": "OriginalServiceFee" }, "outdoorsy_fee": { "type": "integer", "format": "uint64", "x-go-name": "RenterIntegrationsFee" }, "outdoorsy_remitted_taxes": { "type": "integer", "format": "uint64", "x-go-name": "OutdoorsyRemittedTaxes" }, "overage_fee_collected": { "type": "boolean", "x-go-name": "OverageFeeCollected" }, "overage_fee_expired": { "type": "boolean", "x-go-name": "OverageFeeExpired" }, "overage_fee_section_display": { "type": "boolean", "x-go-name": "OverageFeeSectionDisplay" }, "owner_addon_total": { "description": "Sum of all addons (booking items from rental_item parent_item_type)", "type": "integer", "format": "int64", "x-go-name": "OwnerAddonTotal" }, "owner_approval_attempted": { "type": "boolean", "nullable": true }, "owner_approved": { "type": "boolean", "x-go-name": "OwnerApproved" }, "owner_approved_at": { "type": "string", "x-go-name": "OwnerApprovedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "owner_archived": { "type": "boolean", "x-go-name": "OwnerArchived" }, "owner_credits_applied": { "type": "integer", "format": "uint64", "x-go-name": "OwnerCreditsApplied" }, "owner_did_review": { "type": "boolean", "x-go-name": "OwnerDidReview" }, "owner_fee": { "type": "integer", "format": "uint64", "x-go-name": "OwnerFee" }, "owner_fee_aggregate_percentage": { "description": "aggregate percentage for all owner fee services that we apply - for UI purpouses", "type": "number", "format": "double", "x-go-name": "OwnerFeeAggregatePercentage" }, "owner_fee_minimum_enforced": { "description": "Owner fee minimum enforced", "type": "boolean", "x-go-name": "OwnerFeeMinimumEnforced" }, "owner_fee_minimum_per_night": { "description": "Owner fee minimum per night", "type": "integer", "format": "uint64", "x-go-name": "OwnerFeeMinimumPerNight" }, "owner_fee_on_renter_cancellation": { "description": "Cancellation payout details - populated for owner/admin when status is renter_cancelled\nEnables the host dashboard cancellation payout breakdown modal (MP-4959)", "type": "integer", "format": "int64", "x-go-name": "OwnerFeeOnRenterCancellation" }, "owner_fee_percentage": { "type": "number", "format": "double", "x-go-name": "OwnerFeePercentage" }, "owner_fee_percentage_record": { "type": "number", "format": "double", "x-go-name": "OwnerFeePercentageRecord" }, "owner_fees": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" }, "x-go-name": "OwnerFees" }, "owner_id": { "type": "integer", "format": "int64" }, "owner_insurance_claim_filed": { "type": "boolean", "x-go-name": "OwnerInsuranceClaimFiled" }, "owner_insurance_fee_total": { "type": "integer", "format": "int64", "x-go-name": "OwnerInsuranceFeeTotal" }, "owner_integrations_fee": { "type": "integer", "format": "int64", "nullable": true }, "owner_payout": { "type": "integer", "format": "uint64", "x-go-name": "OwnerPayout" }, "owner_payout_adjustment": { "type": "integer", "format": "int64", "x-go-name": "OwnerPayoutAdjustment" }, "owner_payout_with_claim_adjustments": { "description": "OwnerPayout + Claim adjustments if any", "type": "integer", "format": "uint64", "x-go-name": "OwnerPayoutWithClaimAdjustments" }, "owner_read": { "type": "boolean", "x-go-name": "OwnerRead" }, "owner_summary": { "x-go-name": "OwnerSummary" }, "owner_total": { "type": "integer", "format": "int64", "x-go-name": "OwnerTotal" }, "owner_total_without_tax": { "description": "OwnerTotal - Tax (subtotal)", "type": "integer", "format": "int64", "x-go-name": "OwnerTotalWithoutTax" }, "parent_booking_id": { "type": "integer", "format": "int64", "nullable": true }, "partner_app": { "$ref": "#/definitions/PartnerApp" }, "payment_processor": { "$ref": "#/definitions/PaymentProcessor" }, "payout_actual_transfer_amount": { "description": "booking transfers summary", "type": "integer", "format": "int64", "x-go-name": "PayoutActualTransferAmount" }, "pending_transactions": { "type": "array", "items": { "$ref": "#/definitions/PendingTransaction" }, "x-go-name": "PendingTransactions" }, "personal_insurance_verification": { "type": "boolean", "x-go-name": "PersonalInsuranceVerification" }, "personal_insurance_verification_status": { "type": "string", "x-go-name": "PersonalInsuranceVerificationStatus" }, "pets": { "type": "integer", "format": "int64", "x-go-name": "Pets" }, "pickup": { "$ref": "#/definitions/BookingPickup" }, "premium_total": { "type": "integer", "format": "uint64", "x-go-name": "PremiumTotal" }, "prep_fee_item": { "$ref": "#/definitions/BookingItem" }, "presentment_currency": { "type": "string", "x-go-name": "PresentmentCurrency" }, "processor_name": { "$ref": "#/definitions/PaymentProcessorName" }, "proposals": { "type": "array", "items": { "$ref": "#/definitions/Proposal" }, "x-go-name": "Proposals" }, "provide_insurance_binder": { "type": "boolean", "x-go-name": "ProvideInsuranceBinder" }, "raf_waiver_summary": { "$ref": "#/definitions/RAFWaiverSummary" }, "reason": { "type": "string", "nullable": true }, "referred_owner_paid": { "type": "boolean", "x-go-name": "ReferredOwnerPaid" }, "referred_owner_payout_amount": { "type": "integer", "format": "uint64", "x-go-name": "ReferredOwnerPayoutAmount" }, "referred_renter_paid": { "type": "boolean", "x-go-name": "ReferredRenterPaid" }, "referred_renter_payout_amount": { "type": "integer", "format": "uint64", "x-go-name": "ReferredRenterPayoutAmount" }, "refund_options": { "$ref": "#/definitions/BookingRefundOptions" }, "remainder_amount": { "type": "integer", "format": "uint64", "x-go-name": "RemainderAmount" }, "remainder_due_date": { "type": "string" }, "remaining_days_to_cancellation_cutoff": { "type": "integer", "format": "int64", "x-go-name": "RemainingDaysToCancellationCutoff" }, "rental_amount_item": { "$ref": "#/definitions/BookingItem" }, "rental_charge_card_id": { "type": "integer", "format": "int64", "x-go-name": "RentalChargeCardID" }, "rental_id": { "type": "integer", "format": "int64" }, "rental_summary": { "description": "partial objects", "x-go-name": "RentalSummary" }, "renter_age": { "type": "integer", "format": "int64", "x-go-name": "RenterAge" }, "renter_approved": { "type": "boolean", "x-go-name": "RenterApproved" }, "renter_approved_at": { "type": "string", "x-go-name": "RenterApprovedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "renter_archived": { "type": "boolean", "x-go-name": "RenterArchived" }, "renter_can_waive_insurance": { "type": "boolean", "x-go-name": "RenterCanWaiveInsurance" }, "renter_credits_applied": { "type": "integer", "format": "uint64", "x-go-name": "RenterCreditsApplied" }, "renter_destination_data": { "$ref": "#/definitions/RenterDestinationData" }, "renter_did_review": { "type": "boolean", "x-go-name": "RenterDidReview" }, "renter_fee_percentage": { "type": "number", "format": "double", "x-go-name": "RenterFeePercentage" }, "renter_fee_percentage_record": { "type": "number", "format": "double", "x-go-name": "RenterFeePercentageRecord" }, "renter_id": { "type": "integer", "format": "int64" }, "renter_insurance_claim_filed": { "type": "boolean", "x-go-name": "RenterInsuranceClaimFiled" }, "renter_insurance_fee_total": { "type": "integer", "format": "int64", "x-go-name": "RenterInsuranceFeeTotal" }, "renter_payment_details": { "$ref": "#/definitions/renterPaymentDetails" }, "renter_read": { "type": "boolean", "x-go-name": "RenterRead" }, "renter_summary": { "x-go-name": "RenterSummary" }, "require_booking_time": { "type": "boolean", "x-go-name": "RequireBookingTime" }, "require_dmv_check": { "type": "boolean", "x-go-name": "RequireDMVCheckJSON" }, "require_drivers": { "type": "boolean", "x-go-name": "RequireDMVCheck" }, "require_insurance": { "type": "boolean", "x-go-name": "RequireInsurance" }, "require_renter_id_verification": { "type": "boolean", "x-go-name": "RequireRenterIDVerification" }, "require_roadside": { "type": "boolean", "x-go-name": "RequireRoadside" }, "reserve_amount": { "type": "integer", "format": "uint64", "x-go-name": "ReserveAmount" }, "reserve_amount_after_credits": { "type": "integer", "format": "int64", "x-go-name": "ReserveAmountAfterCredits" }, "revenue_summary": { "$ref": "#/definitions/RevenueSummary" }, "reviews": { "type": "array", "items": { "$ref": "#/definitions/Review" }, "x-go-name": "Reviews" }, "sd_post_trip_charges_data": { "$ref": "#/definitions/DBInterfaceMap" }, "sd_post_trip_charges_enabled": { "type": "boolean", "x-go-name": "SDPostTripChargesEnabled" }, "search_filters": { "$ref": "#/definitions/SearchFilters" }, "security_deposit": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDeposit" }, "security_deposit_card_id": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositCardID" }, "security_deposit_claimed_amount": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDepositClaimedAmount" }, "security_deposit_due_date": { "type": "string" }, "security_deposit_due_days": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositDueDays" }, "security_deposit_payout_amount": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositPayoutAmount" }, "security_deposit_refund_amount": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDepositRefundAmount" }, "security_deposit_remaining": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDepositRemaining" }, "security_deposit_reversable": { "type": "integer", "format": "uint64", "x-go-name": "SecurityDepositReversable" }, "security_deposit_status": { "type": "string", "x-go-name": "SecurityDepositStatus" }, "service_fee": { "type": "integer", "format": "uint64", "x-go-name": "ServiceFee" }, "service_fee_tax_rates": { "type": "array", "items": { "$ref": "#/definitions/BookingTaxRate" }, "x-go-name": "ServiceFeeTaxRates" }, "services": { "type": "array", "items": { "$ref": "#/definitions/BookingService" }, "x-go-name": "Services" }, "session_id": { "type": "string", "x-go-name": "SessionID" }, "sibling_booking_group_id": { "type": "integer", "format": "int64", "nullable": true }, "sibling_bookings_totals": { "$ref": "#/definitions/SiblingTotals" }, "siblings": { "$ref": "#/definitions/SiblingBookings" }, "source": { "type": "string", "x-go-name": "Source" }, "special_insurance_case": { "type": "boolean", "x-go-name": "SpecialInsuranceCase" }, "stage": { "type": "string", "x-go-name": "Stage" }, "status": { "type": "string", "x-go-name": "Status" }, "subtotal": { "type": "integer", "format": "uint64", "x-go-name": "Subtotal" }, "subtotal_with_claim_adjustments": { "description": "Booking subtotal with claim adjustments", "type": "integer", "format": "uint64", "x-go-name": "SubtotalWithClaimAdjustments" }, "support_status": { "type": "string", "x-go-name": "SupportStatus" }, "system_generated": { "type": "boolean", "x-go-name": "SystemGenerated" }, "tax": { "type": "integer", "format": "uint64", "x-go-name": "Tax" }, "tax_rates": { "$ref": "#/definitions/TaxRateTotalItems" }, "tiered_owner_fee_percentage": { "type": "number", "format": "double", "x-go-name": "TieredOwnerFeePercentage" }, "tiered_renter_fee_percentage": { "type": "number", "format": "double", "x-go-name": "TieredRenterFeePercentage" }, "time_to_first_action": { "type": "integer", "format": "int64", "x-go-name": "TimeToFirstAction" }, "timeline": { "type": "array", "items": { "$ref": "#/definitions/TimelineItem" }, "x-go-name": "Timeline" }, "timeline_data": { "$ref": "#/definitions/TimelineData" }, "to": { "type": "string" }, "to_time": { "type": "integer", "format": "int64", "x-go-name": "ToTime" }, "tollspot_monitor_id": { "type": "integer", "format": "int64", "x-go-name": "TollspotMonitorID" }, "total": { "type": "integer", "format": "uint64", "x-go-name": "Total" }, "total_after_credits": { "type": "integer", "format": "uint64", "x-go-name": "TotalAfterCredits" }, "total_after_deductions": { "description": "the total amount that we will take from user card/paypal account for a given booking\ndeprecated use TotalAfterCredits", "type": "integer", "format": "uint64", "x-go-name": "TotalAfterDeductions" }, "total_cc_fees": { "type": "integer", "format": "uint64", "x-go-name": "TotalCCFees" }, "total_overage_fee_amount": { "type": "integer", "format": "int64", "x-go-name": "TotalOverageFeeAmount" }, "total_owner_federal_withholding_tax": { "type": "integer", "format": "int64", "x-go-name": "TotalOwnerFederalWithholdingTax" }, "total_owner_quebec_sales_tax": { "type": "integer", "format": "int64", "x-go-name": "TotalOwnerQuebecSalesTax" }, "total_paid": { "type": "integer", "format": "uint64", "x-go-name": "TotalPaid" }, "total_paid_with_claim_adjustments": { "description": "For admin portal current rental paid = booking total_paind + claim adjustments", "type": "integer", "format": "uint64", "x-go-name": "TotalPaidWithClaimAdjustments" }, "total_security_deposit_cc_fees": { "type": "integer", "format": "int64", "x-go-name": "TotalSecurityDepositCCFees" }, "total_with_claim_adjustments": { "description": "For renter payment detals = total_after_credits (or booking total if not present) + claim adjustments", "type": "integer", "format": "uint64", "x-go-name": "TotalWithClaimAdjustments" }, "transactions": { "type": "array", "items": { "$ref": "#/definitions/Transaction" }, "x-go-name": "Transactions" }, "travel_to_states": { "type": "array", "items": { "type": "string" }, "x-go-name": "TravelToStates" }, "traveler_type": { "type": "string", "x-go-name": "TravelerType" }, "travelers": { "type": "integer", "format": "int64", "x-go-name": "Travelers" }, "trip_credits_disabled": { "type": "boolean", "x-go-name": "TripCreditsDisabled" }, "trip_summary": { "$ref": "#/definitions/TripSummary" }, "unclaimed_fees": { "type": "integer", "format": "uint64", "x-go-name": "UnclaimedFees" }, "undelivered_emails_count": { "type": "integer", "format": "uint64", "x-go-name": "UndeliveredEmailsCount" }, "update_warnings": { "type": "array", "items": { "type": "string" }, "x-go-name": "UpdateWarnings" }, "updated": { "type": "string" }, "updated_stamp": { "type": "string", "x-go-name": "UpdatedStamp", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "use_custom_tax_rates": { "type": "boolean", "x-go-name": "UseCustomTaxRates" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" }, "use_fees_increase": { "type": "boolean", "nullable": true }, "use_insurance_bundles": { "type": "boolean", "x-go-name": "UseInsuranceBundles" }, "use_system_tax_rates": { "description": "used by booking details page to display system tax notice", "type": "boolean", "x-go-name": "UseSystemTaxRates" }, "use_tax_inclusive_pricing": { "type": "boolean", "x-go-name": "UseTaxInclusivePricing" }, "use_tint_check": { "type": "boolean", "x-go-name": "UseTintCheck" }, "user_notice_events": { "type": "array", "items": { "$ref": "#/definitions/NoticeResponse" }, "x-go-name": "UserNoticeEvents" }, "user_notices_acknowledged": { "type": "array", "items": { "$ref": "#/definitions/UserAcknowledgment" }, "x-go-name": "UserNoticesAcknowledged" }, "user_role": { "type": "string", "x-go-name": "UserRole" }, "waived_insurance_text": { "type": "string", "nullable": true }, "waiver_summary": { "$ref": "#/definitions/WaiverSummary" }, "warning": { "$ref": "#/definitions/Warning" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "SiblingBookingCampgroundData": { "type": "object", "properties": { "external_campsite_id": { "type": "string", "x-go-name": "ExternalCampsiteID" }, "external_id": { "type": "string", "x-go-name": "ExternalID" }, "site_name": { "type": "string", "x-go-name": "SiteName" }, "source": { "type": "string", "x-go-name": "Source" }, "status": { "type": "string", "x-go-name": "Status" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "SiblingBookings": { "description": "SiblingBookings an associated RV booking and campsite booking", "type": "object", "properties": { "rental_campsite": { "$ref": "#/definitions/SiblingBooking" }, "rental_rv": { "$ref": "#/definitions/SiblingBooking" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "SiblingQuotes": { "type": "object", "properties": { "rental_campsite": { "$ref": "#/definitions/Response" }, "rental_rv": { "$ref": "#/definitions/Response" } }, "x-go-package": "github.com/outdoorsy/api/internal/quote" }, "SiblingRentalSummaries": { "type": "object", "properties": { "rental_campsite": { "$ref": "#/definitions/RentalSummary" }, "rental_rv": { "$ref": "#/definitions/RentalSummary" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "SiblingTotals": { "description": "SiblingTotals is a struct to send the totals for combined sibling bookings", "type": "object", "properties": { "addons": { "type": "integer", "format": "int64", "x-go-name": "Addons" }, "damage_protection": { "type": "integer", "format": "int64", "x-go-name": "DamageProtection" }, "delivery_fee": { "type": "integer", "format": "int64", "x-go-name": "DeliveryFee" }, "discounts": { "type": "integer", "format": "uint64", "x-go-name": "Discounts" }, "external_campground_fee": { "type": "integer", "format": "int64", "x-go-name": "ExternalCampgroundFee" }, "generator": { "type": "integer", "format": "uint64", "x-go-name": "Generator" }, "insurance_coverage": { "type": "integer", "format": "int64", "x-go-name": "InsuranceCoverage" }, "mileage": { "type": "integer", "format": "uint64", "x-go-name": "Mileage" }, "owner_fees": { "type": "integer", "format": "int64", "x-go-name": "OwnerFees" }, "pet_fees": { "type": "integer", "format": "int64", "x-go-name": "PetFees" }, "roadside_assistance": { "type": "integer", "format": "int64", "x-go-name": "RoadsideAssistance" }, "roamly_weather_protection": { "type": "integer", "format": "int64", "x-go-name": "WeatherProtection" }, "security_deposit_waiver": { "type": "integer", "format": "int64", "x-go-name": "SecurityDepositWaiver" }, "service_fees": { "type": "integer", "format": "uint64", "x-go-name": "ServiceFees" }, "taxes": { "type": "integer", "format": "uint64", "x-go-name": "Taxes" }, "total": { "type": "integer", "format": "uint64", "x-go-name": "Total" }, "trip_protection": { "type": "integer", "format": "int64", "x-go-name": "TripProtection" } }, "x-go-package": "github.com/outdoorsy/api/internal/sibling_groups" }, "Social": { "type": "object", "properties": { "count": { "type": "integer", "format": "int64", "x-go-name": "Count" }, "link": { "type": "string", "x-go-name": "Link" }, "rating": { "type": "number", "format": "double", "x-go-name": "Rating" }, "site": { "type": "string", "x-go-name": "Site" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "SocialSlice": { "type": "array", "items": { "$ref": "#/definitions/Social" }, "x-go-package": "github.com/outdoorsy/api/types" }, "Source": { "type": "string", "x-go-package": "github.com/outdoorsy/api/internal/earned_credit" }, "SpecialHour": { "description": "───────────────────────────────────────────────────────────────────────────\nSpecial Hours\n───────────────────────────────────────────────────────────────────────────", "type": "object", "properties": { "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_from_id": { "type": "integer", "format": "int64", "x-go-name": "CreatedFromId" }, "dropoff": { "$ref": "#/definitions/SpecialHourDropoff" }, "end_date": { "type": "string" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "location_id": { "type": "integer", "format": "int64", "nullable": true }, "name": { "type": "string", "x-go-name": "Name" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "pickup": { "$ref": "#/definitions/SpecialHourPickup" }, "repeats": { "type": "boolean", "x-go-name": "Repeats" }, "start_date": { "type": "string" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "weekdays": { "$ref": "#/definitions/DBStringSlice" } }, "x-go-package": "github.com/outdoorsy/api/internal/special_hours" }, "SpecialHourDropoff": { "type": "object", "properties": { "end_time": { "type": "integer", "format": "int64", "x-go-name": "EndTime" }, "start_time": { "type": "integer", "format": "int64", "x-go-name": "StartTime" }, "unavailable": { "type": "boolean", "x-go-name": "Unavailable" } }, "x-go-package": "github.com/outdoorsy/api/internal/special_hours" }, "SpecialHourPickup": { "type": "object", "properties": { "end_time": { "type": "integer", "format": "int64", "x-go-name": "EndTime" }, "start_time": { "type": "integer", "format": "int64", "x-go-name": "StartTime" }, "unavailable": { "type": "boolean", "x-go-name": "Unavailable" } }, "x-go-package": "github.com/outdoorsy/api/internal/special_hours" }, "Status": { "type": "string", "title": "Status is a type representing the status of a Validation.", "x-go-package": "github.com/outdoorsy/api/internal/validation/logic" }, "StatusChangeRequest": { "type": "object", "properties": { "as_credits": { "type": "boolean", "x-go-name": "AsCredits" }, "cancel_reason": { "type": "string", "x-go-name": "CancelReason" }, "claim_id": { "type": "string", "x-go-name": "ClaimID" }, "comment": { "type": "string", "x-go-name": "Comment" }, "decline_reason": { "type": "string", "x-go-name": "DeclineReason" }, "details": { "type": "string", "x-go-name": "Details" }, "expires": { "type": "string" }, "from": { "type": "string" }, "handle_future_bookings": { "type": "boolean", "x-go-name": "HandleFutureBookings" }, "multiple_booking_choice": { "type": "string", "x-go-name": "MultipleBookingChoice" }, "no_send_email": { "type": "boolean", "x-go-name": "NoSendEmail" }, "paypal_charge_info": { "$ref": "#/definitions/PaypalChargeInfo" }, "refund_amount": { "type": "integer", "format": "uint64", "x-go-name": "RefundAmount" }, "refund_type": { "type": "string", "x-go-name": "RefundType" }, "rental_charge": { "$ref": "#/definitions/RentalCharge" }, "reset_approval_and_resend": { "type": "boolean", "x-go-name": "ResetApprovalAndResend" }, "save_card_token": { "type": "string", "x-go-name": "SaveCardToken" }, "security_deposit_charge": { "$ref": "#/definitions/SecurityDepositCharge" }, "status": { "type": "string", "x-go-name": "Status" }, "to": { "type": "string" }, "user_notices_acknowledged": { "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "UserNoticesAcknowledged" }, "waive_penalties": { "type": "boolean", "x-go-name": "WaivePenalties" } }, "x-go-package": "github.com/outdoorsy/api/libs/bookings" }, "StayDetails": { "type": "object", "properties": { "baths": { "type": "integer", "format": "int64", "nullable": true }, "bedrooms": { "type": "integer", "format": "int64", "nullable": true }, "beds": { "type": "integer", "format": "int64", "nullable": true }, "check_in_type": { "type": "string", "x-go-name": "CheckInType" }, "display_stay_type": { "type": "string", "x-go-name": "DisplayStayType" }, "features": { "$ref": "#/definitions/DBInterfaceMap" }, "features_other_items": { "type": "string", "x-go-name": "FeaturesOtherItems" }, "location_description": { "type": "string", "nullable": true }, "location_highlights_other_items": { "type": "string", "x-go-name": "LocationHighlightsOtherItems" }, "max_parking_spaces": { "type": "integer", "format": "int64", "nullable": true }, "parking_onsite": { "type": "boolean", "nullable": true }, "rental_id": { "type": "integer", "format": "int64" }, "sleeps": { "type": "integer", "format": "int64", "nullable": true }, "type": { "type": "string", "nullable": true } }, "x-go-package": "github.com/outdoorsy/api/model" }, "StaySummary": { "type": "object", "properties": { "baths": { "type": "integer", "format": "int64", "x-go-name": "Baths" }, "bedrooms": { "type": "integer", "format": "int64", "x-go-name": "Bedrooms" }, "beds": { "type": "integer", "format": "int64", "x-go-name": "Beds" }, "check_in_type": { "type": "string", "x-go-name": "CheckInType" }, "display_stay_type": { "type": "string", "x-go-name": "DisplayStayType" }, "location_description": { "type": "string", "x-go-name": "LocationDescription" }, "max_parking_spaces": { "type": "integer", "format": "int64", "x-go-name": "MaxParkingSpaces" }, "parking_onsite": { "type": "boolean", "x-go-name": "ParkingOnsite" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "sleeps": { "type": "integer", "format": "int64", "x-go-name": "Sleeps" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "String": { "type": "string", "x-go-package": "github.com/outdoorsy/api/utils/password" }, "StringArray": { "type": "array", "title": "StringArray represents a one-dimensional array of the PostgreSQL character types.", "items": { "type": "string" }, "x-go-package": "github.com/lib/pq" }, "StringSlice": { "type": "array", "items": { "type": "string" }, "x-go-package": "github.com/outdoorsy/api/pkg/jsonb" }, "TOS_Acceptance": { "type": "object", "properties": { "accepted_on": { "type": "string", "x-go-name": "AcceptedON", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "metadata": { "$ref": "#/definitions/MSI" }, "tos_version": { "type": "string", "x-go-name": "TOS_Version" }, "user_id": { "type": "integer", "format": "int64", "x-go-name": "UserID" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "Tag": { "type": "object", "properties": { "allow_for_review": { "type": "boolean", "x-go-name": "AllowForReview" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "owner_user_id": { "type": "integer", "format": "int64", "nullable": true }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "slug": { "type": "string", "x-go-name": "Slug" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/rental_tags" }, "TagRental": { "type": "object", "properties": { "Created": { "type": "string", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "ID": { "type": "integer", "format": "int64" }, "Name": { "type": "string" }, "Slug": { "type": "string" }, "Updated": { "type": "string", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "position": { "type": "integer", "format": "int64", "x-go-name": "Position" }, "usage_by_rental_count": { "type": "integer", "format": "int64", "x-go-name": "UsageByRentalCount" } }, "x-go-package": "github.com/outdoorsy/api/internal/rental_tags" }, "TaxRate": { "type": "object", "properties": { "archived": { "type": "boolean", "x-go-name": "Archived" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "description": { "type": "string", "x-go-name": "Description" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "marketplace": { "type": "boolean", "x-go-name": "MarketPlace" }, "name": { "type": "string", "x-go-name": "Name" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "rate": { "type": "number", "format": "double", "x-go-name": "Rate" }, "state": { "description": "carry through to booking_tax_rates table from avalara", "type": "string", "x-go-name": "State" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "zip_code": { "type": "string", "x-go-name": "ZipCode" } }, "x-go-package": "github.com/outdoorsy/api/internal/tax_rates" }, "TaxRateItem": { "type": "object", "properties": { "description": { "type": "string", "x-go-name": "Description" }, "original_tax_rate_id": { "type": "integer", "format": "int64", "x-go-name": "TaxRateID" }, "tax_amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "tax_name": { "type": "string", "x-go-name": "Name" }, "tax_rate": { "type": "number", "format": "double", "x-go-name": "Rate" } }, "x-go-package": "github.com/outdoorsy/api/internal/tax_rates" }, "TaxRateItems": { "type": "array", "items": { "$ref": "#/definitions/TaxRateItem" }, "x-go-package": "github.com/outdoorsy/api/internal/tax_rates" }, "TaxRateTotalItem": { "description": "Used when calculated booking/quote\nand storing calculated result on booking", "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" }, "name": { "type": "string", "x-go-name": "Name" }, "rates": { "$ref": "#/definitions/TaxRateItems" } }, "x-go-package": "github.com/outdoorsy/api/internal/tax_rates" }, "TaxRateTotalItems": { "type": "array", "items": { "$ref": "#/definitions/TaxRateTotalItem" }, "x-go-package": "github.com/outdoorsy/api/internal/tax_rates" }, "Template": { "type": "object", "properties": { "can_delete": { "type": "boolean", "x-go-name": "CanDelete" }, "can_edit": { "type": "boolean", "x-go-name": "CanEdit" }, "content": { "type": "string", "x-go-name": "Content" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "deleted": { "type": "boolean", "x-go-name": "Deleted" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "location_ids": { "$ref": "#/definitions/Int64Array" }, "title": { "type": "string", "x-go-name": "Title" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "user_id": { "type": "integer", "format": "int64", "x-go-name": "UserID" } }, "x-go-package": "github.com/outdoorsy/api/internal/message_template" }, "TimelineData": { "description": "TimelineData info", "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/TimelineItem" }, "x-go-name": "Items" }, "subtitle": { "type": "string", "x-go-name": "Subtitle" }, "title": { "type": "string", "x-go-name": "Title" } }, "x-go-package": "github.com/outdoorsy/api/internal/bookings" }, "TimelineItem": { "description": "TimelineItem info", "type": "object", "properties": { "activity_label": { "type": "string", "x-go-name": "ActivityLabel" }, "completed": { "type": "boolean", "x-go-name": "Completed" }, "description": { "type": "string", "x-go-name": "Description" }, "time": { "type": "string", "x-go-name": "Time" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/internal/bookings" }, "TowableFeature": { "type": "object", "properties": { "feature": { "type": "string", "x-go-name": "Slug" }, "name": { "type": "string", "x-go-name": "Name" }, "options": { "$ref": "#/definitions/DBStringMap" } }, "x-go-package": "github.com/outdoorsy/api/internal/towable_features" }, "TowingInfo": { "type": "object", "properties": { "axle_ratio": { "type": "string", "x-go-name": "AxleRatio" }, "body_type": { "type": "string", "x-go-name": "BodyType" }, "drivetrain": { "type": "string", "x-go-name": "Drivetrain" }, "engine": { "type": "string", "x-go-name": "Engine" }, "hitch_type": { "type": "string", "x-go-name": "HitchType" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "make": { "type": "string", "x-go-name": "Make" }, "max_towing_capacity": { "type": "integer", "format": "int64", "x-go-name": "MaxTowingCapacity" }, "model": { "type": "string", "x-go-name": "Model" }, "suggested_towing_capacity": { "type": "integer", "format": "int64", "x-go-name": "SuggestedTowingCapacity" }, "transmission": { "type": "string", "x-go-name": "Transmission" }, "year": { "type": "integer", "format": "int64", "x-go-name": "Year" } }, "x-go-package": "github.com/outdoorsy/api/internal/towing_info" }, "Tracking": { "type": "object", "properties": { "campaign": { "type": "string", "x-go-name": "Campaign" }, "content": { "type": "string", "x-go-name": "Content" }, "intent": { "type": "string", "x-go-name": "Intent" }, "medium": { "type": "string", "x-go-name": "Medium" }, "source": { "type": "string", "x-go-name": "Source" }, "term": { "type": "string", "x-go-name": "Term" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "Transaction": { "type": "object", "properties": { "actual_deposit_date": { "type": "string" }, "adjustment": { "type": "integer", "format": "uint64", "x-go-name": "Adjustment" }, "amount": { "type": "integer", "format": "uint64", "x-go-name": "Amount" }, "auto_deposit": { "type": "boolean", "x-go-name": "AutoDeposit" }, "available": { "description": "Available tells us when the funds are expected to have cleared the bank", "type": "string", "x-go-name": "Available", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "booking_id": { "type": "integer", "format": "int64" }, "brand": { "type": "string", "x-go-name": "Brand" }, "can_delete": { "type": "boolean", "x-go-name": "CanDelete" }, "can_finance_sync": { "type": "boolean", "x-go-name": "CanFinanceSync" }, "can_refund": { "type": "boolean", "x-go-name": "CanRefund" }, "can_retry": { "type": "boolean", "x-go-name": "CanRetry" }, "can_reverse_transfer": { "type": "boolean", "x-go-name": "CanReverseTransfer" }, "can_sync": { "type": "boolean", "x-go-name": "CanSync" }, "can_transfer": { "type": "boolean", "x-go-name": "CanTransfer" }, "cc_fee": { "type": "integer", "format": "uint64", "x-go-name": "CCFee" }, "charged": { "type": "string" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "created_by_id": { "type": "integer", "format": "int64", "x-go-name": "CreatedByID" }, "deposit_date": { "type": "string" }, "description": { "type": "string", "x-go-name": "Description" }, "display_charge_type": { "type": "string", "x-go-name": "DisplayChargeType" }, "display_payment_processor_name": { "type": "string", "x-go-name": "DisplayPaymentProcessorName" }, "display_type": { "type": "string", "x-go-name": "DisplayType" }, "dispute_reason": { "type": "string", "nullable": true }, "dispute_status": { "type": "string", "nullable": true }, "disputed": { "type": "boolean", "x-go-name": "Disputed" }, "expected_deposit_date": { "type": "string" }, "failed": { "type": "boolean", "x-go-name": "Failed" }, "fraudulent": { "type": "boolean", "x-go-name": "Fraudulent" }, "fx_fee": { "description": "DEPRECATED - DO NOT USE", "type": "integer", "format": "uint64", "x-go-name": "FXFee" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "is_refund": { "type": "boolean", "x-go-name": "IsRefund" }, "last_four": { "type": "string", "x-go-name": "LastFour" }, "original_charge_id": { "$ref": "#/definitions/Transaction" }, "our_fee": { "type": "integer", "format": "uint64", "x-go-name": "OurFee" }, "outdoorsy_fee": { "type": "integer", "format": "uint64", "x-go-name": "RenterIntegrationsFee" }, "owner_federal_withholding_tax": { "type": "integer", "format": "uint64", "x-go-name": "OwnerFederalWithholdingTax" }, "owner_fee": { "type": "integer", "format": "uint64", "x-go-name": "OwnerFee" }, "owner_integrations_fee": { "type": "integer", "format": "int64", "nullable": true }, "owner_quebec_sales_tax": { "type": "integer", "format": "uint64", "x-go-name": "OwnerQuebecSalesTax" }, "paid": { "type": "boolean", "x-go-name": "Paid" }, "payment_meta": { "$ref": "#/definitions/DBInterfaceMap" }, "payment_processor": { "$ref": "#/definitions/PaymentProcessor" }, "payment_source": { "type": "string", "x-go-name": "PaymentSource" }, "processor_settlement_id": { "type": "string", "nullable": true }, "recipient_id": { "type": "integer", "format": "int64", "x-go-name": "RecipientID" }, "refund_source": { "type": "string", "x-go-name": "RefundSource" }, "refunded": { "type": "integer", "format": "uint64", "x-go-name": "Refunded" }, "refunded_cc_fee": { "type": "integer", "format": "uint64", "x-go-name": "RefundedCCFee" }, "refunded_fee": { "type": "integer", "format": "uint64", "x-go-name": "RefundedFee" }, "refunded_fx_fee": { "type": "integer", "format": "uint64", "x-go-name": "RefundedFXFee" }, "refunded_outdoorsy_fee": { "type": "integer", "format": "uint64", "x-go-name": "RefundedRenterIntegrationsFee" }, "refunded_owner_federal_withholding_tax": { "type": "integer", "format": "uint64", "x-go-name": "RefundedOwnerFederalWithholdingTax" }, "refunded_owner_fee": { "type": "integer", "format": "uint64", "x-go-name": "RefundedOwnerFee" }, "refunded_owner_integrations_fee": { "type": "integer", "format": "int64", "nullable": true }, "refunded_owner_quebec_sales_tax": { "type": "integer", "format": "uint64", "x-go-name": "RefundedOwnerQuebecSalesTax" }, "refunded_service_fee": { "type": "integer", "format": "uint64", "x-go-name": "RefundedServiceFee" }, "retry_payout_id": { "$ref": "#/definitions/Transaction" }, "sales_tax": { "type": "integer", "format": "uint64", "x-go-name": "SalesTax" }, "service_fee": { "type": "integer", "format": "uint64", "x-go-name": "ServiceFee" }, "status": { "type": "string", "x-go-name": "Status" }, "stripe_fee": { "type": "integer", "format": "int64", "x-go-name": "Fee" }, "stripe_fee_refund": { "type": "integer", "format": "uint64", "x-go-name": "StripeFeeRefund" }, "stripe_id": { "type": "string", "x-go-name": "StripeID" }, "transfer": { "$ref": "#/definitions/Transaction" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "TripSummary": { "type": "object", "properties": { "guests": { "$ref": "#/definitions/Guests" }, "pets": { "type": "boolean", "x-go-name": "Pets" }, "tow_vehicle": { "type": "string", "x-go-name": "TowVehicle" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "TwoFARequest": { "type": "object", "properties": { "session_id_2fa": { "type": "string", "x-go-name": "SessionID" }, "type": { "type": "string", "x-go-name": "Type" } }, "x-go-package": "github.com/outdoorsy/api/internal/two_factor_authentication" }, "TwoFASetupMethod": { "type": "object", "properties": { "preferred_2fa_method": { "type": "string", "x-go-name": "Preferred2FAMethod" }, "session_id_2fa": { "type": "string", "x-go-name": "SessionID" } }, "x-go-package": "github.com/outdoorsy/api/internal/two_factor_authentication" }, "UTC": { "type": "object", "x-go-package": "github.com/outdoorsy/api/pkg/time/datetime" }, "UnexpectedPostTripCharge": { "type": "object", "properties": { "amount": { "type": "integer", "format": "uint64", "x-go-name": "Amount" }, "charge_type": { "type": "string", "x-go-name": "ChargeType" }, "description": { "type": "string", "x-go-name": "Description" } }, "x-go-package": "github.com/outdoorsy/api/internal/sd_post_trip_charges" }, "UnitLocale": { "type": "object", "properties": { "base_currency": { "type": "string", "x-go-name": "BaseCurrency" }, "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/api/model" }, "UpdateRequest": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "name": { "type": "string", "x-go-name": "Name" }, "status": { "type": "string", "x-go-name": "Status" }, "steps": { "type": "array", "items": { "$ref": "#/definitions/CheckoutStep" }, "x-go-name": "Steps" } }, "x-go-package": "github.com/outdoorsy/api/pkg/checkout_steps" }, "UpdateWishlistRequest": { "type": "object", "properties": { "ada": { "type": "boolean", "x-go-name": "ADA" }, "end_date": { "type": "string" }, "is_public": { "type": "boolean", "x-go-name": "IsPublic" }, "number_of_adults": { "type": "integer", "format": "int64", "x-go-name": "NumberOfAdults" }, "number_of_children": { "type": "integer", "format": "int64", "x-go-name": "NumberOfChildren" }, "pets": { "type": "boolean", "x-go-name": "Pets" }, "start_date": { "type": "string" }, "title": { "type": "string", "x-go-name": "Title" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "UsageBasedItem": { "type": "object", "properties": { "archived": { "type": "boolean", "x-go-name": "Archived" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "fee_type": { "type": "string", "x-go-name": "FeeType" }, "formatted": { "$ref": "#/definitions/UsageFormatted" }, "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_amount": { "type": "integer", "format": "int64", "x-go-name": "TaxAmount" }, "tax_rate_id": { "description": "deprecated", "type": "integer", "format": "int64", "x-go-name": "TaxRateID" }, "tax_rate_ids": { "description": "tax rate support", "type": "array", "items": { "type": "integer", "format": "int64" }, "x-go-name": "TaxRateIDs" }, "tiers": { "type": "array", "items": { "$ref": "#/definitions/UsageBasedItemTier" }, "x-go-name": "Tiers" }, "total_included": { "type": "number", "format": "double", "x-go-name": "TotalIncluded" }, "unit": { "type": "string", "x-go-name": "Unit" }, "unlimited": { "type": "boolean", "x-go-name": "Unlimited" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/usage_item" }, "UsageBasedItemTier": { "type": "object", "properties": { "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "maximum": { "type": "number", "format": "double", "x-go-name": "Maximum" }, "minimum_fee": { "type": "integer", "format": "uint64", "x-go-name": "MinimumFee" }, "owner_id": { "type": "integer", "format": "int64", "x-go-name": "OwnerID" }, "price": { "type": "number", "format": "double", "x-go-name": "Price" }, "tax_amount": { "type": "integer", "format": "int64", "x-go-name": "TaxAmount" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "usage_based_item_id": { "type": "integer", "format": "int64" } }, "x-go-package": "github.com/outdoorsy/api/internal/usage_item" }, "UsageFormatted": { "type": "object", "properties": { "included_text": { "type": "string", "x-go-name": "IncludedText" }, "overage_fee_calculation": { "$ref": "#/definitions/OverageFeeCalculation" }, "short_unit": { "type": "string", "x-go-name": "ShortUnit" }, "tiers": { "type": "array", "items": { "$ref": "#/definitions/UsageTierFormatted" }, "x-go-name": "Tiers" } }, "x-go-package": "github.com/outdoorsy/api/internal/usage_item" }, "UsageTierFormatted": { "type": "object", "properties": { "cost": { "type": "string", "x-go-name": "Cost" }, "label": { "type": "string", "x-go-name": "Label" }, "per_unit": { "type": "string", "x-go-name": "PerUnit" }, "usage_price_per_unit": { "type": "string", "x-go-name": "UsagePricePerUnit" } }, "x-go-package": "github.com/outdoorsy/api/internal/usage_item" }, "User": { "description": "A user is the security principal for this application.\n\nA user can be an owner, renter, agent or admin.", "type": "object", "title": "User represents the user for this application", "properties": { "accept_percent": { "type": "number", "format": "double", "x-go-name": "AcceptPercent" }, "accepted_tos_version": { "type": "integer", "format": "int64", "x-go-name": "AcceptedTOSVersion" }, "accepted_tos_versions": { "type": "array", "items": { "$ref": "#/definitions/TOS_Acceptance" }, "x-go-name": "AcceptedTOSVersions" }, "account_id": { "type": "string", "nullable": true }, "active_quotes_count": { "type": "integer", "format": "int64", "x-go-name": "ActiveQuotesCount" }, "active_reservations_count": { "description": "Holds the count of active reservations and quotes for DOU", "type": "integer", "format": "int64", "x-go-name": "ActiveReservationsCount" }, "addon_fee_percentage": { "type": "number", "format": "double", "x-go-name": "AddonFeePercentage" }, "admin": { "type": "boolean", "x-go-name": "IsAdmin" }, "admin_level": { "type": "integer", "format": "int64", "x-go-name": "AdminLevel" }, "api_key": { "type": "string", "x-go-name": "APIKey" }, "approved_drivers": { "type": "boolean", "x-go-name": "ApprovedDrivers" }, "archived": { "type": "boolean", "nullable": true }, "auto_owner": { "type": "boolean", "x-go-name": "IsAutoOwner" }, "average_response_time": { "$ref": "#/definitions/NullFloat64" }, "bank_country": { "type": "string", "x-go-name": "BankCountry" }, "banned": { "description": "admin only", "type": "boolean", "x-go-name": "Banned" }, "campground_owner": { "type": "boolean", "x-go-name": "IsCampgroundOwner" }, "campground_user": { "type": "boolean", "x-go-name": "IsCampgroundUser" }, "can_accept_payments": { "type": "boolean", "x-go-name": "CanAcceptPaymentsField" }, "cash_credits": { "type": "integer", "format": "uint64", "x-go-name": "OriginalCredits" }, "cc_fee_percentage": { "type": "number", "format": "double", "x-go-name": "CCFeePercentage" }, "commercial_insurance": { "type": "boolean", "x-go-name": "CommercialInsurance" }, "completed_bookings": { "type": "integer", "format": "int64", "x-go-name": "CompletedBookings" }, "confirmed": { "type": "boolean", "x-go-name": "Confirmed" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "credits": { "type": "integer", "format": "uint64", "x-go-name": "AvailableCredits" }, "csm_agent_id": { "description": "User ID of the CSM agent assigned to the corresponding owner/dealer", "type": "integer", "format": "int64", "x-go-name": "CSMAgentID" }, "deal_id": { "description": "Deal ID used to store Hubspot deals", "type": "string", "x-go-name": "DealID" }, "dealer": { "description": "dealer/employee support", "type": "boolean", "x-go-name": "Dealer" }, "deposits_disabled": { "type": "boolean", "x-go-name": "DepositsDisabled" }, "display_w9_reminder": { "type": "boolean", "x-go-name": "DisplayW9Reminder" }, "driver_checks_enabled": { "type": "boolean", "x-go-name": "DriverChecksEnabled" }, "drivers": { "type": "array", "items": { "$ref": "#/definitions/Driver" }, "x-go-name": "AdditionalDrivers" }, "earned_credits": { "type": "array", "items": { "$ref": "#/definitions/EarnedCredit" }, "x-go-name": "EarnedCredits" }, "employee": { "type": "boolean", "x-go-name": "Employee" }, "esign_enabled": { "type": "boolean", "x-go-name": "EsignEnabled" }, "fleet_api_key": { "type": "string", "x-go-name": "FleetAPIKey" }, "force_reconnect_bank": { "type": "boolean", "x-go-name": "ForceReconnectBank" }, "fraud_review_complete": { "type": "boolean", "x-go-name": "FraudReviewComplete" }, "fraudulent": { "type": "boolean", "x-go-name": "Fraudulent" }, "gps_device_data": { "$ref": "#/definitions/GpsDevicesData" }, "group_on_map": { "type": "boolean", "x-go-name": "GroupOnMap" }, "guest": { "type": "boolean", "x-go-name": "Guest" }, "has_connected_gateway": { "description": "Indicates to the FE that this user has a connected gateway and the\nSpreedly CC form should be used when adding renter CCs", "type": "boolean", "x-go-name": "HasConnectedGateway" }, "has_gps_device": { "type": "boolean", "x-go-name": "HasGPSDevice" }, "has_notes_to_renters_migrated": { "type": "boolean", "x-go-name": "HasNotesToRentersMigrated" }, "has_setup_intent_enabled": { "type": "boolean", "x-go-name": "HasSetupIntentEnabled" }, "hidden": { "type": "boolean", "x-go-name": "Hidden" }, "host_type_by_rental_category": { "type": "string", "x-go-name": "HostTypeByRentalCategory" }, "host_type_by_rental_count": { "type": "string", "x-go-name": "HostTypeByRentalCount" }, "id": { "description": "internal - server generated and not mutable by PATCH", "type": "integer", "format": "int64", "x-go-name": "ID" }, "impersonated": { "type": "boolean", "x-go-name": "Impersonated" }, "import_id": { "type": "string", "x-go-name": "ImportID" }, "inactive_by": { "type": "integer", "format": "int64", "x-go-name": "InactiveBy" }, "inactive_on": { "type": "string", "x-go-name": "InactiveOn", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "is_admin_managed_superhost": { "type": "boolean", "x-go-name": "IsAdminManagedSuperHost" }, "is_award_winner": { "type": "boolean", "x-go-name": "IsAwardWinner" }, "is_csm_agent": { "description": "Represents if a user is CSM agent", "type": "boolean", "x-go-name": "IsCSMAgent" }, "is_military_host": { "type": "boolean", "x-go-name": "IsMilitaryHost" }, "is_superhost": { "description": "SuperHost", "type": "boolean", "x-go-name": "IsSuperHost" }, "items": { "type": "array", "items": { "$ref": "#/definitions/RentalItem" }, "x-go-name": "Items" }, "last_accessed_ip": { "type": "string", "nullable": true }, "last_activity_at": { "type": "string", "x-go-name": "Accessed", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "legacy_tracking_device_count": { "type": "integer", "format": "int64", "x-go-name": "LegacyTrackingDeviceCount" }, "metadata": { "$ref": "#/definitions/MSI" }, "missing_fields": { "$ref": "#/definitions/DBStringSlice" }, "num_reservations": { "type": "integer", "format": "int64", "x-go-name": "NumReservations" }, "offer_roamly": { "type": "boolean", "x-go-name": "OfferRoamly" }, "offers_delivery": { "type": "boolean", "x-go-name": "OffersDelivery" }, "owned_by_id": { "type": "integer", "format": "int64", "x-go-name": "OwnedByID" }, "owner": { "type": "boolean", "x-go-name": "IsOwner" }, "owner_fee_percentage": { "description": "admin only", "type": "number", "format": "double", "x-go-name": "OwnerFeePercentage" }, "owner_score": { "type": "number", "format": "double", "x-go-name": "OwnerScore" }, "owner_score_count": { "type": "integer", "format": "int64", "x-go-name": "OwnerReviewsCount" }, "partner_app_id": { "type": "integer", "format": "int64", "nullable": true }, "partner_id": { "type": "integer", "format": "int64", "nullable": true }, "payment_processing_info": { "description": "internal - server generated and not sent to client", "type": "array", "items": { "$ref": "#/definitions/PaymentProcessingInfo" }, "x-go-name": "PaymentProcessingInfo" }, "pending_email": { "type": "string", "x-go-name": "PendingEmail" }, "permissions": { "$ref": "#/definitions/DBBoolMap" }, "pro": { "type": "boolean", "x-go-name": "Pro" }, "pro_status": { "$ref": "#/definitions/ProStatus" }, "profile": { "$ref": "#/definitions/Profile" }, "reconnect_bank": { "type": "boolean", "x-go-name": "ReconnectBank" }, "referral_code": { "type": "string", "x-go-name": "ReferralCode" }, "referred_by_id": { "type": "integer", "format": "int64" }, "referred_owner_paid": { "type": "boolean", "x-go-name": "ReferredOwnerPaid" }, "referred_owner_payout_amount": { "type": "integer", "format": "uint64", "x-go-name": "ReferredOwnerPayoutAmount" }, "referred_renter_paid": { "type": "boolean", "x-go-name": "ReferredRenterPaid" }, "referred_renter_payout_amount": { "type": "integer", "format": "uint64", "x-go-name": "ReferredRenterPayoutAmount" }, "renter": { "type": "boolean", "x-go-name": "IsRenter" }, "renter_fee_percentage": { "type": "number", "format": "double", "x-go-name": "RenterFeePercentage" }, "require_w9_form": { "type": "boolean", "x-go-name": "RequireW9Form" }, "require_w9_to_accept_booking": { "type": "boolean", "x-go-name": "RequireW9ToAcceptBooking" }, "response_percent": { "$ref": "#/definitions/NullFloat64" }, "roadside_missing": { "$ref": "#/definitions/DBStringSlice" }, "roamly_carshare_user": { "type": "boolean", "x-go-name": "RoamlyCarshareUser" }, "roamly_policy_id": { "type": "string", "x-go-name": "RoamlyPolicyID" }, "roamly_policy_number": { "type": "string", "x-go-name": "RoamlyPolicyNumber" }, "roamly_status": { "type": "string", "x-go-name": "RoamlyStatus" }, "role": { "$ref": "#/definitions/Role" }, "rv_owner": { "description": "Host Rental Possession", "type": "boolean", "x-go-name": "IsRVOwner" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "score_count": { "description": "Only used by database triggers, not intended for use by\nanything in the application. They're listed here to make sure\nthe migration system creates the columns.", "type": "integer", "format": "int64", "x-go-name": "ReviewsCount" }, "search_metrics_start_date": { "type": "string" }, "security": { "$ref": "#/definitions/UserSecurity" }, "self_serve_signup": { "type": "boolean", "nullable": true }, "session_id": { "type": "string", "x-go-name": "SessionID" }, "show_gps_deprecation_warning": { "type": "boolean", "x-go-name": "ShowGpsDeprecationWarning" }, "signup_source": { "type": "string", "x-go-name": "SignupSource" }, "skip_w9_to_publish": { "type": "boolean", "x-go-name": "SkipW9ToPublish" }, "slug": { "type": "string", "x-go-name": "Slug" }, "sso": { "$ref": "#/definitions/SSO" }, "stay_owner": { "type": "boolean", "x-go-name": "IsStayOwner" }, "superhost_cancel_rate": { "type": "number", "format": "double", "x-go-name": "SuperHostCancelRate" }, "superhost_departed_bookings": { "type": "integer", "format": "int64", "x-go-name": "SuperHostDepartedBookings" }, "superhost_last_assessment": { "type": "string", "x-go-name": "SuperHostLastAssessment", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "superhost_last_start_assessment": { "type": "string", "x-go-name": "SuperHostLastStartAssessment", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "superhost_response_rate": { "type": "number", "format": "double", "x-go-name": "SuperHostResponseRate" }, "superhost_review_rate": { "type": "number", "format": "double", "x-go-name": "SuperHostReviewRate" }, "superhost_reviewed_bookings": { "type": "integer", "format": "int64", "x-go-name": "SuperHostReviewedBookings" }, "time_to_first_action": { "type": "integer", "format": "int64", "x-go-name": "TimeToFirstAction" }, "tolls_enabled": { "type": "boolean", "x-go-name": "TollsEnabled" }, "tollspot_account_number": { "type": "string", "x-go-name": "TollSpotAccountNumber" }, "tollspot_account_status": { "type": "string", "x-go-name": "TollSpotAccountStatus" }, "tos_acceptance_date": { "type": "string", "x-go-name": "TOSAcceptanceDate", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "total_bookings": { "type": "integer", "format": "int64", "x-go-name": "TotalBookings" }, "tracking": { "$ref": "#/definitions/Tracking" }, "undelivered_emails_count": { "description": "Indicates if there are undelivered emails for the last booking of DOU", "type": "integer", "format": "int64", "x-go-name": "UndeliveredEmailsCount" }, "use_fees_increase": { "type": "boolean", "nullable": true }, "use_insurance_bundles": { "type": "boolean", "x-go-name": "UseInsuranceBundles" }, "verifications": { "$ref": "#/definitions/Verifications" }, "viewed_outdoorsy_host_beta": { "type": "boolean", "x-go-name": "ViewedOutdoorsyHostBeta" }, "viewed_roamly_ad": { "type": "boolean", "x-go-name": "ViewedRoamlyAd" }, "viewed_smart_match_banner": { "type": "boolean", "x-go-name": "ViewedSmartMatchBanner" }, "viewed_smart_pricing_banner": { "type": "boolean", "x-go-name": "ViewedSmartPricingBanner" }, "viewed_super_host_banner": { "type": "boolean", "x-go-name": "ViewedSuperHostBanner" }, "w9_completed_at": { "type": "string", "x-go-name": "W9CompletedAt" }, "w9_eligible": { "type": "boolean", "x-go-name": "W9Eligible" }, "w9_tax_form_completed": { "type": "boolean", "x-go-name": "W9TaxFormCompleted" }, "w9_tin_status": { "type": "string", "x-go-name": "W9TinStatus" }, "waive_w9_completion": { "type": "boolean", "x-go-name": "WaiveUserW9Completion" }, "wheelbase_fee": { "type": "integer", "format": "int64", "nullable": true } }, "x-go-package": "github.com/outdoorsy/api/model" }, "UserAcknowledgment": { "type": "object", "properties": { "guest_acknowledged": { "type": "boolean", "x-go-name": "GuestAcknowledged" }, "host_acknowledged": { "type": "boolean", "x-go-name": "HostAcknowledged" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "UserAnnouncement": { "description": "Request & Responses\nAny User", "type": "object", "properties": { "content": { "type": "string", "x-go-name": "Content" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "published_at": { "type": "string", "x-go-name": "PublishedAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "read": { "type": "boolean", "x-go-name": "Read" }, "read_at": { "type": "string", "x-go-name": "ReadAt", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "title": { "type": "string", "x-go-name": "Title" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/internal/announcements" }, "UserAuthResponse": { "type": "object", "properties": { "account_id": { "type": "string", "x-go-name": "AccountID" }, "email": { "type": "string", "x-go-name": "Email" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "phone": { "type": "string", "x-go-name": "Phone" }, "preferred_2fa_method": { "type": "string", "x-go-name": "Preferred2FAMethod" }, "refresh_token": { "type": "string", "x-go-name": "RefreshToken" }, "roles": { "type": "array", "items": { "type": "string" }, "x-go-name": "Roles" }, "session_id_2fa": { "type": "string", "x-go-name": "SessionID2FA" }, "show_2fa_screen": { "type": "boolean", "x-go-name": "Show2FAScreen" }, "show_verify_email_screen": { "type": "boolean", "x-go-name": "ShowVerifyEmailScreen" }, "token": { "type": "string", "x-go-name": "Token" }, "user_id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "verifications": { "$ref": "#/definitions/VerificationStatus" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "UserCard": { "type": "object", "properties": { "brand": { "type": "string", "x-go-name": "Brand" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "default": { "type": "boolean", "x-go-name": "Default" }, "exp_month": { "type": "integer", "format": "int64", "x-go-name": "ExpMonth" }, "exp_year": { "type": "integer", "format": "int64", "x-go-name": "ExpYear" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_four": { "type": "string", "x-go-name": "LastFour" }, "latest_setup_intent_id": { "type": "string", "x-go-name": "LatestSetupIntentID" }, "owner_id": { "type": "integer", "format": "int64" }, "payment_processor": { "$ref": "#/definitions/PaymentProcessor" }, "stripe_token": { "description": "internal", "type": "string", "x-go-name": "StripeID" }, "updated": { "type": "string", "x-go-name": "Updated", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "UserCreateRequest": { "description": "authentication", "type": "object", "properties": { "campaign": { "type": "string", "x-go-name": "Campaign" }, "content": { "type": "string", "x-go-name": "Content" }, "country": { "type": "string", "x-go-name": "Country" }, "email": { "type": "string", "x-go-name": "Email" }, "enable_sms": { "type": "boolean", "x-go-name": "EnableSms" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "intent": { "type": "string", "x-go-name": "Intent" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "locale": { "type": "string", "x-go-name": "Locale" }, "medium": { "type": "string", "x-go-name": "Medium" }, "password": { "$ref": "#/definitions/String" }, "password_validation_user_inputs": { "type": "array", "items": { "type": "string" }, "x-go-name": "PasswordValidationUserInputs" }, "phone": { "type": "string", "x-go-name": "Phone" }, "recaptcha_response": { "type": "string", "x-go-name": "RecaptchaResponse" }, "referral_code": { "type": "string", "x-go-name": "ReferralCode" }, "signup_source": { "type": "string", "x-go-name": "SignupSource" }, "with_refresh_token": { "description": "Used mainly for mobile clients to provide some backward\ncompatibility for them to work with access tokens only.\nWill be removed when mobile adoption rate hits certain percentage", "type": "boolean", "x-go-name": "WithRefreshToken" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "UserID": { "type": "integer", "format": "int64", "x-go-package": "github.com/outdoorsy/api/internal/teller" }, "UserLoginRequest": { "type": "object", "properties": { "account_id": { "type": "string", "x-go-name": "AccountID" }, "biometric_id": { "type": "string", "x-go-name": "BiometricID" }, "dealer_user": { "type": "boolean", "x-go-name": "DealerUser" }, "email": { "type": "string", "x-go-name": "Email" }, "password": { "$ref": "#/definitions/String" }, "recaptcha_response": { "type": "string", "x-go-name": "RecaptchaResponse" }, "with_refresh_token": { "description": "Used mainly for mobile clients to provide some backward\ncompatibility for them to work with access tokens only.\nWill be removed when mobile adoption rate hits certain percentage", "type": "boolean", "x-go-name": "WithRefreshToken" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "UserPartial": { "type": "object", "properties": { "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "business_name": { "type": "string", "x-go-name": "BusinessName" }, "email": { "type": "string", "x-go-name": "Email" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "phone": { "type": "string", "x-go-name": "Phone" } }, "x-go-package": "github.com/outdoorsy/api/pkg/zapier" }, "UserSecurity": { "type": "object", "properties": { "force_password_reset": { "type": "boolean", "x-go-name": "ForcePasswordReset" }, "social_login_disabled": { "type": "boolean", "x-go-name": "SocialLoginDisabled" }, "user_id": { "type": "integer", "format": "int64", "x-go-name": "UserID" } }, "x-go-package": "github.com/outdoorsy/api/internal/security" }, "ValidatorType": { "type": "string", "title": "ValidatorType is a type representing a valid Validator in the system.", "x-go-package": "github.com/outdoorsy/api/internal/validation/logic" }, "Vehicle": { "type": "object", "properties": { "amps": { "type": "integer", "format": "int64", "x-go-name": "Amps" }, "box_length": { "type": "number", "format": "double", "x-go-name": "BoxLength" }, "class": { "type": "string", "x-go-name": "Class" }, "current_generator": { "type": "number", "format": "double", "x-go-name": "CurrentGenerator" }, "current_lat": { "type": "number", "format": "double", "x-go-name": "CurrentLat" }, "current_lng": { "type": "number", "format": "double", "x-go-name": "CurrentLng" }, "current_mileage": { "type": "number", "format": "double", "x-go-name": "CurrentMileage" }, "dry_weight": { "type": "integer", "format": "int64", "x-go-name": "DryWeight" }, "gvwr": { "type": "integer", "format": "int64", "x-go-name": "GVWR" }, "height": { "type": "number", "format": "double", "x-go-name": "Height" }, "insurance_renewal_month": { "type": "string", "x-go-name": "InsuranceRenewalMonth" }, "length": { "type": "number", "format": "double", "x-go-name": "Length" }, "length_with_hitch": { "type": "number", "format": "double", "x-go-name": "LengthWithHitch" }, "license_plate": { "description": "owner fields", "type": "string", "x-go-name": "LicensePlate" }, "license_plate_country": { "type": "string", "x-go-name": "LicensePlateCountry" }, "license_plate_state": { "type": "string", "x-go-name": "LicensePlateState" }, "make": { "type": "string", "x-go-name": "Make" }, "model": { "type": "string", "x-go-name": "Model" }, "replacement_value": { "type": "string", "x-go-name": "ReplacementValue" }, "trim": { "type": "string", "x-go-name": "Trim" }, "unit_of_measure": { "type": "string", "x-go-name": "UnitOfMeasure" }, "vin": { "type": "string", "x-go-name": "VIN" }, "width": { "type": "number", "format": "double", "x-go-name": "Width" }, "year": { "type": "integer", "format": "int64", "x-go-name": "Year" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "VehicleType": { "type": "object", "properties": { "description": { "type": "string", "x-go-name": "Description" }, "label": { "type": "string", "x-go-name": "Label" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "VehicleTypesResponse": { "type": "object", "properties": { "drivables": { "type": "array", "items": { "$ref": "#/definitions/VehicleType" }, "x-go-name": "Drivables" }, "towables": { "type": "array", "items": { "$ref": "#/definitions/VehicleType" }, "x-go-name": "Towables" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "Vendor": { "description": "Vendor contains details about a vendor in the provider's system. It is\nused for creating, updating and retrieving.", "type": "object", "properties": { "address": { "$ref": "#/definitions/Address" }, "bank_address": { "type": "string", "x-go-name": "BankAddress" }, "birth_date": { "type": "string", "format": "date-time", "x-go-name": "BirthDate" }, "business": { "$ref": "#/definitions/Business" }, "currency": { "type": "string", "x-go-name": "Currency" }, "debit_agreement_ip": { "type": "string", "x-go-name": "DebitAgreementIP" }, "debit_agreement_shown_and_accepted": { "type": "boolean", "x-go-name": "DebitAgreementShownAndAcceptedDate" }, "debit_agreement_user_agent": { "type": "string", "x-go-name": "DebitAgreementUserAgent" }, "deposit_account": { "$ref": "#/definitions/DepositAccount" }, "email": { "type": "string", "x-go-name": "Email" }, "external_accounts": { "type": "integer", "format": "int64", "x-go-name": "ExternalAccounts" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "fund_id": { "type": "string", "x-go-name": "FundID" }, "id": { "type": "string", "x-go-name": "ID" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "merchant_of_record": { "type": "boolean", "x-go-name": "MerchantOfRecord" }, "missing_fields": { "type": "array", "items": { "type": "string" }, "x-go-name": "MissingFields" }, "nickname": { "type": "string", "x-go-name": "Nickname" }, "no_additional_owners": { "type": "boolean", "x-go-name": "NoAdditionalOwners" }, "payouts_enabled": { "type": "boolean", "x-go-name": "PayoutsEnabled" }, "personal_id": { "type": "string", "x-go-name": "PersonalID" }, "phone": { "type": "string", "x-go-name": "Phone" }, "reference_number": { "type": "string", "x-go-name": "ReferenceNumber" }, "sort_code": { "type": "string", "x-go-name": "SortCode" }, "ssn_last_four": { "type": "string", "x-go-name": "SSNLastFour" }, "status": { "type": "string", "x-go-name": "Status" }, "support_phone": { "type": "string", "x-go-name": "SupportPhone" }, "type": { "type": "string", "x-go-name": "Type" }, "url": { "type": "string", "x-go-name": "URL" }, "verified": { "type": "boolean", "x-go-name": "Verified" } }, "x-go-package": "github.com/outdoorsy/api/controller/broker" }, "VendorBody": { "type": "object", "properties": { "token": { "type": "string", "x-go-name": "Token" }, "vendor": { "$ref": "#/definitions/Vendor" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "VerificationStatus": { "type": "object", "properties": { "email": { "type": "boolean", "x-go-name": "Email" }, "phone": { "type": "boolean", "x-go-name": "Phone" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "Verifications": { "type": "object", "properties": { "email": { "type": "boolean", "x-go-name": "Email" }, "facebook": { "$ref": "#/definitions/DBInterfaceMap" }, "has_sent_message_without_phone_verified": { "type": "boolean", "x-go-name": "HasSentMessageWithoutPhoneVerified" }, "phone": { "type": "boolean", "x-go-name": "Phone" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "VerifyCodeRequest": { "type": "object", "properties": { "biometric_id": { "type": "string", "x-go-name": "BiometricID" }, "code": { "type": "string", "x-go-name": "Code" }, "session_id_2fa": { "type": "string", "x-go-name": "SessionID" } }, "x-go-package": "github.com/outdoorsy/api/internal/two_factor_authentication" }, "VinCheck": { "type": "object", "properties": { "clean": { "type": "boolean", "x-go-name": "Clean" }, "created": { "type": "string", "x-go-name": "Created", "x-go-type": "github.com/outdoorsy/api/clocks.RfcTime" }, "error": { "type": "string", "x-go-name": "Error" }, "failed": { "type": "boolean", "x-go-name": "Failed" }, "forced_approval_by": { "type": "string", "x-go-name": "ForcedApprovalBy" }, "forced_approval_reason": { "type": "string", "x-go-name": "ForcedApprovalReason" }, "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "last_title_date": { "type": "string", "x-go-name": "LastTitleDate" }, "last_title_state": { "type": "string", "x-go-name": "LastTitleState" }, "raw_response": { "type": "string", "x-go-name": "RawResponse" }, "salvage": { "type": "boolean", "x-go-name": "Salvage" }, "status": { "description": "non db attributes", "type": "string", "x-go-name": "Status" }, "validation_id": { "type": "string", "x-go-name": "ValidationID" }, "vin": { "type": "string", "x-go-name": "VIN" } }, "x-go-package": "github.com/outdoorsy/api/internal/vin" }, "WaiverSummary": { "type": "object", "properties": { "description": { "type": "string", "x-go-name": "Description" }, "owner_completed": { "type": "boolean", "x-go-name": "OwnerCompleted" }, "owner_terms": { "type": "string", "x-go-name": "OwnerTerms" }, "renter_completed": { "type": "boolean", "x-go-name": "RenterCompleted" }, "renter_confirmation_description": { "type": "string", "x-go-name": "RenterConfirmationDescription" }, "renter_confirmation_title": { "type": "string", "x-go-name": "RenterConfirmationTitle" }, "renter_terms": { "type": "string", "x-go-name": "RenterTerms" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "Warning": { "description": "Warning used for quote and booking", "type": "object", "properties": { "message": { "type": "string", "x-go-name": "Message" } }, "x-go-package": "github.com/outdoorsy/api/types" }, "WeatherRequest": { "type": "object", "properties": { "lat": { "type": "number", "format": "double", "x-go-name": "Lat" }, "lng": { "type": "number", "format": "double", "x-go-name": "Lng" }, "location": { "type": "string", "x-go-name": "Location" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "WeatherResponse": { "type": "object", "properties": { "plain_language": { "$ref": "#/definitions/IMap" }, "policy_number": { "type": "string", "x-go-name": "PolicyNumber" }, "price": { "type": "integer", "format": "int64", "x-go-name": "Price" }, "product_quote_id": { "type": "string", "x-go-name": "ProductQuoteID" }, "status": { "type": "string", "x-go-name": "Status" }, "weather_policy_id": { "type": "string", "x-go-name": "WeatherPolicyID" }, "weather_quote_id": { "type": "string", "x-go-name": "WeatherQuoteID" } }, "x-go-package": "github.com/outdoorsy/api/internal/sdks/roamly" }, "WishlistUserDetail": { "type": "object", "properties": { "avatar_url": { "type": "string", "x-go-name": "AvatarURL" }, "first_name": { "type": "string", "x-go-name": "FirstName" }, "id": { "type": "integer", "format": "int64", "x-go-name": "Id" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "user_role": { "type": "string", "x-go-name": "UserRole" } }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "WishlistUserDetails": { "type": "array", "items": { "$ref": "#/definitions/WishlistUserDetail" }, "x-go-package": "github.com/outdoorsy/api/internal/wishlists" }, "activeOptions": { "type": "object", "properties": { "cancel_policy": { "type": "string", "x-go-name": "CancelPolicy" }, "cancel_policy_combo_bookings": { "type": "string", "x-go-name": "CancelPolicyComboBookings" }, "instant_book": { "type": "boolean", "x-go-name": "InstantBook" }, "instant_book_disabled_reason": { "type": "string", "x-go-name": "InstantBookDisabledReason" }, "insurance_coverage": { "type": "string", "x-go-name": "InsuranceCoverage" }, "minimum_nights": { "type": "integer", "format": "uint64", "x-go-name": "MinimumNights" }, "use_day_pricing": { "type": "boolean", "x-go-name": "UseDayPricing" }, "use_tax_inclusive_pricing": { "type": "boolean", "x-go-name": "UseTaxInclusivePricing" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "activePrice": { "type": "object", "properties": { "base_day": { "type": "integer", "format": "uint64", "x-go-name": "BaseDay" }, "day": { "type": "integer", "format": "uint64", "x-go-name": "Day" }, "month": { "type": "integer", "format": "uint64", "x-go-name": "Month" }, "tax": { "type": "integer", "format": "uint64", "x-go-name": "Tax" }, "week": { "type": "integer", "format": "uint64", "x-go-name": "Week" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "adminDuplicateValidationRequest": { "type": "object", "properties": { "new_args": { "$ref": "#/definitions/IMap" } }, "x-go-package": "github.com/outdoorsy/api/internal/validation/http" }, "adminGetValidationResponse": { "type": "object", "properties": { "arguments": { "$ref": "#/definitions/IMap" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "deleted": { "type": "string", "format": "date-time", "x-go-name": "Deleted" }, "errors": { "$ref": "#/definitions/StringSlice" }, "forced_approval_by": { "type": "string", "x-go-name": "ForcedApprovalBy" }, "forced_approval_reason": { "type": "string", "x-go-name": "ForcedApprovalReason" }, "id": { "$ref": "#/definitions/ID" }, "last_run": { "type": "string", "format": "date-time", "x-go-name": "LastRun" }, "status": { "$ref": "#/definitions/Status" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" }, "validator": { "$ref": "#/definitions/ValidatorType" }, "validator_inputs": { "$ref": "#/definitions/IMap" } }, "x-go-package": "github.com/outdoorsy/api/internal/validation/http" }, "adminListValidationHistoryByIDResponse": { "type": "object", "properties": { "history": { "type": "array", "items": { "$ref": "#/definitions/adminListValidationHistoryItem" }, "x-go-name": "History" }, "id": { "$ref": "#/definitions/ID" } }, "x-go-package": "github.com/outdoorsy/api/internal/validation/http" }, "adminListValidationHistoryItem": { "type": "object", "properties": { "arguments": { "$ref": "#/definitions/IMap" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "deleted": { "type": "string", "format": "date-time", "x-go-name": "Deleted" }, "errors": { "$ref": "#/definitions/StringSlice" }, "forced_approval_by": { "type": "string", "x-go-name": "ForcedApprovalBy" }, "forced_approval_reason": { "type": "string", "x-go-name": "ForcedApprovalReason" }, "id": { "$ref": "#/definitions/ID" }, "last_run": { "type": "string", "format": "date-time", "x-go-name": "LastRun" }, "status": { "$ref": "#/definitions/Status" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" }, "validator": { "$ref": "#/definitions/ValidatorType" }, "validator_inputs": { "$ref": "#/definitions/IMap" } }, "x-go-package": "github.com/outdoorsy/api/internal/validation/http" }, "adminListValidationsResponse": { "type": "object", "properties": { "arguments": { "$ref": "#/definitions/IMap" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "deleted": { "type": "string", "format": "date-time", "x-go-name": "Deleted" }, "errors": { "$ref": "#/definitions/StringSlice" }, "external_id": { "type": "string", "x-go-name": "ExternalID" }, "forced_approval_by": { "type": "string", "x-go-name": "ForcedApprovalBy" }, "forced_approval_reason": { "type": "string", "x-go-name": "ForcedApprovalReason" }, "id": { "$ref": "#/definitions/ID" }, "last_run": { "type": "string", "format": "date-time", "x-go-name": "LastRun" }, "status": { "$ref": "#/definitions/Status" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" }, "validator": { "$ref": "#/definitions/ValidatorType" }, "validator_inputs": { "$ref": "#/definitions/IMap" } }, "x-go-name": "AdminListValidationsResponse", "x-go-package": "github.com/outdoorsy/api/internal/validation/http" }, "adminValidationResponse": { "type": "object", "properties": { "arguments": { "$ref": "#/definitions/IMap" }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "deleted": { "type": "string", "format": "date-time", "x-go-name": "Deleted" }, "errors": { "$ref": "#/definitions/StringSlice" }, "forced_approval_by": { "type": "string", "x-go-name": "ForcedApprovalBy" }, "forced_approval_reason": { "type": "string", "x-go-name": "ForcedApprovalReason" }, "id": { "$ref": "#/definitions/ID" }, "last_run": { "type": "string", "format": "date-time", "x-go-name": "LastRun" }, "parent_id": { "$ref": "#/definitions/ID" }, "status": { "$ref": "#/definitions/Status" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" }, "validator": { "$ref": "#/definitions/ValidatorType" }, "validator_inputs": { "$ref": "#/definitions/IMap" } }, "x-go-package": "github.com/outdoorsy/api/internal/validation/http" }, "analyticsReport": { "type": "object", "properties": { "approval_rate": { "type": "number", "format": "double", "x-go-name": "ApprovalRate" }, "total_addon_payouts": { "type": "integer", "format": "int64", "x-go-name": "TotalAddonPayouts" }, "total_booking_requests": { "type": "integer", "format": "int64", "x-go-name": "TotalBookingRequests" }, "total_confirmed_bookings": { "type": "integer", "format": "int64", "x-go-name": "TotalConfirmedBookings" }, "total_payout_amount": { "type": "integer", "format": "int64", "x-go-name": "TotalPayoutAmount" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "bookingConsignment": { "type": "object", "properties": { "keep_amt_cc_fee": { "type": "integer", "format": "int64", "x-go-name": "KeepAmountCCFee" }, "keep_amt_insurance_fee": { "type": "integer", "format": "int64", "x-go-name": "KeepAmountInsuranceFee" }, "keep_pct_cc_fee": { "type": "number", "format": "double", "x-go-name": "KeepPctCCFee" }, "keep_pct_insurance_fee": { "type": "number", "format": "double", "x-go-name": "KeepPctInsuranceFee" }, "pay_amt_total": { "type": "integer", "format": "int64", "x-go-name": "PayAmountTotal" }, "pay_pct_generator": { "type": "number", "format": "double", "x-go-name": "PayPctGenerator" }, "pay_pct_mileage": { "description": "Consigned owner support - copied rental data", "type": "number", "format": "double", "x-go-name": "PayPctMileage" }, "payout_id": { "$ref": "#/definitions/ConsignedPayout" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "convertCurrencyResponseBody": { "type": "object", "properties": { "amount": { "type": "integer", "format": "int64", "x-go-name": "Amount" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "ineligibleRental": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "x-go-name": "ID" }, "insurance_state": { "type": "string", "x-go-name": "InsuranceState" }, "name": { "type": "string", "x-go-name": "Name" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "listValidationsResponse": { "type": "object", "properties": { "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, "errors": { "$ref": "#/definitions/StringSlice" }, "external_id": { "type": "string", "x-go-name": "ExternalID" }, "id": { "$ref": "#/definitions/ID" }, "last_run": { "type": "string", "format": "date-time", "x-go-name": "LastRun" }, "status": { "$ref": "#/definitions/Status" }, "updated": { "type": "string", "format": "date-time", "x-go-name": "Updated" }, "validator": { "$ref": "#/definitions/ValidatorType" } }, "x-go-name": "ListValidationsResponse", "x-go-package": "github.com/outdoorsy/api/internal/validation/http" }, "ownerReport": { "type": "object", "properties": { "analytics_report": { "$ref": "#/definitions/analyticsReport" }, "approval_rate": { "type": "number", "format": "double", "x-go-name": "ApprovalRate" }, "average_description_length": { "type": "integer", "format": "int64", "x-go-name": "AverageDescriptionLength" }, "average_photo_count": { "type": "integer", "format": "int64", "x-go-name": "AveragePhotoCount" }, "average_response_time": { "type": "number", "format": "double", "x-go-name": "AverageResponseTime" }, "descriptions_optimal": { "description": "Overview of all rental states", "type": "boolean", "x-go-name": "DescriptionsOptimal" }, "expiration_rate": { "type": "number", "format": "double", "x-go-name": "ExpirationRate" }, "has_added_listing_question": { "type": "boolean", "x-go-name": "HasAddedListingQuestion" }, "missing_coachnet": { "type": "boolean", "x-go-name": "MissingCoachnet" }, "missing_instant_book": { "type": "boolean", "x-go-name": "MissingInstantBook" }, "missing_photos": { "type": "boolean", "x-go-name": "MissingPhotos" }, "missing_sleeps": { "type": "boolean", "x-go-name": "MissingSleeps" }, "owner_score": { "type": "number", "format": "double", "x-go-name": "OwnerScore" }, "photos_optimal": { "type": "boolean", "x-go-name": "PhotoOptimal" }, "rental_report": { "description": "Duplicate all those above, but per-rental", "type": "array", "items": { "$ref": "#/definitions/rentalReport" }, "x-go-name": "Rentals" }, "total_payout_amount": { "type": "integer", "format": "int64", "x-go-name": "TotalPayoutAmount" }, "upcoming_booking_count": { "type": "integer", "format": "int64", "x-go-name": "UpcomingBookingCount" }, "user_id": { "type": "integer", "format": "int64", "x-go-name": "UserID" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "ptxUpdate": { "type": "object", "properties": { "card_id": { "type": "integer", "format": "int64", "x-go-name": "CardID" }, "due": { "type": "string" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "rentalReport": { "type": "object", "properties": { "amount_earned": { "type": "integer", "format": "int64", "x-go-name": "AmountEarned" }, "description_length": { "type": "integer", "format": "int64", "x-go-name": "DescriptionLength" }, "description_optimal": { "type": "boolean", "x-go-name": "DescriptionOptimal" }, "has_applied_for_insurance": { "type": "boolean", "x-go-name": "HasAppliedForInsurance" }, "insured": { "type": "boolean", "x-go-name": "Insured" }, "missing_coachnet": { "type": "boolean", "x-go-name": "MissingCoachnet" }, "missing_delivery": { "type": "boolean", "x-go-name": "MissingDelivery" }, "missing_instant_book": { "type": "boolean", "x-go-name": "MissingInstantBook" }, "missing_photos": { "type": "boolean", "x-go-name": "MissingPhotos" }, "missing_sleeps": { "type": "boolean", "x-go-name": "MissingSleeps" }, "missing_vin": { "type": "boolean", "x-go-name": "MissingVin" }, "photo_count": { "type": "integer", "format": "int64", "x-go-name": "PhotoCount" }, "photos_optimal": { "type": "boolean", "x-go-name": "PhotoOptimal" }, "primary_image_url": { "type": "string", "x-go-name": "PrimaryImageUrl" }, "published": { "type": "boolean", "x-go-name": "Published" }, "rental_category": { "type": "string", "x-go-name": "RentalCategory" }, "rental_id": { "type": "integer", "format": "int64", "x-go-name": "RentalID" }, "rental_name": { "type": "string", "x-go-name": "RentalName" }, "returned_booking_count": { "type": "integer", "format": "int64", "x-go-name": "ReturnedBookingCount" }, "score": { "type": "number", "format": "double", "x-go-name": "Score" }, "upcoming_booking_count": { "type": "integer", "format": "int64", "x-go-name": "UpcomingBookingCount" }, "vin_status": { "type": "string", "x-go-name": "VinStatus" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "renterPaymentDetails": { "type": "object", "properties": { "device_data": { "type": "string", "x-go-name": "DeviceData" }, "ppi_id": { "type": "integer", "format": "int64", "x-go-name": "RenterPPI" }, "processor_name": { "type": "string", "x-go-name": "ProcessorName" } }, "x-go-package": "github.com/outdoorsy/api/model" }, "resendSystemEmailRequest": { "type": "object", "properties": { "first_name": { "type": "string", "x-go-name": "FirstName" }, "forward_email": { "type": "string", "x-go-name": "ForwardEmail" }, "last_name": { "type": "string", "x-go-name": "LastName" }, "service_id": { "type": "string", "x-go-name": "ServiceID" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "scheduledEmailsDataResponse": { "type": "object", "properties": { "scheduled_emails": { "type": "array", "items": { "$ref": "#/definitions/CustomEmailJob" }, "x-go-name": "ScheduledEmails" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" }, "scheduledEmailsMetaResponse": { "type": "object", "properties": { "limit": { "type": "integer", "format": "int64", "x-go-name": "Limit" }, "offset": { "type": "integer", "format": "int64", "x-go-name": "Offset" }, "total": { "type": "integer", "format": "int64", "x-go-name": "Total" } }, "x-go-package": "github.com/outdoorsy/api/cmd/web/handlers" } }, "responses": { "acceptWishlistInviteResponse": { "description": "", "schema": { "$ref": "#/definitions/AcceptWishlistInviteResponse" } }, "addToWishlistResponse": { "description": "", "schema": { "$ref": "#/definitions/AddToWishlistResponse" } }, "aggregateLocalityReviewsResponse": { "description": "HTTP status code 200 and ReviewsMeta model", "schema": { "$ref": "#/definitions/ReviewsMeta" } }, "aggregateResponseV2": { "description": "HTTP status code 200", "schema": { "type": "object", "properties": { "max_price": { "type": "number", "format": "double", "x-go-name": "MaxPrice" }, "min_price": { "type": "number", "format": "double", "x-go-name": "MinPrice" }, "rental_count": { "type": "integer", "format": "int64", "x-go-name": "RentalCount" } } } }, "aiReplySuggestionsResponse": { "description": "HTTP status code 200 and array of AI reply suggestion models with messages", "schema": { "type": "array", "items": { "$ref": "#/definitions/AiReplySuggestion" } } }, "amenitiesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/AmenityGroup" } } }, "authCreateResponse": { "description": "HTTP status code 200 and user model", "schema": { "$ref": "#/definitions/UserAuthResponse" } }, "badRequestError": { "description": "Invalid input or state means you're bad", "headers": { "Error": { "type": "string" } } }, "bankResponse": { "description": "HTTP status code 200", "schema": { "$ref": "#/definitions/PaymentProcessingInfo" } }, "batchEventsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/BatchEventWithFundInfo" } } }, "beginAuthorizationResponse": { "description": "HTTP status code 200", "schema": { "$ref": "#/definitions/BeginAuthorizationResponse" } }, "bidResponse": { "description": "", "schema": { "$ref": "#/definitions/Bid" } }, "bookingBundleResponse": { "description": "", "schema": { "$ref": "#/definitions/BookingBundle" } }, "bookingBundlesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/BookingBundle" } } }, "bookingCancelDetailsResponse": { "description": "", "schema": { "$ref": "#/definitions/CancellationPenaltyInfoV2" }, "headers": { "allow_user_refund_method": { "type": "boolean", "description": "return numbers for display but user may not be allowed to choose" }, "booking_total": { "type": "integer", "format": "uint64" }, "cancel_policy": { "type": "string" }, "cancellation_penalty_info": { }, "charges": { "type": "array", "items": { "$ref": "#/definitions/MinRenterCharge" } }, "from": { }, "hide_refund_amounts": { "type": "boolean" }, "id": { "type": "integer", "format": "int64" }, "presentment_currency": { "type": "string" }, "refund_options": { }, "rental_summary": { }, "service_fee": { "type": "integer", "format": "uint64" }, "sibling_booking_group_id": { }, "sibling_rental_summaries": { }, "to": { }, "total_cash_charges": { "type": "integer", "format": "int64" }, "total_charges": { "type": "integer", "format": "int64" }, "total_credit_charges": { "type": "integer", "format": "int64" } } }, "bookingItemResponse": { "description": "HTTP status code 200 and booking item model", "schema": { "$ref": "#/definitions/BookingItem" } }, "bookingItemsResponse": { "description": "HTTP status code 200 and array of booking items", "schema": { "type": "array", "items": { "$ref": "#/definitions/BookingItem" } } }, "bookingServiceResponse": { "description": "HTTP status code 200 and booking service", "schema": { "$ref": "#/definitions/BookingService" } }, "bookingServicesResponse": { "description": "HTTP status code 200 and array of premium service integrations", "schema": { "type": "array", "items": { "$ref": "#/definitions/ServiceIntegration" } } }, "bookingWeatherResponse": { "description": "HTTP status code 200", "schema": { "$ref": "#/definitions/WeatherResponse" } }, "bundleFeatureResponse": { "description": "", "schema": { "$ref": "#/definitions/BundleFeature" } }, "bundleFeaturesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/BundleFeature" } } }, "bundleResponse": { "description": "", "schema": { "$ref": "#/definitions/Bundle" } }, "bundleRuleResponse": { "description": "", "schema": { "$ref": "#/definitions/BundleRule" } }, "bundleRulesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/BundleRule" } } }, "bundlesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Bundle" } } }, "calendarResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/ICSCalendar" }, "$ref": "#/definitions/ICSCalendar" } }, "cardResponse": { "description": "", "schema": { "$ref": "#/definitions/UserCard" } }, "cardsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/UserCard" } } }, "changeWishlistResponse": { "description": "", "schema": { "$ref": "#/definitions/ChangeWishlistResponse" } }, "checkoutStepsResponse": { "description": "", "schema": { "$ref": "#/definitions/ReadResponse" } }, "completeAuthorizationResponse": { "description": "HTTP status code 200", "schema": { "$ref": "#/definitions/CompleteAuthorizationResponse" } }, "consignmentCompleteResponse": { "description": "", "schema": { "$ref": "#/definitions/ConsignmentResponse" } }, "conversationResponse": { "description": "HTTP status code 200 and conversation model", "schema": { "$ref": "#/definitions/Conversation" } }, "conversationSuggestionResponse": { "description": "HTTP status code 200 and conversation suggestion response", "schema": { "$ref": "#/definitions/ConversationSuggestionResponse" } }, "convertCurrencyResponse": { "description": "", "schema": { "$ref": "#/definitions/convertCurrencyResponseBody" } }, "createAnnouncementGroupResponse": { "description": "", "schema": { "$ref": "#/definitions/AnnouncementGroup" } }, "createAnnouncementResponse": { "description": "", "schema": { "$ref": "#/definitions/Announcement" } }, "createRentalResponse": { "description": "", "schema": { "$ref": "#/definitions/Rental" } }, "createWishlistResponse": { "description": "", "schema": { "$ref": "#/definitions/CreateWishlistResponse" } }, "creditReportResponse": { "description": "", "schema": { "$ref": "#/definitions/CreditReportResponse" } }, "deliveryPriceResponse": { "description": "HTTP status code 200 and delivery price", "headers": { "currency": { "type": "string" }, "estimated_distance": { "type": "number", "format": "double" }, "short_unit": { "type": "string" } } }, "depositDetailsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/DepositDetail" } } }, "endOfDayReportResponse": { "description": "", "schema": { "$ref": "#/definitions/EndOfDayReportResponse" } }, "estimatedDeliveryResponse": { "description": "", "schema": { "$ref": "#/definitions/DeliveryEstimatedResponse" } }, "favoriteResponse": { "description": "", "schema": { "$ref": "#/definitions/Favorite" } }, "favoritesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Favorite" } } }, "fileResponse": { "description": "", "schema": { "$ref": "#/definitions/File" } }, "filesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/File" } } }, "forbiddenError": { "description": "Forbidden error" }, "fundCreationFormResponse": { "description": "HTTP status code 200", "schema": { "type": "object", "properties": { "AuthorizationID": { "type": "string" }, "bui": { "type": "object", "additionalProperties": { }, "x-go-name": "BUI" } } } }, "fundStepsResponse": { "description": "HTTP status code 200", "schema": { "type": "object", "properties": { "bui": { "type": "object", "additionalProperties": { }, "x-go-name": "BUI" } } } }, "genericError": { "description": "An unknown, unexpected error." }, "getAnnouncementForUserResponse": { "description": "", "schema": { "$ref": "#/definitions/UserAnnouncement" } }, "getAnnouncementsForUserResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/UserAnnouncement" } } }, "getAutosuggestionsResponse": { "description": "", "schema": { "$ref": "#/definitions/AutoSuggestionsResponse" } }, "getBookingResponse": { "description": "HTTP status code 200 and rental model", "schema": { "$ref": "#/definitions/Booking" } }, "getOrCreateInviteTokenResponse": { "description": "", "schema": { "$ref": "#/definitions/GetWishlistInviteTokenResponse" } }, "getRentalResponse": { "description": "HTTP status code 200 and rental model", "schema": { "$ref": "#/definitions/Rental" } }, "getSoonestResponse": { "description": "", "schema": { "$ref": "#/definitions/GetSoonestResponse" } }, "getVehicleTypesResponse": { "description": "", "schema": { "$ref": "#/definitions/VehicleTypesResponse" } }, "globalSearchResponse": { "description": "", "schema": { "$ref": "#/definitions/GlobalSearchResponse" } }, "groupedDepositsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/DepositInfo" } } }, "icsFileResponse": { "description": "" }, "internalServerError": { "description": "Internal server error" }, "listAvailabilityResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/AvailabilityInfo" } } }, "listBankResponse": { "description": "HTTP status code 200", "schema": { "type": "array", "items": { "$ref": "#/definitions/PaymentProcessingInfo" } } }, "listBidsResponse": { "description": "HTTP status code 200 and array of bid models", "schema": { "type": "array", "items": { "$ref": "#/definitions/Bid" } } }, "listBookingsResponse": { "description": "HTTP status code 200 and array of rental models", "schema": { "type": "array", "items": { "$ref": "#/definitions/Booking" } } }, "listConversationResponse": { "description": "HTTP status code 200 and array of conversation models", "schema": { "type": "array", "items": { "$ref": "#/definitions/Conversation" } } }, "listMessageTemplatesResponse": { "description": "HTTP status code 200 and array of conversation models", "schema": { "type": "array", "items": { "$ref": "#/definitions/Template" } } }, "listPendingAuthorizationsResponse": { "description": "HTTP status code 200", "schema": { "type": "array", "items": { "$ref": "#/definitions/Authorization" } } }, "listRentalsResponse": { "description": "HTTP status code 200 and array of rental models", "schema": { "type": "array", "items": { "$ref": "#/definitions/Rental" } } }, "localityReviewsResponse": { "description": "HTTP status code 200 and array of localityReview model", "schema": { "type": "array", "items": { "$ref": "#/definitions/LocalityReview" } } }, "locationResponse": { "description": "", "schema": { "$ref": "#/definitions/Location" } }, "locationsProPageResponse": { "description": "", "schema": { "$ref": "#/definitions/ProPageResponse" } }, "locationsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Location" } } }, "messageResponse": { "description": "", "schema": { "$ref": "#/definitions/Message" } }, "messageTemplateResponse": { "description": "HTTP status code 200 and conversation model", "schema": { "$ref": "#/definitions/Template" } }, "messagesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Message" } } }, "morningReportResponse": { "description": "", "schema": { "$ref": "#/definitions/MorningReportResponse" } }, "noContentResponse": { "description": "Everything went as planned" }, "notFoundError": { "description": "Not found error" }, "noteToRentersResponse": { "description": "", "schema": { "$ref": "#/definitions/NoteToRenters" } }, "notesToRentersResponse": { "description": "", "schema": { "$ref": "#/definitions/NoteListResponse" } }, "ownerReportCardResponse": { "description": "", "schema": { "$ref": "#/definitions/ownerReport" } }, "pricingResponse": { "description": "HTTP status code 200", "schema": { "type": "object", "properties": { "high": { "type": "object", "properties": { "day": { "type": "integer", "format": "int64", "x-go-name": "Day" }, "month": { "type": "integer", "format": "int64", "x-go-name": "Month" }, "week": { "type": "integer", "format": "int64", "x-go-name": "Week" } }, "x-go-name": "High" }, "low": { "type": "object", "properties": { "day": { "type": "integer", "format": "int64", "x-go-name": "Day" }, "month": { "type": "integer", "format": "int64", "x-go-name": "Month" }, "week": { "type": "integer", "format": "int64", "x-go-name": "Week" } }, "x-go-name": "Low" }, "mmi": { "type": "boolean", "x-go-name": "MMI" } } } }, "pricingResponseV2": { "description": "HTTP status code 200", "schema": { "type": "object", "properties": { "high": { "type": "object", "properties": { "day": { "type": "integer", "format": "int64", "x-go-name": "Day" }, "month": { "type": "integer", "format": "int64", "x-go-name": "Month" }, "week": { "type": "integer", "format": "int64", "x-go-name": "Week" } }, "x-go-name": "High" }, "low": { "type": "object", "properties": { "day": { "type": "integer", "format": "int64", "x-go-name": "Day" }, "month": { "type": "integer", "format": "int64", "x-go-name": "Month" }, "week": { "type": "integer", "format": "int64", "x-go-name": "Week" } }, "x-go-name": "Low" } } } }, "proposalResponse": { "description": "", "schema": { "$ref": "#/definitions/Proposal" } }, "proposalsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Proposal" } } }, "quoteResponse": { "description": "HTTP status code 200 and quote models", "schema": { "$ref": "#/definitions/Response" } }, "readManyAnnouncementGroupsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/ReadManyAdminAnnouncementGroups" } } }, "readManyAnnouncementsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/ReadManyAdminAnnouncements" } } }, "readManyByStageResponse": { "description": "", "schema": { "$ref": "#/definitions/BookingsStageWithMeta" } }, "readManyScheduledEmailsResponse": { "description": "", "schema": { "$ref": "#/definitions/ScheduledEmailsResponse" } }, "readManyWishlistResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/ReadManyWishlist" } } }, "readOneAnnouncementGroupResponse": { "description": "", "schema": { "$ref": "#/definitions/ReadOneAdminAnnouncementGroup" } }, "readOneAnnouncementResponse": { "description": "", "schema": { "$ref": "#/definitions/ReadOneAdminAnnouncement" } }, "readOneWishlistResponse": { "description": "", "schema": { "$ref": "#/definitions/ReadOneWishlist" } }, "readRecentlySavedWishlistsResponse": { "description": "", "schema": { "type": "array", "items": { "type": "integer", "format": "int64" } } }, "removeFromWishlistResponse": { "description": "", "schema": { "$ref": "#/definitions/RemoveFromWishlistResponse" } }, "rentalImageResponse": { "description": "", "schema": { "$ref": "#/definitions/RentalImage" } }, "rentalImagesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/RentalImage" } } }, "rentalItemResponse": { "description": "HTTP status code 200 and rental item model", "schema": { "$ref": "#/definitions/RentalItem" } }, "rentalItemsResponse": { "description": "HTTP status code 200 and array of rental items", "schema": { "type": "array", "items": { "$ref": "#/definitions/RentalItem" } } }, "rentalServicesResponse": { "description": "HTTP status code 200 and rental model", "schema": { "type": "array", "items": { "$ref": "#/definitions/ServiceIntegration" } } }, "reviewResponse": { "description": "HTTP status code 200 and review model", "schema": { "$ref": "#/definitions/Review" } }, "reviewsResponse": { "description": "HTTP status code 200 and array of review model", "schema": { "type": "array", "items": { "$ref": "#/definitions/Review" } } }, "searchBookingsResponse": { "description": "", "schema": { "$ref": "#/definitions/SearchBookingsResponse" } }, "searchCustomersResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Customer" } } }, "searchMetaCountResponse": { "description": "", "schema": { "$ref": "#/definitions/SearchMetaCountResponse" } }, "searchParentBookingsResponse": { "description": "", "schema": { "$ref": "#/definitions/SearchParentBookingsResponse" } }, "searchRentalsResponse": { "description": "", "schema": { "$ref": "#/definitions/SearchRentalsResponse" } }, "specialHourResponse": { "description": "", "schema": { "$ref": "#/definitions/SpecialHour" } }, "specialHoursResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/SpecialHour" } } }, "successResponse": { "description": "" }, "todaysActivitiesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/OwnerActivity" } } }, "towableFeaturesResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/TowableFeature" } } }, "towingInfoResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/TowingInfo" } } }, "transactionResponse": { "description": "", "schema": { "$ref": "#/definitions/Transaction" } }, "transactionsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/Transaction" } } }, "unauthorizedError": { "description": "Unauthorized error" }, "updateRentalResponse": { "description": "", "schema": { "$ref": "#/definitions/Rental" } }, "urlResponse": { "description": "" }, "usageBasedItemResponse": { "description": "", "schema": { "$ref": "#/definitions/UsageBasedItem" } }, "usageBasedItemTierResponse": { "description": "", "schema": { "$ref": "#/definitions/UsageBasedItemTier" } }, "usageBasedItemTiersResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/UsageBasedItemTier" } } }, "usageBasedItemsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/UsageBasedItem" } } }, "userAuthResponse": { "description": "HTTP status code 200 and user model", "schema": { "$ref": "#/definitions/UserAuthResponse" } }, "userNoticeEventResponse": { "description": "", "schema": { "$ref": "#/definitions/NoticeEvent" } }, "userNoticeEventsResponse": { "description": "", "schema": { "type": "array", "items": { "$ref": "#/definitions/NoticeEvent" } }, "headers": { "Total-Results": { "type": "string", "description": "Total results count" } } }, "userResponse": { "description": "HTTP status code 200 and user model", "schema": { "$ref": "#/definitions/User" } }, "usersResponse": { "description": "HTTP status code 200 and list of user models", "schema": { "type": "array", "items": { "$ref": "#/definitions/User" } } } }, "securityDefinitions": { "API-Key": { "type": "apiKey", "name": "API-Key", "in": "header" }, "Bearer": { "type": "apiKey", "name": "Authorization", "in": "header" } }, "security": [ { "Bearer": [ "[]" ] }, { "API-Key": [ "[]" ] } ] }