{
  "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": [
        "[]"
      ]
    }
  ]
}
