diff --git a/models/ActivityLevel.json b/models/ActivityLevel.json new file mode 100644 index 0000000..7cd5ef5 --- /dev/null +++ b/models/ActivityLevel.json @@ -0,0 +1,9 @@ +{ + "type": "string", + "description": "The activity level of a trade good. If the good is an import, this represents how strong consumption is for the good. If the good is an export, this represents how strong the production is for the good.", + "enum": [ + "WEAK", + "GROWING", + "STRONG" + ] +} \ No newline at end of file diff --git a/models/Construction.json b/models/Construction.json new file mode 100644 index 0000000..73972cd --- /dev/null +++ b/models/Construction.json @@ -0,0 +1,26 @@ +{ + "type": "object", + "description": "The construction details of a waypoint.", + "properties": { + "symbol": { + "type": "string", + "description": "The symbol of the waypoint." + }, + "materials": { + "type": "array", + "description": "The materials required to construct the waypoint.", + "items": { + "$ref": "./ConstructionMaterial.json" + } + }, + "isComplete": { + "type": "boolean", + "description": "Whether the waypoint has been constructed." + } + }, + "required": [ + "symbol", + "materials", + "isComplete" + ] +} \ No newline at end of file diff --git a/models/ConstructionMaterial.json b/models/ConstructionMaterial.json new file mode 100644 index 0000000..fc9e9ca --- /dev/null +++ b/models/ConstructionMaterial.json @@ -0,0 +1,22 @@ +{ + "description": "The details of the required construction materials for a given waypoint under construction.", + "type": "object", + "properties": { + "tradeSymbol": { + "$ref": "./TradeSymbol.json" + }, + "required": { + "type": "integer", + "description": "The number of units required." + }, + "fulfilled": { + "type": "integer", + "description": "The number of units fulfilled toward the required amount." + } + }, + "required": [ + "tradeSymbol", + "required", + "fulfilled" + ] +} \ No newline at end of file diff --git a/models/JumpGate.json b/models/JumpGate.json index 69dad45..ca9203e 100644 --- a/models/JumpGate.json +++ b/models/JumpGate.json @@ -2,24 +2,16 @@ "type": "object", "description": "", "properties": { - "jumpRange": { - "type": "number", - "description": "The maximum jump range of the gate." - }, - "factionSymbol": { - "type": "string", - "description": "The symbol of the faction that owns the gate." - }, - "connectedSystems": { + "connections": { "type": "array", - "description": "The systems within range of the gate that have a corresponding gate.", + "description": "All the gates that are connected to this waypoint.", "items": { - "$ref": "./ConnectedSystem.json" + "type": "string", + "description": "The symbol of the waypoint that has a corresponding gate." } } }, "required": [ - "jumpRange", - "connectedSystems" + "connections" ] } \ No newline at end of file diff --git a/models/MarketTradeGood.json b/models/MarketTradeGood.json index 7319318..414454d 100644 --- a/models/MarketTradeGood.json +++ b/models/MarketTradeGood.json @@ -5,20 +5,25 @@ "type": "string", "description": "The symbol of the trade good." }, + "type": { + "type": "string", + "description": "The type of trade good (export, import, or exchange).", + "enum": [ + "EXPORT", + "IMPORT", + "EXCHANGE" + ] + }, "tradeVolume": { "type": "integer", - "description": "The typical volume flowing through the market for this type of good. The larger the trade volume, the more stable prices will be.", + "description": "This is the maximum number of units that can be purchased or sold at this market in a single trade for this good. Trade volume also gives an indication of price volatility. A market with a low trade volume will have large price swings, while high trade volume will be more resilient to price changes.", "minimum": 1 }, "supply": { - "type": "string", - "description": "A rough estimate of the total supply of this good in the marketplace.", - "enum": [ - "SCARCE", - "LIMITED", - "MODERATE", - "ABUNDANT" - ] + "$ref": "./SupplyLevel.json" + }, + "activity": { + "$ref": "./ActivityLevel.json" }, "purchasePrice": { "type": "integer", @@ -33,6 +38,7 @@ }, "required": [ "symbol", + "type", "tradeVolume", "supply", "purchasePrice", diff --git a/models/ShipModule.json b/models/ShipModule.json index 8569d30..f30ea36 100644 --- a/models/ShipModule.json +++ b/models/ShipModule.json @@ -6,7 +6,10 @@ "type": "string", "enum": [ "MODULE_MINERAL_PROCESSOR_I", + "MODULE_GAS_PROCESSOR_I", "MODULE_CARGO_HOLD_I", + "MODULE_CARGO_HOLD_II", + "MODULE_CARGO_HOLD_III", "MODULE_CREW_QUARTERS_I", "MODULE_ENVOY_QUARTERS_I", "MODULE_PASSENGER_CABIN_I", diff --git a/models/ShipType.json b/models/ShipType.json index 6a6a48c..8eb689f 100644 --- a/models/ShipType.json +++ b/models/ShipType.json @@ -4,6 +4,7 @@ "enum": [ "SHIP_PROBE", "SHIP_MINING_DRONE", + "SHIP_SIPHON_DRONE", "SHIP_INTERCEPTOR", "SHIP_LIGHT_HAULER", "SHIP_COMMAND_FRIGATE", @@ -11,6 +12,7 @@ "SHIP_HEAVY_FREIGHTER", "SHIP_LIGHT_SHUTTLE", "SHIP_ORE_HOUND", - "SHIP_REFINING_FREIGHTER" + "SHIP_REFINING_FREIGHTER", + "SHIP_SURVEYOR" ] } \ No newline at end of file diff --git a/models/ShipyardShip.json b/models/ShipyardShip.json index 6475e83..21adc34 100644 --- a/models/ShipyardShip.json +++ b/models/ShipyardShip.json @@ -11,6 +11,12 @@ "description": { "type": "string" }, + "supply": { + "$ref": "./SupplyLevel.json" + }, + "activity": { + "$ref": "./ActivityLevel.json" + }, "purchasePrice": { "type": "integer" }, @@ -55,6 +61,7 @@ "symbol", "name", "description", + "supply", "purchasePrice", "frame", "reactor", diff --git a/models/Siphon.json b/models/Siphon.json new file mode 100644 index 0000000..ecfc693 --- /dev/null +++ b/models/Siphon.json @@ -0,0 +1,19 @@ +{ + "description": "Siphon details.", + "type": "object", + "properties": { + "shipSymbol": { + "type": "string", + "minLength": 1, + "description": "Symbol of the ship that executed the siphon." + }, + "yield": { + "$ref": "./SiphonYield.json", + "description": "Yields from the siphon operation." + } + }, + "required": [ + "shipSymbol", + "yield" + ] +} \ No newline at end of file diff --git a/models/SiphonYield.json b/models/SiphonYield.json new file mode 100644 index 0000000..6a126d2 --- /dev/null +++ b/models/SiphonYield.json @@ -0,0 +1,18 @@ +{ + "type": "object", + "description": "A yield from the siphon operation.", + "properties": { + "symbol": { + "$ref": "./TradeSymbol.json", + "description": "Symbol of the good that was siphoned." + }, + "units": { + "type": "integer", + "description": "The number of units siphoned that were placed into the ship's cargo hold." + } + }, + "required": [ + "symbol", + "units" + ] +} \ No newline at end of file diff --git a/models/SupplyLevel.json b/models/SupplyLevel.json new file mode 100644 index 0000000..f9f0831 --- /dev/null +++ b/models/SupplyLevel.json @@ -0,0 +1,11 @@ +{ + "type": "string", + "description": "The supply level of a trade good.", + "enum": [ + "SCARCE", + "LIMITED", + "MODERATE", + "HIGH", + "ABUNDANT" + ] +} \ No newline at end of file diff --git a/models/TradeSymbol.json b/models/TradeSymbol.json index 6af7724..b7d24c7 100644 --- a/models/TradeSymbol.json +++ b/models/TradeSymbol.json @@ -43,6 +43,7 @@ "AMMUNITION", "ELECTRONICS", "SHIP_PLATING", + "SHIP_PARTS", "EQUIPMENT", "FUEL", "MEDICINE", @@ -50,6 +51,7 @@ "CLOTHING", "MICROPROCESSORS", "PLASTICS", + "QUANTUM_STABILIZERS", "POLYNUCLEOTIDES", "BIOCOMPOSITES", "NANOBOTS", @@ -80,6 +82,7 @@ "ENGINE_ION_DRIVE_II", "ENGINE_HYPER_DRIVE_I", "MODULE_MINERAL_PROCESSOR_I", + "MODULE_GAS_PROCESSOR_I", "MODULE_CARGO_HOLD_I", "MODULE_CREW_QUARTERS_I", "MODULE_ENVOY_QUARTERS_I", diff --git a/models/Waypoint.json b/models/Waypoint.json index 1836da5..8248d89 100644 --- a/models/Waypoint.json +++ b/models/Waypoint.json @@ -45,8 +45,19 @@ "$ref": "./WaypointTrait.json" } }, + "modifiers": { + "type": "array", + "description": "The modifiers of the waypoint.", + "items": { + "$ref": "./WaypointModifier.json" + } + }, "chart": { "$ref": "./Chart.json" + }, + "isUnderConstruction": { + "type": "boolean", + "description": "True if the waypoint is under construction." } }, "required": [ @@ -56,6 +67,7 @@ "x", "y", "orbitals", - "traits" + "traits", + "isUnderConstruction" ] } \ No newline at end of file diff --git a/models/WaypointModifier.json b/models/WaypointModifier.json new file mode 100644 index 0000000..c8c5b0f --- /dev/null +++ b/models/WaypointModifier.json @@ -0,0 +1,29 @@ +{ + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "The unique identifier of the modifier.", + "enum": [ + "STRIPPED", + "UNSTABLE", + "RADIATION_LEAK", + "CRITICAL_LIMIT", + "CIVIL_UNREST" + ] + }, + "name": { + "type": "string", + "description": "The name of the trait." + }, + "description": { + "type": "string", + "description": "A description of the trait." + } + }, + "required": [ + "symbol", + "name", + "description" + ] +} \ No newline at end of file diff --git a/models/WaypointTrait.json b/models/WaypointTrait.json index d7dc5ca..66de7dc 100644 --- a/models/WaypointTrait.json +++ b/models/WaypointTrait.json @@ -6,6 +6,7 @@ "description": "The unique identifier of the trait.", "enum": [ "UNCHARTED", + "UNDER_CONSTRUCTION", "MARKETPLACE", "SHIPYARD", "OUTPOST", @@ -54,6 +55,7 @@ "TOXIC_ATMOSPHERE", "CORROSIVE_ATMOSPHERE", "BREATHABLE_ATMOSPHERE", + "THIN_ATMOSPHERE", "JOVIAN", "ROCKY", "VOLCANIC", @@ -63,6 +65,13 @@ "TEMPERATE", "JUNGLE", "OCEAN", + "RADIOACTIVE", + "MICRO_GRAVITY_ANOMALIES", + "DEBRIS_CLUSTER", + "DEEP_CRATERS", + "SHALLOW_CRATERS", + "UNSTABLE_COMPOSITION", + "HOLLOWED_INTERIOR", "STRIPPED" ] }, diff --git a/models/WaypointType.json b/models/WaypointType.json index 4b978cb..359dc60 100644 --- a/models/WaypointType.json +++ b/models/WaypointType.json @@ -8,8 +8,13 @@ "ORBITAL_STATION", "JUMP_GATE", "ASTEROID_FIELD", + "ASTEROID", + "ENGINEERED_ASTEROID", + "ASTEROID_BASE", "NEBULA", "DEBRIS_FIELD", - "GRAVITY_WELL" + "GRAVITY_WELL", + "ARTIFICIAL_GRAVITY_WELL", + "FUEL_STATION" ] } \ No newline at end of file diff --git a/reference/SpaceTraders.json b/reference/SpaceTraders.json index e284c3d..e1a4dbc 100644 --- a/reference/SpaceTraders.json +++ b/reference/SpaceTraders.json @@ -502,6 +502,32 @@ "in": "query", "name": "limit", "description": "How many entries to return per page" + }, + { + "description": "Filter waypoints by type.", + "in": "query", + "name": "type", + "schema": { + "$ref": "../models/WaypointType.json" + } + }, + { + "description": "Filter waypoints by one or more traits.", + "in": "query", + "name": "traits", + "schema": { + "oneOf": [ + { + "$ref": "../models/WaypointTrait.json" + }, + { + "type": "array", + "items": { + "$ref": "../models/WaypointTrait.json" + } + } + ] + } } ], "security": [ @@ -695,7 +721,7 @@ }, "/systems/{systemSymbol}/waypoints/{waypointSymbol}/jump-gate": { "get": { - "description": "Get jump gate details for a waypoint. Requires a waypoint of type `JUMP_GATE` to use.\n\nThe response will return all systems that are have a Jump Gate in range of this Jump Gate. Those systems can be jumped to from this Jump Gate.", + "description": "Get jump gate details for a waypoint. Requires a waypoint of type `JUMP_GATE` to use.\n\nWaypoints connected to this jump gate can be ", "operationId": "get-jump-gate", "responses": { "200": { @@ -750,6 +776,140 @@ } ] }, + "/systems/{systemSymbol}/waypoints/{waypointSymbol}/construction": { + "get": { + "description": "Get construction details for a waypoint. Requires a waypoint with a property of `isUnderConstruction` to be true.", + "operationId": "get-construction", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "description": "", + "properties": { + "data": { + "$ref": "../models/Construction.json" + } + }, + "required": [ + "data" + ], + "type": "object" + } + } + }, + "description": "Successfully fetched construction site." + } + }, + "security": [ + {}, + { + "AgentToken": [] + } + ], + "summary": "Get Construction Site", + "tags": [ + "Systems" + ] + } + }, + "/systems/{systemSymbol}/waypoints/{waypointSymbol}/construction/supply": { + "post": { + "description": "Supply a construction site with the specified good. Requires a waypoint with a property of `isUnderConstruction` to be true.\n\nThe good must be in your ship's cargo. The good will be removed from your ship's cargo and added to the construction site's materials.", + "operationId": "supply-construction", + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "shipSymbol": { + "type": "string", + "description": "Symbol of the ship to use." + }, + "tradeSymbol": { + "type": "string", + "description": "The symbol of the good to supply." + }, + "units": { + "type": "integer", + "description": "Amount of units to supply." + } + }, + "required": [ + "shipSymbol", + "tradeSymbol", + "units" + ], + "type": "object" + } + } + }, + "description": "" + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "description": "", + "properties": { + "data": { + "properties": { + "construction": { + "$ref": "../models/Construction.json" + }, + "cargo": { + "$ref": "../models/ShipCargo.json" + } + }, + "required": [ + "construction", + "cargo" + ], + "type": "object" + } + }, + "required": [ + "data" + ], + "type": "object" + } + } + }, + "description": "Successfully supplied construction site." + } + }, + "security": [ + { + "AgentToken": [] + } + ], + "summary": "Supply Construction Site", + "tags": [ + "Systems" + ] + }, + "parameters": [ + { + "description": "The system symbol", + "in": "path", + "name": "systemSymbol", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The waypoint symbol", + "in": "path", + "name": "waypointSymbol", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, "/factions": { "get": { "description": "Return a paginated list of all the factions in the game.", @@ -2048,6 +2208,69 @@ ] } }, + "/my/ships/{shipSymbol}/siphon": { + "parameters": [ + { + "description": "The ship symbol.", + "in": "path", + "name": "shipSymbol", + "required": true, + "schema": { + "type": "string" + } + } + ], + "post": { + "description": "Siphon gases, such as hydrocarbon, from gas giants.\n\nThe ship must be in orbit to be able to siphon and must have siphon mounts and a gas processor installed.", + "operationId": "siphon-resources", + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "description": "", + "properties": { + "data": { + "properties": { + "cooldown": { + "$ref": "../models/Cooldown.json" + }, + "siphon": { + "$ref": "../models/Siphon.json" + }, + "cargo": { + "$ref": "../models/ShipCargo.json" + } + }, + "required": [ + "siphon", + "cooldown", + "cargo" + ], + "type": "object" + } + }, + "required": [ + "data" + ], + "type": "object" + } + } + }, + "description": "Siphon successful." + } + }, + "security": [ + { + "AgentToken": [] + } + ], + "summary": "Siphon Resources", + "tags": [ + "Fleet" + ] + } + }, "/my/ships/{shipSymbol}/extract/survey": { "parameters": [ { @@ -2211,20 +2434,20 @@ } ], "post": { - "description": "Jump your ship instantly to a target system. The ship must be in orbit to use this function. When used while in orbit of a Jump Gate waypoint, any ship can use this command, jumping to the target system's Jump Gate waypoint.\n\nWhen used elsewhere, jumping requires the ship to have a `Jump Drive` module installed and consumes a unit of antimatter from the ship's cargo. The command will fail if there is no antimatter to consume. When jumping via the `Jump Drive` module, the ship ends up at its largest source of energy in the system, such as a gas planet or a jump gate.", + "description": "Jump your ship instantly to a target connected waypoint. The ship must be in orbit to execute a jump.\n\nA unit of antimatter is purchased and consumed from the market when jumping. The price of antimatter is determined by the market and is subject to change. A ship can only jump to connected waypoints", "operationId": "jump-ship", "requestBody": { "content": { "application/json": { "schema": { "properties": { - "systemSymbol": { - "description": "The system symbol to jump to.", + "waypointSymbol": { + "description": "The symbol of the waypoint to jump to. The destination must be a connected waypoint.", "type": "string" } }, "required": [ - "systemSymbol" + "waypointSymbol" ], "type": "object" } @@ -2240,16 +2463,20 @@ "properties": { "data": { "properties": { + "nav": { + "$ref": "../models/ShipNav.json" + }, "cooldown": { "$ref": "../models/Cooldown.json" }, - "nav": { - "$ref": "../models/ShipNav.json" + "transaction": { + "$ref": "../models/MarketTransaction.json" } }, "required": [ "nav", - "cooldown" + "cooldown", + "transaction" ], "type": "object" }