diff --git a/Cargo.lock b/Cargo.lock
index 362ba8f..ceaf3b3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2271,7 +2271,7 @@ dependencies = [
[[package]]
name = "torn-api"
-version = "1.1.2"
+version = "1.2.0"
dependencies = [
"bon",
"bytes",
@@ -2291,7 +2291,7 @@ dependencies = [
[[package]]
name = "torn-api-codegen"
-version = "0.2.2"
+version = "0.2.3"
dependencies = [
"heck",
"indexmap",
diff --git a/torn-api-codegen/Cargo.toml b/torn-api-codegen/Cargo.toml
index 43bab34..48037f1 100644
--- a/torn-api-codegen/Cargo.toml
+++ b/torn-api-codegen/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "torn-api-codegen"
authors = ["Pyrit [2111649]"]
-version = "0.2.2"
+version = "0.2.3"
edition = "2021"
description = "Contains the v2 torn API model descriptions and codegen for the bindings"
license-file = { workspace = true }
diff --git a/torn-api-codegen/openapi.json b/torn-api-codegen/openapi.json
index a3603e4..a6b7e07 100644
--- a/torn-api-codegen/openapi.json
+++ b/torn-api-codegen/openapi.json
@@ -3,7 +3,7 @@
"info": {
"title": "Torn API",
"description": "\n * The development of Torn's API v2 is still ongoing.\n * If selections remain unaltered, they will default to the API v1 version.\n * Unlike API v1, API v2 accepts both selections and IDs as path and query parameters.\n * If any discrepancies or errors are found, please submit a [bug report](https://www.torn.com/forums.php#/p=forums&f=19&b=0&a=0) on the Torn Forums.\n * In case you're using bots to check for changes on openapi.json file, make sure to specificy a custom user-agent header - CloudFlare sometimes prevents requests from default user-agents.",
- "version": "1.3.2"
+ "version": "1.6.0"
},
"servers": [
{
@@ -31,6 +31,15 @@
},
{
"$ref": "#/components/parameters/ApiFrom"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -72,6 +81,15 @@
},
{
"$ref": "#/components/parameters/ApiFrom"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -101,6 +119,17 @@
],
"summary": "Get bounties placed on you",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -137,6 +166,15 @@
"schema": {
"$ref": "#/components/schemas/UserId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -166,6 +204,17 @@
],
"summary": "Get your competition's event start time",
"description": "Requires minimal access key.
Only available to yourself.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -202,6 +251,15 @@
"schema": {
"$ref": "#/components/schemas/TornCrimeId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
}
],
"responses": {
@@ -231,6 +289,17 @@
],
"summary": "Get your education information",
"description": "The response contains a list of complete eduactions and of a current education (if any).",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -258,6 +327,17 @@
],
"summary": "Get user enlisted cars",
"description": "Requires minimal access key.
Returns a list of all user enlisted cars.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -285,6 +365,17 @@
],
"summary": "Get your current faction balance",
"description": "Requires limited access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -312,6 +403,17 @@
],
"summary": "Get updates on your threads and posts",
"description": "Requires minimal access key.
This selection returns data visible in 'Feed' section on forum page. Feed is sorted by timestamp descending. Only a maximum of 100 rows are returned.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -339,6 +441,17 @@
],
"summary": "Get updates on your friends' activity",
"description": "Requires minimal access key.
This selection returns data visible in 'Friends' section on forum page. Feed is sorted by timestamp descending. Only a maximum of 100 rows are returned.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -381,6 +494,15 @@
},
{
"$ref": "#/components/parameters/ApiTo"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -434,6 +556,15 @@
},
{
"$ref": "#/components/parameters/ApiTo"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -463,6 +594,17 @@
],
"summary": "Get updates on threads you subscribed to",
"description": "Requires minimal access key.
This selection returns data visible in 'Subscribed Threads' section on forum page. Threads are sorted in the same way as on site.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -502,6 +644,15 @@
},
{
"$ref": "#/components/parameters/ApiTo"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -552,6 +703,15 @@
},
{
"$ref": "#/components/parameters/ApiTo"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -581,6 +741,17 @@
],
"summary": "Get your hall of fame rankings",
"description": "Requires public access key.
When requesting selection with Limited, Full or Custom key, battle_stats selection will be populated.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -617,6 +788,15 @@
"schema": {
"$ref": "#/components/schemas/UserId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -649,6 +829,15 @@
"parameters": [
{
"$ref": "#/components/parameters/ApiOffset"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -678,6 +867,17 @@
],
"summary": "Get your starter job positions",
"description": "Requires minimal access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -723,6 +923,15 @@
},
{
"$ref": "#/components/parameters/ApiSortAsc"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -752,6 +961,17 @@
],
"summary": "Get your current ongoing organized crime",
"description": "Requires minimal access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -812,6 +1032,15 @@
"type": "integer",
"format": "int32"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -883,6 +1112,15 @@
"type": "integer",
"format": "int32"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -938,6 +1176,15 @@
"custom"
]
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
}
],
"responses": {
@@ -982,6 +1229,15 @@
},
{
"$ref": "#/components/parameters/ApiStripTagsTrue"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -1026,6 +1282,15 @@
},
{
"$ref": "#/components/parameters/ApiStripTagsTrue"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -1055,6 +1320,17 @@
],
"summary": "Get all available user selections",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -1082,6 +1358,17 @@
],
"summary": "Get current server time",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -1168,6 +1455,15 @@
},
{
"$ref": "#/components/parameters/ApiOffsetNoDefault"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -1270,6 +1566,17 @@
],
"summary": "Get your faction's applications",
"description": "Requires minimal access key with faction API access permissions.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -1309,6 +1616,15 @@
},
{
"$ref": "#/components/parameters/ApiFrom"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -1350,6 +1666,15 @@
},
{
"$ref": "#/components/parameters/ApiFrom"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -1379,6 +1704,17 @@
],
"summary": "Get your faction's & member's balance details",
"description": "Requires limited access key with faction API access permissions.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -1406,6 +1742,17 @@
],
"summary": "Get your faction's basic details",
"description": "Requires public access key.
The 'is_enlisted' value will be populated if you have API faction permissions (with custom, limited or full access keys), otherwise it will be set as null.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -1442,6 +1789,15 @@
"schema": {
"$ref": "#/components/schemas/FactionId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -1471,6 +1827,17 @@
],
"summary": "Get your faction's current chain",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -1507,6 +1874,15 @@
"schema": {
"$ref": "#/components/schemas/FactionId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -1548,6 +1924,15 @@
},
{
"$ref": "#/components/parameters/ApiFrom"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -1598,6 +1983,15 @@
},
{
"$ref": "#/components/parameters/ApiFrom"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -1627,6 +2021,17 @@
],
"summary": "Get your faction's latest chain report",
"description": "Requires public access key.
This includes currently ongoing chains.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -1663,6 +2068,15 @@
"schema": {
"$ref": "#/components/schemas/ChainId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -1714,6 +2128,15 @@
"current"
]
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -1774,6 +2197,15 @@
},
{
"$ref": "#/components/parameters/ApiSortDesc"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
}
],
"responses": {
@@ -1812,6 +2244,15 @@
"schema": {
"$ref": "#/components/schemas/FactionCrimeId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
}
],
"responses": {
@@ -1841,6 +2282,17 @@
],
"summary": "Get your faction's hall of fame rankings.",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -1877,6 +2329,15 @@
"schema": {
"$ref": "#/components/schemas/FactionId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -1909,6 +2370,15 @@
"parameters": [
{
"$ref": "#/components/parameters/ApiStripTagsTrue"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -1950,6 +2420,15 @@
},
{
"$ref": "#/components/parameters/ApiStripTagsTrue"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2003,6 +2482,15 @@
"schema": {
"$ref": "#/components/schemas/FactionNewsCategory"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
}
],
"responses": {
@@ -2032,6 +2520,17 @@
],
"summary": "Get your faction's positions details",
"description": "Requires minimal access key with faction API access permissions.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -2059,6 +2558,17 @@
],
"summary": "Get a list of current rackets",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -2103,6 +2613,15 @@
},
{
"$ref": "#/components/parameters/ApiSortDesc"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2141,6 +2660,15 @@
"schema": {
"$ref": "#/components/schemas/FactionId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2179,6 +2707,15 @@
"schema": {
"$ref": "#/components/schemas/RankedWarId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2223,6 +2760,15 @@
},
{
"$ref": "#/components/parameters/ApiStripTagsTrue"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -2267,6 +2813,15 @@
},
{
"$ref": "#/components/parameters/ApiStripTagsTrue"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyLimited"
}
],
"responses": {
@@ -2296,6 +2851,17 @@
],
"summary": "Get your faction's challenges stats",
"description": "Requires minimal access key with faction API access permissions.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -2323,6 +2889,17 @@
],
"summary": "Get a list of your faction's territories",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -2359,6 +2936,15 @@
"schema": {
"$ref": "#/components/schemas/FactionId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2394,6 +2980,15 @@
},
{
"$ref": "#/components/parameters/ApiLimit500Default20"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2443,6 +3038,15 @@
},
{
"$ref": "#/components/parameters/ApiLimit100"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2481,6 +3085,15 @@
"schema": {
"$ref": "#/components/schemas/FactionId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2519,6 +3132,15 @@
"schema": {
"$ref": "#/components/schemas/TerritoryWarId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2548,6 +3170,17 @@
],
"summary": "Get your faction's upgrades",
"description": "Requires minimal access key with faction API access permissions.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyMinimal"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -2575,6 +3208,17 @@
],
"summary": "Get your faction's wars & pacts details",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -2611,6 +3255,15 @@
"schema": {
"$ref": "#/components/schemas/FactionId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2639,6 +3292,17 @@
"Faction"
],
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -2666,6 +3330,17 @@
],
"summary": "Get current server time",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -2752,6 +3427,15 @@
},
{
"$ref": "#/components/parameters/ApiOffsetNoDefault"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2872,6 +3556,17 @@
],
"summary": "Get publicly available forum categories",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -2914,6 +3609,15 @@
"schema": {
"$ref": "#/components/schemas/ForumThreadId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2952,6 +3656,15 @@
"schema": {
"$ref": "#/components/schemas/ForumThreadId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -2993,6 +3706,15 @@
},
{
"$ref": "#/components/parameters/ApiTo"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3045,6 +3767,15 @@
"schema": {
"type": "string"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3074,6 +3805,17 @@
],
"summary": "Get all available forum selections",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3101,6 +3843,17 @@
],
"summary": "Get current server time",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3178,6 +3931,15 @@
"schema": {
"type": "string"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3219,6 +3981,152 @@
"x-stability": "Stable"
}
},
+ "/key/log": {
+ "get": {
+ "tags": [
+ "Key"
+ ],
+ "summary": "Get current key log history",
+ "description": "Available for any key.
\n * This selection contains up to last 250 request logs.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiLimit100"
+ },
+ {
+ "$ref": "#/components/parameters/ApiOffsetNoDefault"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/KeyLogResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/key/info": {
+ "get": {
+ "tags": [
+ "Key"
+ ],
+ "summary": "Get current key info",
+ "description": "Available for any key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/KeyInfoResponse"
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Unstable"
+ }
+ },
+ "/key": {
+ "get": {
+ "tags": [
+ "Key"
+ ],
+ "summary": "Get any Key selection",
+ "parameters": [
+ {
+ "name": "selections",
+ "in": "query",
+ "description": "Selection names",
+ "required": false,
+ "style": "form",
+ "explode": false,
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/KeySelectionName"
+ }
+ }
+ },
+ {
+ "$ref": "#/components/parameters/ApiLimit100"
+ },
+ {
+ "$ref": "#/components/parameters/ApiOffsetNoDefault"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successful operation",
+ "content": {
+ "application/json": {
+ "schema": {
+ "anyOf": [
+ {
+ "$ref": "#/components/schemas/KeyInfoResponse"
+ },
+ {
+ "$ref": "#/components/schemas/KeyLogResponse"
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "security": [
+ {
+ "api_key": []
+ }
+ ],
+ "x-stability": "Stable"
+ }
+ },
"/market/{id}/itemmarket": {
"get": {
"tags": [
@@ -3247,6 +4155,15 @@
},
{
"$ref": "#/components/parameters/ApiOffset"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3276,6 +4193,17 @@
],
"summary": "Get all available market selections",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3303,6 +4231,17 @@
],
"summary": "Get current server time",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3387,6 +4326,15 @@
},
{
"$ref": "#/components/parameters/ApiOffsetNoDefault"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3426,6 +4374,17 @@
],
"summary": "Get cars and their racing stats",
"description": "Requires public access key.
Returns the stat details about racing cars.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3453,6 +4412,17 @@
],
"summary": "Get all possible car upgrades",
"description": "Requires public access key.
Returns the details about all possible car upgrades.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3506,6 +4476,15 @@
"custom"
]
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3544,6 +4523,15 @@
"schema": {
"$ref": "#/components/schemas/RaceId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3591,6 +4579,15 @@
"schema": {
"$ref": "#/components/schemas/RaceClassEnum"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3620,6 +4617,17 @@
],
"summary": "Get race tracks and descriptions",
"description": "Requires public access key.
Returns the details about racing tracks.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3647,6 +4655,17 @@
],
"summary": "Get all available racing selections",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3674,6 +4693,17 @@
],
"summary": "Get current server time",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3748,6 +4778,15 @@
},
{
"$ref": "#/components/parameters/ApiOffsetNoDefault"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3820,6 +4859,15 @@
},
{
"$ref": "#/components/parameters/ApiStripTagsTrue"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3855,6 +4903,15 @@
},
{
"$ref": "#/components/parameters/ApiOffset"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -3884,6 +4941,17 @@
],
"summary": "Get calendar information",
"description": "Requires public access key.
Get the details about competitions & events in the running year.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Success",
@@ -3911,6 +4979,17 @@
],
"summary": "Get crimes information",
"description": "Requires public access key.
Return the details about released crimes.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3938,6 +5017,17 @@
],
"summary": "Get education information",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -3980,6 +5070,15 @@
"schema": {
"$ref": "#/components/schemas/TornFactionHofCategory"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -4009,6 +5108,17 @@
],
"summary": "Get full faction tree",
"description": "Requires public access key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -4051,6 +5161,15 @@
"schema": {
"$ref": "#/components/schemas/TornHofCategory"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -4080,6 +5199,17 @@
],
"summary": "Get information about ammo",
"description": "Requires public key.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -4107,6 +5237,17 @@
],
"summary": "Get information about weapon upgrades",
"description": "Requires public key.",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -4146,6 +5287,15 @@
},
{
"$ref": "#/components/parameters/ApiSortAsc"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -4189,6 +5339,15 @@
},
{
"$ref": "#/components/parameters/ApiSortAsc"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -4218,6 +5377,17 @@
],
"summary": "Get available log categories",
"description": "Requires public key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -4245,6 +5415,17 @@
],
"summary": "Get all available log ids",
"description": "Requires public key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -4281,6 +5462,15 @@
"schema": {
"$ref": "#/components/schemas/LogCategoryId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -4319,6 +5509,15 @@
"schema": {
"$ref": "#/components/schemas/TornCrimeId"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -4354,6 +5553,15 @@
},
{
"$ref": "#/components/parameters/ApiLimit250Default20"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -4394,6 +5602,15 @@
"schema": {
"$ref": "#/components/schemas/FactionTerritoryEnum"
}
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -4423,6 +5640,17 @@
],
"summary": "Get all available torn selections",
"description": "Requires public key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -4450,6 +5678,17 @@
],
"summary": "Get current server time",
"description": "Requires public key.
",
+ "parameters": [
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
+ }
+ ],
"responses": {
"200": {
"description": "Successful operation",
@@ -4527,6 +5766,15 @@
},
{
"$ref": "#/components/parameters/ApiOffsetNoDefault"
+ },
+ {
+ "$ref": "#/components/parameters/ApiTimestamp"
+ },
+ {
+ "$ref": "#/components/parameters/ApiComment"
+ },
+ {
+ "$ref": "#/components/parameters/ApiKeyPublic"
}
],
"responses": {
@@ -4617,6 +5865,16 @@
"E"
]
},
+ "ApiKeyAccessTypeEnum": {
+ "type": "string",
+ "enum": [
+ "Custom",
+ "Public Only",
+ "Minimal Access",
+ "Limited Access",
+ "Full Access"
+ ]
+ },
"FactionTerritoryEnum": {
"type": "string",
"enum": [
@@ -9259,6 +10517,10 @@
"type": "integer",
"format": "int32"
},
+ "CompanyId": {
+ "type": "integer",
+ "format": "int32"
+ },
"EducationId": {
"type": "integer",
"format": "int32"
@@ -9351,6 +10613,21 @@
},
"type": "object"
},
+ "RequestMetadataWithLinksAndTotal": {
+ "required": [
+ "links"
+ ],
+ "properties": {
+ "links": {
+ "$ref": "#/components/schemas/RequestLinks"
+ },
+ "total": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "type": "object"
+ },
"ForumFeedTypeEnum": {
"description": "This represents the type of the activity. Values range from 1 to 8 where:\n * 1 = 'X posted on a thread',\n * 2 = 'X created a thread',\n * 3 = 'X liked your thread',\n * 4 = 'X disliked your thread',\n * 5 = 'X liked your post',\n * 6 = 'X disliked your post',\n * 7 = 'X quoted your post'.",
"type": "integer",
@@ -10855,9 +12132,6 @@
"status": {
"$ref": "#/components/schemas/UserStatus"
},
- "life": {
- "$ref": "#/components/schemas/UserLife"
- },
"revive_setting": {
"$ref": "#/components/schemas/ReviveSetting"
}
@@ -10885,23 +12159,6 @@
},
"type": "object"
},
- "UserLife": {
- "description": "Unfortunately, current life value is often shown incorrectly, and the calculation for each member is very resource heavy, so this field is deprecated and will be removed on 1st of May, 2025.",
- "properties": {
- "current": {
- "type": "integer",
- "format": "int32",
- "deprecated": true
- },
- "maximum": {
- "type": "integer",
- "format": "int32",
- "deprecated": true
- }
- },
- "type": "object",
- "deprecated": true
- },
"UserStatus": {
"description": "Details about a user's status.",
"required": [
@@ -11708,7 +12965,7 @@
}
},
"non-attackers": {
- "description": "This is replaced with 'sci_fi' field and will be removed on 1st June 2025.",
+ "description": "This is replaced with 'non_attackers' field and will be removed on 1st June 2025.",
"type": "array",
"items": {
"$ref": "#/components/schemas/UserId"
@@ -12097,18 +13354,6 @@
}
]
},
- "user_id": {
- "description": "This field is replaced with the 'user.id' and will be removed on the 1st of May 2025.",
- "deprecated": true,
- "oneOf": [
- {
- "$ref": "#/components/schemas/UserId"
- },
- {
- "type": "null"
- }
- ]
- },
"user": {
"description": "Details about the user joined the slot, if any.",
"oneOf": [
@@ -12120,18 +13365,6 @@
}
]
},
- "success_chance": {
- "description": "This field is replaced with 'checkpoint_pass_rate' field and will be removed on 1st of May 2025.",
- "type": "integer",
- "format": "int32",
- "deprecated": true
- },
- "crime_pass_rate": {
- "description": "This field is replaced with 'checkpoint_pass_rate' field and will be removed on 1st of May 2025.",
- "type": "integer",
- "format": "int32",
- "deprecated": true
- },
"checkpoint_pass_rate": {
"description": "Returns CPR for the player who joined the slot. If the slot is empty (availalbe), it shows your CPR for that slot. This value is 0 for expired crimes.",
"type": "integer",
@@ -12144,6 +13377,7 @@
"required": [
"id",
"name",
+ "previous_crime_id",
"difficulty",
"status",
"created_at",
@@ -12158,6 +13392,16 @@
"id": {
"$ref": "#/components/schemas/FactionCrimeId"
},
+ "previous_crime_id": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/FactionCrimeId"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
"name": {
"type": "string"
},
@@ -13122,6 +14366,201 @@
},
"type": "object"
},
+ "KeyLogResponse": {
+ "required": [
+ "log"
+ ],
+ "properties": {
+ "log": {
+ "type": "array",
+ "items": {
+ "required": [
+ "timestamp",
+ "type",
+ "selections",
+ "id",
+ "ip"
+ ],
+ "properties": {
+ "timestamp": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "type": {
+ "type": "string"
+ },
+ "selections": {
+ "type": "string"
+ },
+ "id": {
+ "oneOf": [
+ {
+ "type": "integer",
+ "format": "int64"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "comment": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "ip": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "KeyInfoResponse": {
+ "required": [
+ "info"
+ ],
+ "properties": {
+ "info": {
+ "required": [
+ "selections",
+ "access"
+ ],
+ "properties": {
+ "selections": {
+ "required": [
+ "company",
+ "faction",
+ "market",
+ "property",
+ "torn",
+ "user",
+ "racing",
+ "forum",
+ "key"
+ ],
+ "properties": {
+ "company": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "faction": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/FactionSelectionName"
+ }
+ },
+ "market": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MarketSelectionName"
+ }
+ },
+ "property": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "torn": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TornSelectionName"
+ }
+ },
+ "user": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UserSelectionName"
+ }
+ },
+ "racing": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RacingSelectionName"
+ }
+ },
+ "forum": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ForumSelectionName"
+ }
+ },
+ "key": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/KeySelectionName"
+ }
+ }
+ },
+ "type": "object"
+ },
+ "access": {
+ "required": [
+ "level",
+ "type",
+ "faction",
+ "company"
+ ],
+ "properties": {
+ "level": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "type": {
+ "$ref": "#/components/schemas/ApiKeyAccessTypeEnum"
+ },
+ "faction": {
+ "type": "boolean"
+ },
+ "faction_id": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/FactionId"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "company": {
+ "type": "boolean"
+ },
+ "company_id": {
+ "oneOf": [
+ {
+ "$ref": "#/components/schemas/CompanyId"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "KeySelectionName": {
+ "type": "string",
+ "enum": [
+ "info",
+ "log"
+ ]
+ },
"ItemMarketListingItemBonus": {
"required": [
"id",
@@ -13289,15 +14728,6 @@
"type": "integer",
"format": "int32"
},
- "itemDetails": {
- "description": "This field used camelCase instead of snake_case by accident and is replaced with 'item_details' field. This will be removed on 1st of May 2025.",
- "deprecated": true,
- "allOf": [
- {
- "$ref": "#/components/schemas/ItemMarketListingItemDetails"
- }
- ]
- },
"item_details": {
"$ref": "#/components/schemas/ItemMarketListingItemDetails"
}
@@ -16928,6 +18358,33 @@
}
},
"type": "object"
+ },
+ "item_market": {
+ "required": [
+ "customers",
+ "sales",
+ "revenue",
+ "fees"
+ ],
+ "properties": {
+ "customers": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sales": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "revenue": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "fees": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "type": "object"
}
},
"type": "object"
@@ -18168,7 +19625,11 @@
"missions",
"racing",
"networth",
- "other"
+ "other",
+ "itemmarketcustomers",
+ "itemmarketsales",
+ "itemmarketrevenue",
+ "itemmarketfees"
]
},
"PersonalStatsStatName": {
@@ -19853,8 +21314,8 @@
"ApiKeyPublic": {
"name": "key",
"in": "query",
- "description": "API key (Public)",
- "required": true,
+ "description": "API key (Public).
It's not required to use this parameter when passing the API key via the Authorization header.",
+ "required": false,
"schema": {
"type": "string"
}
@@ -19862,8 +21323,8 @@
"ApiKeyMinimal": {
"name": "key",
"in": "query",
- "description": "API key (Minimal)",
- "required": true,
+ "description": "API key (Minimal).
It's not required to use this parameter when passing the API key via the Authorization header.",
+ "required": false,
"schema": {
"type": "string"
}
@@ -19871,8 +21332,26 @@
"ApiKeyLimited": {
"name": "key",
"in": "query",
- "description": "API key (Limited)",
- "required": true,
+ "description": "API key (Limited).
It's not required to use this parameter when passing the API key via the Authorization header.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ "ApiTimestamp": {
+ "name": "timestamp",
+ "in": "query",
+ "description": "Timestamp to bypass cache",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ "ApiComment": {
+ "name": "comment",
+ "in": "query",
+ "description": "Comment for your tool/service/bot/website to be visible in the logs.",
+ "required": false,
"schema": {
"type": "string"
}
@@ -20137,6 +21616,10 @@
"name": "Forum",
"description": "Part of Forum section"
},
+ {
+ "name": "Key",
+ "description": "Part of Key section"
+ },
{
"name": "Torn",
"description": "Part of Torn section"
diff --git a/torn-api-codegen/src/model/object.rs b/torn-api-codegen/src/model/object.rs
index de7e3ec..60829b9 100644
--- a/torn-api-codegen/src/model/object.rs
+++ b/torn-api-codegen/src/model/object.rs
@@ -1,7 +1,7 @@
use heck::{ToSnakeCase, ToUpperCamelCase};
use indexmap::IndexMap;
use proc_macro2::TokenStream;
-use quote::{ToTokens, format_ident, quote};
+use quote::{format_ident, quote, ToTokens};
use syn::Ident;
use crate::openapi::r#type::OpenApiType;
@@ -82,6 +82,7 @@ pub struct Property {
pub required: bool,
pub nullable: bool,
pub r#type: PropertyType,
+ pub deprecated: bool,
}
impl Property {
@@ -105,30 +106,25 @@ impl Property {
name,
description,
required,
+ deprecated: schema.deprecated,
nullable: false,
}),
OpenApiType {
one_of: Some(types),
..
} => match types.as_slice() {
- [
- left,
- OpenApiType {
- r#type: Some("null"),
- ..
- },
- ] => {
+ [left, OpenApiType {
+ r#type: Some("null"),
+ ..
+ }] => {
let mut inner = Self::from_schema(&name, required, left, schemas)?;
inner.nullable = true;
Some(inner)
}
- [
- left @ ..,
- OpenApiType {
- r#type: Some("null"),
- ..
- },
- ] => {
+ [left @ .., OpenApiType {
+ r#type: Some("null"),
+ ..
+ }] => {
let rest = OpenApiType {
one_of: Some(left.to_owned()),
..schema.clone()
@@ -141,9 +137,10 @@ impl Property {
let r#enum = Enum::from_one_of(&name.to_upper_camel_case(), cases)?;
Some(Self {
name,
- description: None,
+ description,
required,
nullable: false,
+ deprecated: schema.deprecated,
r#type: PropertyType::Enum(r#enum),
})
}
@@ -155,9 +152,10 @@ impl Property {
let composite = Object::from_all_of(&name.to_upper_camel_case(), types, schemas)?;
Some(Self {
name,
- description: None,
+ description,
required,
nullable: false,
+ deprecated: schema.deprecated,
r#type: PropertyType::Nested(Box::new(composite)),
})
}
@@ -173,6 +171,7 @@ impl Property {
name,
description,
required,
+ deprecated: schema.deprecated,
nullable: false,
}),
OpenApiType {
@@ -183,6 +182,7 @@ impl Property {
description,
r#type: PropertyType::Ref((*path).to_owned()),
required,
+ deprecated: schema.deprecated,
nullable: false,
}),
OpenApiType {
@@ -197,6 +197,7 @@ impl Property {
description,
required,
nullable: false,
+ deprecated: schema.deprecated,
r#type: PropertyType::Array(Box::new(inner.r#type)),
})
}
@@ -217,6 +218,7 @@ impl Property {
description,
required,
nullable: false,
+ deprecated: schema.deprecated,
r#type: PropertyType::Primitive(prim),
})
}
@@ -245,8 +247,17 @@ impl Property {
ty_inner
};
+ let deprecated = self.deprecated.then(|| {
+ let note = self.description.as_ref().map(|d| quote! { note = #d });
+
+ quote! {
+ #[deprecated(#note)]
+ }
+ });
+
Some(quote! {
#desc
+ #deprecated
#serde_attr
pub #name: #ty
})
diff --git a/torn-api-codegen/src/model/path.rs b/torn-api-codegen/src/model/path.rs
index c38686d..a1bfb4f 100644
--- a/torn-api-codegen/src/model/path.rs
+++ b/torn-api-codegen/src/model/path.rs
@@ -1,4 +1,4 @@
-use std::{fmt::Write, ops::Deref};
+use std::fmt::Write;
use heck::{ToSnakeCase, ToUpperCamelCase};
use indexmap::IndexMap;
@@ -40,7 +40,7 @@ pub struct Path {
pub segments: Vec,
pub name: String,
pub summary: Option,
- pub description: String,
+ pub description: Option,
pub parameters: Vec,
pub response: PathResponse,
}
@@ -63,7 +63,7 @@ impl Path {
}
let summary = schema.get.summary.as_deref().map(ToOwned::to_owned);
- let description = schema.get.description.deref().to_owned();
+ let description = schema.get.description.as_deref().map(ToOwned::to_owned);
let mut params = Vec::with_capacity(schema.get.parameters.len());
for parameter in &schema.get.parameters {
@@ -377,7 +377,23 @@ impl Path {
}
};
+ let doc = match (&self.summary, &self.description) {
+ (Some(summary), Some(description)) => {
+ Some(format!("{summary}\n\n# Description\n{description}"))
+ }
+ (Some(summary), None) => Some(summary.clone()),
+ (None, Some(description)) => Some(format!("# Description\n{description}")),
+ (None, None) => None,
+ };
+
+ let doc = doc.map(|d| {
+ quote! {
+ #[doc = #d]
+ }
+ });
+
Some(quote! {
+ #doc
pub async fn #fn_name(
self,
#(#extra_args)*
@@ -487,7 +503,23 @@ impl Path {
quote! { #(#disc_ty),* }
};
+ let doc = match (&self.summary, &self.description) {
+ (Some(summary), Some(description)) => {
+ Some(format!("{summary}\n\n# Description\n{description}"))
+ }
+ (Some(summary), None) => Some(summary.clone()),
+ (None, Some(description)) => Some(format!("# Description\n{description}")),
+ (None, None) => None,
+ };
+
+ let doc = doc.map(|d| {
+ quote! {
+ #[doc = #d]
+ }
+ });
+
Some(quote! {
+ #doc
pub fn #fn_name(
self,
ids: I,
diff --git a/torn-api-codegen/src/model/scope.rs b/torn-api-codegen/src/model/scope.rs
index ff64304..4035e19 100644
--- a/torn-api-codegen/src/model/scope.rs
+++ b/torn-api-codegen/src/model/scope.rs
@@ -50,6 +50,7 @@ impl Scope {
}
Some(quote! {
+ #[allow(dead_code)]
pub struct #name(E)
where
E: crate::executor::Executor;
@@ -65,6 +66,7 @@ impl Scope {
#(#functions)*
}
+ #[allow(dead_code)]
pub struct #bulk_name where
E: crate::executor::BulkExecutor,
{
diff --git a/torn-api-codegen/src/openapi/path.rs b/torn-api-codegen/src/openapi/path.rs
index 23c5767..e0d06f8 100644
--- a/torn-api-codegen/src/openapi/path.rs
+++ b/torn-api-codegen/src/openapi/path.rs
@@ -63,7 +63,7 @@ where
#[derive(Debug, Clone, Deserialize)]
pub struct OpenApiPathBody<'a> {
pub summary: Option>,
- pub description: Cow<'a, str>,
+ pub description: Option>,
#[serde(borrow, default)]
pub parameters: Vec>,
#[serde(
diff --git a/torn-api/Cargo.toml b/torn-api/Cargo.toml
index d38fabc..b9c49dc 100644
--- a/torn-api/Cargo.toml
+++ b/torn-api/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "torn-api"
-version = "1.1.2"
+version = "1.2.0"
edition = "2021"
description = "Auto-generated bindings for the v2 torn api"
license-file = { workspace = true }
@@ -36,7 +36,7 @@ futures = { version = "0.3", default-features = false, features = [
tokio = { version = "1", features = ["full"] }
[build-dependencies]
-torn-api-codegen = { path = "../torn-api-codegen", version = "0.2.1" }
+torn-api-codegen = { path = "../torn-api-codegen", version = "0.2.3" }
syn = { workspace = true, features = ["parsing"] }
proc-macro2 = { workspace = true }
prettyplease = "0.2"
diff --git a/torn-api/src/executor.rs b/torn-api/src/executor.rs
index ba62c79..3ed5d03 100644
--- a/torn-api/src/executor.rs
+++ b/torn-api/src/executor.rs
@@ -62,14 +62,14 @@ pub trait BulkExecutor: Sized {
fn execute(
self,
requests: impl IntoIterator- ,
- ) -> impl Stream
- )>
+ ) -> impl Stream
- )> + Unpin
where
R: IntoRequest;
fn fetch_many(
self,
requests: impl IntoIterator
- ,
- ) -> impl Stream
- )>
+ ) -> impl Stream
- )> + Unpin
where
R: IntoRequest,
{
@@ -173,7 +173,7 @@ pub trait BulkExecutorExt: BulkExecutor + Sized {
}
#[cfg(feature = "scopes")]
-impl<'e, T> BulkExecutorExt for T
+impl BulkExecutorExt for T
where
T: BulkExecutor + Sized,
{
diff --git a/torn-api/src/request/mod.rs b/torn-api/src/request/mod.rs
index dae42be..a5a7245 100644
--- a/torn-api/src/request/mod.rs
+++ b/torn-api/src/request/mod.rs
@@ -28,7 +28,7 @@ pub struct ApiResponse {
}
pub trait IntoRequest: Send {
- type Discriminant: Send;
+ type Discriminant: Send + 'static;
type Response: for<'de> serde::Deserialize<'de> + Send;
fn into_request(self) -> (Self::Discriminant, ApiRequest);
}
diff --git a/torn-key-pool/src/lib.rs b/torn-key-pool/src/lib.rs
index 5f8987d..2e41408 100644
--- a/torn-key-pool/src/lib.rs
+++ b/torn-key-pool/src/lib.rs
@@ -569,17 +569,16 @@ where
fn execute(
self,
requests: impl IntoIterator
- ,
- ) -> impl futures::Stream
- )>
+ ) -> impl futures::Stream
- )> + Unpin
where
R: torn_api::request::IntoRequest,
{
+ let requests: Vec<_> = requests.into_iter().map(|r| r.into_request()).collect();
self.pool
- .execute_bulk_requests(
- self.selector.clone(),
- requests.into_iter().map(|r| r.into_request()),
- )
+ .execute_bulk_requests(self.selector.clone(), requests)
.into_stream()
.flatten()
+ .boxed()
}
}
@@ -640,22 +639,23 @@ where
fn execute(
self,
requests: impl IntoIterator
- ,
- ) -> impl futures::Stream
- )>
+ ) -> impl futures::Stream
- )> + Unpin
where
R: torn_api::request::IntoRequest,
{
+ let requests: Vec<_> = requests.into_iter().map(|r| r.into_request()).collect();
StreamExt::map(
futures::stream::iter(requests).throttle(self.distance),
- move |r| {
+ move |(d, request)| {
let this = self.clone();
async move {
- let (d, request) = r.into_request();
let result = this.execute_request(request).await;
(d, result)
}
},
)
.buffer_unordered(25)
+ .boxed()
}
}