{"openapi":"3.0.4","info":{"title":"CommonPark API","description":"CommonPark Platform API","version":"0.2.1-alpha.0.56"},"servers":[{"url":"https://sim-park.dev.ordino.global"}],"paths":{"/api/status":{"get":{"tags":["/"],"operationId":"GetStatus","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiStatusSuccessResponse"}}}}}}},"/api/packages":{"get":{"tags":["Demo"],"summary":"Gets all of the packages for a park","description":"This endpoint should see limited if any use.\n\nIn a production environment, it is expected that the customer will make use of their own e-commerce platform\nto sell items corresponding to packages in the common park platform.  Those items should include data to\nidentify the package_id that they correspond to.  There should never be any reason to display the list of\npackages configured in the system to the end user.\n\nIf the customer needs to get a list of packages to get the ids of the packages that they are selling in their\ne-commerce system, they should use the /api/admin/packages endpoint instead with their API key.\n\nThe main use of this endpoint is to allow the user of demo apps to mock out a purchase flow.","operationId":"ListUserPackages","parameters":[{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPackagePagedResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{},{"Bearer":[]},{"Basic":[]}]}},"/api/packages/{id}":{"get":{"tags":["Demo"],"summary":"Gets a package by ID","description":"See remarks for M:Ecommerce.Service.Controllers.ListUserPackagesController.ListUserPackages(Common.ApiQueryRequest,System.Threading.CancellationToken) for further details about the use of this endpoint.","operationId":"GetUserPackage","parameters":[{"name":"id","in":"path","description":"ID of the package to get","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPackageSuccessResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{},{"Bearer":[]},{"Basic":[]}]}},"/api/orders":{"post":{"tags":["Ecommerce","Admin"],"summary":"Processes incoming orders","operationId":"ProcessOrder","requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessOrderResponseSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]}},"/api/admin/packages/{id}":{"delete":{"tags":["Ecommerce","Admin"],"summary":"Deletes a package","operationId":"DeletePackage","parameters":[{"name":"id","in":"path","description":"ID of the package to delete","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"get":{"tags":["Ecommerce","Admin"],"summary":"Gets a package by ID","operationId":"GetPackage","parameters":[{"name":"id","in":"path","description":"ID of the package to get","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageSuccessResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"patch":{"tags":["Ecommerce","Admin"],"operationId":"PatchPackage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"put":{"tags":["Ecommerce","Admin"],"operationId":"PutPackage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]}},"/api/admin/packages":{"get":{"tags":["Ecommerce","Admin"],"summary":"Gets all of the packages for a park","operationId":"ListPackages","parameters":[{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackagePagedResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"post":{"tags":["Ecommerce","Admin"],"operationId":"PostPackage","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PackageSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]}},"/api/admin/parks/{id}":{"delete":{"tags":["Parks","Admin"],"summary":"Deletes a park","operationId":"DeletePark","parameters":[{"name":"id","in":"path","description":"ID of the package to delete","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"get":{"tags":["Parks","Admin"],"summary":"Gets a park by ID","operationId":"GetPark","parameters":[{"name":"id","in":"path","description":"ID of the package to get","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkSuccessResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"patch":{"tags":["Parks","Admin"],"operationId":"PatchPark","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"put":{"tags":["Parks","Admin"],"operationId":"PutPark","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]}},"/api/admin/parks":{"get":{"tags":["Parks","Admin"],"summary":"Gets all of the packages for a park","operationId":"ListParks","parameters":[{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkPagedResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"post":{"tags":["Parks","Admin"],"operationId":"PostPark","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]}},"/api/payments/stripe/webhook":{"post":{"tags":["Payments"],"summary":"Stripe webhook endpoint for processing payment events","operationId":"StripeWebhook","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/payments/paypal/webhook":{"post":{"tags":["Payments"],"summary":"PayPal webhook endpoint for processing payment events","operationId":"PaypalWebhook","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/payments/shopify/webhook":{"post":{"tags":["Payments"],"summary":"Shopify webhook endpoint for processing order events","operationId":"ShopifyWebhook","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/queues":{"get":{"tags":["Queues","User"],"summary":"Gets all of the queues for the park","description":"This endpoint can be used by the app to get a list of queues and their current wait times.","operationId":"ListUserQueues","parameters":[{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserQueuePagedResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{},{"Bearer":[]},{"Basic":[]}]}},"/api/queues/{id}":{"get":{"tags":["Queues","User"],"summary":"Gets a queue by ID","operationId":"GetUserQueue","parameters":[{"name":"id","in":"path","description":"ID of the package to get","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserQueueSuccessResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{},{"Bearer":[]},{"Basic":[]}]}},"/api/admin/queues/{id}":{"delete":{"tags":["Queues","Admin"],"summary":"Deletes a queue","operationId":"DeleteQueue","parameters":[{"name":"id","in":"path","description":"ID of the package to delete","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"get":{"tags":["Queues","Admin"],"summary":"Gets a queue by ID","operationId":"GetQueue","parameters":[{"name":"id","in":"path","description":"ID of the package to get","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueSuccessResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"patch":{"tags":["Queues","Admin"],"operationId":"PatchQueue","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"put":{"tags":["Queues","Admin"],"operationId":"PutQueue","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]}},"/api/admin/queues":{"get":{"tags":["Queues","Admin"],"summary":"Gets all of the queues for the park","operationId":"ListQueues","parameters":[{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueuePagedResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]},"post":{"tags":["Queues","Admin"],"operationId":"PostQueue","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]}},"/api/reservations/{id}":{"delete":{"tags":["Reservations","User"],"summary":"Cancels an active reservation","operationId":"DeleteReservation","parameters":[{"name":"id","in":"path","description":"ID of the reservation to delete","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[]},"get":{"tags":["Reservations","User"],"operationId":"GetReservation","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationDataSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[]}},"/api/reservations":{"get":{"tags":["Reservations","User"],"summary":"Gets all reservations for the user","description":"This endpoint can be used by the app to get a list of reservations for the current user.\n\nThe returned list defaults to only including the currently active reservations.  This behaviour can be\noverriden by setting the Common.ApiQueryRequest.Filter parameter to a different value.  For example:\n\n```\nGET /api/reservations?filter=state:ready   // Get only ready reservations\nGET /api/reservations?filter= // Get all reservations that this user has ever made\n```","operationId":"ListReservations","parameters":[{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationDataPagedResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[]}},"/api/reservations/{id}/token":{"get":{"tags":["Reservations","User"],"summary":"Gets a QR code representing the reservation.","description":"This endpoint can be used to get a QR code representing the reservation as an image.\n\nThe main use of the QR code is to be scanned by the scanner to verify and complete the reservation.\nUsing this endpoint removes the need to explicitly render the reservation token as a QR code.\n\nThe size parameter can be used to render the QR code at an increased size.  Setting the size to 1 will\nrender the QR code at it's smallest.  If you want a larger code, increasing the size parameter will increase\nthe number of pixels plotted for each part of the QR code, increasing it's size more reliably than post-scaling.\n\nIf the image is returned as a PNG, the size parameter will have a direct impact on the image size, while\nthe image size remains consistent for SVG images, though the PNG is much smaller for regularly sized images.","operationId":"GetToken","parameters":[{"name":"id","in":"path","description":"The ID of the reservation","required":true,"schema":{"type":"string"}},{"name":"size","in":"query","description":"The size of the QR code","schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[]}},"/api/reservations/complete":{"post":{"tags":["Reservations","Scanner","Admin"],"summary":"Completes an active reservation","operationId":"CompleteReservation","requestBody":{"description":"Completion request with reservation ID or session key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteReservationRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteReservationResponseSuccessResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[]}},"/api/entitlements":{"get":{"tags":["Sessions","User"],"summary":"Gets the entitlements for a user","description":"Lists all of the entitlements of the user applicable to the current data, along with their eligibility\nfor making a specific reservation based on the query parameters.\n\n* If no query parameters are provided, all entitlements of the user are returned.\n* If only queue_id is provided, all entitlements of the user are returned, and the eligibility indicates\nwhether the entitlement is eligible to reserve the specified queue.\n* If only type is provided, all entitlements of the user are returned, and the eligibility indicates\nwhether the entitlement is eligible to make the specified type of reservation.\n* If both queue_id and type are provided, all entitlements of the user are returned, and the eligibility\nindicates whether the entitlement is eligible to reserve the specified queue with the specified type of reservation.\n\nThe results can be additionally filtered by setting the Common.ApiQueryRequest.Filter parameter.\nFor example:\n\n* to only view the entitlements eligible to reserve a specific queue:\n`GET /api/entitlements?queue_id=123&filter=is_eligible:true`\n* to only view the entitlements eligible to make a specific type of reservation:\n`GET /api/entitlements?type=parallel&filter=is_eligible:true`\n* to only view the entitlements eligible to reserve a specific queue with a specific type of reservation:\n`GET /api/entitlements?queue_id=123&type=parallel&filter=is_eligible:true`\n* to view all entitlements that the user has had in the past, has today, and has in the future:\n`GET /api/entitlements?filter=`\n* to view all entitlements for `Alice`:\n`GET /api/entitlements?filter=metadata.nickname:Alice`\n* to view all entitlements for `Alice` to reserve a specific queue with specific type of reservation:\n`GET /api/entitlements?queue_id=123&type=parallel&filter=metadata.nickname:Alice`\n* to only view the Alice's entitlements that are eligible to reserve a specific queue with specific type of reservation:\n`GET /api/entitlements?queue_id=123&type=parallel&filter=metadata.nickname:Alice,is_eligible:true`\n\nBy default, the results are filtered to entitlements that are applicable to the current date.\nThat is, entitlements that were only available on previous days and entitlements that are only\navailable in the future are excluded.  This behaviour can be overriden by clearing the filter\nusing `/api/entitlements?filter=` or by passing a different filter.","operationId":"ListEntitlements","parameters":[{"name":"queue_id","in":"query","description":"The ID of the queue to check for eligibility.","schema":{"type":"string"}},{"name":"type","in":"query","description":"The type of reservation to check for eligibility.","schema":{"enum":["parallel","premium","time_bank","reverse"],"type":"string"}},{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitlementEligibilityDataPagedResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"Basic":[]}]}},"/api/sessions/{sessionId}/entitlements":{"get":{"tags":["Sessions","User"],"summary":"Gets the entitlements for a session","description":"Lists all of the entitlements for a session, along with their eligibility\nfor making a specific reservation based on the query parameters.","operationId":"ListSessionEntitlements","parameters":[{"name":"sessionId","in":"path","description":"The ID of the session to get the entitlements for","required":true,"schema":{"type":"string"}},{"name":"queue_id","in":"query","description":"The ID of the queue to check for eligibility.","schema":{"type":"string"}},{"name":"type","in":"query","description":"The type of reservation to check for eligibility.","schema":{"enum":["parallel","premium","time_bank","reverse"],"type":"string"}},{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitlementEligibilityDataPagedResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"Basic":[]}]}},"/api/sessions/{sessionId}/entitlements/{entitlementId}":{"get":{"tags":["Sessions","User"],"operationId":"GetEntitlement","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"entitlementId","in":"path","required":true,"schema":{"type":"string"}},{"name":"queue_id","in":"query","description":"The ID of the queue to check for eligibility.","schema":{"type":"string"}},{"name":"type","in":"query","description":"The type of reservation to check for eligibility.","schema":{"enum":["parallel","premium","time_bank","reverse"],"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitlementEligibilityDataSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"Basic":[]}]}},"/api/sessions":{"get":{"tags":["Sessions","User"],"summary":"Gets all sessions for the user","description":"Gets all the sessions for the user, filtered by the user's sign in name, specified session keys, or a locator code.\n\nFurther filtering can be applied by setting the Common.ApiQueryRequest.Filter parameter.\n\nBy default, the results will be filtered to only include sessions that are available to the user.  That is, they\nare either active right now, or could be active right now.  Clearing the filter will return all sessions for the\nuser in the past and future.\n\nAll results will be filtered to sessions that the user has access to.  Either\n* the session is directly assigned to the user's sign in name, or\n* the session is assigned to a locator code that the user is also a member of.","operationId":"ListSessions","parameters":[{"name":"session_key","in":"query","schema":{"type":"array","items":{"type":"string"}}},{"name":"locator_code","in":"query","schema":{"type":"string"}},{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionDataPagedResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"Basic":[]}]}},"/api/sessions/{id}":{"get":{"tags":["Sessions","User"],"summary":"Gets a session for the user","operationId":"GetSession","parameters":[{"name":"id","in":"path","description":"The session key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionDataSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"Basic":[]}]},"patch":{"tags":["Sessions","User"],"summary":"Changes a session for the user","description":"Changes the session for the user, updating the device ID or nickname.\n\nNOTE: `DeviceId` should probably only be settable by a non-user.\n\nThe session must be owned by the user to be changed.","operationId":"PatchSession","parameters":[{"name":"id","in":"path","description":"The session key","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The session data to patch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSessionData"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionDataSuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"Basic":[]}]}},"/api/admin/sessions":{"get":{"tags":["Sessions","Admin"],"summary":"Looks up session details by the user's sign in name, a specified session key, or a locator code","operationId":"AdminGetSessions","parameters":[{"name":"email","in":"query","schema":{"type":"string"}},{"name":"session_key","in":"query","schema":{"type":"array","items":{"type":"string"}}},{"name":"locator_code","in":"query","schema":{"type":"string"}},{"name":"page","in":"query","description":"The page number to return, beginning at 1.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":1},"example":1},{"name":"page_size","in":"query","description":"The maximum number of items to return in the items collection.","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32","example":10},"example":10},{"name":"fields","in":"query","description":"The fields to return in the output items.","schema":{"pattern":"^[^,]+(,[^,]+)*$","type":"array","items":{"type":"string"},"example":"name,status"},"example":"name,status"},{"name":"sort","in":"query","description":"The field name to sort output items by.","schema":{"pattern":"^!?[^,]+(,!?[^,]+)*$","type":"array","items":{"type":"string"},"example":"name"},"example":"name"},{"name":"filter","in":"query","description":"The filter to apply to the output items.","schema":{"pattern":"^([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+)(,([^:,]+):((!|>=|<=|>|<))?((?:[^,\\\\]|\\\\,)+))*$","type":"string","example":"status:open"},"example":"status:open"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionDataPagedResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}},"security":[{"Bearer":[]},{"ApiKey":[]}]}},"/api/sessions/actions/redeem":{"post":{"tags":["Sessions","User"],"summary":"Redeems a preordered session","operationId":"RedeemSession","parameters":[{"name":"id","in":"query","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}}},"security":[{"Bearer":[]},{"Basic":[]}]}},"/api/sessions/actions/reserve":{"post":{"tags":["Sessions","User"],"summary":"Creates a reservation for one or more sessions.","description":"Possible errors that may be returned include:\n\n| Error                                | Reason                                                                                                                                                                                                 |\n|--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ResourceNotFound(\"queue\")            | A queue could not be found with the specified queue_id.                                                                                                                                                |\n| queue_closed                         | The specified queue is currently closed and not accepting new reservations.                                                                                                                            |\n| validation_error                     | The input was not valid.  Specific reasons will be included in the `detail` field.                                                                                                                     |\n| ResourceNotFound(\"session\")          | The specified entitlements or sessions include a session that does not exist.                                                                                                                          |\n| ResourceNotFoundError(\"entitlement\") | The specified entitlements or sessions could not be found. This could either be because the specified entitlement_key was invalid, or because the session contains more than one matching entitlement. |\n| EntitlementNotUsable                 | One or more of the specified entitlements is not in a usable state.  The specific usability of all specified entitlements is included in the response.                                                 |\n| EntitlementNotEligible               | One or more of the specified entitlement is not eligible for the `reservation_type@queue_id` pair.  The specific eligibility of all specified entitlements is included in the response.                |","operationId":"ReserveCommand","requestBody":{"description":"Reserve request with session keys and queue ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReserveRequest"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"Bearer":[]},{"Basic":[]}]}}},"components":{"schemas":{"ApiStatus":{"required":["gateway_version","service_versions"],"type":"object","properties":{"ok":{"type":"boolean"},"timestamp":{"type":"string","format":"date-time"},"user":{"type":"string","nullable":true},"roles":{"type":"array","items":{"type":"string"},"nullable":true},"gateway_version":{"type":"string","nullable":true},"service_versions":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"ApiStatusSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/ApiStatus"}},"additionalProperties":{}},"CompleteReservationRequest":{"type":"object","properties":{"queue_id":{"type":"string","description":"Optional queue ID for which the scanner is validating.","nullable":true},"token":{"type":"string","description":"The opaque token provided with the reservation object.","nullable":true},"reservation_id":{"type":"string","nullable":true,"deprecated":true},"session_key":{"type":"string","nullable":true,"deprecated":true}},"additionalProperties":false},"CompleteReservationResponse":{"required":["can_enter","result"],"type":"object","properties":{"result":{"enum":["allowed","already_completed","invalid_token","not_found","not_in_queue","canceled","too_early","too_late"],"type":"string","description":"The result of the completion."},"can_enter":{"type":"boolean","description":"Indicates whether the reservation is allowed to enter."},"queue_id":{"type":"string","description":"The ID of the queue for which the reservation was validated.","nullable":true},"queue_name":{"type":"string","description":"The name of the queue for which the reservation was validated.","nullable":true},"guest_count":{"type":"integer","description":"The number of guests that were validated.","format":"int32","nullable":true},"reservation":{"$ref":"#/components/schemas/ReservationData"}},"additionalProperties":false},"CompleteReservationResponseSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/CompleteReservationResponse"}},"additionalProperties":{}},"EntitlementDefinitionData":{"type":"object","properties":{"id":{"type":"string","description":"An optional ID for the entitlement so that it may be referenced by other entitlements.","nullable":true},"title":{"type":"string","description":"An optional human-readable name for the entitlement.","nullable":true},"description":{"type":"string","description":"An optional human-readable description of the entitlement.","nullable":true},"type":{"type":"string","description":"The type of reservation that this entitlement is for.","nullable":true},"requires":{"type":"array","items":{"type":"string"},"description":"An optional list of other entitlements that must be present in order for this entitlement to be available.","nullable":true},"count":{"type":"integer","description":"The total number of reservations that this entitlement allows or null if the number of uses is unlimited.","format":"int32","nullable":true},"queues":{"type":"array","items":{"$ref":"#/components/schemas/QueueEntitlementDefinitionData"},"description":"The queues to which this entitlement applies.","nullable":true}},"additionalProperties":false},"EntitlementEligibilityData":{"required":["eligibility","entitlement_key","metadata"],"type":"object","properties":{"self":{"type":"string","description":"The URL of the entitlement resource.","nullable":true,"readOnly":true},"entitlement_key":{"type":"string","description":"The key of the entitlement.","nullable":true},"id":{"type":"string","description":"The ID of the entitlement.","nullable":true},"reservation_type":{"enum":["parallel","premium","time_bank","reverse"],"type":"string","description":"The type of reservation that this entitlement is for.","nullable":true},"title":{"type":"string","description":"An optional title of the entitlement.","nullable":true},"description":{"type":"string","description":"An optional description of the entitlement.","nullable":true},"usability":{"enum":["usable","not_redeemed","already_reserved","not_redeemable","not_available","no_remaining_uses","expired"],"type":"string","description":"Denotes whether an entitlement CAN be used to make reservations."},"is_usable":{"type":"boolean","description":"Indicates whether the entitlement can be used to make a reservation right now.","readOnly":true},"is_applicable":{"type":"boolean","description":"Indicates whether the entitlement could or has been used today.","readOnly":true},"requires_entitlement":{"type":"array","items":{"type":"string"},"description":"Indicates whether another session must be included in the reservation in order to use this entitlement.","nullable":true},"total_count":{"type":"integer","description":"The total number of reservations that this entitlement allows or null if the number of uses is unlimited.","format":"int32","nullable":true},"remaining_count":{"type":"integer","description":"The number of reservations that this entitlement has remaining or null if the number of uses is unlimited.","format":"int32","nullable":true},"available_after":{"type":"string","description":"The time after which this entitlement may become available, null if currently available.","format":"date-time","nullable":true},"queue_id":{"type":"string","description":"The ID of the queue for which this entitlement is applicable.","nullable":true},"session_url":{"type":"string","description":"The URL of the session resource.","nullable":true,"readOnly":true},"is_eligible":{"type":"boolean","description":"Indicates whether the entitlement is eligible to make the specified reservation.","readOnly":true},"eligibility":{"enum":["eligible","missing_required_session","not_allowed_on_queue","no_remaining_uses","not_enough_minutes","not_allowed_for_reservation_type","no_entitlement"],"type":"string","description":"Denotes whether an entitlement COULD be used to make a specific reservation."},"metadata":{"$ref":"#/components/schemas/EntitlementMetadata"},"reservation":{"$ref":"#/components/schemas/EntitlementReservationData"}},"additionalProperties":{}},"EntitlementEligibilityDataPagedResponse":{"required":["items"],"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"description":"The data that was returned from the request.","nullable":true},"self":{"type":"string","nullable":true,"readOnly":true},"page":{"type":"integer","description":"The page number of the current page, or null if not paginated.","format":"int32","nullable":true},"page_size":{"type":"integer","description":"The number of items per page, or null if not paginated.","format":"int32","nullable":true},"page_count":{"type":"integer","description":"The number of pages into which the results are divided, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"first_page_url":{"type":"string","description":"Link to the first page of results, or null if there is only one page of results.","nullable":true},"prev_page":{"type":"integer","description":"The index of the previous page, or null if there is no previous page.","format":"int32","nullable":true,"readOnly":true},"prev_page_url":{"type":"string","description":"Link to the previous page of results, or null if there is no previous page.","nullable":true},"next_page":{"type":"integer","description":"The index of the next page, or null if there is no next page.","format":"int32","nullable":true,"readOnly":true},"next_page_url":{"type":"string","description":"Link to the next page of results, or null if there is no next page.","nullable":true},"last_page":{"type":"integer","description":"The index of the last page, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"last_page_url":{"type":"string","description":"Link to the last page of results, or null if there is only one page of results.","nullable":true},"total":{"type":"integer","description":"The total number of items in the collection before filtering or pagination.","format":"int32"},"filtered_total":{"type":"integer","description":"The number of items in the collection after filtering, or null if not filtered.","format":"int32","nullable":true},"count":{"type":"integer","description":"The number of items in the collection after filtering and pagination.","format":"int32"},"filtered_by":{"type":"array","items":{"$ref":"#/components/schemas/FilterTerm"},"description":"The filter terms applied to the collection.","nullable":true},"ordered_by":{"type":"array","items":{"$ref":"#/components/schemas/SortTerm"},"description":"The sort terms applied to the collection.","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/EntitlementEligibilityData"},"description":"The items in the collection.","nullable":true}},"additionalProperties":{}},"EntitlementEligibilityDataSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/EntitlementEligibilityData"}},"additionalProperties":{}},"EntitlementMetadata":{"type":"object","properties":{"user_id":{"type":"string","description":"The ID of the user associated with the entitlement.","nullable":true},"locator_code":{"type":"string","description":"The locator code of the session to which the entitlement belongs.","nullable":true},"nickname":{"type":"string","description":"The nickname assigned to the session to which the entitlement belongs.","nullable":true},"package":{"$ref":"#/components/schemas/SessionPackageData"}},"additionalProperties":false},"EntitlementReservationData":{"required":["id","queue_id","state"],"type":"object","properties":{"self":{"type":"string","description":"Link to the reservation resource.","nullable":true,"readOnly":true},"id":{"type":"string","description":"The ID of the reservation.","nullable":true},"queue_id":{"type":"string","description":"The ID of the queue for which the reservation was made.","nullable":true},"queue_url":{"type":"string","description":"Link to the queue resource.","nullable":true,"readOnly":true},"queue_name":{"type":"string","description":"The name of the queue for which the reservation was made.","nullable":true},"state":{"enum":["waiting","paused","canceled","expired","ready","completed"],"type":"string","description":"The state of a reservation."},"ready_at":{"type":"string","description":"The time that the reservation is expected to be ready.","format":"date-time","nullable":true},"remaining_wait_time_seconds":{"type":"number","description":"The remaining wait time for the reservation in seconds.","format":"double","nullable":true},"is_cancelable":{"type":"boolean","description":"Indicates whether the reservation can be canceled.","readOnly":true},"cancel_url":{"type":"string","description":"Link to the endpoint used to cancel the reservation.","nullable":true}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":400},"error_code":{"type":"string","description":"The error code of the response.","nullable":true},"type":{"type":"string","description":"A URI reference [RFC3986] that identifies the problem type.","nullable":true,"readOnly":true},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","default":"Bad request","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"request_data":{"description":"The data that was sent in the request.","nullable":true}},"additionalProperties":{}},"FilterTerm":{"type":"object","properties":{"path":{"type":"string","nullable":true},"value":{"type":"string","nullable":true},"type":{"enum":["equal","not_equal","greater_than","greater_than_or_equal","less_than","less_than_or_equal"],"type":"string"}},"additionalProperties":false},"ForbiddenResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"error_code":{"type":"string","description":"The error code of the response.","nullable":true},"type":{"type":"string","description":"A URI reference [RFC3986] that identifies the problem type.","nullable":true,"readOnly":true},"request_data":{"description":"The data that was sent in the request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":403},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","default":"Insufficient permissions","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"allowed_roles":{"type":"array","items":{"type":"string"},"description":"The roles that are permitted to complete the request.","nullable":true}},"additionalProperties":{}},"Member":{"type":"object","properties":{"session_key":{"type":"string","description":"The key of the session.","nullable":true},"session_url":{"type":"string","description":"Link to the session that is part of the reservation.","nullable":true,"readOnly":true},"entitlement_key":{"type":"string","description":"The key of the entitlement used by the user for the reservation.","nullable":true},"entitlement_url":{"type":"string","description":"Link to the entitlement that is part of the reservation.","nullable":true,"readOnly":true},"user_id":{"type":"string","description":"The ID of the user that owns the session.","nullable":true},"nickname":{"type":"string","description":"The nickname of the user that owns the session.","nullable":true}},"additionalProperties":false,"description":"Information about a user who is part of a reservation."},"NotFoundResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"error_code":{"type":"string","description":"The error code of the response.","nullable":true},"type":{"type":"string","description":"A URI reference [RFC3986] that identifies the problem type.","nullable":true,"readOnly":true},"request_data":{"description":"The data that was sent in the request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":404},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","default":"Resource not found","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"path":{"type":"string","description":"The path of the resource that was not found.","nullable":true}},"additionalProperties":{}},"Order":{"required":["guest_email","packages"],"type":"object","properties":{"guest_email":{"maxLength":256,"minLength":1,"type":"string","description":"The identity of the user that owns the order."},"packages":{"minItems":1,"type":"array","items":{"$ref":"#/components/schemas/OrderPackage"},"description":"The packages that are part of the order."},"redeemable_from":{"type":"string","description":"The date from which the order may be redeemed.","format":"date","nullable":true},"redeemable_until":{"type":"string","description":"The time until which the order may be redeemed.","format":"date","nullable":true},"max_redemptions":{"maximum":1000,"minimum":1,"type":"integer","description":"The number of times the order may be redeemed.","format":"int32","nullable":true},"metadata":{"$ref":"#/components/schemas/OrderMetadata"}},"additionalProperties":false},"OrderMetadata":{"type":"object","properties":{"source":{"type":"string","description":"The source of the order.","nullable":true},"total_amount":{"maximum":1000000,"minimum":0,"type":"number","description":"The total amount paid for the order.","format":"double","nullable":true},"reference":{"type":"string","description":"A reference to the order.","nullable":true},"order_id":{"type":"string","nullable":true}},"additionalProperties":false},"OrderPackage":{"required":["package_id","quantity"],"type":"object","properties":{"package_id":{"maxLength":256,"minLength":1,"type":"string","description":"The id of the package."},"quantity":{"maximum":1000,"minimum":1,"type":"integer","description":"The number of the packages to be purchased.","format":"int32"}},"additionalProperties":false},"Package":{"type":"object","properties":{"name":{"type":"string","description":"The name of the package.","nullable":true},"description":{"type":"string","description":"The description of the package.","nullable":true},"price":{"type":"number","description":"The price of the package.","format":"double","nullable":true},"is_active":{"type":"boolean","description":"Indicates whether the package is active.","nullable":true},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/EntitlementDefinitionData"},"description":"Entitlements of the package.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the package.","nullable":true},"id":{"type":"string","nullable":true},"park_id":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true},"created_by":{"type":"string","nullable":true},"updated_by":{"type":"string","nullable":true}},"additionalProperties":false},"PackageData":{"type":"object","properties":{"name":{"type":"string","description":"The name of the package.","nullable":true},"description":{"type":"string","description":"The description of the package.","nullable":true},"price":{"type":"number","description":"The price of the package.","format":"double","nullable":true},"is_active":{"type":"boolean","description":"Indicates whether the package is active.","nullable":true},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/EntitlementDefinitionData"},"description":"Entitlements of the package.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the package.","nullable":true}},"additionalProperties":false},"PackagePagedResponse":{"required":["items"],"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"description":"The data that was returned from the request.","nullable":true},"self":{"type":"string","nullable":true,"readOnly":true},"page":{"type":"integer","description":"The page number of the current page, or null if not paginated.","format":"int32","nullable":true},"page_size":{"type":"integer","description":"The number of items per page, or null if not paginated.","format":"int32","nullable":true},"page_count":{"type":"integer","description":"The number of pages into which the results are divided, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"first_page_url":{"type":"string","description":"Link to the first page of results, or null if there is only one page of results.","nullable":true},"prev_page":{"type":"integer","description":"The index of the previous page, or null if there is no previous page.","format":"int32","nullable":true,"readOnly":true},"prev_page_url":{"type":"string","description":"Link to the previous page of results, or null if there is no previous page.","nullable":true},"next_page":{"type":"integer","description":"The index of the next page, or null if there is no next page.","format":"int32","nullable":true,"readOnly":true},"next_page_url":{"type":"string","description":"Link to the next page of results, or null if there is no next page.","nullable":true},"last_page":{"type":"integer","description":"The index of the last page, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"last_page_url":{"type":"string","description":"Link to the last page of results, or null if there is only one page of results.","nullable":true},"total":{"type":"integer","description":"The total number of items in the collection before filtering or pagination.","format":"int32"},"filtered_total":{"type":"integer","description":"The number of items in the collection after filtering, or null if not filtered.","format":"int32","nullable":true},"count":{"type":"integer","description":"The number of items in the collection after filtering and pagination.","format":"int32"},"filtered_by":{"type":"array","items":{"$ref":"#/components/schemas/FilterTerm"},"description":"The filter terms applied to the collection.","nullable":true},"ordered_by":{"type":"array","items":{"$ref":"#/components/schemas/SortTerm"},"description":"The sort terms applied to the collection.","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/Package"},"description":"The items in the collection.","nullable":true}},"additionalProperties":{}},"PackageSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/Package"}},"additionalProperties":{}},"Park":{"type":"object","properties":{"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"domains":{"type":"array","items":{"type":"string"},"description":"The domains from which the park may be accessed.","nullable":true},"time_zone_id":{"type":"string","description":"The time zone in which the park operates.","nullable":true},"daily_reset_time":{"type":"string","description":"The time of day at which the park resets its daily state.  Defaults to 04:00.","format":"time","nullable":true},"users":{"type":"array","items":{"$ref":"#/components/schemas/User"},"nullable":true},"settings":{"type":"object","additionalProperties":{},"nullable":true},"park_id":{"type":"string","nullable":true},"current_day":{"type":"string","format":"date","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true},"created_by":{"type":"string","nullable":true},"updated_by":{"type":"string","nullable":true}},"additionalProperties":false},"ParkData":{"type":"object","properties":{"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"domains":{"type":"array","items":{"type":"string"},"description":"The domains from which the park may be accessed.","nullable":true},"time_zone_id":{"type":"string","description":"The time zone in which the park operates.","nullable":true},"daily_reset_time":{"type":"string","description":"The time of day at which the park resets its daily state.  Defaults to 04:00.","format":"time","nullable":true},"users":{"type":"array","items":{"$ref":"#/components/schemas/User"},"nullable":true},"settings":{"type":"object","additionalProperties":{},"nullable":true}},"additionalProperties":false},"ParkPagedResponse":{"required":["items"],"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"description":"The data that was returned from the request.","nullable":true},"self":{"type":"string","nullable":true,"readOnly":true},"page":{"type":"integer","description":"The page number of the current page, or null if not paginated.","format":"int32","nullable":true},"page_size":{"type":"integer","description":"The number of items per page, or null if not paginated.","format":"int32","nullable":true},"page_count":{"type":"integer","description":"The number of pages into which the results are divided, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"first_page_url":{"type":"string","description":"Link to the first page of results, or null if there is only one page of results.","nullable":true},"prev_page":{"type":"integer","description":"The index of the previous page, or null if there is no previous page.","format":"int32","nullable":true,"readOnly":true},"prev_page_url":{"type":"string","description":"Link to the previous page of results, or null if there is no previous page.","nullable":true},"next_page":{"type":"integer","description":"The index of the next page, or null if there is no next page.","format":"int32","nullable":true,"readOnly":true},"next_page_url":{"type":"string","description":"Link to the next page of results, or null if there is no next page.","nullable":true},"last_page":{"type":"integer","description":"The index of the last page, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"last_page_url":{"type":"string","description":"Link to the last page of results, or null if there is only one page of results.","nullable":true},"total":{"type":"integer","description":"The total number of items in the collection before filtering or pagination.","format":"int32"},"filtered_total":{"type":"integer","description":"The number of items in the collection after filtering, or null if not filtered.","format":"int32","nullable":true},"count":{"type":"integer","description":"The number of items in the collection after filtering and pagination.","format":"int32"},"filtered_by":{"type":"array","items":{"$ref":"#/components/schemas/FilterTerm"},"description":"The filter terms applied to the collection.","nullable":true},"ordered_by":{"type":"array","items":{"$ref":"#/components/schemas/SortTerm"},"description":"The sort terms applied to the collection.","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/Park"},"description":"The items in the collection.","nullable":true}},"additionalProperties":{}},"ParkSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/Park"}},"additionalProperties":{}},"ProcessOrderResponse":{"type":"object","properties":{"locator_code":{"type":"string","nullable":true},"sessions_url":{"type":"string","nullable":true,"readOnly":true}},"additionalProperties":false},"ProcessOrderResponseSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/ProcessOrderResponse"}},"additionalProperties":{}},"Queue":{"type":"object","properties":{"name":{"type":"string","nullable":true},"is_active":{"type":"boolean","nullable":true},"type":{"type":"string","nullable":true},"image_url":{"type":"string","nullable":true},"status":{"enum":["open","paused","closed"],"type":"string","nullable":true},"wait_time_observed":{"type":"number","format":"double","nullable":true},"guests_per_hour":{"type":"number","format":"double","nullable":true},"config":{"type":"object","additionalProperties":{},"nullable":true},"park_id":{"type":"string","nullable":true},"id":{"type":"string","nullable":true},"wait_time_minutes":{"type":"number","format":"double","nullable":true},"expected_ready_at":{"type":"string","format":"date-time","nullable":true},"metrics":{"$ref":"#/components/schemas/QueueMetrics"},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true},"created_by":{"type":"string","nullable":true},"updated_by":{"type":"string","nullable":true}},"additionalProperties":false},"QueueData":{"type":"object","properties":{"name":{"type":"string","nullable":true},"is_active":{"type":"boolean","nullable":true},"type":{"type":"string","nullable":true},"image_url":{"type":"string","nullable":true},"status":{"enum":["open","paused","closed"],"type":"string","nullable":true},"wait_time_observed":{"type":"number","format":"double","nullable":true},"guests_per_hour":{"type":"number","format":"double","nullable":true},"config":{"type":"object","additionalProperties":{},"nullable":true}},"additionalProperties":false},"QueueEntitlementData":{"required":["queue_id"],"type":"object","properties":{"queue_id":{"type":"string","description":"The Id of the queue that this entitlement is applicable to.","nullable":true},"queue_url":{"type":"string","description":"The URL of the queue resource.","nullable":true,"readOnly":true},"total_count":{"type":"integer","description":"The total number of reservations that this entitlement is allowed on this specific queue.","format":"int32","nullable":true},"remaining_count":{"type":"integer","description":"The number of reservations that this entitlement has remaining on this specific queue.","format":"int32","nullable":true}},"additionalProperties":false},"QueueEntitlementDefinitionData":{"required":["id"],"type":"object","properties":{"id":{"type":"string","description":"The ID of the queue to which this entitlement applies.","nullable":true},"count":{"type":"integer","description":"The total number of reservations that this entitlement is allowed on this specific queue or null if unlimited.","format":"int32","nullable":true}},"additionalProperties":false},"QueueMetrics":{"type":"object","properties":{"wait_time_minutes":{"type":"number","format":"double","nullable":true},"status":{"type":"string","nullable":true},"other_metrics":{"type":"object","additionalProperties":{},"nullable":true}},"additionalProperties":false},"QueuePagedResponse":{"required":["items"],"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"description":"The data that was returned from the request.","nullable":true},"self":{"type":"string","nullable":true,"readOnly":true},"page":{"type":"integer","description":"The page number of the current page, or null if not paginated.","format":"int32","nullable":true},"page_size":{"type":"integer","description":"The number of items per page, or null if not paginated.","format":"int32","nullable":true},"page_count":{"type":"integer","description":"The number of pages into which the results are divided, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"first_page_url":{"type":"string","description":"Link to the first page of results, or null if there is only one page of results.","nullable":true},"prev_page":{"type":"integer","description":"The index of the previous page, or null if there is no previous page.","format":"int32","nullable":true,"readOnly":true},"prev_page_url":{"type":"string","description":"Link to the previous page of results, or null if there is no previous page.","nullable":true},"next_page":{"type":"integer","description":"The index of the next page, or null if there is no next page.","format":"int32","nullable":true,"readOnly":true},"next_page_url":{"type":"string","description":"Link to the next page of results, or null if there is no next page.","nullable":true},"last_page":{"type":"integer","description":"The index of the last page, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"last_page_url":{"type":"string","description":"Link to the last page of results, or null if there is only one page of results.","nullable":true},"total":{"type":"integer","description":"The total number of items in the collection before filtering or pagination.","format":"int32"},"filtered_total":{"type":"integer","description":"The number of items in the collection after filtering, or null if not filtered.","format":"int32","nullable":true},"count":{"type":"integer","description":"The number of items in the collection after filtering and pagination.","format":"int32"},"filtered_by":{"type":"array","items":{"$ref":"#/components/schemas/FilterTerm"},"description":"The filter terms applied to the collection.","nullable":true},"ordered_by":{"type":"array","items":{"$ref":"#/components/schemas/SortTerm"},"description":"The sort terms applied to the collection.","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/Queue"},"description":"The items in the collection.","nullable":true}},"additionalProperties":{}},"QueueSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/Queue"}},"additionalProperties":{}},"ReservationData":{"type":"object","properties":{"self":{"type":"string","description":"Link to the reservation.","nullable":true,"readOnly":true},"id":{"type":"string","description":"The unique identifier for the reservation.","nullable":true},"queue_id":{"type":"string","description":"The unique identifier for the queue to which the reservation belongs.","nullable":true},"queue_name":{"type":"string","description":"The name of the queue to which the reservation belongs.","nullable":true},"queue_url":{"type":"string","description":"Link to the queue to which the reservation belongs.","nullable":true,"readOnly":true},"reservation_type":{"type":"string","description":"The type of reservation.","nullable":true},"wait_time_at_reservation_seconds":{"type":"integer","description":"The wait time at the time the reservation was created.","format":"int32"},"remaining_wait_time_seconds":{"type":"integer","description":"The remaining wait time for the reservation in seconds.","format":"int32"},"status":{"type":"string","nullable":true},"state":{"enum":["waiting","paused","canceled","expired","ready","completed"],"type":"string","description":"The state of a reservation."},"is_ready":{"type":"boolean","description":"Indicates whether the reservation is ready to enter.","readOnly":true},"ready_at":{"type":"string","description":"The time that the reservation is expected to be ready.","format":"date-time","nullable":true},"is_cancelable":{"type":"boolean","description":"Indicates whether the reservation can be canceled.","readOnly":true},"cancel_url":{"type":"string","description":"Link to the endpoint used to cancel the reservation.","nullable":true},"members":{"type":"array","items":{"$ref":"#/components/schemas/Member"},"description":"The users who are part of the reservation.","nullable":true},"token":{"type":"string","description":"The token to be passed to the scanner to complete the reservation.","nullable":true},"token_url":{"type":"string","description":"Link to a PNG image of the token rendered as a QR code for easy scanning.","nullable":true}},"additionalProperties":false},"ReservationDataPagedResponse":{"required":["items"],"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"description":"The data that was returned from the request.","nullable":true},"self":{"type":"string","nullable":true,"readOnly":true},"page":{"type":"integer","description":"The page number of the current page, or null if not paginated.","format":"int32","nullable":true},"page_size":{"type":"integer","description":"The number of items per page, or null if not paginated.","format":"int32","nullable":true},"page_count":{"type":"integer","description":"The number of pages into which the results are divided, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"first_page_url":{"type":"string","description":"Link to the first page of results, or null if there is only one page of results.","nullable":true},"prev_page":{"type":"integer","description":"The index of the previous page, or null if there is no previous page.","format":"int32","nullable":true,"readOnly":true},"prev_page_url":{"type":"string","description":"Link to the previous page of results, or null if there is no previous page.","nullable":true},"next_page":{"type":"integer","description":"The index of the next page, or null if there is no next page.","format":"int32","nullable":true,"readOnly":true},"next_page_url":{"type":"string","description":"Link to the next page of results, or null if there is no next page.","nullable":true},"last_page":{"type":"integer","description":"The index of the last page, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"last_page_url":{"type":"string","description":"Link to the last page of results, or null if there is only one page of results.","nullable":true},"total":{"type":"integer","description":"The total number of items in the collection before filtering or pagination.","format":"int32"},"filtered_total":{"type":"integer","description":"The number of items in the collection after filtering, or null if not filtered.","format":"int32","nullable":true},"count":{"type":"integer","description":"The number of items in the collection after filtering and pagination.","format":"int32"},"filtered_by":{"type":"array","items":{"$ref":"#/components/schemas/FilterTerm"},"description":"The filter terms applied to the collection.","nullable":true},"ordered_by":{"type":"array","items":{"$ref":"#/components/schemas/SortTerm"},"description":"The sort terms applied to the collection.","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/ReservationData"},"description":"The items in the collection.","nullable":true}},"additionalProperties":{}},"ReservationDataSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/ReservationData"}},"additionalProperties":{}},"ReserveRequest":{"required":["queue_id","session_keys"],"type":"object","properties":{"queue_id":{"minLength":1,"type":"string","description":"The ID of the queue to reserve."},"reservation_type":{"enum":["parallel","premium","time_bank","reverse"],"type":"string","description":"The type of reservation to make."},"session_keys":{"minItems":1,"type":"array","items":{"type":"string"},"description":"The keys of the entitlements or sessions to reserve."}},"additionalProperties":false},"SessionData":{"type":"object","properties":{"self":{"type":"string","description":"The URL of the session resource.","nullable":true,"readOnly":true},"id":{"type":"string","description":"The ID of the session.","nullable":true},"owner_id":{"type":"string","description":"The ID of the owner of the session.","nullable":true},"locator_code":{"type":"string","description":"The locator code of the session.","nullable":true},"group_url":{"type":"string","description":"A URL to list all sessions with the same locator code.","nullable":true},"device_id":{"type":"string","description":"The ID of the device associated with the session.","nullable":true},"nickname":{"type":"string","description":"The name of the guest associated with the session.","nullable":true},"package":{"$ref":"#/components/schemas/SessionPackageData"},"state":{"enum":["ordered","active","finished","disabled","expired"],"type":"string","description":"The state of a session."},"is_available":{"type":"boolean","description":"Indicates whether the session has been redeemed and is not yet finished.","readOnly":true},"is_redeemed":{"type":"boolean","description":"Indicates whether the session has been redeemed.","readOnly":true},"is_redeemable":{"type":"boolean","description":"Indicates whether the session can be redeemed right now.","nullable":true},"redeemable_from":{"type":"string","description":"The time from which the session can be redeemed.","format":"date-time","nullable":true},"redeemable_until":{"type":"string","description":"The time until which the session can be redeemed.","format":"date-time","nullable":true},"redeem_url":{"type":"string","description":"The URL to POST to in order to redeem the session.","nullable":true},"can_reserve":{"type":"boolean","description":"Indicates whether the session is in a state where it can possibly make reservations."},"current_reservation_id":{"type":"string","description":"The ID of the current reservation for the session.","nullable":true},"reservation_url":{"type":"string","description":"The URL to the current reservation for the session.","nullable":true},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/SessionEntitlementData"},"description":"The entitlements belonging to the session.","nullable":true}},"additionalProperties":false},"SessionDataPagedResponse":{"required":["items"],"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"description":"The data that was returned from the request.","nullable":true},"self":{"type":"string","nullable":true,"readOnly":true},"page":{"type":"integer","description":"The page number of the current page, or null if not paginated.","format":"int32","nullable":true},"page_size":{"type":"integer","description":"The number of items per page, or null if not paginated.","format":"int32","nullable":true},"page_count":{"type":"integer","description":"The number of pages into which the results are divided, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"first_page_url":{"type":"string","description":"Link to the first page of results, or null if there is only one page of results.","nullable":true},"prev_page":{"type":"integer","description":"The index of the previous page, or null if there is no previous page.","format":"int32","nullable":true,"readOnly":true},"prev_page_url":{"type":"string","description":"Link to the previous page of results, or null if there is no previous page.","nullable":true},"next_page":{"type":"integer","description":"The index of the next page, or null if there is no next page.","format":"int32","nullable":true,"readOnly":true},"next_page_url":{"type":"string","description":"Link to the next page of results, or null if there is no next page.","nullable":true},"last_page":{"type":"integer","description":"The index of the last page, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"last_page_url":{"type":"string","description":"Link to the last page of results, or null if there is only one page of results.","nullable":true},"total":{"type":"integer","description":"The total number of items in the collection before filtering or pagination.","format":"int32"},"filtered_total":{"type":"integer","description":"The number of items in the collection after filtering, or null if not filtered.","format":"int32","nullable":true},"count":{"type":"integer","description":"The number of items in the collection after filtering and pagination.","format":"int32"},"filtered_by":{"type":"array","items":{"$ref":"#/components/schemas/FilterTerm"},"description":"The filter terms applied to the collection.","nullable":true},"ordered_by":{"type":"array","items":{"$ref":"#/components/schemas/SortTerm"},"description":"The sort terms applied to the collection.","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/SessionData"},"description":"The items in the collection.","nullable":true}},"additionalProperties":{}},"SessionDataSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/SessionData"}},"additionalProperties":{}},"SessionEntitlementData":{"required":["entitlement_key"],"type":"object","properties":{"self":{"type":"string","description":"The URL of the entitlement resource.","nullable":true,"readOnly":true},"entitlement_key":{"type":"string","description":"The key of the entitlement.","nullable":true},"id":{"type":"string","description":"The ID of the entitlement.","nullable":true},"reservation_type":{"enum":["parallel","premium","time_bank","reverse"],"type":"string","description":"The type of reservation that this entitlement is for.","nullable":true},"title":{"type":"string","description":"An optional title of the entitlement.","nullable":true},"description":{"type":"string","description":"An optional description of the entitlement.","nullable":true},"usability":{"enum":["usable","not_redeemed","already_reserved","not_redeemable","not_available","no_remaining_uses","expired"],"type":"string","description":"Denotes whether an entitlement CAN be used to make reservations."},"is_usable":{"type":"boolean","description":"Indicates whether the entitlement can be used to make a reservation right now.","readOnly":true},"is_applicable":{"type":"boolean","description":"Indicates whether the entitlement could or has been used today.","readOnly":true},"requires_entitlement":{"type":"array","items":{"type":"string"},"description":"Indicates whether another session must be included in the reservation in order to use this entitlement.","nullable":true},"total_count":{"type":"integer","description":"The total number of reservations that this entitlement allows or null if the number of uses is unlimited.","format":"int32","nullable":true},"remaining_count":{"type":"integer","description":"The number of reservations that this entitlement has remaining or null if the number of uses is unlimited.","format":"int32","nullable":true},"available_after":{"type":"string","description":"The time after which this entitlement may become available, null if currently available.","format":"date-time","nullable":true},"queues":{"type":"array","items":{"$ref":"#/components/schemas/QueueEntitlementData"},"description":"The queues that this entitlement is applicable to.","nullable":true}},"additionalProperties":{}},"SessionPackageData":{"type":"object","properties":{"self":{"type":"string","description":"The URL of the package resource.","nullable":true,"readOnly":true},"id":{"type":"string","description":"The ID of the package.","nullable":true},"name":{"type":"string","description":"The name of the package.","nullable":true}},"additionalProperties":false},"SortTerm":{"type":"object","properties":{"key":{"type":"string","nullable":true},"order":{"enum":["ascending","descending"],"type":"string"}},"additionalProperties":false},"SuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"description":"The data that was returned from the request.","nullable":true}},"additionalProperties":{}},"UnauthorizedResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"error_code":{"type":"string","description":"The error code of the response.","nullable":true},"type":{"type":"string","description":"A URI reference [RFC3986] that identifies the problem type.","nullable":true,"readOnly":true},"request_data":{"description":"The data that was sent in the request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":401},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","default":"Not authenticated","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"allowed_roles":{"type":"array","items":{"type":"string"},"description":"The roles that are permitted to complete the request.","nullable":true}},"additionalProperties":{}},"User":{"type":"object","properties":{"user_id":{"type":"string","nullable":true},"role":{"type":"string","nullable":true}},"additionalProperties":false},"UserPackage":{"type":"object","properties":{"self":{"type":"string","nullable":true,"readOnly":true},"id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"is_active":{"type":"boolean","nullable":true},"price":{"type":"number","format":"double","nullable":true},"entitlements":{"type":"array","items":{"$ref":"#/components/schemas/EntitlementDefinitionData"},"nullable":true}},"additionalProperties":false},"UserPackagePagedResponse":{"required":["items"],"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"description":"The data that was returned from the request.","nullable":true},"self":{"type":"string","nullable":true,"readOnly":true},"page":{"type":"integer","description":"The page number of the current page, or null if not paginated.","format":"int32","nullable":true},"page_size":{"type":"integer","description":"The number of items per page, or null if not paginated.","format":"int32","nullable":true},"page_count":{"type":"integer","description":"The number of pages into which the results are divided, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"first_page_url":{"type":"string","description":"Link to the first page of results, or null if there is only one page of results.","nullable":true},"prev_page":{"type":"integer","description":"The index of the previous page, or null if there is no previous page.","format":"int32","nullable":true,"readOnly":true},"prev_page_url":{"type":"string","description":"Link to the previous page of results, or null if there is no previous page.","nullable":true},"next_page":{"type":"integer","description":"The index of the next page, or null if there is no next page.","format":"int32","nullable":true,"readOnly":true},"next_page_url":{"type":"string","description":"Link to the next page of results, or null if there is no next page.","nullable":true},"last_page":{"type":"integer","description":"The index of the last page, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"last_page_url":{"type":"string","description":"Link to the last page of results, or null if there is only one page of results.","nullable":true},"total":{"type":"integer","description":"The total number of items in the collection before filtering or pagination.","format":"int32"},"filtered_total":{"type":"integer","description":"The number of items in the collection after filtering, or null if not filtered.","format":"int32","nullable":true},"count":{"type":"integer","description":"The number of items in the collection after filtering and pagination.","format":"int32"},"filtered_by":{"type":"array","items":{"$ref":"#/components/schemas/FilterTerm"},"description":"The filter terms applied to the collection.","nullable":true},"ordered_by":{"type":"array","items":{"$ref":"#/components/schemas/SortTerm"},"description":"The sort terms applied to the collection.","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/UserPackage"},"description":"The items in the collection.","nullable":true}},"additionalProperties":{}},"UserPackageSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/UserPackage"}},"additionalProperties":{}},"UserQueue":{"type":"object","properties":{"self":{"type":"string","description":"The URL of this queue resource.","nullable":true,"readOnly":true},"id":{"type":"string","description":"The unique ID of the queue.","nullable":true},"name":{"type":"string","description":"The name of the queue.","nullable":true},"is_active":{"type":"boolean","description":"Indicates whether the queue is active.","nullable":true},"image_url":{"type":"string","description":"The URL of the queue's image.","nullable":true},"status":{"enum":["open","paused","closed"],"type":"string","description":"The status of the queue.","nullable":true},"wait_time_minutes":{"type":"integer","description":"The current wait time for the queue in minutes.","format":"int32","nullable":true},"expected_ready_at":{"type":"string","description":"The expected time at which new reservations will be ready.","format":"date-time","nullable":true}},"additionalProperties":false},"UserQueuePagedResponse":{"required":["items"],"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"description":"The data that was returned from the request.","nullable":true},"self":{"type":"string","nullable":true,"readOnly":true},"page":{"type":"integer","description":"The page number of the current page, or null if not paginated.","format":"int32","nullable":true},"page_size":{"type":"integer","description":"The number of items per page, or null if not paginated.","format":"int32","nullable":true},"page_count":{"type":"integer","description":"The number of pages into which the results are divided, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"first_page_url":{"type":"string","description":"Link to the first page of results, or null if there is only one page of results.","nullable":true},"prev_page":{"type":"integer","description":"The index of the previous page, or null if there is no previous page.","format":"int32","nullable":true,"readOnly":true},"prev_page_url":{"type":"string","description":"Link to the previous page of results, or null if there is no previous page.","nullable":true},"next_page":{"type":"integer","description":"The index of the next page, or null if there is no next page.","format":"int32","nullable":true,"readOnly":true},"next_page_url":{"type":"string","description":"Link to the next page of results, or null if there is no next page.","nullable":true},"last_page":{"type":"integer","description":"The index of the last page, or null if not paginated.","format":"int32","nullable":true,"readOnly":true},"last_page_url":{"type":"string","description":"Link to the last page of results, or null if there is only one page of results.","nullable":true},"total":{"type":"integer","description":"The total number of items in the collection before filtering or pagination.","format":"int32"},"filtered_total":{"type":"integer","description":"The number of items in the collection after filtering, or null if not filtered.","format":"int32","nullable":true},"count":{"type":"integer","description":"The number of items in the collection after filtering and pagination.","format":"int32"},"filtered_by":{"type":"array","items":{"$ref":"#/components/schemas/FilterTerm"},"description":"The filter terms applied to the collection.","nullable":true},"ordered_by":{"type":"array","items":{"$ref":"#/components/schemas/SortTerm"},"description":"The sort terms applied to the collection.","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/UserQueue"},"description":"The items in the collection.","nullable":true}},"additionalProperties":{}},"UserQueueSuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful."},"title":{"type":"string","description":"A short, human-readable summary of the response.  It does not change from\noccurrence to occurrence, except for purposes of localization.","nullable":true},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the response.","nullable":true},"trace_id":{"type":"string","description":"A unique identifier for this request.","nullable":true},"status":{"type":"integer","description":"The HTTP status code of the response.","format":"int32","default":200},"data":{"$ref":"#/components/schemas/UserQueue"}},"additionalProperties":{}},"UserSessionData":{"type":"object","properties":{"device_id":{"type":"string","nullable":true},"session_nickname":{"type":"string","nullable":true}},"additionalProperties":false}},"securitySchemes":{"ApiKey":{"type":"apiKey","description":"API key for authentication","name":"X-API-KEY","in":"header"},"Bearer":{"type":"http","description":"JWT Authorization header using the Bearer scheme","scheme":"Bearer"},"Basic":{"type":"http","description":"DEV ONLY: Simple username/password authentication.  The password is not validated against any system, but operations are scoped to the username which is granted the `User` role.","scheme":"Basic"}}},"tags":[{"name":"User","description":"Endpoints for user interactions"},{"name":"Dev","description":"Endpoints only for development purposes.  Not present in production."},{"name":"Demo","description":"Endpoints for demo purposes.  Not present in production.\n\nThese endpoints are used by demo applications and represent functionality that is needed to mock out\nbehaviour that is expected to be handled by systems owned by the customer.  For example, shop behaviour\nin the guest app demo."},{"name":"Admin","description":"Endpoints for administrative purposes"},{"name":"Scanner","description":"Endpoints for scanner interactions"},{"name":"/"},{"name":"Ecommerce"},{"name":"Parks"},{"name":"Payments"},{"name":"Queues"},{"name":"Reservations"},{"name":"Sessions"}]}