{
  "asyncapi": "3.0.0",
  "info": {
    "title": "IAP asynchronous API",
    "version": "1.2.7",
    "description": "Socket.IO events and RabbitMQ messages produced or consumed by IAP."
  },
  "servers": {
    "websocket": {
      "host": "localhost:3000",
      "protocol": "ws",
      "pathname": "/socket.io",
      "description": "IAP Socket.IO server",
      "bindings": {
        "ws": {},
        "x-socketio": {
          "path": "/socket.io"
        }
      }
    },
    "rabbitmq": {
      "host": "localhost:5672",
      "protocol": "amqp",
      "pathname": "/",
      "description": "IAP RabbitMQ broker",
      "bindings": {
        "amqp": {
          "bindingVersion": "0.3.0"
        }
      }
    }
  },
  "channels": {
    "rabbit_iap_iap_galeriekodl_item_publish": {
      "address": "iap.galeriekodl.item",
      "title": "iap: iap.galeriekodl.item",
      "summary": "iap: iap.galeriekodl.item",
      "description": "RabbitMQ publication to exchange iap.",
      "servers": [
        {
          "$ref": "#/servers/rabbitmq"
        }
      ],
      "bindings": {
        "amqp": {
          "is": "routingKey",
          "exchange": {
            "name": "iap",
            "type": "direct",
            "durable": true,
            "autoDelete": false,
            "vhost": "/"
          },
          "bindingVersion": "0.3.0"
        }
      },
      "messages": {
        "publishing_item_send": {
          "$ref": "#/components/messages/rabbit_iap_iap_galeriekodl_item_publish_publishing_item_send"
        },
        "publishing_item_prices_send": {
          "$ref": "#/components/messages/rabbit_iap_iap_galeriekodl_item_publish_publishing_item_prices_send"
        },
        "publishing_item_status_send": {
          "$ref": "#/components/messages/rabbit_iap_iap_galeriekodl_item_publish_publishing_item_status_send"
        }
      }
    },
    "rabbit_iap_iap_galeriekodl_auction_publish": {
      "address": "iap.galeriekodl.auction",
      "title": "iap: iap.galeriekodl.auction",
      "summary": "iap: iap.galeriekodl.auction",
      "description": "RabbitMQ publication to exchange iap.",
      "servers": [
        {
          "$ref": "#/servers/rabbitmq"
        }
      ],
      "bindings": {
        "amqp": {
          "is": "routingKey",
          "exchange": {
            "name": "iap",
            "type": "direct",
            "durable": true,
            "autoDelete": false,
            "vhost": "/"
          },
          "bindingVersion": "0.3.0"
        }
      },
      "messages": {
        "publishing_auction_status_send": {
          "$ref": "#/components/messages/rabbit_iap_iap_galeriekodl_auction_publish_publishing_auction_status_send"
        }
      }
    },
    "live-bidding": {
      "address": "/live-bidding/{instance}",
      "title": "Live bidding namespace",
      "summary": "Live bidding namespace",
      "description": "Authenticated Socket.IO namespace used by the live auction closing console.",
      "servers": [
        {
          "$ref": "#/servers/websocket"
        }
      ],
      "parameters": {
        "instance": {
          "description": "Live-bidding instance identifier (the application currently uses `iap`).",
          "default": "iap"
        }
      },
      "bindings": {
        "x-socketio": {
          "namespace": "/^\\/live-bidding\\/\\D+$/"
        }
      },
      "messages": {
        "bidding_send": {
          "$ref": "#/components/messages/live_bidding_bidding_send"
        },
        "auc_event_send": {
          "$ref": "#/components/messages/live_bidding_auc_event_send"
        },
        "price_change_send": {
          "$ref": "#/components/messages/live_bidding_price_change_send"
        },
        "ui_reload_confirm_send": {
          "$ref": "#/components/messages/live_bidding_ui_reload_confirm_send"
        },
        "ui_reload_send": {
          "$ref": "#/components/messages/live_bidding_ui_reload_send"
        },
        "connect_receive": {
          "$ref": "#/components/messages/live_bidding_connect_receive"
        },
        "user_connected_send": {
          "$ref": "#/components/messages/live_bidding_user_connected_send"
        },
        "disconnect_receive": {
          "$ref": "#/components/messages/live_bidding_disconnect_receive"
        },
        "user_disconnect_send": {
          "$ref": "#/components/messages/live_bidding_user_disconnect_send"
        }
      }
    },
    "iap": {
      "address": "/iap",
      "title": "General socket namespace for logged IAP user",
      "summary": "General socket namespace for logged IAP user",
      "description": "iapNsp",
      "servers": [
        {
          "$ref": "#/servers/websocket"
        }
      ],
      "bindings": {
        "x-socketio": {
          "namespace": "/iap"
        }
      },
      "messages": {
        "notification_send": {
          "$ref": "#/components/messages/iap_notification_send"
        },
        "auction_event_send": {
          "$ref": "#/components/messages/iap_auction_event_send"
        },
        "connect_receive": {
          "$ref": "#/components/messages/iap_connect_receive"
        },
        "disconnect_receive": {
          "$ref": "#/components/messages/iap_disconnect_receive"
        }
      }
    },
    "rabbit_wsmanager_wsmanager_iap_wsmanager": {
      "address": "iap.wsmanager",
      "title": "wsmanager: wsmanager",
      "summary": "wsmanager: wsmanager",
      "description": "RabbitMQ queue iap.wsmanager bound to exchange wsmanager.",
      "servers": [
        {
          "$ref": "#/servers/rabbitmq"
        }
      ],
      "bindings": {
        "amqp": {
          "is": "queue",
          "queue": {
            "name": "iap.wsmanager",
            "durable": true,
            "exclusive": false,
            "autoDelete": false,
            "vhost": "/"
          },
          "x-exchange": "wsmanager",
          "x-routing-key": "wsmanager",
          "bindingVersion": "0.3.0"
        }
      },
      "messages": {
        "wsmanager_update_receive": {
          "$ref": "#/components/messages/rabbit_wsmanager_wsmanager_iap_wsmanager_wsmanager_update_receive"
        }
      }
    },
    "rabbit_canvas_canvas_iap_item_canvas_iap_item": {
      "address": "canvas.iap.item",
      "title": "canvas: canvas.iap.item",
      "summary": "canvas: canvas.iap.item",
      "description": "RabbitMQ queue canvas.iap.item bound to exchange canvas.",
      "servers": [
        {
          "$ref": "#/servers/rabbitmq"
        }
      ],
      "bindings": {
        "amqp": {
          "is": "queue",
          "queue": {
            "name": "canvas.iap.item",
            "durable": true,
            "exclusive": false,
            "autoDelete": false,
            "vhost": "/"
          },
          "x-exchange": "canvas",
          "x-routing-key": "canvas.iap.item",
          "bindingVersion": "0.3.0"
        }
      },
      "messages": {
        "canvas_item_updated_receive": {
          "$ref": "#/components/messages/rabbit_canvas_canvas_iap_item_canvas_iap_item_canvas_item_updated_receive"
        }
      }
    },
    "rabbit_canvas_canvas_iap_author_canvas_iap_author": {
      "address": "canvas.iap.author",
      "title": "canvas: canvas.iap.author",
      "summary": "canvas: canvas.iap.author",
      "description": "RabbitMQ queue canvas.iap.author bound to exchange canvas.",
      "servers": [
        {
          "$ref": "#/servers/rabbitmq"
        }
      ],
      "bindings": {
        "amqp": {
          "is": "queue",
          "queue": {
            "name": "canvas.iap.author",
            "durable": true,
            "exclusive": false,
            "autoDelete": false,
            "vhost": "/"
          },
          "x-exchange": "canvas",
          "x-routing-key": "canvas.iap.author",
          "bindingVersion": "0.3.0"
        }
      },
      "messages": {
        "canvas_author_updated_receive": {
          "$ref": "#/components/messages/rabbit_canvas_canvas_iap_author_canvas_iap_author_canvas_author_updated_receive"
        }
      }
    }
  },
  "operations": {
    "RabbitmqService_publishItem_publishing_item": {
      "action": "send",
      "title": "Publish a complete item",
      "summary": "Publish a complete item",
      "description": "Publishes the current item representation to Galerie Kodl.",
      "channel": {
        "$ref": "#/channels/rabbit_iap_iap_galeriekodl_item_publish"
      },
      "messages": [
        {
          "$ref": "#/channels/rabbit_iap_iap_galeriekodl_item_publish/messages/publishing_item_send"
        }
      ],
      "bindings": {
        "amqp": {
          "ack": false,
          "bindingVersion": "0.3.0"
        }
      }
    },
    "RabbitmqService_publishItemPrices_publishing_item_prices": {
      "action": "send",
      "title": "Publish item price changes",
      "summary": "Publish item price changes",
      "channel": {
        "$ref": "#/channels/rabbit_iap_iap_galeriekodl_item_publish"
      },
      "messages": [
        {
          "$ref": "#/channels/rabbit_iap_iap_galeriekodl_item_publish/messages/publishing_item_prices_send"
        }
      ],
      "bindings": {
        "amqp": {
          "ack": false,
          "bindingVersion": "0.3.0"
        }
      }
    },
    "RabbitmqService_publishItemStatus_publishing_item_status": {
      "action": "send",
      "title": "Publish an item status change",
      "summary": "Publish an item status change",
      "channel": {
        "$ref": "#/channels/rabbit_iap_iap_galeriekodl_item_publish"
      },
      "messages": [
        {
          "$ref": "#/channels/rabbit_iap_iap_galeriekodl_item_publish/messages/publishing_item_status_send"
        }
      ],
      "bindings": {
        "amqp": {
          "ack": false,
          "bindingVersion": "0.3.0"
        }
      }
    },
    "RabbitmqService_publishAuctionStatus_publishing_auction_status": {
      "action": "send",
      "title": "Publish an auction status change",
      "summary": "Publish an auction status change",
      "channel": {
        "$ref": "#/channels/rabbit_iap_iap_galeriekodl_auction_publish"
      },
      "messages": [
        {
          "$ref": "#/channels/rabbit_iap_iap_galeriekodl_auction_publish/messages/publishing_auction_status_send"
        }
      ],
      "bindings": {
        "amqp": {
          "ack": false,
          "bindingVersion": "0.3.0"
        }
      }
    },
    "ItemClosingController_createItemClosingV2_bidding": {
      "action": "send",
      "title": "Broadcast an internet bid result",
      "summary": "Broadcast an internet bid result",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/bidding_send"
        }
      ]
    },
    "ItemClosingController_createForceBidV2_bidding": {
      "action": "send",
      "title": "Broadcast an auctioneer force-bid decision",
      "summary": "Broadcast an auctioneer force-bid decision",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/bidding_send"
        }
      ]
    },
    "ItemClosingController_adminManualCloseItemV2_auc_event": {
      "action": "send",
      "title": "Broadcast manual item closing results",
      "summary": "Broadcast manual item closing results",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/auc_event_send"
        }
      ]
    },
    "ItemClosingController_deleteLastBidV2_auc_event": {
      "action": "send",
      "title": "Broadcast a reverted bid",
      "summary": "Broadcast a reverted bid",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/auc_event_send"
        }
      ]
    },
    "ItemClosingController_pauseAuction_auc_event": {
      "action": "send",
      "title": "Broadcast auction pause",
      "summary": "Broadcast auction pause",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/auc_event_send"
        }
      ]
    },
    "ItemClosingController_resumeAuction_auc_event": {
      "action": "send",
      "title": "Broadcast auction resume",
      "summary": "Broadcast auction resume",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/auc_event_send"
        }
      ]
    },
    "ItemClosingController_adminDeclineTempBids_auc_event": {
      "action": "send",
      "title": "Broadcast declined temporary bids",
      "summary": "Broadcast declined temporary bids",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/auc_event_send"
        }
      ]
    },
    "ItemClosingController_adminForceItemToNotSoldV2_auc_event": {
      "action": "send",
      "title": "Broadcast that an item was not sold",
      "summary": "Broadcast that an item was not sold",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/auc_event_send"
        }
      ]
    },
    "ItemClosingController_createPreBid_price_change": {
      "action": "send",
      "title": "Broadcast an early-bid price change",
      "summary": "Broadcast an early-bid price change",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/price_change_send"
        }
      ]
    },
    "ItemClosingController_adminRemoveUserFromAuction_auc_event": {
      "action": "send",
      "title": "Notify a user that bidding access was revoked",
      "summary": "Notify a user that bidding access was revoked",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/auc_event_send"
        }
      ]
    },
    "ClosingScreenController_send_ui_reload_confirm": {
      "action": "send",
      "title": "Request and confirm a closing-screen reload",
      "summary": "Request and confirm a closing-screen reload",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/ui_reload_confirm_send"
        }
      ]
    },
    "ClosingScreenController_send_ui_reload": {
      "action": "send",
      "title": "Request a closing-screen reload",
      "summary": "Request a closing-screen reload",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/ui_reload_send"
        }
      ]
    },
    "AuctionLogController_create_auc_event": {
      "action": "send",
      "title": "Broadcast an auction log message",
      "summary": "Broadcast an auction log message",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/auc_event_send"
        }
      ]
    },
    "AuctionLogController_lastCall_auc_event": {
      "action": "send",
      "title": "Broadcast the last-call auction log message",
      "summary": "Broadcast the last-call auction log message",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/auc_event_send"
        }
      ]
    },
    "LiveBiddingControllerWs_connect_connect": {
      "action": "receive",
      "title": "User connects to live-bidding namespace",
      "summary": "User connects to live-bidding namespace",
      "description": "Inicializační handshake, ověření tokenu, přiřazení rooms.",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/connect_receive"
        }
      ]
    },
    "LiveBiddingControllerWs_connect_user_connected": {
      "action": "send",
      "title": "Notify administrators that a user connected",
      "summary": "Notify administrators that a user connected",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/user_connected_send"
        }
      ]
    },
    "LiveBiddingControllerWs_disconnect_disconnect": {
      "action": "receive",
      "title": "User disconnects from live bidding",
      "summary": "User disconnects from live bidding",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/disconnect_receive"
        }
      ]
    },
    "LiveBiddingControllerWs_disconnect_user_disconnect": {
      "action": "send",
      "title": "Notify administrators that a user disconnected",
      "summary": "Notify administrators that a user disconnected",
      "channel": {
        "$ref": "#/channels/live-bidding"
      },
      "messages": [
        {
          "$ref": "#/channels/live-bidding/messages/user_disconnect_send"
        }
      ]
    },
    "NotificationService_sendNotificationToUserViaWS_notification": {
      "action": "send",
      "title": "Send a notification to one user",
      "summary": "Send a notification to one user",
      "description": "Sends the public notification payload to the user-specific Socket.IO room.",
      "channel": {
        "$ref": "#/channels/iap"
      },
      "messages": [
        {
          "$ref": "#/channels/iap/messages/notification_send"
        }
      ]
    },
    "AuctionService_updateAuctionStatus_auction_event": {
      "action": "send",
      "title": "Broadcast an auction status update",
      "summary": "Broadcast an auction status update",
      "description": "Notifies connected IAP clients when an auction changes status.",
      "channel": {
        "$ref": "#/channels/iap"
      },
      "messages": [
        {
          "$ref": "#/channels/iap/messages/auction_event_send"
        }
      ]
    },
    "IapControllerWs_connect_connect": {
      "action": "receive",
      "title": "User connects to iap namespace",
      "summary": "User connects to iap namespace",
      "description": "Inicializační handshake, ověření tokenu, přiřazení rooms.",
      "channel": {
        "$ref": "#/channels/iap"
      },
      "messages": [
        {
          "$ref": "#/channels/iap/messages/connect_receive"
        }
      ]
    },
    "IapControllerWs_disconnect_disconnect": {
      "action": "receive",
      "title": "User disconnects from the IAP namespace",
      "summary": "User disconnects from the IAP namespace",
      "channel": {
        "$ref": "#/channels/iap"
      },
      "messages": [
        {
          "$ref": "#/channels/iap/messages/disconnect_receive"
        }
      ]
    },
    "WsmanagerGeneralConsumer_handle_wsmanager_update": {
      "action": "receive",
      "title": "Consume WS Manager status updates",
      "summary": "Consume WS Manager status updates",
      "description": "Consumes item and auction status changes produced by ws-manager.",
      "channel": {
        "$ref": "#/channels/rabbit_wsmanager_wsmanager_iap_wsmanager"
      },
      "messages": [
        {
          "$ref": "#/channels/rabbit_wsmanager_wsmanager_iap_wsmanager/messages/wsmanager_update_receive"
        }
      ],
      "bindings": {
        "amqp": {
          "ack": true,
          "bindingVersion": "0.3.0"
        }
      }
    },
    "CanvasItemConsumer_handleItemUpdate_canvas_item_updated": {
      "action": "receive",
      "title": "Consume Canvas item updates",
      "summary": "Consume Canvas item updates",
      "channel": {
        "$ref": "#/channels/rabbit_canvas_canvas_iap_item_canvas_iap_item"
      },
      "messages": [
        {
          "$ref": "#/channels/rabbit_canvas_canvas_iap_item_canvas_iap_item/messages/canvas_item_updated_receive"
        }
      ],
      "bindings": {
        "amqp": {
          "ack": true,
          "bindingVersion": "0.3.0"
        }
      }
    },
    "CanvasAuthorConsumer_handleItemUpdate_canvas_author_updated": {
      "action": "receive",
      "title": "Consume Canvas author updates",
      "summary": "Consume Canvas author updates",
      "channel": {
        "$ref": "#/channels/rabbit_canvas_canvas_iap_author_canvas_iap_author"
      },
      "messages": [
        {
          "$ref": "#/channels/rabbit_canvas_canvas_iap_author_canvas_iap_author/messages/canvas_author_updated_receive"
        }
      ],
      "bindings": {
        "amqp": {
          "ack": true,
          "bindingVersion": "0.3.0"
        }
      }
    }
  },
  "components": {
    "messages": {
      "rabbit_iap_iap_galeriekodl_item_publish_publishing_item_send": {
        "name": "publishing.item",
        "title": "Publish a complete item",
        "description": "Publishes the current item representation to Galerie Kodl.",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/RabbitItemPublished"
        }
      },
      "rabbit_iap_iap_galeriekodl_item_publish_publishing_item_prices_send": {
        "name": "publishing.item.prices",
        "title": "Publish item price changes",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/RabbitItemPricesPublished"
        }
      },
      "rabbit_iap_iap_galeriekodl_item_publish_publishing_item_status_send": {
        "name": "publishing.item.status",
        "title": "Publish an item status change",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/RabbitItemStatusPublished"
        }
      },
      "rabbit_iap_iap_galeriekodl_auction_publish_publishing_auction_status_send": {
        "name": "publishing.auction.status",
        "title": "Publish an auction status change",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/RabbitAuctionStatusPublished"
        }
      },
      "live_bidding_bidding_send": {
        "name": "bidding",
        "title": "Broadcast an auctioneer force-bid decision",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/BiddingEvent"
        }
      },
      "live_bidding_auc_event_send": {
        "name": "auc-event",
        "title": "Broadcast the last-call auction log message",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/LiveAuctionEvent"
        }
      },
      "live_bidding_price_change_send": {
        "name": "price-change",
        "title": "Broadcast an early-bid price change",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/PriceChangeEvent"
        }
      },
      "live_bidding_ui_reload_confirm_send": {
        "name": "ui-reload-confirm",
        "title": "Request and confirm a closing-screen reload",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/UiReloadEvent"
        }
      },
      "live_bidding_ui_reload_send": {
        "name": "ui-reload",
        "title": "Request a closing-screen reload",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/UiReloadEvent"
        }
      },
      "live_bidding_connect_receive": {
        "name": "connect",
        "title": "User connects to live-bidding namespace",
        "description": "Inicializační handshake, ověření tokenu, přiřazení rooms.",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/SocketHandshake"
        }
      },
      "live_bidding_user_connected_send": {
        "name": "user-connected",
        "title": "Notify administrators that a user connected",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/EmptyPayload"
        }
      },
      "live_bidding_disconnect_receive": {
        "name": "disconnect",
        "title": "User disconnects from live bidding",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/EmptyPayload"
        }
      },
      "live_bidding_user_disconnect_send": {
        "name": "user-disconnect",
        "title": "Notify administrators that a user disconnected",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/EmptyPayload"
        }
      },
      "iap_notification_send": {
        "name": "notification",
        "title": "Send a notification to one user",
        "description": "Sends the public notification payload to the user-specific Socket.IO room.",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/Notification"
        }
      },
      "iap_auction_event_send": {
        "name": "auction-event",
        "title": "Broadcast an auction status update",
        "description": "Notifies connected IAP clients when an auction changes status.",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/AuctionEvent"
        }
      },
      "iap_connect_receive": {
        "name": "connect",
        "title": "User connects to iap namespace",
        "description": "Inicializační handshake, ověření tokenu, přiřazení rooms.",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/SocketHandshake"
        }
      },
      "iap_disconnect_receive": {
        "name": "disconnect",
        "title": "User disconnects from the IAP namespace",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/EmptyPayload"
        }
      },
      "rabbit_wsmanager_wsmanager_iap_wsmanager_wsmanager_update_receive": {
        "name": "wsmanager.update",
        "title": "Consume WS Manager status updates",
        "description": "Consumes item and auction status changes produced by ws-manager.",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/RabbitWsManagerUpdate"
        }
      },
      "rabbit_canvas_canvas_iap_item_canvas_iap_item_canvas_item_updated_receive": {
        "name": "canvas.item.updated",
        "title": "Consume Canvas item updates",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/RabbitCanvasItemUpdated"
        }
      },
      "rabbit_canvas_canvas_iap_author_canvas_iap_author_canvas_author_updated_receive": {
        "name": "canvas.author.updated",
        "title": "Consume Canvas author updates",
        "contentType": "application/json",
        "payload": {
          "$ref": "#/components/schemas/RabbitCanvasAuthorUpdated"
        }
      }
    },
    "schemas": {
      "EmptyPayload": {
        "type": "object",
        "additionalProperties": false
      },
      "SocketHandshake": {
        "type": "object",
        "description": "Socket.IO handshake query parameters.",
        "required": [
          "token"
        ],
        "properties": {
          "token": {
            "type": "string",
            "description": "IAP JWT access token."
          },
          "lang": {
            "type": "string",
            "enum": [
              "cs",
              "en"
            ]
          },
          "admin": {
            "type": [
              "string",
              "boolean"
            ],
            "description": "Requests the admin room when the authenticated user is an administrator."
          }
        },
        "additionalProperties": true
      },
      "AuctionEvent": {
        "title": "WSAuctionEvent",
        "type": "object",
        "description": "Auction event sent to clients via WebSocket",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "changing-status"
            ]
          },
          "idAuction": {
            "type": "integer"
          },
          "idStatus": {
            "type": "integer"
          }
        },
        "required": [
          "type",
          "idAuction",
          "idStatus"
        ],
        "additionalProperties": false
      },
      "Notification": {
        "title": "WSNotification",
        "type": "object",
        "description": "Send notification to specific user",
        "properties": {
          "id": {
            "type": "string"
          },
          "dateSent": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "contentShort": {
            "type": "string"
          },
          "contentLong": {
            "type": "string"
          },
          "channelMail": {
            "type": "boolean"
          },
          "channelWhatsApp": {
            "type": "boolean"
          },
          "dateRead": {
            "type": "string",
            "format": "date-time"
          },
          "wasRead": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "dateSent",
          "type",
          "subject",
          "contentShort",
          "contentLong",
          "channelMail",
          "channelWhatsApp",
          "wasRead"
        ],
        "additionalProperties": false
      },
      "Item": {
        "title": "Item",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "itemName": {
            "type": "string"
          },
          "itemNameEN": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "descriptionEN": {
            "type": "string",
            "nullable": true
          },
          "author": {
            "type": "string",
            "nullable": true
          },
          "size": {
            "type": "string"
          },
          "priceEstimationLow": {
            "type": "number"
          },
          "priceEstimationHigh": {
            "type": "number"
          },
          "priceCurrent": {
            "type": "number"
          },
          "priceFinal": {
            "type": "number"
          },
          "startPriceForBidding": {
            "type": "number"
          },
          "startPriceForClosing": {
            "type": "number"
          },
          "idWinningUser": {
            "type": "string"
          },
          "idRepresentativeBidder": {
            "type": "string"
          },
          "itemOrder": {
            "type": "number"
          },
          "withoutFee": {
            "type": "boolean"
          },
          "idAuction": {
            "type": "number"
          },
          "isHighlight": {
            "type": "boolean",
            "nullable": true
          },
          "dating": {
            "type": "string",
            "nullable": true
          },
          "datingEN": {
            "type": "string",
            "nullable": true
          },
          "signatureCS": {
            "type": "string",
            "nullable": true
          },
          "signatureEN": {
            "type": "string",
            "nullable": true
          },
          "propertiesCS": {
            "type": "string",
            "nullable": true
          },
          "propertiesEN": {
            "type": "string",
            "nullable": true
          },
          "winningEmailSent": {
            "type": "boolean"
          },
          "technique": {
            "type": "string",
            "nullable": true
          },
          "techniqueEN": {
            "type": "string",
            "nullable": true
          },
          "last_modified": {
            "type": "string",
            "format": "date-time"
          },
          "canvasId": {
            "type": "number",
            "nullable": true
          },
          "canvasLocked": {
            "type": "boolean",
            "nullable": true
          },
          "likesCount": {
            "type": "number"
          },
          "originalCatalogNumber": {
            "type": "number",
            "nullable": true
          },
          "preClosingAvailable": {
            "type": "boolean",
            "nullable": true
          },
          "idType": {
            "type": "number"
          },
          "idStatus": {
            "type": "number"
          }
        },
        "required": [
          "itemName",
          "itemNameEN"
        ],
        "additionalProperties": false
      },
      "ItemAdmin": {
        "title": "ItemAdmin",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "itemName": {
            "type": "string"
          },
          "itemNameEN": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "descriptionEN": {
            "type": "string",
            "nullable": true
          },
          "author": {
            "type": "string",
            "nullable": true
          },
          "size": {
            "type": "string"
          },
          "priceEstimationLow": {
            "type": "number"
          },
          "priceEstimationHigh": {
            "type": "number"
          },
          "priceCurrent": {
            "type": "number"
          },
          "priceFinal": {
            "type": "number"
          },
          "startPriceForBidding": {
            "type": "number"
          },
          "startPriceForClosing": {
            "type": "number"
          },
          "idWinningUser": {
            "type": "string"
          },
          "idRepresentativeBidder": {
            "type": "string"
          },
          "itemOrder": {
            "type": "number"
          },
          "withoutFee": {
            "type": "boolean"
          },
          "idAuction": {
            "type": "number"
          },
          "isHighlight": {
            "type": "boolean",
            "nullable": true
          },
          "dating": {
            "type": "string",
            "nullable": true
          },
          "datingEN": {
            "type": "string",
            "nullable": true
          },
          "signatureCS": {
            "type": "string",
            "nullable": true
          },
          "signatureEN": {
            "type": "string",
            "nullable": true
          },
          "propertiesCS": {
            "type": "string",
            "nullable": true
          },
          "propertiesEN": {
            "type": "string",
            "nullable": true
          },
          "winningEmailSent": {
            "type": "boolean"
          },
          "technique": {
            "type": "string",
            "nullable": true
          },
          "techniqueEN": {
            "type": "string",
            "nullable": true
          },
          "last_modified": {
            "type": "string",
            "format": "date-time"
          },
          "canvasId": {
            "type": "number",
            "nullable": true
          },
          "canvasLocked": {
            "type": "boolean",
            "nullable": true
          },
          "likesCount": {
            "type": "number"
          },
          "originalCatalogNumber": {
            "type": "number",
            "nullable": true
          },
          "preClosingAvailable": {
            "type": "boolean",
            "nullable": true
          },
          "idType": {
            "type": "number"
          },
          "idStatus": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "hasBid": {
            "type": "boolean"
          },
          "winnerFirstName": {
            "type": "string"
          },
          "winnerLastName": {
            "type": "string"
          },
          "signature": {
            "type": "string"
          },
          "authors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Author"
            }
          },
          "pics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemPicUrl"
            }
          }
        },
        "required": [
          "itemName",
          "itemNameEN"
        ],
        "additionalProperties": false
      },
      "Author": {
        "title": "Author",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "firstname": {
            "type": "string",
            "nullable": true
          },
          "lastname": {
            "type": "string",
            "nullable": true
          },
          "nickname": {
            "type": "string",
            "nullable": true
          },
          "birthday": {
            "type": "string",
            "nullable": true
          },
          "death": {
            "type": "string",
            "nullable": true
          },
          "hasProfile": {
            "type": "boolean"
          },
          "followable": {
            "type": "boolean"
          },
          "canvasId": {
            "type": "number",
            "nullable": true
          },
          "followersCount": {
            "type": "number"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "{\"indexInfo\":{\"nickname\":{\"unique\":true},\"canvasId\":{\"canvasId\":{\"unique\":true}}}}",
        "additionalProperties": false
      },
      "WSAdminForceBidRes": {
        "title": "WSAdminForceBidRes",
        "type": "object",
        "properties": {
          "log": {
            "$ref": "#/components/schemas/LogWs"
          },
          "availableBids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Bid"
            }
          },
          "closingStatus": {
            "$ref": "#/components/schemas/ItemClosingStatus"
          },
          "decisionInfo": {
            "$ref": "#/components/schemas/ItemClosingDecisionInfo"
          }
        },
        "required": [
          "closingStatus",
          "decisionInfo"
        ],
        "additionalProperties": false
      },
      "WSAdminItemClosingRes": {
        "title": "WSAdminItemClosingRes",
        "type": "object",
        "properties": {
          "idItem": {
            "type": "number"
          },
          "log": {
            "$ref": "#/components/schemas/LogWs"
          },
          "currentPrice": {
            "type": "number"
          },
          "highestBid": {
            "type": "boolean"
          },
          "isWinning": {
            "type": "boolean"
          },
          "alreadyBidded": {
            "type": "boolean"
          },
          "lastClosingTime": {
            "type": "string"
          },
          "waitingForDecision": {
            "type": "boolean"
          },
          "idWinningUser": {
            "type": "string"
          },
          "availableBids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Bid"
            }
          },
          "closingStatus": {
            "$ref": "#/components/schemas/ItemClosingStatus"
          },
          "decisionInfo": {
            "$ref": "#/components/schemas/ItemClosingDecisionInfo"
          }
        },
        "required": [
          "idItem",
          "currentPrice",
          "highestBid",
          "isWinning",
          "closingStatus",
          "decisionInfo"
        ],
        "additionalProperties": false
      },
      "WSClientForceBidRes": {
        "title": "WSClientForceBidRes",
        "type": "object",
        "description": "The response for the client when an bid occurs on item",
        "properties": {
          "currentPrice": {
            "type": "number"
          },
          "highestBid": {
            "type": "boolean"
          },
          "isWinning": {
            "type": "boolean"
          },
          "waitingForDecision": {
            "type": "boolean"
          },
          "alreadyBidded": {
            "type": "boolean"
          },
          "bidUnderReview": {
            "type": "boolean"
          },
          "availableBids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Bid"
            }
          },
          "hasWinningEarlyBid": {
            "type": "boolean"
          }
        },
        "required": [
          "currentPrice",
          "highestBid",
          "isWinning",
          "waitingForDecision"
        ],
        "additionalProperties": false
      },
      "WSItemClosingRes": {
        "title": "WSItemClosingRes",
        "type": "object",
        "description": "The response for the client when an item is closing",
        "properties": {
          "idItem": {
            "type": "number"
          },
          "currentPrice": {
            "type": "number"
          },
          "highestBid": {
            "type": "boolean"
          },
          "isWinning": {
            "type": "boolean"
          },
          "alreadyBidded": {
            "type": "boolean"
          },
          "lastClosingTime": {
            "type": "string"
          },
          "waitingForDecision": {
            "type": "boolean"
          },
          "bidUnderReview": {
            "type": "boolean"
          },
          "availableBids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Bid"
            }
          },
          "hasWinningEarlyBid": {
            "type": "boolean"
          }
        },
        "required": [
          "idItem",
          "currentPrice",
          "highestBid",
          "isWinning"
        ],
        "additionalProperties": false
      },
      "BiddingEvent": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/WSAdminForceBidRes"
          },
          {
            "$ref": "#/components/schemas/WSAdminItemClosingRes"
          },
          {
            "$ref": "#/components/schemas/WSClientForceBidRes"
          },
          {
            "$ref": "#/components/schemas/WSItemClosingRes"
          }
        ]
      },
      "LiveAuctionEvent": {
        "type": "object",
        "required": [
          "event"
        ],
        "properties": {
          "event": {
            "type": "string",
            "enum": [
              "auc-pause",
              "auc-play",
              "auc-decline-bids",
              "auc-ended",
              "auc-banned",
              "item-close",
              "item-notsold",
              "item-revert",
              "log-message"
            ]
          },
          "idItem": {
            "type": [
              "integer",
              "null"
            ]
          },
          "currentPrice": {
            "type": [
              "number",
              "null"
            ]
          },
          "isWinning": {
            "type": "boolean"
          },
          "lastCall": {
            "type": "boolean"
          },
          "auctionLog": {
            "type": "object",
            "additionalProperties": true
          },
          "log": {
            "type": "object",
            "additionalProperties": true
          },
          "nextItem": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "PriceChangeEvent": {
        "type": "object",
        "required": [
          "currentPrice",
          "idItem",
          "bidCount"
        ],
        "properties": {
          "currentPrice": {
            "type": "number"
          },
          "idItem": {
            "type": "integer"
          },
          "bidCount": {
            "type": "integer"
          }
        },
        "additionalProperties": false
      },
      "UiReloadEvent": {
        "type": "object",
        "required": [
          "time"
        ],
        "properties": {
          "time": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "RabbitItemPublished": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source",
          "action",
          "payload"
        ],
        "properties": {
          "source": {
            "type": "string",
            "const": "IAP"
          },
          "action": {
            "type": "string",
            "const": "publishing.item"
          },
          "userId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "payload": {
            "$ref": "#/components/schemas/ItemAdmin"
          }
        }
      },
      "RabbitItemPricesPublished": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source",
          "action",
          "payload"
        ],
        "properties": {
          "source": {
            "type": "string",
            "const": "IAP"
          },
          "action": {
            "type": "string",
            "const": "publishing.item.prices"
          },
          "userId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "payload": {
            "$ref": "#/components/schemas/Item"
          }
        }
      },
      "RabbitItemStatusPublished": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source",
          "action",
          "payload"
        ],
        "properties": {
          "source": {
            "type": "string",
            "const": "IAP"
          },
          "action": {
            "type": "string",
            "const": "publishing.item.status"
          },
          "userId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "payload": {
            "type": "object",
            "required": [
              "itemId",
              "statusId",
              "price"
            ],
            "properties": {
              "itemId": {
                "type": "integer"
              },
              "statusId": {
                "type": "integer"
              },
              "price": {
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          }
        }
      },
      "RabbitAuctionStatusPublished": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source",
          "action",
          "payload"
        ],
        "properties": {
          "source": {
            "type": "string",
            "const": "IAP"
          },
          "action": {
            "type": "string",
            "const": "publishing.auction.status"
          },
          "userId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "payload": {
            "type": "object",
            "required": [
              "auctionId",
              "statusId"
            ],
            "properties": {
              "auctionId": {
                "type": "integer"
              },
              "statusId": {
                "type": "integer"
              }
            },
            "additionalProperties": false
          }
        }
      },
      "RabbitCanvasItemUpdated": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source",
          "payload"
        ],
        "properties": {
          "source": {
            "type": "string",
            "const": "Canvas"
          },
          "action": {
            "type": "string"
          },
          "userId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "payload": {
            "$ref": "#/components/schemas/Item"
          }
        }
      },
      "RabbitCanvasAuthorUpdated": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source",
          "payload"
        ],
        "properties": {
          "source": {
            "type": "string",
            "const": "Canvas"
          },
          "action": {
            "type": "string"
          },
          "userId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "payload": {
            "$ref": "#/components/schemas/Author"
          }
        }
      },
      "RabbitWsManagerUpdate": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source",
          "action",
          "payload"
        ],
        "properties": {
          "source": {
            "type": "string",
            "const": "ws-manager"
          },
          "action": {
            "type": "string",
            "enum": [
              "publishing.item.status",
              "publishing.auction.status"
            ]
          },
          "userId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "payload": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "Bid": {
        "title": "Bid",
        "type": "object",
        "properties": {
          "bid": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "LogWs": {
        "title": "LogWs",
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "bid": {
            "type": "number"
          },
          "user": {
            "$ref": "#/components/schemas/MyUser"
          },
          "decisionFor": {
            "type": "number"
          },
          "sold": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "creationTime": {
            "type": "number"
          }
        },
        "required": [
          "text",
          "type",
          "creationTime"
        ],
        "additionalProperties": false
      },
      "ItemClosingStatus": {
        "title": "ItemClosingStatus",
        "type": "object",
        "description": "The status of the item in the auction in relation to the user (tsType: ItemClosingStatus, schemaOptions: { includeRelations: false })",
        "properties": {
          "currentPrice": {
            "type": "number"
          },
          "alreadyBidded": {
            "type": "boolean"
          },
          "isWinning": {
            "type": "boolean"
          },
          "idCurrentClosingItem": {
            "type": "number"
          },
          "lastClosingTime": {
            "type": "string",
            "format": "date-time"
          },
          "waitingForDecision": {
            "type": "boolean"
          },
          "myMaxBid": {
            "type": "number"
          },
          "lastTempBidWin": {
            "type": "boolean"
          },
          "bidUnderReview": {
            "type": "boolean"
          },
          "triedToBid": {
            "type": "boolean"
          },
          "preClosingAvailable": {
            "type": "boolean"
          },
          "hasWinningEarlyBid": {
            "type": "boolean",
            "description": "Whether the current user's winning closing bid qualifies for Early Bid."
          }
        },
        "required": [
          "currentPrice",
          "alreadyBidded",
          "isWinning",
          "waitingForDecision",
          "myMaxBid",
          "lastTempBidWin",
          "bidUnderReview",
          "triedToBid",
          "hasWinningEarlyBid"
        ],
        "additionalProperties": false
      },
    "ItemClosingDecisionInfo": {
      "title": "ItemClosingDecisionInfo",
      "type": "object",
      "description": "Info for auctioneer decision",
      "properties": {
        "idMaxBidUser": {
          "type": "string"
        },
        "maxBidUserName": {
          "type": "string"
        },
        "maxBid": {
          "type": "number"
        },
        "maxBidIsEarlyBid": {
          "type": "boolean",
          "description": "Early Bid flag of the selected saved limitation. False when no limitation is available.",
          "default": false
        },
        "idBidUser": {
          "type": "string"
        },
        "bidUserName": {
          "type": "string"
        },
        "idWinningUser": {
          "type": "string"
        },
        "winningUserName": {
          "type": "string"
        },
        "winningBidIsEarlyBid": {
          "type": "boolean",
          "description": "Early Bid flag of the current winning itemclosing record, not of its owner. False when no closing bid exists.",
          "default": false
        },
        "bid": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
      "MyUser": {
        "title": "MyUser",
        "type": "object",
        "description": "(tsType: MyUser, schemaOptions: { includeRelations: false })",
        "properties": {
          "id": {
            "type": "string"
          },
          "regNumber": {
            "type": "number"
          },
          "email": {
            "type": "string"
          },
          "titleBefore": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "titleAfter": {
            "type": "string"
          },
          "birthday": {
            "type": "string",
            "format": "date-time"
          },
          "phone": {
            "type": "string"
          },
          "street1": {
            "type": "string"
          },
          "street2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "idCountry": {
            "type": "number"
          },
          "zipCode": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "registrationDate": {
            "type": "string",
            "format": "date-time"
          },
          "consent1": {
            "type": "boolean"
          },
          "consent2": {
            "type": "boolean"
          },
          "hasNewsletter": {
            "type": "boolean"
          },
          "id1Approved": {
            "type": "boolean"
          },
          "id2Approved": {
            "type": "boolean"
          },
          "bankAccApproved": {
            "type": "boolean"
          },
          "isApproved": {
            "type": "boolean"
          },
          "autoJoinAuction": {
            "type": "boolean"
          },
          "isAdmin": {
            "type": "boolean"
          },
          "idGender": {
            "type": "number"
          },
          "idGreeting": {
            "type": "number"
          },
          "bankAccNumber": {
            "type": "string"
          },
          "comment": {
            "type": "string"
          },
          "doc1Number": {
            "type": "string"
          },
          "doc1ValidTill": {
            "type": "string",
            "format": "date-time"
          },
          "doc1Issuer": {
            "type": "string"
          },
          "doc1IdDocType": {
            "type": "number"
          },
          "doc2Number": {
            "type": "string"
          },
          "doc2ValidTill": {
            "type": "string",
            "format": "date-time"
          },
          "doc2Issuer": {
            "type": "string"
          },
          "doc2IdDocType": {
            "type": "number"
          },
          "idStatus": {
            "type": "number"
          },
          "company": {
            "type": "string"
          },
          "ic": {
            "type": "string"
          },
          "dic": {
            "type": "string"
          },
          "isNotPEP": {
            "type": "boolean"
          },
          "mailAuctionInfo": {
            "type": "boolean"
          },
          "mailAuctionAlert": {
            "type": "boolean"
          },
          "notificationSystemWhatsApp": {
            "type": "boolean"
          },
          "notificationSystemMail": {
            "type": "boolean"
          },
          "notificationAuctionInfoWhatsApp": {
            "type": "boolean"
          },
          "notificationAuctionInfoMail": {
            "type": "boolean"
          },
          "notificationNewsletterWhatsApp": {
            "type": "boolean"
          },
          "notificationNewsletterMail": {
            "type": "boolean"
          },
          "notificationFollowedAuthorWhatsApp": {
            "type": "boolean"
          },
          "notificationFollowedAuthorMail": {
            "type": "boolean"
          },
          "notificationLikedItemWhatsApp": {
            "type": "boolean"
          },
          "notificationLikedItemMail": {
            "type": "boolean"
          },
          "isReviewer": {
            "type": "boolean"
          },
          "canvasId": {
            "type": "number",
            "nullable": true
          },
          "allowUploadToCanvas": {
            "type": "boolean"
          },
          "fullName": {
            "type": "string",
            "nullable": true
          },
          "auth2FAEnabled": {
            "type": "boolean"
          },
          "auth2FASecret": {
            "type": "string"
          },
          "auth2FAIV": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "allowUploadToCanvas"
        ],
        "additionalProperties": false
      },
      "ItemPicUrl": {
        "title": "ItemPicUrl",
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "visible": {
            "type": "boolean"
          },
          "pictureOrder": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    }
  }
}
