{"asyncapi":"3.0.0","info":{"title":"Scalar Galaxy Events","version":"0.6.5","description":"The Scalar Galaxy Events provides real-time notifications and event-driven capabilities for the Scalar Galaxy API. This AsyncAPI document complements the [REST API](https://galaxy.scalar.com) by enabling event-driven interactions.\n\n## Event-Driven Features\n\n* Real-time Planet Updates: Get notified when planets are created, updated, or experience cosmic events\n* User Activity Streams: Track user signups, authentication events, and profile changes\n* Celestial Body Monitoring: Monitor changes to satellites, asteroids, and other celestial objects\n* System Notifications: Receive alerts about system maintenance, rate limits, and security events\n\n## Resources\n\n* https://github.com/scalar/scalar\n* https://github.com/asyncapi/spec\n* https://scalar.com\n","contact":{"name":"Scalar Support","url":"https://scalar.com","email":"support@scalar.com"},"license":{"name":"MIT","url":"https://opensource.org/license/MIT"},"externalDocs":{"description":"Documentation","url":"https://github.com/scalar/scalar"},"tags":[{"name":"Planets","description":"Real-time planet events including creation, updates, deletions, atmospheric changes, and cosmic events"},{"name":"Users","description":"User authentication, registration, profile updates, and login events","externalDocs":{"description":"User documentation","url":"https://github.com/scalar/scalar"}},{"name":"Celestial Bodies","description":"Events for satellites, asteroids, comets, and other celestial objects in the galaxy"},{"name":"System","description":"System-wide events including maintenance, rate limits, security alerts, and API deprecations"}]},"servers":{"production":{"host":"galaxy.scalar.com","protocol":"wss","description":"Production WebSocket server for real-time events","security":[{"$ref":"#/components/securitySchemes/bearerAuth"},{"$ref":"#/components/securitySchemes/httpApiKey"}],"tags":[{"name":"production","description":"Production environment"}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"development":{"host":"localhost:8080","protocol":"ws","description":"Local development server","security":[],"tags":[{"name":"development","description":"Development environment"}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"eventBus":{"host":"kafka.galaxy.scalar.com:9092","protocol":"kafka","description":"Kafka event backbone for durable event streaming and replay","bindings":{"kafka":{"schemaRegistryUrl":"https://schema-registry.galaxy.scalar.com","schemaRegistryVendor":"confluent","bindingVersion":"0.5.0"},"x-kafka-ext":{"saslMechanism":"SCRAM-SHA-512","sslEnabled":true,"connectionTimeout":30000}}},"mqttBridge":{"host":"mqtt.galaxy.scalar.com:1883","protocol":"mqtt","description":"MQTT bridge for IoT sensor integrations and edge devices","bindings":{"mqtt":{"clientId":"scalar-galaxy-events","cleanSession":true,"keepAlive":60,"lastWill":{"topic":"galaxy/system/status","qos":1,"message":"offline","retain":true},"bindingVersion":"0.2.0"}}}},"defaultContentType":"application/json","channels":{"planetEvents":{"address":"planets/{planetId}/events","title":"Planet Events","description":"Real-time events related to specific planets. Subscribe to get notified about:\n\n* Planet creation and updates\n* Atmospheric changes\n* Discovery of new satellites\n* Cosmic events (explosions, collisions, etc.)\n* Image uploads and media updates\n","parameters":{"planetId":{"$ref":"#/components/parameters/planetId"}},"messages":{"planetCreated":{"$ref":"#/components/messages/PlanetCreated"},"planetUpdated":{"$ref":"#/components/messages/PlanetUpdated"},"planetDeleted":{"$ref":"#/components/messages/PlanetDeleted"},"planetExploded":{"$ref":"#/components/messages/PlanetExploded"},"satelliteDiscovered":{"$ref":"#/components/messages/SatelliteDiscovered"},"atmosphereChanged":{"$ref":"#/components/messages/AtmosphereChanged"},"imageUploaded":{"$ref":"#/components/messages/ImageUploaded"}},"tags":[{"name":"Planets"}],"bindings":{"ws":{"method":"GET","query":{"type":"object","properties":{"includeHistory":{"type":"boolean","description":"Include historical events","default":false},"eventTypes":{"type":"array","items":{"type":"string"},"description":"Filter by specific event types"}}}},"x-scalar":{"reconnectInterval":5000,"maxRetries":10,"heartbeatInterval":30000}}},"userEvents":{"address":"users/{userId}/events","title":"User Events","description":"User-related events including authentication, profile changes, and activity tracking.\n\nSecurity Note: These events contain sensitive user information and require proper authentication.\n","parameters":{"userId":{"$ref":"#/components/parameters/userId"}},"messages":{"userSignedUp":{"$ref":"#/components/messages/UserSignedUp"},"userAuthenticated":{"$ref":"#/components/messages/UserAuthenticated"},"userProfileUpdated":{"$ref":"#/components/messages/UserProfileUpdated"},"userDeleted":{"$ref":"#/components/messages/UserDeleted"},"loginAttempt":{"$ref":"#/components/messages/LoginAttempt"}},"tags":[{"name":"Users"}],"bindings":{"ws":{"method":"GET"}}},"systemEvents":{"address":"system/events","title":"System Events","description":"System-wide events including maintenance notifications, rate limit alerts, and security events.\n\nThese events are broadcast to all connected clients and don't require specific subscriptions.\n","messages":{"systemMaintenance":{"$ref":"#/components/messages/SystemMaintenance"},"rateLimitExceeded":{"$ref":"#/components/messages/RateLimitExceeded"},"securityAlert":{"$ref":"#/components/messages/SecurityAlert"},"apiVersionDeprecated":{"$ref":"#/components/messages/ApiVersionDeprecated"}},"tags":[{"name":"System"}],"bindings":{"ws":{"method":"GET"}}},"celestialBodyEvents":{"address":"celestial-bodies/events","title":"Celestial Body Events","description":"Events related to all types of celestial bodies (planets, satellites, asteroids, comets).\n\nThis is a general channel for monitoring the entire galaxy's celestial activity.\n","messages":{"celestialBodyCreated":{"$ref":"#/components/messages/CelestialBodyCreated"},"celestialBodyUpdated":{"$ref":"#/components/messages/CelestialBodyUpdated"},"orbitalCollision":{"$ref":"#/components/messages/OrbitalCollision"},"newDiscovery":{"$ref":"#/components/messages/NewDiscovery"}},"tags":[{"name":"Celestial Bodies"}],"bindings":{"ws":{"method":"GET","query":{"type":"object","properties":{"bodyType":{"type":"string","enum":["planet","satellite","asteroid","comet"],"description":"Filter by celestial body type"},"minHabitability":{"type":"number","minimum":0,"maximum":1,"description":"Filter by minimum habitability index"}}}}}}},"operations":{"subscribeToPlanetEvents":{"action":"send","channel":{"$ref":"#/channels/planetEvents"},"title":"Subscribe to Planet Events","description":"Subscribe to real-time events for a specific planet","traits":[{"$ref":"#/components/operationTraits/authenticated"}],"tags":[{"name":"Planets"}],"bindings":{"ws":{"bindingVersion":"0.1.0","method":"GET"}}},"subscribeToUserEvents":{"action":"send","channel":{"$ref":"#/channels/userEvents"},"title":"Subscribe to User Events","description":"Subscribe to events for a specific user (requires authentication)","traits":[{"$ref":"#/components/operationTraits/authenticated"},{"$ref":"#/components/operationTraits/rateLimited"}],"tags":[{"name":"Users"}],"bindings":{"ws":{"bindingVersion":"0.1.0","method":"GET"}}},"subscribeToSystemEvents":{"action":"send","channel":{"$ref":"#/channels/systemEvents"},"title":"Subscribe to System Events","description":"Subscribe to system-wide notifications and alerts","tags":[{"name":"System"}],"bindings":{"ws":{"bindingVersion":"0.1.0","method":"GET"},"x-rate-limit":{"maxConnections":100,"windowSeconds":60,"burstAllowance":20}}},"subscribeToCelestialBodyEvents":{"action":"send","channel":{"$ref":"#/channels/celestialBodyEvents"},"title":"Subscribe to Celestial Body Events","description":"Subscribe to events for all celestial bodies in the galaxy","traits":[{"$ref":"#/components/operationTraits/rateLimited"}],"tags":[{"name":"Celestial Bodies"}],"bindings":{"ws":{"bindingVersion":"0.1.0","method":"GET"}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Bearer token authentication for WebSocket connections"},"httpApiKey":{"type":"httpApiKey","in":"query","name":"api_key","description":"API key for WebSocket authentication"},"oauth2":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://galaxy.scalar.com/oauth/authorize","availableScopes":{"read:events":"Subscribe to events","write:events":"Publish events (admin only)","read:user:events":"Subscribe to user events"}}}}},"parameters":{"planetId":{"description":"The ID of the planet"},"userId":{"description":"The ID of the user"}},"operationTraits":{"authenticated":{"description":"This operation requires authentication","security":[{"$ref":"#/components/securitySchemes/bearerAuth"},{"$ref":"#/components/securitySchemes/httpApiKey"}]},"rateLimited":{"description":"This operation is subject to rate limiting","bindings":{"ws":{"bindingVersion":"0.1.0","headers":{"type":"object","properties":{"X-RateLimit-Limit":{"type":"integer","description":"Maximum requests per minute"},"X-RateLimit-Remaining":{"type":"integer","description":"Remaining requests in current window"}}}}}}},"messages":{"PlanetCreated":{"name":"PlanetCreated","title":"Planet Created Event","summary":"A new planet has been discovered or created","description":"This event is published when a new planet is added to the Scalar Galaxy.\n\nEvent Flow:\n1. Planet creation request via REST API\n2. Planet validation and storage\n3. This event published to subscribers\n4. Optional webhook callbacks triggered\n","contentType":"application/json","payload":{"$ref":"#/components/schemas/PlanetCreatedEvent"},"tags":[{"name":"Planets"}],"examples":[{"name":"Mars Discovery","summary":"Mars was just added to the galaxy","payload":{"eventId":"evt_1234567890","eventType":"planet.created","timestamp":"2024-01-15T14:30:00Z","planet":{"id":4,"name":"Mars","description":"The red planet","type":"terrestrial","habitabilityIndex":0.68,"physicalProperties":{"mass":0.107,"radius":0.532,"gravity":0.378},"atmosphere":[{"compound":"CO2","percentage":95.3}],"discoveredAt":"1610-01-07T00:00:00Z","creator":{"id":1,"name":"Marc"}},"metadata":{"source":"rest-api","userId":1,"requestId":"req_abc123"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0","message":{"type":"object","properties":{"eventId":{"type":"string","description":"Unique event identifier"},"eventType":{"type":"string","description":"Type of event"},"timestamp":{"type":"string","format":"date-time","description":"When the event occurred"}}}}}},"PlanetUpdated":{"name":"PlanetUpdated","title":"Planet Updated Event","summary":"An existing planet has been modified","description":"Published when planet properties are updated via the REST API","contentType":"application/json","payload":{"$ref":"#/components/schemas/PlanetUpdatedEvent"},"tags":[{"name":"Planets"}],"examples":[{"name":"Mars Atmosphere Update","summary":"Mars atmosphere composition was updated","payload":{"eventId":"evt_1234567891","eventType":"planet.updated","timestamp":"2024-01-15T15:45:00Z","planet":{"id":4,"name":"Mars","atmosphere":[{"compound":"CO2","percentage":95.3},{"compound":"N2","percentage":2.7}]},"changes":[{"field":"atmosphere","oldValue":[{"compound":"CO2","percentage":95.3}],"newValue":[{"compound":"CO2","percentage":95.3},{"compound":"N2","percentage":2.7}]}],"metadata":{"source":"rest-api","userId":1,"requestId":"req_def456"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"PlanetDeleted":{"name":"PlanetDeleted","title":"Planet Deleted Event","summary":"A planet has been removed from the galaxy","description":"⚠️ Warning: This event indicates a planet has been deleted.\n\nThis is a destructive operation that may affect related celestial bodies and data.\n","contentType":"application/json","payload":{"$ref":"#/components/schemas/PlanetDeletedEvent"},"tags":[{"name":"Planets"}],"examples":[{"name":"Planet Destruction","summary":"A planet was deleted (hopefully by accident!)","payload":{"eventId":"evt_1234567892","eventType":"planet.deleted","timestamp":"2024-01-15T16:00:00Z","planetId":999,"planetName":"Test Planet","reason":"Experimental deletion","metadata":{"source":"rest-api","userId":1,"requestId":"req_ghi789"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"PlanetExploded":{"name":"PlanetExploded","title":"Planet Exploded Event","summary":"A planet has experienced a cosmic explosion","description":"🚨 Cosmic Event: A planet has exploded due to natural or artificial causes.\n\nThis is a rare but dramatic event that may create new celestial bodies or affect nearby objects.\n","contentType":"application/json","payload":{"$ref":"#/components/schemas/PlanetExplodedEvent"},"tags":[{"name":"Planets"}],"examples":[{"name":"Supernova Event","summary":"A planet went supernova","payload":{"eventId":"evt_1234567893","eventType":"planet.exploded","timestamp":"2024-01-15T16:30:00Z","planet":{"id":42,"name":"Krypton","type":"super_earth"},"explosion":{"type":"supernova","intensity":9.8,"energyReleased":"1.2e44","newCelestialBodies":[{"type":"asteroid","name":"Krypton Fragment Alpha"},{"type":"asteroid","name":"Krypton Fragment Beta"}]},"affectedObjects":[{"planetId":41,"distance":1500000,"impact":"moderate"}],"metadata":{"source":"cosmic-simulator","severity":"critical"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"SatelliteDiscovered":{"name":"SatelliteDiscovered","title":"Satellite Discovered Event","summary":"A new satellite has been discovered orbiting a planet","description":"Published when a new moon, asteroid, or other satellite is found","contentType":"application/json","payload":{"$ref":"#/components/schemas/SatelliteDiscoveredEvent"},"tags":[{"name":"Planets"}],"examples":[{"name":"New Moon Discovery","summary":"A new moon was discovered around Mars","payload":{"eventId":"evt_1234567894","eventType":"satellite.discovered","timestamp":"2024-01-15T17:00:00Z","satellite":{"id":15,"name":"Deimos II","type":"moon","diameter":12.4,"orbit":{"planet":{"id":4,"name":"Mars"},"orbitalPeriod":1.26,"distance":23460}},"discoveryMethod":"telescope_observation","metadata":{"source":"astronomical-survey","observerId":2}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"AtmosphereChanged":{"name":"AtmosphereChanged","title":"Atmosphere Changed Event","summary":"A planet's atmosphere composition has changed","description":"Published when atmospheric properties are modified","contentType":"application/json","payload":{"$ref":"#/components/schemas/AtmosphereChangedEvent"},"tags":[{"name":"Planets"}],"examples":[{"name":"Terraforming Progress","summary":"Mars atmosphere is being terraformed","payload":{"eventId":"evt_1234567895","eventType":"atmosphere.changed","timestamp":"2024-01-15T17:30:00Z","planet":{"id":4,"name":"Mars"},"atmosphere":[{"compound":"CO2","percentage":95.3},{"compound":"O2","percentage":2.1},{"compound":"N2","percentage":2.6}],"change":{"type":"terraforming","progress":0.15,"estimatedCompletion":"2050-12-31T00:00:00Z"},"metadata":{"source":"terraforming-station","stationId":"mars-alpha-1"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"ImageUploaded":{"name":"ImageUploaded","title":"Image Uploaded Event","summary":"A new image has been uploaded for a planet","description":"Published when a planet image is successfully uploaded","contentType":"application/json","payload":{"$ref":"#/components/schemas/ImageUploadedEvent"},"tags":[{"name":"Planets"}],"examples":[{"name":"Mars Photo Upload","summary":"A new photo of Mars was uploaded","payload":{"eventId":"evt_1234567896","eventType":"image.uploaded","timestamp":"2024-01-15T18:00:00Z","planet":{"id":4,"name":"Mars"},"image":{"url":"https://cdn.scalar.com/images/mars-latest.jpg","fileSize":2048576,"mimeType":"image/jpeg","uploadedAt":"2024-01-15T18:00:00Z"},"uploader":{"id":1,"name":"Marc"},"metadata":{"source":"rest-api","requestId":"req_jkl012"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"UserSignedUp":{"name":"UserSignedUp","title":"User Signed Up Event","summary":"A new user has registered in the Scalar Galaxy","description":"Published when a user successfully creates an account","contentType":"application/json","payload":{"$ref":"#/components/schemas/UserSignedUpEvent"},"tags":[{"name":"Users"}],"examples":[{"name":"New User Registration","summary":"A new user joined the galaxy","payload":{"eventId":"evt_1234567897","eventType":"user.signed_up","timestamp":"2024-01-15T18:30:00Z","user":{"id":100,"name":"Alice","email":"alice@example.com"},"registration":{"method":"email","source":"web","ipAddress":"192.168.1.100"},"metadata":{"source":"rest-api","requestId":"req_mno345"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"UserAuthenticated":{"name":"UserAuthenticated","title":"User Authenticated Event","summary":"A user has successfully authenticated","description":"Published when a user logs in or refreshes their token","contentType":"application/json","payload":{"$ref":"#/components/schemas/UserAuthenticatedEvent"},"tags":[{"name":"Users"}],"examples":[{"name":"Successful Login","summary":"User logged in successfully","payload":{"eventId":"evt_1234567898","eventType":"user.authenticated","timestamp":"2024-01-15T19:00:00Z","user":{"id":1,"name":"Marc"},"authentication":{"method":"bearer_token","tokenType":"JWT","expiresAt":"2024-01-16T19:00:00Z"},"session":{"id":"sess_abc123","ipAddress":"192.168.1.100","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"},"metadata":{"source":"auth-service","requestId":"req_pqr678"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"UserProfileUpdated":{"name":"UserProfileUpdated","title":"User Profile Updated Event","summary":"A user's profile information has been modified","description":"Published when user profile data is updated","contentType":"application/json","payload":{"$ref":"#/components/schemas/UserProfileUpdatedEvent"},"tags":[{"name":"Users"}],"examples":[{"name":"Profile Update","summary":"User updated their profile","payload":{"eventId":"evt_1234567899","eventType":"user.profile_updated","timestamp":"2024-01-15T19:30:00Z","user":{"id":1,"name":"Marc Updated"},"changes":[{"field":"name","oldValue":"Marc","newValue":"Marc Updated"}],"metadata":{"source":"rest-api","userId":1,"requestId":"req_stu901"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"UserDeleted":{"name":"UserDeleted","title":"User Deleted Event","summary":"A user account has been deleted","description":"Published when a user account is permanently removed","contentType":"application/json","payload":{"$ref":"#/components/schemas/UserDeletedEvent"},"tags":[{"name":"Users"}],"examples":[{"name":"Account Deletion","summary":"A user deleted their account","payload":{"eventId":"evt_1234567900","eventType":"user.deleted","timestamp":"2024-01-15T20:00:00Z","user":{"id":99,"name":"Deleted User"},"deletion":{"reason":"user_request","dataRetention":"30_days"},"metadata":{"source":"user-service","adminId":1,"requestId":"req_vwx234"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"LoginAttempt":{"name":"LoginAttempt","title":"Login Attempt Event","summary":"A user login attempt has been made","description":"Published for both successful and failed login attempts","contentType":"application/json","payload":{"$ref":"#/components/schemas/LoginAttemptEvent"},"tags":[{"name":"Users"}],"examples":[{"name":"Failed Login","summary":"Someone tried to log in with wrong credentials","payload":{"eventId":"evt_1234567901","eventType":"login.attempt","timestamp":"2024-01-15T20:30:00Z","attempt":{"email":"marc@scalar.com","success":false,"reason":"invalid_credentials","ipAddress":"192.168.1.200","userAgent":"curl/7.68.0"},"security":{"riskScore":0.3,"suspiciousActivity":false},"metadata":{"source":"auth-service","requestId":"req_yza567"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"SystemMaintenance":{"name":"SystemMaintenance","title":"System Maintenance Event","summary":"System maintenance has been scheduled or is in progress","description":"Published for planned and emergency maintenance events","contentType":"application/json","payload":{"$ref":"#/components/schemas/SystemMaintenanceEvent"},"tags":[{"name":"System"}],"examples":[{"name":"Scheduled Maintenance","summary":"System maintenance is starting","payload":{"eventId":"evt_1234567902","eventType":"system.maintenance","timestamp":"2024-01-15T21:00:00Z","maintenance":{"type":"scheduled","status":"starting","duration":"PT2H","description":"Database optimization and security updates","affectedServices":["api","events","storage"]},"schedule":{"startTime":"2024-01-15T21:00:00Z","endTime":"2024-01-15T23:00:00Z"},"metadata":{"source":"system-monitor","maintenanceId":"maint_20240115"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"RateLimitExceeded":{"name":"RateLimitExceeded","title":"Rate Limit Exceeded Event","summary":"A user or system has exceeded rate limits","description":"Published when rate limits are exceeded","contentType":"application/json","payload":{"$ref":"#/components/schemas/RateLimitExceededEvent"},"tags":[{"name":"System"}],"examples":[{"name":"API Rate Limit Hit","summary":"A user hit the API rate limit","payload":{"eventId":"evt_1234567903","eventType":"rate_limit.exceeded","timestamp":"2024-01-15T21:30:00Z","rateLimit":{"limit":1000,"window":"PT1H","exceededBy":50},"user":{"id":1,"name":"Marc"},"request":{"endpoint":"/planets","method":"GET","ipAddress":"192.168.1.100"},"metadata":{"source":"rate-limiter","requestId":"req_bcd890"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"SecurityAlert":{"name":"SecurityAlert","title":"Security Alert Event","summary":"A security-related event has been detected","description":"Published for security incidents and suspicious activity","contentType":"application/json","payload":{"$ref":"#/components/schemas/SecurityAlertEvent"},"tags":[{"name":"System"}],"examples":[{"name":"Suspicious Activity","summary":"Suspicious login pattern detected","payload":{"eventId":"evt_1234567904","eventType":"security.alert","timestamp":"2024-01-15T22:00:00Z","alert":{"severity":"medium","type":"suspicious_login_pattern","description":"Multiple failed login attempts from different IP addresses"},"activity":{"attempts":15,"timeWindow":"PT5M","ipAddresses":["192.168.1.100","192.168.1.101","10.0.0.50"]},"actions":["account_temporarily_locked","admin_notified"],"metadata":{"source":"security-monitor","alertId":"alert_sec_001"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"ApiVersionDeprecated":{"name":"ApiVersionDeprecated","title":"API Version Deprecated Event","summary":"An API version has been deprecated","description":"Published when API versions are marked as deprecated","contentType":"application/json","payload":{"$ref":"#/components/schemas/ApiVersionDeprecatedEvent"},"tags":[{"name":"System"}],"examples":[{"name":"Version Deprecation","summary":"API version 1.0 is being deprecated","payload":{"eventId":"evt_1234567905","eventType":"api.version_deprecated","timestamp":"2024-01-15T22:30:00Z","deprecation":{"version":"1.0","deprecatedAt":"2024-01-15T22:30:00Z","sunsetAt":"2024-07-15T22:30:00Z","migrationGuide":"https://docs.scalar.com/migration/v1-to-v2"},"impact":{"affectedEndpoints":["/planets","/users"],"breakingChanges":true},"metadata":{"source":"api-gateway","deprecationId":"dep_20240115"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"CelestialBodyCreated":{"name":"CelestialBodyCreated","title":"Celestial Body Created Event","summary":"A new celestial body has been added to the galaxy","description":"Published when any type of celestial body is created","contentType":"application/json","payload":{"$ref":"#/components/schemas/CelestialBodyCreatedEvent"},"tags":[{"name":"Celestial Bodies"}],"examples":[{"name":"New Asteroid","summary":"A new asteroid was discovered","payload":{"eventId":"evt_1234567906","eventType":"celestial_body.created","timestamp":"2024-01-15T23:00:00Z","celestialBody":{"type":"satellite","satellite":{"id":16,"name":"Asteroid X-2024","type":"asteroid","diameter":1.2}},"discovery":{"method":"automated_survey","observatory":"Hubble Space Telescope"},"metadata":{"source":"astronomical-survey","surveyId":"survey_20240115"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"CelestialBodyUpdated":{"name":"CelestialBodyUpdated","title":"Celestial Body Updated Event","summary":"An existing celestial body has been modified","description":"Published when celestial body properties are updated","contentType":"application/json","payload":{"$ref":"#/components/schemas/CelestialBodyUpdatedEvent"},"tags":[{"name":"Celestial Bodies"}],"examples":[{"name":"Orbit Update","summary":"A satellite's orbit was recalculated","payload":{"eventId":"evt_1234567907","eventType":"celestial_body.updated","timestamp":"2024-01-15T23:30:00Z","celestialBody":{"type":"satellite","satellite":{"id":15,"name":"Deimos II","orbit":{"orbitalPeriod":1.28,"distance":23500}}},"changes":[{"field":"orbit.orbitalPeriod","oldValue":1.26,"newValue":1.28},{"field":"orbit.distance","oldValue":23460,"newValue":23500}],"metadata":{"source":"orbital-mechanics","calculationId":"calc_20240115"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"OrbitalCollision":{"name":"OrbitalCollision","title":"Orbital Collision Event","summary":"Two celestial bodies have collided","description":"Published when orbital collisions occur","contentType":"application/json","payload":{"$ref":"#/components/schemas/OrbitalCollisionEvent"},"tags":[{"name":"Celestial Bodies"}],"examples":[{"name":"Asteroid Impact","summary":"An asteroid collided with a planet","payload":{"eventId":"evt_1234567908","eventType":"orbital.collision","timestamp":"2024-01-16T00:00:00Z","collision":{"type":"asteroid_planet","severity":"minor","energy":"1.2e12"},"objects":[{"type":"satellite","id":17,"name":"Asteroid Y-2024","mass":1500000000000},{"type":"planet","id":4,"name":"Mars"}],"impact":{"location":"Valles Marineris","craterSize":150,"atmosphericEffects":"dust_cloud"},"metadata":{"source":"collision-detector","simulationId":"sim_20240116"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}},"NewDiscovery":{"name":"NewDiscovery","title":"New Discovery Event","summary":"A significant astronomical discovery has been made","description":"Published for major discoveries and breakthroughs","contentType":"application/json","payload":{"$ref":"#/components/schemas/NewDiscoveryEvent"},"tags":[{"name":"Celestial Bodies"}],"examples":[{"name":"Habitable Planet","summary":"A potentially habitable planet was discovered","payload":{"eventId":"evt_1234567909","eventType":"discovery.new","timestamp":"2024-01-16T00:30:00Z","discovery":{"type":"habitable_planet","significance":"high","description":"Earth-like planet with liquid water detected"},"celestialBody":{"type":"planet","planet":{"id":50,"name":"Kepler-442b","type":"super_earth","habitabilityIndex":0.84,"physicalProperties":{"mass":2.36,"radius":1.34,"temperature":{"average":233}}}},"research":{"method":"transit_photometry","observatory":"Kepler Space Telescope","paper":"https://arxiv.org/abs/2401.15000"},"metadata":{"source":"research-team","discoveryId":"disc_20240116"}}}],"bindings":{"ws":{"bindingVersion":"0.1.0"}}}},"schemas":{"PlanetCreatedEvent":{"type":"object","required":["eventId","eventType","timestamp","planet"],"properties":{"eventId":{"type":"string","format":"uuid","description":"Unique identifier for this event","examples":["evt_1234567890"]},"eventType":{"type":"string","enum":["planet.created"],"description":"Type of event"},"timestamp":{"type":"string","format":"date-time","description":"When the event occurred","examples":["2024-01-15T14:30:00Z"]},"planet":{"$ref":"#/components/schemas/Planet"},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"PlanetUpdatedEvent":{"type":"object","required":["eventId","eventType","timestamp","planet","changes"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["planet.updated"]},"timestamp":{"type":"string","format":"date-time"},"planet":{"$ref":"#/components/schemas/Planet"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/FieldChange"},"description":"List of fields that were modified"},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"PlanetDeletedEvent":{"type":"object","required":["eventId","eventType","timestamp","planetId","planetName"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["planet.deleted"]},"timestamp":{"type":"string","format":"date-time"},"planetId":{"type":"integer","format":"int64"},"planetName":{"type":"string"},"reason":{"type":"string","description":"Reason for deletion"},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"PlanetExplodedEvent":{"type":"object","required":["eventId","eventType","timestamp","planet","explosion"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["planet.exploded"]},"timestamp":{"type":"string","format":"date-time"},"planet":{"$ref":"#/components/schemas/Planet"},"explosion":{"type":"object","required":["type","intensity"],"properties":{"type":{"type":"string","enum":["supernova","nova","collision","artificial"]},"intensity":{"type":"number","minimum":0,"maximum":10,"description":"Explosion intensity on a scale of 0-10"},"energyReleased":{"type":"string","description":"Energy released in joules (scientific notation)"},"newCelestialBodies":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["asteroid","comet","planet"]},"name":{"type":"string"}}}}}},"affectedObjects":{"type":"array","items":{"type":"object","properties":{"planetId":{"type":"integer","format":"int64"},"distance":{"type":"number","description":"Distance in kilometers"},"impact":{"type":"string","enum":["none","minor","moderate","severe"]}}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"SatelliteDiscoveredEvent":{"type":"object","required":["eventId","eventType","timestamp","satellite"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["satellite.discovered"]},"timestamp":{"type":"string","format":"date-time"},"satellite":{"$ref":"#/components/schemas/Satellite"},"discoveryMethod":{"type":"string","enum":["telescope_observation","space_probe","mathematical_prediction","collision_remnant"]},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"AtmosphereChangedEvent":{"type":"object","required":["eventId","eventType","timestamp","planet","atmosphere"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["atmosphere.changed"]},"timestamp":{"type":"string","format":"date-time"},"planet":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"atmosphere":{"type":"array","items":{"type":"object","properties":{"compound":{"type":"string"},"percentage":{"type":"number","format":"float"}}}},"change":{"type":"object","properties":{"type":{"type":"string","enum":["terraforming","natural","pollution","atmospheric_loss"]},"progress":{"type":"number","minimum":0,"maximum":1,"description":"Progress of the change (0-1)"},"estimatedCompletion":{"type":"string","format":"date-time"}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"ImageUploadedEvent":{"type":"object","required":["eventId","eventType","timestamp","planet","image"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["image.uploaded"]},"timestamp":{"type":"string","format":"date-time"},"planet":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}}},"image":{"type":"object","required":["url","fileSize","mimeType","uploadedAt"],"properties":{"url":{"type":"string","format":"uri"},"fileSize":{"type":"integer","description":"File size in bytes"},"mimeType":{"type":"string"},"uploadedAt":{"type":"string","format":"date-time"}}},"uploader":{"$ref":"#/components/schemas/User"},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"UserSignedUpEvent":{"type":"object","required":["eventId","eventType","timestamp","user"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["user.signed_up"]},"timestamp":{"type":"string","format":"date-time"},"user":{"$ref":"#/components/schemas/User"},"registration":{"type":"object","properties":{"method":{"type":"string","enum":["email","oauth","sso"]},"source":{"type":"string","enum":["web","mobile","api"]},"ipAddress":{"type":"string","format":"ipv4"}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"UserAuthenticatedEvent":{"type":"object","required":["eventId","eventType","timestamp","user","authentication"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["user.authenticated"]},"timestamp":{"type":"string","format":"date-time"},"user":{"$ref":"#/components/schemas/User"},"authentication":{"type":"object","required":["method","tokenType"],"properties":{"method":{"type":"string","enum":["bearer_token","basic_auth","oauth","api_key"]},"tokenType":{"type":"string","enum":["JWT","OAuth","Basic"]},"expiresAt":{"type":"string","format":"date-time"}}},"session":{"type":"object","properties":{"id":{"type":"string"},"ipAddress":{"type":"string","format":"ipv4"},"userAgent":{"type":"string"}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"UserProfileUpdatedEvent":{"type":"object","required":["eventId","eventType","timestamp","user","changes"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["user.profile_updated"]},"timestamp":{"type":"string","format":"date-time"},"user":{"$ref":"#/components/schemas/User"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/FieldChange"}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"UserDeletedEvent":{"type":"object","required":["eventId","eventType","timestamp","user"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["user.deleted"]},"timestamp":{"type":"string","format":"date-time"},"user":{"$ref":"#/components/schemas/User"},"deletion":{"type":"object","properties":{"reason":{"type":"string","enum":["user_request","admin_action","policy_violation","inactive"]},"dataRetention":{"type":"string","enum":["immediate","30_days","90_days","1_year"]}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"LoginAttemptEvent":{"type":"object","required":["eventId","eventType","timestamp","attempt"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["login.attempt"]},"timestamp":{"type":"string","format":"date-time"},"attempt":{"type":"object","required":["email","success"],"properties":{"email":{"type":"string","format":"email"},"success":{"type":"boolean"},"reason":{"type":"string","enum":["invalid_credentials","account_locked","rate_limited","success"]},"ipAddress":{"type":"string","format":"ipv4"},"userAgent":{"type":"string"}}},"security":{"type":"object","properties":{"riskScore":{"type":"number","minimum":0,"maximum":1},"suspiciousActivity":{"type":"boolean"}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"SystemMaintenanceEvent":{"type":"object","required":["eventId","eventType","timestamp","maintenance"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["system.maintenance"]},"timestamp":{"type":"string","format":"date-time"},"maintenance":{"type":"object","required":["type","status","duration"],"properties":{"type":{"type":"string","enum":["scheduled","emergency","hotfix"]},"status":{"type":"string","enum":["scheduled","starting","in_progress","completed","failed"]},"duration":{"type":"string","format":"duration","description":"Expected duration in ISO 8601 format"},"description":{"type":"string"},"affectedServices":{"type":"array","items":{"type":"string"}}}},"schedule":{"type":"object","properties":{"startTime":{"type":"string","format":"date-time"},"endTime":{"type":"string","format":"date-time"}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"RateLimitExceededEvent":{"type":"object","required":["eventId","eventType","timestamp","rateLimit"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["rate_limit.exceeded"]},"timestamp":{"type":"string","format":"date-time"},"rateLimit":{"type":"object","required":["limit","window","exceededBy"],"properties":{"limit":{"type":"integer"},"window":{"type":"string","format":"duration"},"exceededBy":{"type":"integer"}}},"user":{"$ref":"#/components/schemas/User"},"request":{"type":"object","properties":{"endpoint":{"type":"string"},"method":{"type":"string"},"ipAddress":{"type":"string","format":"ipv4"}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"SecurityAlertEvent":{"type":"object","required":["eventId","eventType","timestamp","alert"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["security.alert"]},"timestamp":{"type":"string","format":"date-time"},"alert":{"type":"object","required":["severity","type","description"],"properties":{"severity":{"type":"string","enum":["low","medium","high","critical"]},"type":{"type":"string","enum":["suspicious_login_pattern","brute_force","data_breach","malware_detected"]},"description":{"type":"string"}}},"activity":{"type":"object","properties":{"attempts":{"type":"integer"},"timeWindow":{"type":"string","format":"duration"},"ipAddresses":{"type":"array","items":{"type":"string","format":"ipv4"}}}},"actions":{"type":"array","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"ApiVersionDeprecatedEvent":{"type":"object","required":["eventId","eventType","timestamp","deprecation"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["api.version_deprecated"]},"timestamp":{"type":"string","format":"date-time"},"deprecation":{"type":"object","required":["version","deprecatedAt","sunsetAt"],"properties":{"version":{"type":"string"},"deprecatedAt":{"type":"string","format":"date-time"},"sunsetAt":{"type":"string","format":"date-time"},"migrationGuide":{"type":"string","format":"uri"}}},"impact":{"type":"object","properties":{"affectedEndpoints":{"type":"array","items":{"type":"string"}},"breakingChanges":{"type":"boolean"}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"CelestialBodyCreatedEvent":{"type":"object","required":["eventId","eventType","timestamp","celestialBody"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["celestial_body.created"]},"timestamp":{"type":"string","format":"date-time"},"celestialBody":{"$ref":"#/components/schemas/CelestialBody"},"discovery":{"type":"object","properties":{"method":{"type":"string","enum":["telescope_observation","space_probe","mathematical_prediction","collision_remnant"]},"observatory":{"type":"string"}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"CelestialBodyUpdatedEvent":{"type":"object","required":["eventId","eventType","timestamp","celestialBody","changes"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["celestial_body.updated"]},"timestamp":{"type":"string","format":"date-time"},"celestialBody":{"$ref":"#/components/schemas/CelestialBody"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/FieldChange"}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"OrbitalCollisionEvent":{"type":"object","required":["eventId","eventType","timestamp","collision","objects"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["orbital.collision"]},"timestamp":{"type":"string","format":"date-time"},"collision":{"type":"object","required":["type","severity","energy"],"properties":{"type":{"type":"string","enum":["asteroid_planet","planet_planet","satellite_planet","asteroid_asteroid"]},"severity":{"type":"string","enum":["minor","moderate","major","catastrophic"]},"energy":{"type":"string","description":"Energy released in joules (scientific notation)"}}},"objects":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"object","properties":{"type":{"type":"string","enum":["planet","satellite"]},"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"mass":{"type":"number","description":"Mass in kilograms"}}}},"impact":{"type":"object","properties":{"location":{"type":"string"},"craterSize":{"type":"number","description":"Crater size in meters"},"atmosphericEffects":{"type":"string","enum":["none","dust_cloud","atmospheric_heating","atmospheric_loss"]}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"NewDiscoveryEvent":{"type":"object","required":["eventId","eventType","timestamp","discovery","celestialBody"],"properties":{"eventId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["discovery.new"]},"timestamp":{"type":"string","format":"date-time"},"discovery":{"type":"object","required":["type","significance","description"],"properties":{"type":{"type":"string","enum":["habitable_planet","new_element","alien_life","wormhole","black_hole"]},"significance":{"type":"string","enum":["low","medium","high","revolutionary"]},"description":{"type":"string"}}},"celestialBody":{"$ref":"#/components/schemas/CelestialBody"},"research":{"type":"object","properties":{"method":{"type":"string"},"observatory":{"type":"string"},"paper":{"type":"string","format":"uri"}}},"metadata":{"$ref":"#/components/schemas/EventMetadata"}}},"EventMetadata":{"type":"object","properties":{"source":{"type":"string","description":"Source system that generated the event"},"userId":{"type":"integer","format":"int64","description":"ID of the user who triggered the event (if applicable)"},"requestId":{"type":"string","description":"ID of the request that triggered the event"},"correlationId":{"type":"string","description":"Correlation ID for tracing related events"},"severity":{"type":"string","enum":["info","warning","error","critical"],"description":"Event severity level"}}},"FieldChange":{"type":"object","required":["field","oldValue","newValue"],"properties":{"field":{"type":"string","description":"Name of the field that changed"},"oldValue":{"description":"Previous value of the field"},"newValue":{"description":"New value of the field"}}},"Planet":{"description":"A planet in the Scalar Galaxy","type":"object","required":["id","name"],"properties":{"id":{"type":"integer","format":"int64","readOnly":true},"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string","enum":["terrestrial","gas_giant","ice_giant","dwarf","super_earth"]},"habitabilityIndex":{"type":"number","format":"float","minimum":0,"maximum":1},"physicalProperties":{"type":"object","properties":{"mass":{"type":"number","format":"float"},"radius":{"type":"number","format":"float"},"gravity":{"type":"number","format":"float"},"temperature":{"type":"object","properties":{"min":{"type":"number","format":"float"},"max":{"type":"number","format":"float"},"average":{"type":"number","format":"float"}}}}},"atmosphere":{"type":"array","items":{"type":"object","properties":{"compound":{"type":"string"},"percentage":{"type":"number","format":"float"}}}},"discoveredAt":{"type":"string","format":"date-time"},"image":{"type":"string","nullable":true},"satellites":{"type":"array","items":{"$ref":"#/components/schemas/Satellite"}},"creator":{"$ref":"#/components/schemas/User"},"tags":{"type":"array","items":{"type":"string"}},"lastUpdated":{"type":"string","format":"date-time","readOnly":true}}},"Satellite":{"description":"Every satellite in the Scalar Galaxy","type":"object","required":["name"],"properties":{"id":{"type":"integer","format":"int64","readOnly":true},"name":{"type":"string"},"description":{"type":"string"},"diameter":{"type":"number","format":"float"},"type":{"type":"string","enum":["moon","asteroid","comet"]},"orbit":{"type":"object","properties":{"planet":{"$ref":"#/components/schemas/Planet"},"orbitalPeriod":{"type":"number","format":"float"},"distance":{"type":"number","format":"float"}}}}},"CelestialBody":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["planet","satellite"],"description":"Type of celestial body"},"planet":{"$ref":"#/components/schemas/Planet","description":"Planet data (when type is 'planet')"},"satellite":{"$ref":"#/components/schemas/Satellite","description":"Satellite data (when type is 'satellite')"}},"description":"A celestial body which can be either a planet or a satellite"},"User":{"description":"A user","type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"name":{"type":"string"}}}}}}