From b7342f84bc802d9ed6ad6ed8e893889070d0b3b3 Mon Sep 17 00:00:00 2001 From: Aaron Hedges Date: Sun, 20 Oct 2024 22:15:35 -0400 Subject: [PATCH 01/10] first pass at new oas file generation --- Pipfile | 1 + Pipfile.lock | 691 +- README.md | 2 +- api/views.py | 17 - openapi-schema.yml | 16527 ------------------------------------------- server/settings.py | 10 + 6 files changed, 487 insertions(+), 16761 deletions(-) delete mode 100644 openapi-schema.yml diff --git a/Pipfile b/Pipfile index a16d3fc4..21e030a0 100644 --- a/Pipfile +++ b/Pipfile @@ -12,6 +12,7 @@ newrelic = "*" requests = "*" whitenoise = "*" gunicorn = "*" +drf-spectacular = "*" [dev-packages] pytest = "*" diff --git a/Pipfile.lock b/Pipfile.lock index 06f87650..8379245d 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "7f5551caaef3607b1e575f418d79007782a3947acf18e2d3b0fe718459d5192e" + "sha256": "c9616a562cfaf994dd155d24d80b6fc04ef51ff0f982bf85262e37cd5c6583b5" }, "pipfile-spec": 6, "requires": { @@ -24,6 +24,14 @@ "markers": "python_version >= '3.8'", "version": "==3.8.1" }, + "attrs": { + "hashes": [ + "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2" + ], + "markers": "python_version >= '3.7'", + "version": "==24.2.0" + }, "certifi": { "hashes": [ "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", @@ -34,117 +42,132 @@ }, "charset-normalizer": { "hashes": [ - "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", - "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", - "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", - "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", - "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", - "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", - "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", - "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", - "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", - "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", - "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", - "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", - "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", - "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", - "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", - "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", - "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", - "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", - "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", - "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", - "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", - "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", - "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", - "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", - "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", - "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", - "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", - "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", - "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", - "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", - "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", - "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", - "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", - "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", - "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", - "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", - "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", - "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", - "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", - "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", - "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", - "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", - "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", - "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", - "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", - "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", - "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", - "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", - "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", - "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", - "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", - "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", - "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", - "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", - "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", - "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", - "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", - "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", - "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", - "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", - "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", - "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", - "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", - "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", - "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", - "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", - "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", - "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", - "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", - "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", - "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", - "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", - "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", - "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", - "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", - "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", - "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", - "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", - "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", - "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", - "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", - "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", - "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", - "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", - "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", - "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", - "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", - "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", - "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", - "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" + "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621", + "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", + "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", + "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", + "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", + "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", + "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d", + "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", + "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", + "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", + "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", + "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab", + "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be", + "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", + "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0", + "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2", + "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62", + "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62", + "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", + "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", + "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", + "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455", + "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858", + "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", + "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", + "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", + "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", + "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea", + "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", + "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", + "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", + "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", + "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd", + "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", + "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242", + "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee", + "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", + "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51", + "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8", + "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", + "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613", + "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742", + "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", + "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", + "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", + "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", + "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", + "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", + "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", + "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417", + "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", + "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", + "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca", + "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa", + "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", + "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149", + "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41", + "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574", + "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0", + "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f", + "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", + "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654", + "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3", + "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19", + "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", + "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578", + "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", + "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", + "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51", + "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", + "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a", + "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade", + "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", + "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6", + "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", + "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6", + "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2", + "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12", + "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf", + "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", + "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7", + "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", + "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", + "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b", + "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", + "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", + "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4", + "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", + "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", + "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a", + "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748", + "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", + "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482" ], "markers": "python_full_version >= '3.7.0'", - "version": "==3.3.2" + "version": "==3.4.0" }, "django": { "hashes": [ - "sha256:021ffb7fdab3d2d388bc8c7c2434eb9c1f6f4d09e6119010bbb1694dda286bc2", - "sha256:71603f27dac22a6533fb38d83072eea9ddb4017fead6f67f2562a40402d61c3f" + "sha256:bd7376f90c99f96b643722eee676498706c9fd7dc759f55ebfaf2c08ebcdf4f0", + "sha256:f11aa87ad8d5617171e3f77e1d5d16f004b79a2cf5d2e1d2b97a6a1f8e9ba5ed" ], "index": "pypi", "markers": "python_version >= '3.10'", - "version": "==5.1.1" + "version": "==5.1.2" }, "django-cors-headers": { "hashes": [ - "sha256:5c6e3b7fe870876a1efdfeb4f433782c3524078fa0dc9e0195f6706ce7a242f6", - "sha256:92cf4633e22af67a230a1456cb1b7a02bb213d6536d2dcb2a4a24092ea9cebc2" + "sha256:28c1ded847aa70208798de3e42422a782f427b8b720e8d7319d34b654b5978e6", + "sha256:6c01a85cf1ec779a7bde621db853aa3ce5c065a5ba8e27df7a9f9e8dac310f4f" ], "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==4.4.0" + "markers": "python_version >= '3.9'", + "version": "==4.5.0" }, "django-filter": { "hashes": [ @@ -164,6 +187,15 @@ "markers": "python_version >= '3.8'", "version": "==3.15.2" }, + "drf-spectacular": { + "hashes": [ + "sha256:a199492f2163c4101055075ebdbb037d59c6e0030692fc83a1a8c0fc65929981", + "sha256:b1c04bf8b2fbbeaf6f59414b4ea448c8787aba4d32f76055c3b13335cf7ec37b" + ], + "index": "pypi", + "markers": "python_version >= '3.7'", + "version": "==0.27.2" + }, "gunicorn": { "hashes": [ "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d", @@ -181,37 +213,65 @@ "markers": "python_version >= '3.6'", "version": "==3.10" }, + "inflection": { + "hashes": [ + "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417", + "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2" + ], + "markers": "python_version >= '3.5'", + "version": "==0.5.1" + }, + "jsonschema": { + "hashes": [ + "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", + "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566" + ], + "markers": "python_version >= '3.8'", + "version": "==4.23.0" + }, + "jsonschema-specifications": { + "hashes": [ + "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272", + "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf" + ], + "markers": "python_version >= '3.9'", + "version": "==2024.10.1" + }, "newrelic": { "hashes": [ - "sha256:002e21527c77c0c9640402c152d40a114b4cc821e7de93cf445fffaef160f1aa", - "sha256:01e68cf6826a3d456aaa0a4c88a7b864403428369b855c3d9c5c27958ef48adb", - "sha256:03a5068d68f22d80797a048a4018d673b8cdd646bc5f9fb63328b53b08bc6de7", - "sha256:0d1f0c1c54a301ee8f7c4372a8905a18cd36d9a2f9b6550898dd7bac147480d3", - "sha256:14e675e0a73e52fde94df9de89201de945cc3a2a046b4fdfe5ba1717b15cad78", - "sha256:1f4cd5ca11f08badd4b1cdd746053cfb30a09d5d9b9c1f5d911718d2870b4493", - "sha256:27d2f34bf714ef9d7ff8a68265a2094b87a4bdc7b1bbbd0a1421cf5cf8f33311", - "sha256:34b60d16d6e8fbc3e65a7d5171718999ecf7bc369cf8baae1bee3c6317972e18", - "sha256:4d09af04f86d40c534d3753bdc1e45e9ca76ce85cea7ea87994c77b3d0677381", - "sha256:548b538c3e95b589a30565bff668285ca74bb64069eb1d6f643bde9768944f53", - "sha256:6257413c9e261e8256be5cadb488945dbb3830dcc6091805fa3a5c70992a03a6", - "sha256:78bc57206c7747f7096ed081d828719def7c0952ea7834c7769d383bd7ba0aa6", - "sha256:8716867245ebe97656017e7a6ef17ebccb730e59062531e3e7b9ce9ffc7b4e4b", - "sha256:94c94a0a05e2995dff812f4fb85113227bcc5a24635539031842af9c1ddc4368", - "sha256:a8a16dfac53914dd0b930a2c087df701585d4f372b2c138466418e78d067b50f", - "sha256:a8c1b480bbe5c3e2e156f8de86182aa207430dbb32e0e5dc523ba8c3731328fc", - "sha256:b1352b6d357e82899ff102acb6971fb9c2cebe70c783081f11c3e53fddfedc4e", - "sha256:b60407fdb9798eee54488130bf87dfe542c3f04475c0c6b8c14e84274db5b1eb", - "sha256:bd3c73bbfac0a48402583aada21bf026161df8b73c6552cb8654f4a93f409860", - "sha256:c633972d88d89a2a17471b834961a889709f4970016e9641e3ddc0234669aadf", - "sha256:d6e09a66088431356c6c1a75bd1cdac2e425d547b47026138b254ac51d5df23d", - "sha256:d8bfbbb50ccc39a51a3449cdfb61970d7e61be0eb93336e3725857b7c1d17ff7", - "sha256:d90d41d78bd72d7fab7ed1cf34bf3dc519ab2d8c6820554061b8708eb7951374", - "sha256:f1aac4a5fe1d0cbe2bb9e2c52152604fb872a6bce28e129febd29d1d307df1f4", - "sha256:f446bf0943220e114e861bbc96761733e0877684ee860cf61755abe2d9805367" + "sha256:00df1aa613294cb592a52157f789e75166dbf439cfa9e6cf59f6cf4a265dada9", + "sha256:03ab987eae0452aeb5aed8571c100d1735613a3a227387f99fe54ed38f1ae0e9", + "sha256:23400846dad2283693eade90b6d3c3462301a4b7735c7f76009b1fa445660aeb", + "sha256:32bd34e4cd73c2435472c0b67869fd2db914d6c99d3e1e404e09affe61a8551e", + "sha256:3415b1c7cab5e586e72cca467dd80cd0507f23a3139c02911cf75892fdbb48a6", + "sha256:3521d646c0032db53b7320fe6b6859eebd863f1b47d7c7dd480073727091e50e", + "sha256:36a2218c9e79897d9b5671cdeac30c467d7fbac10cda4f2d79062f2bd0fcaed8", + "sha256:3bee0b9ce1eccf6ac63e51113781743853b1b84c98ae48ed17d0410c352ccb4d", + "sha256:3cd5aeade6462519328fc42f4e98948a45571f3d22360a0559e19a6525c723a6", + "sha256:3d9c8297ba158ce4570fc48cfea7bdf3678b2054baaf0cad4debcbca33c2af3a", + "sha256:3f15a940b6794b4008ab983e7ac3b4d179efe609e040ee96ed5744723fc580c8", + "sha256:501cc575b3fd702a21542a0f5dac59b83f47e2806f5b7c0f4e4510b5474ed77f", + "sha256:60d01303807228718c4099d8550f72d21ee8b61a33555d8974800f6868f2144a", + "sha256:62d521a5d7269c8a5c5838c4ca3b757ef63a13257302c901223c75510cc6f9f5", + "sha256:69aa68cae47c595bdeb95f275d78693ec27a9fd9353bf81257e21f8607134db6", + "sha256:7b449546ebb89feaadfd36fda7735ce06023fc90979b838e244f98369aba5ccb", + "sha256:7f021eac4c2e3b14eab90c608d8bd25b4e3c6b0b0d40796ec1c1260cc47b5e83", + "sha256:a15df23effd09bb1d1f5c38866b75cc5f380b6aa953efbca9e95e79b72744db4", + "sha256:a6d4094d19db924c51ca35da603344907bcbca030822f7a78d5d9c6ad361d419", + "sha256:a6ff022c7556b61b067e8e6b729fe60f437a8356f319ae3b8342858792f3930d", + "sha256:b4220b97669d214e75d2039fea9e0505fde5bc450832210abbc76b9a635785ed", + "sha256:bc693e0db87ab4cf6623847c3949debbcc991554edfb4dd8c02c136e0770b367", + "sha256:c57e79d37ed87e2790c5e66253f9a5d91ed8cc218f160d5a4d062fc759791a78", + "sha256:c6aa9cf936b16d13b65c1b7aa6c722a76a0702469f91bcfc3c5b39f3293181eb", + "sha256:e5809b4111ef3b1d0b5fa66ad06a81de512842370707863d44888c9439f16c4c", + "sha256:e6f822e6a43151af13a748fb2de6ff298aeb6eee03bf6512afba6aaa79211172", + "sha256:ef5d27001d3b5ca53f19d150c60b570c1b0c774d082ab9bf8349f4430ed85b48", + "sha256:f6333aa7051544ddc7f8a85f344bc3f401ddd8635540878da34de7bfd91f5d95", + "sha256:fc3d34db12133b481636384663f45b9ccd7f0f41554a59c15ec37aeb4f77227d" ], "index": "pypi", "markers": "python_version >= '3.7'", - "version": "==10.0.0" + "version": "==10.2.0" }, "packaging": { "hashes": [ @@ -221,6 +281,73 @@ "markers": "python_version >= '3.8'", "version": "==24.1" }, + "pyyaml": { + "hashes": [ + "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff", + "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", + "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", + "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", + "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", + "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", + "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", + "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", + "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", + "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", + "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a", + "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", + "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", + "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", + "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", + "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", + "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", + "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a", + "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", + "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", + "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", + "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", + "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", + "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", + "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", + "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", + "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", + "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", + "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", + "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706", + "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", + "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", + "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", + "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083", + "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", + "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", + "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", + "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", + "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", + "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", + "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", + "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", + "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", + "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", + "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5", + "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d", + "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", + "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", + "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", + "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", + "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", + "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", + "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" + ], + "markers": "python_version >= '3.8'", + "version": "==6.0.2" + }, + "referencing": { + "hashes": [ + "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c", + "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de" + ], + "markers": "python_version >= '3.8'", + "version": "==0.35.1" + }, "requests": { "hashes": [ "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", @@ -230,6 +357,115 @@ "markers": "python_version >= '3.8'", "version": "==2.32.3" }, + "rpds-py": { + "hashes": [ + "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c", + "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585", + "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5", + "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6", + "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef", + "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2", + "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29", + "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318", + "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b", + "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399", + "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739", + "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee", + "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174", + "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a", + "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344", + "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2", + "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03", + "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5", + "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22", + "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e", + "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96", + "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91", + "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752", + "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075", + "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253", + "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee", + "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad", + "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5", + "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce", + "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7", + "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b", + "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8", + "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57", + "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3", + "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec", + "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209", + "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921", + "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045", + "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074", + "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580", + "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7", + "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5", + "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3", + "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0", + "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24", + "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139", + "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db", + "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc", + "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789", + "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f", + "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2", + "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c", + "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232", + "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6", + "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c", + "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29", + "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489", + "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94", + "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751", + "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2", + "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda", + "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9", + "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51", + "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c", + "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8", + "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989", + "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511", + "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1", + "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2", + "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150", + "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c", + "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965", + "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f", + "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58", + "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b", + "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f", + "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d", + "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821", + "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de", + "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121", + "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855", + "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272", + "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60", + "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02", + "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1", + "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140", + "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879", + "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940", + "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364", + "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4", + "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e", + "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420", + "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5", + "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24", + "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c", + "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf", + "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f", + "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e", + "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab", + "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08", + "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92", + "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a", + "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8" + ], + "markers": "python_version >= '3.8'", + "version": "==0.20.0" + }, "sqlparse": { "hashes": [ "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4", @@ -238,6 +474,14 @@ "markers": "python_version >= '3.8'", "version": "==0.5.1" }, + "uritemplate": { + "hashes": [ + "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0", + "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e" + ], + "markers": "python_version >= '3.6'", + "version": "==4.1.1" + }, "urllib3": { "hashes": [ "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", @@ -300,99 +544,114 @@ }, "charset-normalizer": { "hashes": [ - "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", - "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", - "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", - "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", - "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", - "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", - "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", - "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", - "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", - "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", - "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", - "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", - "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", - "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", - "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", - "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", - "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", - "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", - "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", - "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", - "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", - "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", - "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", - "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", - "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", - "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", - "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", - "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", - "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", - "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", - "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", - "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", - "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", - "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", - "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", - "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", - "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", - "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", - "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", - "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", - "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", - "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", - "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", - "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", - "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", - "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", - "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", - "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", - "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", - "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", - "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", - "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", - "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", - "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", - "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", - "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", - "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", - "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", - "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", - "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", - "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", - "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", - "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", - "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", - "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", - "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", - "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", - "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", - "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", - "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", - "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", - "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", - "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", - "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", - "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", - "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", - "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", - "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", - "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", - "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", - "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", - "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", - "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", - "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", - "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", - "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", - "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", - "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", - "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", - "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" + "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621", + "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", + "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", + "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", + "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", + "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", + "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d", + "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", + "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", + "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", + "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", + "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab", + "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be", + "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", + "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0", + "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2", + "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62", + "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62", + "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", + "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", + "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", + "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455", + "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858", + "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", + "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", + "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", + "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", + "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea", + "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", + "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", + "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", + "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", + "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd", + "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", + "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242", + "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee", + "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", + "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51", + "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8", + "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", + "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613", + "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742", + "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", + "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", + "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", + "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", + "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", + "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", + "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", + "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417", + "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", + "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", + "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca", + "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa", + "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", + "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149", + "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41", + "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574", + "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0", + "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f", + "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", + "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654", + "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3", + "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19", + "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", + "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578", + "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", + "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", + "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51", + "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", + "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a", + "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade", + "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", + "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6", + "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", + "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6", + "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2", + "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12", + "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf", + "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", + "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7", + "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", + "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", + "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b", + "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", + "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", + "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4", + "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", + "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", + "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a", + "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748", + "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", + "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482" ], "markers": "python_full_version >= '3.7.0'", - "version": "==3.3.2" + "version": "==3.4.0" }, "empty-files": { "hashes": [ diff --git a/README.md b/README.md index c1e510e2..0d4149f9 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ You can use our Dockerfile as inspiration, but it likely will not work without s After completing a build, you can generate an OAS file to be used by another application. ```bash -pipenv run ./manage.py generateschema --generator_class api.schema_generator.Open5eSchemaGenerator > openapi-schema.yml` to build the OAS file. +pipenv run python manage.py spectacular --color --file openapi-schema.yml` to build the OAS file. ``` # Contributing diff --git a/api/views.py b/api/views.py index 11289a07..be51b2b1 100644 --- a/api/views.py +++ b/api/views.py @@ -3,7 +3,6 @@ from rest_framework import viewsets from rest_framework.decorators import api_view from rest_framework.response import Response -from rest_framework.schemas.openapi import AutoSchema from api import models from api import serializers @@ -96,7 +95,6 @@ class DocumentViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of documents. retrieve: API endpoint for returning a particular document. """ - schema = AutoSchema(operation_id_base='V1Document') queryset = models.Document.objects.all().order_by("pk") serializer_class = serializers.DocumentSerializer search_fields = ['title', 'desc'] @@ -113,7 +111,6 @@ class SpellViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of spells. retrieve: API endpoint for returning a particular spell. """ - schema = AutoSchema(operation_id_base='V1Spell') queryset = models.Spell.objects.all().order_by("pk") filterset_class=filters.SpellFilter serializer_class = serializers.SpellSerializer @@ -140,7 +137,6 @@ class SpellListViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of spell lists. retrieve: API endpoint for returning a particular spell list. """ - schema = AutoSchema(operation_id_base='V1SpellList') queryset = models.SpellList.objects.all().order_by("pk") serializer_class = serializers.SpellListSerializer filterset_class = filters.SpellListFilter @@ -152,7 +148,6 @@ class MonsterViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of monsters. retrieve: API endpoint for returning a particular monster. """ - schema = AutoSchema(operation_id_base='V1Monster') queryset = models.Monster.objects.all().order_by("pk") filterset_class = filters.MonsterFilter @@ -164,7 +159,6 @@ class BackgroundViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of backgrounds. retrieve: API endpoint for returning a particular background. """ - schema = AutoSchema(operation_id_base='V1Background') queryset = models.Background.objects.all().order_by("pk") serializer_class = serializers.BackgroundSerializer ordering_fields = '__all__' @@ -178,7 +172,6 @@ class PlaneViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of planes. retrieve: API endpoint for returning a particular plane. """ - schema = AutoSchema(operation_id_base='V1Plane') queryset = models.Plane.objects.all().order_by("pk") serializer_class = serializers.PlaneSerializer filterset_class = filters.PlaneFilter @@ -190,7 +183,6 @@ class SectionViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of sections. retrieve: API endpoint for returning a particular section. """ - schema = AutoSchema(operation_id_base='V1Section') queryset = models.Section.objects.all().order_by("pk") serializer_class = serializers.SectionSerializer ordering_fields = '__all__' @@ -204,7 +196,6 @@ class FeatViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of feats. retrieve: API endpoint for returning a particular feat. """ - schema = AutoSchema(operation_id_base='V1Feat') queryset = models.Feat.objects.all().order_by("pk") serializer_class = serializers.FeatSerializer filterset_class = filters.FeatFilter @@ -216,7 +207,6 @@ class ConditionViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of conditions. retrieve: API endpoint for returning a particular condition. """ - schema = AutoSchema(operation_id_base='V1Condition') queryset = models.Condition.objects.all().order_by("pk") serializer_class = serializers.ConditionSerializer search_fields = ['name', 'desc'] @@ -228,7 +218,6 @@ class RaceViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of races. retrieve: API endpoint for returning a particular race. """ - schema = AutoSchema(operation_id_base='V1Race') queryset = models.Race.objects.all().order_by("pk") serializer_class = serializers.RaceSerializer filterset_class = filters.RaceFilter @@ -241,7 +230,6 @@ class SubraceViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint that allows viewing of Subraces. retrieve: API endpoint for returning a particular subrace. """ - schema = AutoSchema(operation_id_base='V1Subrace') queryset = models.Subrace.objects.all().order_by("pk") serializer_class = serializers.SubraceSerializer search_fields = ['name', 'desc'] @@ -256,7 +244,6 @@ class CharClassViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of classes and archetypes. retrieve: API endpoint for returning a particular class or archetype. """ - schema = AutoSchema(operation_id_base='V1Class') queryset = models.CharClass.objects.all().order_by("pk") serializer_class = serializers.CharClassSerializer filterset_class = filters.CharClassFilter @@ -269,7 +256,6 @@ class ArchetypeViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint that allows viewing of Archetypes. retrieve: API endpoint for returning a particular archetype. """ - schema = AutoSchema(operation_id_base='V1Archetype') queryset = models.Archetype.objects.all().order_by("pk") serializer_class = serializers.ArchetypeSerializer search_fields = ['name', 'desc'] @@ -284,7 +270,6 @@ class MagicItemViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of magic items. retrieve: API endpoint for returning a particular magic item. """ - schema = AutoSchema(operation_id_base='V1MagicItem') queryset = models.MagicItem.objects.all().order_by("pk") serializer_class = serializers.MagicItemSerializer filterset_class = filters.MagicItemFilter @@ -296,7 +281,6 @@ class WeaponViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of weapons. retrieve: API endpoint for returning a particular weapon. """ - schema = AutoSchema(operation_id_base='V1Weapon') queryset = models.Weapon.objects.all().order_by("pk") serializer_class = serializers.WeaponSerializer filterset_class = filters.WeaponFilter @@ -308,7 +292,6 @@ class ArmorViewSet(viewsets.ReadOnlyModelViewSet): list: API endpoint for returning a list of armor. retrieve: API endpoint for returning a particular armor. """ - schema = AutoSchema(operation_id_base='V1Armor') queryset = models.Armor.objects.all().order_by("pk") serializer_class = serializers.ArmorSerializer filterset_class = filters.ArmorFilter diff --git a/openapi-schema.yml b/openapi-schema.yml deleted file mode 100644 index 16a128de..00000000 --- a/openapi-schema.yml +++ /dev/null @@ -1,16527 +0,0 @@ -openapi: 3.0.2 -info: - title: Open5e - version: '2' - description: The Open5e API includes all monsters and spells from the SRD and other - OGL sources as well as a search API, so you can access any part of the SRD from - your app or website. -paths: - https://api.open5e.com/version/: - get: - operationId: listget_versions - description: API endpoint for data and api versions. - parameters: [] - responses: - '200': - content: - application/json: - schema: - type: array - items: {} - description: '' - tags: - - version - https://api.open5e.com/v1/manifest/: - get: - operationId: listManifests - description: 'API endpoint for returning a list of of manifests. - - - For each data source file, there is a corresponding manifest containing an - - MD5 hash of the data inside that file. When we update our data files, the - - corresponding manifest''s hash changes. If you host a service that - - automatically downloads data from Open5e, you can periodically check - - the manifests to determine whether your data is out of date.' - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Manifest' - description: '' - tags: - - v1 - https://api.open5e.com/v1/manifest/{id}/: - get: - operationId: retrieveManifest - description: 'API endpoint for returning a particular manifest. - - - For each data source file, there is a corresponding manifest containing an - - MD5 hash of the data inside that file. When we update our data files, the - - corresponding manifest''s hash changes. If you host a service that - - automatically downloads data from Open5e, you can periodically check - - the manifests to determine whether your data is out of date.' - parameters: - - name: id - in: path - required: true - description: A unique integer value identifying this manifest. - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Manifest' - description: '' - tags: - - v1 - https://api.open5e.com/v1/spells/: - get: - operationId: listV1Spells - description: API endpoint for returning a list of spells. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: spell_level - required: false - in: query - description: spell_level - schema: - type: string - - name: spell_level__range - required: false - in: query - description: spell_level__range - schema: - type: string - - name: spell_level__gt - required: false - in: query - description: spell_level__gt - schema: - type: string - - name: spell_level__gte - required: false - in: query - description: spell_level__gte - schema: - type: string - - name: spell_level__lt - required: false - in: query - description: spell_level__lt - schema: - type: string - - name: spell_level__lte - required: false - in: query - description: spell_level__lte - schema: - type: string - - name: target_range_sort - required: false - in: query - description: target_range_sort - schema: - type: string - - name: target_range_sort__range - required: false - in: query - description: target_range_sort__range - schema: - type: string - - name: target_range_sort__gt - required: false - in: query - description: target_range_sort__gt - schema: - type: string - - name: target_range_sort__gte - required: false - in: query - description: target_range_sort__gte - schema: - type: string - - name: target_range_sort__lt - required: false - in: query - description: target_range_sort__lt - schema: - type: string - - name: target_range_sort__lte - required: false - in: query - description: target_range_sort__lte - schema: - type: string - - name: school__iexact - required: false - in: query - description: school__iexact - schema: - type: string - - name: school - required: false - in: query - description: school - schema: - type: string - - name: school__in - required: false - in: query - description: school__in - schema: - type: string - - name: duration__iexact - required: false - in: query - description: duration__iexact - schema: - type: string - - name: duration - required: false - in: query - description: duration - schema: - type: string - - name: duration__in - required: false - in: query - description: duration__in - schema: - type: string - - name: requires_concentration - required: false - in: query - description: requires_concentration - schema: - type: string - - name: requires_verbal_components - required: false - in: query - description: requires_verbal_components - schema: - type: string - - name: requires_somatic_components - required: false - in: query - description: requires_somatic_components - schema: - type: string - - name: requires_material_components - required: false - in: query - description: requires_material_components - schema: - type: string - - name: casting_time__iexact - required: false - in: query - description: casting_time__iexact - schema: - type: string - - name: casting_time - required: false - in: query - description: casting_time - schema: - type: string - - name: casting_time__in - required: false - in: query - description: casting_time__in - schema: - type: string - - name: dnd_class__iexact - required: false - in: query - description: dnd_class__iexact - schema: - type: string - - name: dnd_class - required: false - in: query - description: dnd_class - schema: - type: string - - name: dnd_class__in - required: false - in: query - description: dnd_class__in - schema: - type: string - - name: dnd_class__icontains - required: false - in: query - description: dnd_class__icontains - schema: - type: string - - name: spell_lists - required: false - in: query - description: spell_lists - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: level_int - required: false - in: query - description: level_int - schema: - type: string - - name: concentration - required: false - in: query - description: concentration - schema: - type: string - - name: components - required: false - in: query - description: components - schema: - type: string - - name: spell_lists_not - required: false - in: query - description: spell_lists_not - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Spell' - description: '' - tags: - - v1 - https://api.open5e.com/v1/spells/{slug}/: - get: - operationId: retrieveV1Spell - description: API endpoint for returning a particular spell. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: spell_level - required: false - in: query - description: spell_level - schema: - type: string - - name: spell_level__range - required: false - in: query - description: spell_level__range - schema: - type: string - - name: spell_level__gt - required: false - in: query - description: spell_level__gt - schema: - type: string - - name: spell_level__gte - required: false - in: query - description: spell_level__gte - schema: - type: string - - name: spell_level__lt - required: false - in: query - description: spell_level__lt - schema: - type: string - - name: spell_level__lte - required: false - in: query - description: spell_level__lte - schema: - type: string - - name: target_range_sort - required: false - in: query - description: target_range_sort - schema: - type: string - - name: target_range_sort__range - required: false - in: query - description: target_range_sort__range - schema: - type: string - - name: target_range_sort__gt - required: false - in: query - description: target_range_sort__gt - schema: - type: string - - name: target_range_sort__gte - required: false - in: query - description: target_range_sort__gte - schema: - type: string - - name: target_range_sort__lt - required: false - in: query - description: target_range_sort__lt - schema: - type: string - - name: target_range_sort__lte - required: false - in: query - description: target_range_sort__lte - schema: - type: string - - name: school__iexact - required: false - in: query - description: school__iexact - schema: - type: string - - name: school - required: false - in: query - description: school - schema: - type: string - - name: school__in - required: false - in: query - description: school__in - schema: - type: string - - name: duration__iexact - required: false - in: query - description: duration__iexact - schema: - type: string - - name: duration - required: false - in: query - description: duration - schema: - type: string - - name: duration__in - required: false - in: query - description: duration__in - schema: - type: string - - name: requires_concentration - required: false - in: query - description: requires_concentration - schema: - type: string - - name: requires_verbal_components - required: false - in: query - description: requires_verbal_components - schema: - type: string - - name: requires_somatic_components - required: false - in: query - description: requires_somatic_components - schema: - type: string - - name: requires_material_components - required: false - in: query - description: requires_material_components - schema: - type: string - - name: casting_time__iexact - required: false - in: query - description: casting_time__iexact - schema: - type: string - - name: casting_time - required: false - in: query - description: casting_time - schema: - type: string - - name: casting_time__in - required: false - in: query - description: casting_time__in - schema: - type: string - - name: dnd_class__iexact - required: false - in: query - description: dnd_class__iexact - schema: - type: string - - name: dnd_class - required: false - in: query - description: dnd_class - schema: - type: string - - name: dnd_class__in - required: false - in: query - description: dnd_class__in - schema: - type: string - - name: dnd_class__icontains - required: false - in: query - description: dnd_class__icontains - schema: - type: string - - name: spell_lists - required: false - in: query - description: spell_lists - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: level_int - required: false - in: query - description: level_int - schema: - type: string - - name: concentration - required: false - in: query - description: concentration - schema: - type: string - - name: components - required: false - in: query - description: components - schema: - type: string - - name: spell_lists_not - required: false - in: query - description: spell_lists_not - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Spell' - description: '' - tags: - - v1 - https://api.open5e.com/v1/spelllist/: - get: - operationId: listV1SpellLists - description: API endpoint for returning a list of spell lists. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/SpellList' - description: '' - tags: - - v1 - https://api.open5e.com/v1/spelllist/{slug}/: - get: - operationId: retrieveV1SpellList - description: API endpoint for returning a particular spell list. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SpellList' - description: '' - tags: - - v1 - https://api.open5e.com/v1/monsters/: - get: - operationId: listV1Monsters - description: API endpoint for returning a list of monsters. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: cr - required: false - in: query - description: cr - schema: - type: string - - name: cr__range - required: false - in: query - description: cr__range - schema: - type: string - - name: cr__gt - required: false - in: query - description: cr__gt - schema: - type: string - - name: cr__gte - required: false - in: query - description: cr__gte - schema: - type: string - - name: cr__lt - required: false - in: query - description: cr__lt - schema: - type: string - - name: cr__lte - required: false - in: query - description: cr__lte - schema: - type: string - - name: hit_points - required: false - in: query - description: hit_points - schema: - type: string - - name: hit_points__range - required: false - in: query - description: hit_points__range - schema: - type: string - - name: hit_points__gt - required: false - in: query - description: hit_points__gt - schema: - type: string - - name: hit_points__gte - required: false - in: query - description: hit_points__gte - schema: - type: string - - name: hit_points__lt - required: false - in: query - description: hit_points__lt - schema: - type: string - - name: hit_points__lte - required: false - in: query - description: hit_points__lte - schema: - type: string - - name: armor_class - required: false - in: query - description: armor_class - schema: - type: string - - name: armor_class__range - required: false - in: query - description: armor_class__range - schema: - type: string - - name: armor_class__gt - required: false - in: query - description: armor_class__gt - schema: - type: string - - name: armor_class__gte - required: false - in: query - description: armor_class__gte - schema: - type: string - - name: armor_class__lt - required: false - in: query - description: armor_class__lt - schema: - type: string - - name: armor_class__lte - required: false - in: query - description: armor_class__lte - schema: - type: string - - name: type__iexact - required: false - in: query - description: type__iexact - schema: - type: string - - name: type - required: false - in: query - description: type - schema: - type: string - - name: type__in - required: false - in: query - description: type__in - schema: - type: string - - name: type__icontains - required: false - in: query - description: type__icontains - schema: - type: string - - name: size__iexact - required: false - in: query - description: size__iexact - schema: - type: string - - name: size - required: false - in: query - description: size - schema: - type: string - - name: size__in - required: false - in: query - description: size__in - schema: - type: string - - name: size__icontains - required: false - in: query - description: size__icontains - schema: - type: string - - name: page_no - required: false - in: query - description: page_no - schema: - type: string - - name: page_no__range - required: false - in: query - description: page_no__range - schema: - type: string - - name: page_no__gt - required: false - in: query - description: page_no__gt - schema: - type: string - - name: page_no__gte - required: false - in: query - description: page_no__gte - schema: - type: string - - name: page_no__lt - required: false - in: query - description: page_no__lt - schema: - type: string - - name: page_no__lte - required: false - in: query - description: page_no__lte - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Monster' - description: '' - tags: - - v1 - https://api.open5e.com/v1/monsters/{slug}/: - get: - operationId: retrieveV1Monster - description: API endpoint for returning a particular monster. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: cr - required: false - in: query - description: cr - schema: - type: string - - name: cr__range - required: false - in: query - description: cr__range - schema: - type: string - - name: cr__gt - required: false - in: query - description: cr__gt - schema: - type: string - - name: cr__gte - required: false - in: query - description: cr__gte - schema: - type: string - - name: cr__lt - required: false - in: query - description: cr__lt - schema: - type: string - - name: cr__lte - required: false - in: query - description: cr__lte - schema: - type: string - - name: hit_points - required: false - in: query - description: hit_points - schema: - type: string - - name: hit_points__range - required: false - in: query - description: hit_points__range - schema: - type: string - - name: hit_points__gt - required: false - in: query - description: hit_points__gt - schema: - type: string - - name: hit_points__gte - required: false - in: query - description: hit_points__gte - schema: - type: string - - name: hit_points__lt - required: false - in: query - description: hit_points__lt - schema: - type: string - - name: hit_points__lte - required: false - in: query - description: hit_points__lte - schema: - type: string - - name: armor_class - required: false - in: query - description: armor_class - schema: - type: string - - name: armor_class__range - required: false - in: query - description: armor_class__range - schema: - type: string - - name: armor_class__gt - required: false - in: query - description: armor_class__gt - schema: - type: string - - name: armor_class__gte - required: false - in: query - description: armor_class__gte - schema: - type: string - - name: armor_class__lt - required: false - in: query - description: armor_class__lt - schema: - type: string - - name: armor_class__lte - required: false - in: query - description: armor_class__lte - schema: - type: string - - name: type__iexact - required: false - in: query - description: type__iexact - schema: - type: string - - name: type - required: false - in: query - description: type - schema: - type: string - - name: type__in - required: false - in: query - description: type__in - schema: - type: string - - name: type__icontains - required: false - in: query - description: type__icontains - schema: - type: string - - name: size__iexact - required: false - in: query - description: size__iexact - schema: - type: string - - name: size - required: false - in: query - description: size - schema: - type: string - - name: size__in - required: false - in: query - description: size__in - schema: - type: string - - name: size__icontains - required: false - in: query - description: size__icontains - schema: - type: string - - name: page_no - required: false - in: query - description: page_no - schema: - type: string - - name: page_no__range - required: false - in: query - description: page_no__range - schema: - type: string - - name: page_no__gt - required: false - in: query - description: page_no__gt - schema: - type: string - - name: page_no__gte - required: false - in: query - description: page_no__gte - schema: - type: string - - name: page_no__lt - required: false - in: query - description: page_no__lt - schema: - type: string - - name: page_no__lte - required: false - in: query - description: page_no__lte - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Monster' - description: '' - tags: - - v1 - https://api.open5e.com/v1/documents/: - get: - operationId: listV1Documents - description: API endpoint for returning a list of documents. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: title - required: false - in: query - description: title - schema: - type: string - - name: organization - required: false - in: query - description: organization - schema: - type: string - - name: license - required: false - in: query - description: license - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Document' - description: '' - tags: - - v1 - https://api.open5e.com/v1/documents/{id}/: - get: - operationId: retrieveV1Document - description: API endpoint for returning a particular document. - parameters: - - name: id - in: path - required: true - description: A unique integer value identifying this document. - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: title - required: false - in: query - description: title - schema: - type: string - - name: organization - required: false - in: query - description: organization - schema: - type: string - - name: license - required: false - in: query - description: license - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Document' - description: '' - tags: - - v1 - https://api.open5e.com/v1/backgrounds/: - get: - operationId: listV1Backgrounds - description: API endpoint for returning a list of backgrounds. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: skill_proficiencies__iexact - required: false - in: query - description: skill_proficiencies__iexact - schema: - type: string - - name: skill_proficiencies - required: false - in: query - description: skill_proficiencies - schema: - type: string - - name: skill_proficiencies__icontains - required: false - in: query - description: skill_proficiencies__icontains - schema: - type: string - - name: tool_proficiencies__iexact - required: false - in: query - description: tool_proficiencies__iexact - schema: - type: string - - name: tool_proficiencies - required: false - in: query - description: tool_proficiencies - schema: - type: string - - name: tool_proficiencies__icontains - required: false - in: query - description: tool_proficiencies__icontains - schema: - type: string - - name: languages__iexact - required: false - in: query - description: languages__iexact - schema: - type: string - - name: languages - required: false - in: query - description: languages - schema: - type: string - - name: languages__icontains - required: false - in: query - description: languages__icontains - schema: - type: string - - name: feature__iexact - required: false - in: query - description: feature__iexact - schema: - type: string - - name: feature - required: false - in: query - description: feature - schema: - type: string - - name: feature__icontains - required: false - in: query - description: feature__icontains - schema: - type: string - - name: feature_desc__iexact - required: false - in: query - description: feature_desc__iexact - schema: - type: string - - name: feature_desc - required: false - in: query - description: feature_desc - schema: - type: string - - name: feature_desc__icontains - required: false - in: query - description: feature_desc__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Background' - description: '' - tags: - - v1 - https://api.open5e.com/v1/backgrounds/{slug}/: - get: - operationId: retrieveV1Background - description: API endpoint for returning a particular background. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: skill_proficiencies__iexact - required: false - in: query - description: skill_proficiencies__iexact - schema: - type: string - - name: skill_proficiencies - required: false - in: query - description: skill_proficiencies - schema: - type: string - - name: skill_proficiencies__icontains - required: false - in: query - description: skill_proficiencies__icontains - schema: - type: string - - name: tool_proficiencies__iexact - required: false - in: query - description: tool_proficiencies__iexact - schema: - type: string - - name: tool_proficiencies - required: false - in: query - description: tool_proficiencies - schema: - type: string - - name: tool_proficiencies__icontains - required: false - in: query - description: tool_proficiencies__icontains - schema: - type: string - - name: languages__iexact - required: false - in: query - description: languages__iexact - schema: - type: string - - name: languages - required: false - in: query - description: languages - schema: - type: string - - name: languages__icontains - required: false - in: query - description: languages__icontains - schema: - type: string - - name: feature__iexact - required: false - in: query - description: feature__iexact - schema: - type: string - - name: feature - required: false - in: query - description: feature - schema: - type: string - - name: feature__icontains - required: false - in: query - description: feature__icontains - schema: - type: string - - name: feature_desc__iexact - required: false - in: query - description: feature_desc__iexact - schema: - type: string - - name: feature_desc - required: false - in: query - description: feature_desc - schema: - type: string - - name: feature_desc__icontains - required: false - in: query - description: feature_desc__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Background' - description: '' - tags: - - v1 - https://api.open5e.com/v1/planes/: - get: - operationId: listV1Planes - description: API endpoint for returning a list of planes. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Plane' - description: '' - tags: - - v1 - https://api.open5e.com/v1/planes/{slug}/: - get: - operationId: retrieveV1Plane - description: API endpoint for returning a particular plane. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Plane' - description: '' - tags: - - v1 - https://api.open5e.com/v1/sections/: - get: - operationId: listV1Sections - description: API endpoint for returning a list of sections. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: parent__iexact - required: false - in: query - description: parent__iexact - schema: - type: string - - name: parent - required: false - in: query - description: parent - schema: - type: string - - name: parent__in - required: false - in: query - description: parent__in - schema: - type: string - - name: parent__icontains - required: false - in: query - description: parent__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Section' - description: '' - tags: - - v1 - https://api.open5e.com/v1/sections/{slug}/: - get: - operationId: retrieveV1Section - description: API endpoint for returning a particular section. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: parent__iexact - required: false - in: query - description: parent__iexact - schema: - type: string - - name: parent - required: false - in: query - description: parent - schema: - type: string - - name: parent__in - required: false - in: query - description: parent__in - schema: - type: string - - name: parent__icontains - required: false - in: query - description: parent__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Section' - description: '' - tags: - - v1 - https://api.open5e.com/v1/feats/: - get: - operationId: listV1Feats - description: API endpoint for returning a list of feats. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Feat' - description: '' - tags: - - v1 - https://api.open5e.com/v1/feats/{slug}/: - get: - operationId: retrieveV1Feat - description: API endpoint for returning a particular feat. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Feat' - description: '' - tags: - - v1 - https://api.open5e.com/v1/conditions/: - get: - operationId: listV1Conditions - description: API endpoint for returning a list of conditions. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Condition' - description: '' - tags: - - v1 - https://api.open5e.com/v1/conditions/{slug}/: - get: - operationId: retrieveV1Condition - description: API endpoint for returning a particular condition. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Condition' - description: '' - tags: - - v1 - https://api.open5e.com/v1/races/: - get: - operationId: listV1Races - description: API endpoint for returning a list of races. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: asi_desc__iexact - required: false - in: query - description: asi_desc__iexact - schema: - type: string - - name: asi_desc - required: false - in: query - description: asi_desc - schema: - type: string - - name: asi_desc__icontains - required: false - in: query - description: asi_desc__icontains - schema: - type: string - - name: age__iexact - required: false - in: query - description: age__iexact - schema: - type: string - - name: age - required: false - in: query - description: age - schema: - type: string - - name: age__icontains - required: false - in: query - description: age__icontains - schema: - type: string - - name: alignment__iexact - required: false - in: query - description: alignment__iexact - schema: - type: string - - name: alignment - required: false - in: query - description: alignment - schema: - type: string - - name: alignment__icontains - required: false - in: query - description: alignment__icontains - schema: - type: string - - name: size__iexact - required: false - in: query - description: size__iexact - schema: - type: string - - name: size - required: false - in: query - description: size - schema: - type: string - - name: size__icontains - required: false - in: query - description: size__icontains - schema: - type: string - - name: speed_desc__iexact - required: false - in: query - description: speed_desc__iexact - schema: - type: string - - name: speed_desc - required: false - in: query - description: speed_desc - schema: - type: string - - name: speed_desc__icontains - required: false - in: query - description: speed_desc__icontains - schema: - type: string - - name: languages__iexact - required: false - in: query - description: languages__iexact - schema: - type: string - - name: languages - required: false - in: query - description: languages - schema: - type: string - - name: languages__icontains - required: false - in: query - description: languages__icontains - schema: - type: string - - name: vision__iexact - required: false - in: query - description: vision__iexact - schema: - type: string - - name: vision - required: false - in: query - description: vision - schema: - type: string - - name: vision__icontains - required: false - in: query - description: vision__icontains - schema: - type: string - - name: traits__iexact - required: false - in: query - description: traits__iexact - schema: - type: string - - name: traits - required: false - in: query - description: traits - schema: - type: string - - name: traits__icontains - required: false - in: query - description: traits__icontains - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Race' - description: '' - tags: - - v1 - https://api.open5e.com/v1/races/{slug}/: - get: - operationId: retrieveV1Race - description: API endpoint for returning a particular race. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: asi_desc__iexact - required: false - in: query - description: asi_desc__iexact - schema: - type: string - - name: asi_desc - required: false - in: query - description: asi_desc - schema: - type: string - - name: asi_desc__icontains - required: false - in: query - description: asi_desc__icontains - schema: - type: string - - name: age__iexact - required: false - in: query - description: age__iexact - schema: - type: string - - name: age - required: false - in: query - description: age - schema: - type: string - - name: age__icontains - required: false - in: query - description: age__icontains - schema: - type: string - - name: alignment__iexact - required: false - in: query - description: alignment__iexact - schema: - type: string - - name: alignment - required: false - in: query - description: alignment - schema: - type: string - - name: alignment__icontains - required: false - in: query - description: alignment__icontains - schema: - type: string - - name: size__iexact - required: false - in: query - description: size__iexact - schema: - type: string - - name: size - required: false - in: query - description: size - schema: - type: string - - name: size__icontains - required: false - in: query - description: size__icontains - schema: - type: string - - name: speed_desc__iexact - required: false - in: query - description: speed_desc__iexact - schema: - type: string - - name: speed_desc - required: false - in: query - description: speed_desc - schema: - type: string - - name: speed_desc__icontains - required: false - in: query - description: speed_desc__icontains - schema: - type: string - - name: languages__iexact - required: false - in: query - description: languages__iexact - schema: - type: string - - name: languages - required: false - in: query - description: languages - schema: - type: string - - name: languages__icontains - required: false - in: query - description: languages__icontains - schema: - type: string - - name: vision__iexact - required: false - in: query - description: vision__iexact - schema: - type: string - - name: vision - required: false - in: query - description: vision - schema: - type: string - - name: vision__icontains - required: false - in: query - description: vision__icontains - schema: - type: string - - name: traits__iexact - required: false - in: query - description: traits__iexact - schema: - type: string - - name: traits - required: false - in: query - description: traits - schema: - type: string - - name: traits__icontains - required: false - in: query - description: traits__icontains - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Race' - description: '' - tags: - - v1 - https://api.open5e.com/v1/classes/: - get: - operationId: listV1Classes - description: API endpoint for returning a list of classes and archetypes. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: hit_dice__iexact - required: false - in: query - description: hit_dice__iexact - schema: - type: string - - name: hit_dice - required: false - in: query - description: hit_dice - schema: - type: string - - name: hit_dice__in - required: false - in: query - description: hit_dice__in - schema: - type: string - - name: hp_at_1st_level__iexact - required: false - in: query - description: hp_at_1st_level__iexact - schema: - type: string - - name: hp_at_1st_level - required: false - in: query - description: hp_at_1st_level - schema: - type: string - - name: hp_at_1st_level__icontains - required: false - in: query - description: hp_at_1st_level__icontains - schema: - type: string - - name: hp_at_higher_levels__iexact - required: false - in: query - description: hp_at_higher_levels__iexact - schema: - type: string - - name: hp_at_higher_levels - required: false - in: query - description: hp_at_higher_levels - schema: - type: string - - name: hp_at_higher_levels__icontains - required: false - in: query - description: hp_at_higher_levels__icontains - schema: - type: string - - name: prof_armor__iexact - required: false - in: query - description: prof_armor__iexact - schema: - type: string - - name: prof_armor - required: false - in: query - description: prof_armor - schema: - type: string - - name: prof_armor__icontains - required: false - in: query - description: prof_armor__icontains - schema: - type: string - - name: prof_weapons__iexact - required: false - in: query - description: prof_weapons__iexact - schema: - type: string - - name: prof_weapons - required: false - in: query - description: prof_weapons - schema: - type: string - - name: prof_weapons__icontains - required: false - in: query - description: prof_weapons__icontains - schema: - type: string - - name: prof_tools__iexact - required: false - in: query - description: prof_tools__iexact - schema: - type: string - - name: prof_tools - required: false - in: query - description: prof_tools - schema: - type: string - - name: prof_tools__icontains - required: false - in: query - description: prof_tools__icontains - schema: - type: string - - name: prof_skills__iexact - required: false - in: query - description: prof_skills__iexact - schema: - type: string - - name: prof_skills - required: false - in: query - description: prof_skills - schema: - type: string - - name: prof_skills__icontains - required: false - in: query - description: prof_skills__icontains - schema: - type: string - - name: equipment__iexact - required: false - in: query - description: equipment__iexact - schema: - type: string - - name: equipment - required: false - in: query - description: equipment - schema: - type: string - - name: equipment__icontains - required: false - in: query - description: equipment__icontains - schema: - type: string - - name: spellcasting_ability__iexact - required: false - in: query - description: spellcasting_ability__iexact - schema: - type: string - - name: spellcasting_ability - required: false - in: query - description: spellcasting_ability - schema: - type: string - - name: spellcasting_ability__icontains - required: false - in: query - description: spellcasting_ability__icontains - schema: - type: string - - name: subtypes_name__iexact - required: false - in: query - description: subtypes_name__iexact - schema: - type: string - - name: subtypes_name - required: false - in: query - description: subtypes_name - schema: - type: string - - name: subtypes_name__icontains - required: false - in: query - description: subtypes_name__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/CharClass' - description: '' - tags: - - v1 - https://api.open5e.com/v1/classes/{slug}/: - get: - operationId: retrieveV1Class - description: API endpoint for returning a particular class or archetype. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: hit_dice__iexact - required: false - in: query - description: hit_dice__iexact - schema: - type: string - - name: hit_dice - required: false - in: query - description: hit_dice - schema: - type: string - - name: hit_dice__in - required: false - in: query - description: hit_dice__in - schema: - type: string - - name: hp_at_1st_level__iexact - required: false - in: query - description: hp_at_1st_level__iexact - schema: - type: string - - name: hp_at_1st_level - required: false - in: query - description: hp_at_1st_level - schema: - type: string - - name: hp_at_1st_level__icontains - required: false - in: query - description: hp_at_1st_level__icontains - schema: - type: string - - name: hp_at_higher_levels__iexact - required: false - in: query - description: hp_at_higher_levels__iexact - schema: - type: string - - name: hp_at_higher_levels - required: false - in: query - description: hp_at_higher_levels - schema: - type: string - - name: hp_at_higher_levels__icontains - required: false - in: query - description: hp_at_higher_levels__icontains - schema: - type: string - - name: prof_armor__iexact - required: false - in: query - description: prof_armor__iexact - schema: - type: string - - name: prof_armor - required: false - in: query - description: prof_armor - schema: - type: string - - name: prof_armor__icontains - required: false - in: query - description: prof_armor__icontains - schema: - type: string - - name: prof_weapons__iexact - required: false - in: query - description: prof_weapons__iexact - schema: - type: string - - name: prof_weapons - required: false - in: query - description: prof_weapons - schema: - type: string - - name: prof_weapons__icontains - required: false - in: query - description: prof_weapons__icontains - schema: - type: string - - name: prof_tools__iexact - required: false - in: query - description: prof_tools__iexact - schema: - type: string - - name: prof_tools - required: false - in: query - description: prof_tools - schema: - type: string - - name: prof_tools__icontains - required: false - in: query - description: prof_tools__icontains - schema: - type: string - - name: prof_skills__iexact - required: false - in: query - description: prof_skills__iexact - schema: - type: string - - name: prof_skills - required: false - in: query - description: prof_skills - schema: - type: string - - name: prof_skills__icontains - required: false - in: query - description: prof_skills__icontains - schema: - type: string - - name: equipment__iexact - required: false - in: query - description: equipment__iexact - schema: - type: string - - name: equipment - required: false - in: query - description: equipment - schema: - type: string - - name: equipment__icontains - required: false - in: query - description: equipment__icontains - schema: - type: string - - name: spellcasting_ability__iexact - required: false - in: query - description: spellcasting_ability__iexact - schema: - type: string - - name: spellcasting_ability - required: false - in: query - description: spellcasting_ability - schema: - type: string - - name: spellcasting_ability__icontains - required: false - in: query - description: spellcasting_ability__icontains - schema: - type: string - - name: subtypes_name__iexact - required: false - in: query - description: subtypes_name__iexact - schema: - type: string - - name: subtypes_name - required: false - in: query - description: subtypes_name - schema: - type: string - - name: subtypes_name__icontains - required: false - in: query - description: subtypes_name__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CharClass' - description: '' - tags: - - v1 - https://api.open5e.com/v1/magicitems/: - get: - operationId: listV1MagicItems - description: API endpoint for returning a list of magic items. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: type__iexact - required: false - in: query - description: type__iexact - schema: - type: string - - name: type - required: false - in: query - description: type - schema: - type: string - - name: type__icontains - required: false - in: query - description: type__icontains - schema: - type: string - - name: rarity__iexact - required: false - in: query - description: rarity__iexact - schema: - type: string - - name: rarity - required: false - in: query - description: rarity - schema: - type: string - - name: rarity__icontains - required: false - in: query - description: rarity__icontains - schema: - type: string - - name: requires_attunement__iexact - required: false - in: query - description: requires_attunement__iexact - schema: - type: string - - name: requires_attunement - required: false - in: query - description: requires_attunement - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/MagicItem' - description: '' - tags: - - v1 - https://api.open5e.com/v1/magicitems/{slug}/: - get: - operationId: retrieveV1MagicItem - description: API endpoint for returning a particular magic item. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: type__iexact - required: false - in: query - description: type__iexact - schema: - type: string - - name: type - required: false - in: query - description: type - schema: - type: string - - name: type__icontains - required: false - in: query - description: type__icontains - schema: - type: string - - name: rarity__iexact - required: false - in: query - description: rarity__iexact - schema: - type: string - - name: rarity - required: false - in: query - description: rarity - schema: - type: string - - name: rarity__icontains - required: false - in: query - description: rarity__icontains - schema: - type: string - - name: requires_attunement__iexact - required: false - in: query - description: requires_attunement__iexact - schema: - type: string - - name: requires_attunement - required: false - in: query - description: requires_attunement - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/MagicItem' - description: '' - tags: - - v1 - https://api.open5e.com/v1/weapons/: - get: - operationId: listV1Weapons - description: API endpoint for returning a list of weapons. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: cost__iexact - required: false - in: query - description: cost__iexact - schema: - type: string - - name: cost - required: false - in: query - description: cost - schema: - type: string - - name: cost__icontains - required: false - in: query - description: cost__icontains - schema: - type: string - - name: damage_dice__iexact - required: false - in: query - description: damage_dice__iexact - schema: - type: string - - name: damage_dice - required: false - in: query - description: damage_dice - schema: - type: string - - name: damage_dice__icontains - required: false - in: query - description: damage_dice__icontains - schema: - type: string - - name: damage_type__iexact - required: false - in: query - description: damage_type__iexact - schema: - type: string - - name: damage_type - required: false - in: query - description: damage_type - schema: - type: string - - name: damage_type__icontains - required: false - in: query - description: damage_type__icontains - schema: - type: string - - name: weight__iexact - required: false - in: query - description: weight__iexact - schema: - type: string - - name: weight - required: false - in: query - description: weight - schema: - type: string - - name: weight__icontains - required: false - in: query - description: weight__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Weapon' - description: '' - tags: - - v1 - https://api.open5e.com/v1/weapons/{slug}/: - get: - operationId: retrieveV1Weapon - description: API endpoint for returning a particular weapon. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: cost__iexact - required: false - in: query - description: cost__iexact - schema: - type: string - - name: cost - required: false - in: query - description: cost - schema: - type: string - - name: cost__icontains - required: false - in: query - description: cost__icontains - schema: - type: string - - name: damage_dice__iexact - required: false - in: query - description: damage_dice__iexact - schema: - type: string - - name: damage_dice - required: false - in: query - description: damage_dice - schema: - type: string - - name: damage_dice__icontains - required: false - in: query - description: damage_dice__icontains - schema: - type: string - - name: damage_type__iexact - required: false - in: query - description: damage_type__iexact - schema: - type: string - - name: damage_type - required: false - in: query - description: damage_type - schema: - type: string - - name: damage_type__icontains - required: false - in: query - description: damage_type__icontains - schema: - type: string - - name: weight__iexact - required: false - in: query - description: weight__iexact - schema: - type: string - - name: weight - required: false - in: query - description: weight - schema: - type: string - - name: weight__icontains - required: false - in: query - description: weight__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Weapon' - description: '' - tags: - - v1 - https://api.open5e.com/v1/armor/: - get: - operationId: listV1Armors - description: API endpoint for returning a list of armor. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: cost__iexact - required: false - in: query - description: cost__iexact - schema: - type: string - - name: cost - required: false - in: query - description: cost - schema: - type: string - - name: cost__icontains - required: false - in: query - description: cost__icontains - schema: - type: string - - name: weight__iexact - required: false - in: query - description: weight__iexact - schema: - type: string - - name: weight - required: false - in: query - description: weight - schema: - type: string - - name: weight__icontains - required: false - in: query - description: weight__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Armor' - description: '' - tags: - - v1 - https://api.open5e.com/v1/armor/{slug}/: - get: - operationId: retrieveV1Armor - description: API endpoint for returning a particular armor. - parameters: - - name: slug - in: path - required: true - description: Short name for the game content item. - schema: - type: string - - name: slug__in - required: false - in: query - description: slug__in - schema: - type: string - - name: slug__iexact - required: false - in: query - description: slug__iexact - schema: - type: string - - name: slug - required: false - in: query - description: slug - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__iexact - required: false - in: query - description: desc__iexact - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: desc__in - required: false - in: query - description: desc__in - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: cost__iexact - required: false - in: query - description: cost__iexact - schema: - type: string - - name: cost - required: false - in: query - description: cost - schema: - type: string - - name: cost__icontains - required: false - in: query - description: cost__icontains - schema: - type: string - - name: weight__iexact - required: false - in: query - description: weight__iexact - schema: - type: string - - name: weight - required: false - in: query - description: weight - schema: - type: string - - name: weight__icontains - required: false - in: query - description: weight__icontains - schema: - type: string - - name: document__slug__iexact - required: false - in: query - description: document__slug__iexact - schema: - type: string - - name: document__slug - required: false - in: query - description: document__slug - schema: - type: string - - name: document__slug__in - required: false - in: query - description: document__slug__in - schema: - type: string - - name: document__slug__not_in - required: false - in: query - description: document__slug__not_in - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Armor' - description: '' - tags: - - v1 - https://api.open5e.com/v2/items/: - get: - operationId: listItems - description: API endpoint for returning a list of items. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: cost - required: false - in: query - description: cost - schema: - type: string - - name: cost__range - required: false - in: query - description: cost__range - schema: - type: string - - name: cost__gt - required: false - in: query - description: cost__gt - schema: - type: string - - name: cost__gte - required: false - in: query - description: cost__gte - schema: - type: string - - name: cost__lt - required: false - in: query - description: cost__lt - schema: - type: string - - name: cost__lte - required: false - in: query - description: cost__lte - schema: - type: string - - name: weight - required: false - in: query - description: weight - schema: - type: string - - name: weight__range - required: false - in: query - description: weight__range - schema: - type: string - - name: weight__gt - required: false - in: query - description: weight__gt - schema: - type: string - - name: weight__gte - required: false - in: query - description: weight__gte - schema: - type: string - - name: weight__lt - required: false - in: query - description: weight__lt - schema: - type: string - - name: weight__lte - required: false - in: query - description: weight__lte - schema: - type: string - - name: rarity - required: false - in: query - description: rarity - schema: - type: string - - name: rarity__in - required: false - in: query - description: rarity__in - schema: - type: string - - name: requires_attunement - required: false - in: query - description: requires_attunement - schema: - type: string - - name: category__in - required: false - in: query - description: category__in - schema: - type: string - - name: category - required: false - in: query - description: category - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: is_magic_item - required: false - in: query - description: is_magic_item - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Item' - description: '' - tags: - - v2 - https://api.open5e.com/v2/items/{key}/: - get: - operationId: retrieveItem - description: API endpoint for returning a particular item. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: desc__icontains - required: false - in: query - description: desc__icontains - schema: - type: string - - name: cost - required: false - in: query - description: cost - schema: - type: string - - name: cost__range - required: false - in: query - description: cost__range - schema: - type: string - - name: cost__gt - required: false - in: query - description: cost__gt - schema: - type: string - - name: cost__gte - required: false - in: query - description: cost__gte - schema: - type: string - - name: cost__lt - required: false - in: query - description: cost__lt - schema: - type: string - - name: cost__lte - required: false - in: query - description: cost__lte - schema: - type: string - - name: weight - required: false - in: query - description: weight - schema: - type: string - - name: weight__range - required: false - in: query - description: weight__range - schema: - type: string - - name: weight__gt - required: false - in: query - description: weight__gt - schema: - type: string - - name: weight__gte - required: false - in: query - description: weight__gte - schema: - type: string - - name: weight__lt - required: false - in: query - description: weight__lt - schema: - type: string - - name: weight__lte - required: false - in: query - description: weight__lte - schema: - type: string - - name: rarity - required: false - in: query - description: rarity - schema: - type: string - - name: rarity__in - required: false - in: query - description: rarity__in - schema: - type: string - - name: requires_attunement - required: false - in: query - description: requires_attunement - schema: - type: string - - name: category__in - required: false - in: query - description: category__in - schema: - type: string - - name: category - required: false - in: query - description: category - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: is_magic_item - required: false - in: query - description: is_magic_item - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Item' - description: '' - tags: - - v2 - https://api.open5e.com/v2/itemsets/: - get: - operationId: listItemSets - description: API Endpoint for returning a set of itemsets. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/ItemSet' - description: '' - tags: - - v2 - https://api.open5e.com/v2/itemsets/{key}/: - get: - operationId: retrieveItemSet - description: API endpoint for return a particular itemset. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ItemSet' - description: '' - tags: - - v2 - https://api.open5e.com/v2/itemcategories/: - get: - operationId: listItemCategories - description: API Endpoint for returning a set of item categories. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/ItemCategory' - description: '' - tags: - - v2 - https://api.open5e.com/v2/itemcategories/{key}/: - get: - operationId: retrieveItemCategory - description: API endpoint for return a particular item categories. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ItemCategory' - description: '' - tags: - - v2 - https://api.open5e.com/v2/documents/: - get: - operationId: listDocuments - description: API endpoint for returning a list of documents. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: name - required: false - in: query - description: name - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: licenses - required: false - in: query - description: licenses - schema: - type: string - - name: publisher - required: false - in: query - description: publisher - schema: - type: string - - name: gamesystem - required: false - in: query - description: gamesystem - schema: - type: string - - name: author - required: false - in: query - description: author - schema: - type: string - - name: published_at - required: false - in: query - description: published_at - schema: - type: string - - name: permalink - required: false - in: query - description: permalink - schema: - type: string - - name: stats_expected - required: false - in: query - description: stats_expected - schema: - type: string - - name: distance_unit - required: false - in: query - description: distance_unit - schema: - type: string - enum: - - feet - - miles - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Document' - description: '' - tags: - - v2 - https://api.open5e.com/v2/documents/{key}/: - get: - operationId: retrieveDocument - description: API endpoint for returning a particular document. - parameters: - - name: key - in: path - required: true - description: Unique key for the Document. - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: licenses - required: false - in: query - description: licenses - schema: - type: string - - name: publisher - required: false - in: query - description: publisher - schema: - type: string - - name: gamesystem - required: false - in: query - description: gamesystem - schema: - type: string - - name: author - required: false - in: query - description: author - schema: - type: string - - name: published_at - required: false - in: query - description: published_at - schema: - type: string - - name: permalink - required: false - in: query - description: permalink - schema: - type: string - - name: stats_expected - required: false - in: query - description: stats_expected - schema: - type: string - - name: distance_unit - required: false - in: query - description: distance_unit - schema: - type: string - enum: - - feet - - miles - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Document' - description: '' - tags: - - v2 - https://api.open5e.com/v2/licenses/: - get: - operationId: listLicenses - description: API endpoint for returning a list of licenses. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: name - required: false - in: query - description: name - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/License' - description: '' - tags: - - v2 - https://api.open5e.com/v2/licenses/{key}/: - get: - operationId: retrieveLicense - description: API endpoint for returning a particular license. - parameters: - - name: key - in: path - required: true - description: Unique key for the License. - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: desc - required: false - in: query - description: desc - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/License' - description: '' - tags: - - v2 - https://api.open5e.com/v2/publishers/: - get: - operationId: listPublishers - description: API endpoint for returning a list of publishers. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: name - required: false - in: query - description: name - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Publisher' - description: '' - tags: - - v2 - https://api.open5e.com/v2/publishers/{key}/: - get: - operationId: retrievePublisher - description: API endpoint for returning a particular publisher. - parameters: - - name: key - in: path - required: true - description: Unique key for the publishing organization. - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Publisher' - description: '' - tags: - - v2 - https://api.open5e.com/v2/weapons/: - get: - operationId: listWeapons - description: API endpoint for returning a list of weapons. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: damage_dice__in - required: false - in: query - description: damage_dice__in - schema: - type: string - - name: damage_dice__iexact - required: false - in: query - description: damage_dice__iexact - schema: - type: string - - name: damage_dice - required: false - in: query - description: damage_dice - schema: - type: string - - name: versatile_dice__in - required: false - in: query - description: versatile_dice__in - schema: - type: string - - name: versatile_dice__iexact - required: false - in: query - description: versatile_dice__iexact - schema: - type: string - - name: versatile_dice - required: false - in: query - description: versatile_dice - schema: - type: string - - name: reach - required: false - in: query - description: reach - schema: - type: string - - name: reach__lt - required: false - in: query - description: reach__lt - schema: - type: string - - name: reach__lte - required: false - in: query - description: reach__lte - schema: - type: string - - name: reach__gt - required: false - in: query - description: reach__gt - schema: - type: string - - name: reach__gte - required: false - in: query - description: reach__gte - schema: - type: string - - name: range - required: false - in: query - description: range - schema: - type: string - - name: range__lt - required: false - in: query - description: range__lt - schema: - type: string - - name: range__lte - required: false - in: query - description: range__lte - schema: - type: string - - name: range__gt - required: false - in: query - description: range__gt - schema: - type: string - - name: range__gte - required: false - in: query - description: range__gte - schema: - type: string - - name: long_range - required: false - in: query - description: long_range - schema: - type: string - - name: long_range__lt - required: false - in: query - description: long_range__lt - schema: - type: string - - name: long_range__lte - required: false - in: query - description: long_range__lte - schema: - type: string - - name: long_range__gt - required: false - in: query - description: long_range__gt - schema: - type: string - - name: long_range__gte - required: false - in: query - description: long_range__gte - schema: - type: string - - name: is_finesse - required: false - in: query - description: is_finesse - schema: - type: string - - name: is_thrown - required: false - in: query - description: is_thrown - schema: - type: string - - name: is_two_handed - required: false - in: query - description: is_two_handed - schema: - type: string - - name: requires_ammunition - required: false - in: query - description: requires_ammunition - schema: - type: string - - name: requires_loading - required: false - in: query - description: requires_loading - schema: - type: string - - name: is_heavy - required: false - in: query - description: is_heavy - schema: - type: string - - name: is_light - required: false - in: query - description: is_light - schema: - type: string - - name: is_lance - required: false - in: query - description: is_lance - schema: - type: string - - name: is_net - required: false - in: query - description: is_net - schema: - type: string - - name: is_simple - required: false - in: query - description: is_simple - schema: - type: string - - name: is_improvised - required: false - in: query - description: is_improvised - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Weapon' - description: '' - tags: - - v2 - https://api.open5e.com/v2/weapons/{key}/: - get: - operationId: retrieveWeapon - description: API endpoint for returning a particular weapon. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: damage_dice__in - required: false - in: query - description: damage_dice__in - schema: - type: string - - name: damage_dice__iexact - required: false - in: query - description: damage_dice__iexact - schema: - type: string - - name: damage_dice - required: false - in: query - description: damage_dice - schema: - type: string - - name: versatile_dice__in - required: false - in: query - description: versatile_dice__in - schema: - type: string - - name: versatile_dice__iexact - required: false - in: query - description: versatile_dice__iexact - schema: - type: string - - name: versatile_dice - required: false - in: query - description: versatile_dice - schema: - type: string - - name: reach - required: false - in: query - description: reach - schema: - type: string - - name: reach__lt - required: false - in: query - description: reach__lt - schema: - type: string - - name: reach__lte - required: false - in: query - description: reach__lte - schema: - type: string - - name: reach__gt - required: false - in: query - description: reach__gt - schema: - type: string - - name: reach__gte - required: false - in: query - description: reach__gte - schema: - type: string - - name: range - required: false - in: query - description: range - schema: - type: string - - name: range__lt - required: false - in: query - description: range__lt - schema: - type: string - - name: range__lte - required: false - in: query - description: range__lte - schema: - type: string - - name: range__gt - required: false - in: query - description: range__gt - schema: - type: string - - name: range__gte - required: false - in: query - description: range__gte - schema: - type: string - - name: long_range - required: false - in: query - description: long_range - schema: - type: string - - name: long_range__lt - required: false - in: query - description: long_range__lt - schema: - type: string - - name: long_range__lte - required: false - in: query - description: long_range__lte - schema: - type: string - - name: long_range__gt - required: false - in: query - description: long_range__gt - schema: - type: string - - name: long_range__gte - required: false - in: query - description: long_range__gte - schema: - type: string - - name: is_finesse - required: false - in: query - description: is_finesse - schema: - type: string - - name: is_thrown - required: false - in: query - description: is_thrown - schema: - type: string - - name: is_two_handed - required: false - in: query - description: is_two_handed - schema: - type: string - - name: requires_ammunition - required: false - in: query - description: requires_ammunition - schema: - type: string - - name: requires_loading - required: false - in: query - description: requires_loading - schema: - type: string - - name: is_heavy - required: false - in: query - description: is_heavy - schema: - type: string - - name: is_light - required: false - in: query - description: is_light - schema: - type: string - - name: is_lance - required: false - in: query - description: is_lance - schema: - type: string - - name: is_net - required: false - in: query - description: is_net - schema: - type: string - - name: is_simple - required: false - in: query - description: is_simple - schema: - type: string - - name: is_improvised - required: false - in: query - description: is_improvised - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Weapon' - description: '' - tags: - - v2 - https://api.open5e.com/v2/armor/: - get: - operationId: listArmors - description: API endpoint for returning a list of armor. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: grants_stealth_disadvantage - required: false - in: query - description: grants_stealth_disadvantage - schema: - type: string - - name: strength_score_required - required: false - in: query - description: strength_score_required - schema: - type: string - - name: strength_score_required__lt - required: false - in: query - description: strength_score_required__lt - schema: - type: string - - name: strength_score_required__lte - required: false - in: query - description: strength_score_required__lte - schema: - type: string - - name: strength_score_required__gt - required: false - in: query - description: strength_score_required__gt - schema: - type: string - - name: strength_score_required__gte - required: false - in: query - description: strength_score_required__gte - schema: - type: string - - name: ac_base - required: false - in: query - description: ac_base - schema: - type: string - - name: ac_base__lt - required: false - in: query - description: ac_base__lt - schema: - type: string - - name: ac_base__lte - required: false - in: query - description: ac_base__lte - schema: - type: string - - name: ac_base__gt - required: false - in: query - description: ac_base__gt - schema: - type: string - - name: ac_base__gte - required: false - in: query - description: ac_base__gte - schema: - type: string - - name: ac_add_dexmod - required: false - in: query - description: ac_add_dexmod - schema: - type: string - - name: ac_cap_dexmod - required: false - in: query - description: ac_cap_dexmod - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Armor' - description: '' - tags: - - v2 - https://api.open5e.com/v2/armor/{key}/: - get: - operationId: retrieveArmor - description: API endpoint for returning a particular armor. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: grants_stealth_disadvantage - required: false - in: query - description: grants_stealth_disadvantage - schema: - type: string - - name: strength_score_required - required: false - in: query - description: strength_score_required - schema: - type: string - - name: strength_score_required__lt - required: false - in: query - description: strength_score_required__lt - schema: - type: string - - name: strength_score_required__lte - required: false - in: query - description: strength_score_required__lte - schema: - type: string - - name: strength_score_required__gt - required: false - in: query - description: strength_score_required__gt - schema: - type: string - - name: strength_score_required__gte - required: false - in: query - description: strength_score_required__gte - schema: - type: string - - name: ac_base - required: false - in: query - description: ac_base - schema: - type: string - - name: ac_base__lt - required: false - in: query - description: ac_base__lt - schema: - type: string - - name: ac_base__lte - required: false - in: query - description: ac_base__lte - schema: - type: string - - name: ac_base__gt - required: false - in: query - description: ac_base__gt - schema: - type: string - - name: ac_base__gte - required: false - in: query - description: ac_base__gte - schema: - type: string - - name: ac_add_dexmod - required: false - in: query - description: ac_add_dexmod - schema: - type: string - - name: ac_cap_dexmod - required: false - in: query - description: ac_cap_dexmod - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Armor' - description: '' - tags: - - v2 - https://api.open5e.com/v2/gamesystems/: - get: - operationId: listGameSystems - description: API Endpoint for returning a set of gamesystems. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/GameSystem' - description: '' - tags: - - v2 - https://api.open5e.com/v2/gamesystems/{key}/: - get: - operationId: retrieveGameSystem - description: API endpoint for return a particular gamesystem. - parameters: - - name: key - in: path - required: true - description: Unique key for the gamesystem the document was published for. - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GameSystem' - description: '' - tags: - - v2 - https://api.open5e.com/v2/backgrounds/: - get: - operationId: listBackgrounds - description: API endpoint for returning a list of backgrounds. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Background' - description: '' - tags: - - v2 - https://api.open5e.com/v2/backgrounds/{key}/: - get: - operationId: retrieveBackground - description: API endpoint for returning a particular background. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Background' - description: '' - tags: - - v2 - https://api.open5e.com/v2/feats/: - get: - operationId: listFeats - description: API endpoint for returning a list of feats. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Feat' - description: '' - tags: - - v2 - https://api.open5e.com/v2/feats/{key}/: - get: - operationId: retrieveFeat - description: API endpoint for returning a particular feat. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Feat' - description: '' - tags: - - v2 - https://api.open5e.com/v2/races/: - get: - operationId: listRaces - description: API endpoint for returning a list of races. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: subrace_of__isnull - required: false - in: query - description: subrace_of__isnull - schema: - type: string - - name: subrace_of__key__in - required: false - in: query - description: subrace_of__key__in - schema: - type: string - - name: subrace_of__key__iexact - required: false - in: query - description: subrace_of__key__iexact - schema: - type: string - - name: subrace_of__key - required: false - in: query - description: subrace_of__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Race' - description: '' - tags: - - v2 - https://api.open5e.com/v2/races/{key}/: - get: - operationId: retrieveRace - description: API endpoint for returning a particular race. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: subrace_of__isnull - required: false - in: query - description: subrace_of__isnull - schema: - type: string - - name: subrace_of__key__in - required: false - in: query - description: subrace_of__key__in - schema: - type: string - - name: subrace_of__key__iexact - required: false - in: query - description: subrace_of__key__iexact - schema: - type: string - - name: subrace_of__key - required: false - in: query - description: subrace_of__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Race' - description: '' - tags: - - v2 - https://api.open5e.com/v2/creatures/: - get: - operationId: listCreatures - description: API endpoint for returning a list of creatures. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: size - required: false - in: query - description: size - schema: - type: string - - name: category - required: false - in: query - description: category - schema: - type: string - - name: category__iexact - required: false - in: query - description: category__iexact - schema: - type: string - - name: subcategory - required: false - in: query - description: subcategory - schema: - type: string - - name: subcategory__iexact - required: false - in: query - description: subcategory__iexact - schema: - type: string - - name: type - required: false - in: query - description: type - schema: - type: string - - name: challenge_rating_decimal - required: false - in: query - description: challenge_rating_decimal - schema: - type: string - - name: challenge_rating_decimal__lt - required: false - in: query - description: challenge_rating_decimal__lt - schema: - type: string - - name: challenge_rating_decimal__lte - required: false - in: query - description: challenge_rating_decimal__lte - schema: - type: string - - name: challenge_rating_decimal__gt - required: false - in: query - description: challenge_rating_decimal__gt - schema: - type: string - - name: challenge_rating_decimal__gte - required: false - in: query - description: challenge_rating_decimal__gte - schema: - type: string - - name: armor_class - required: false - in: query - description: armor_class - schema: - type: string - - name: armor_class__lt - required: false - in: query - description: armor_class__lt - schema: - type: string - - name: armor_class__lte - required: false - in: query - description: armor_class__lte - schema: - type: string - - name: armor_class__gt - required: false - in: query - description: armor_class__gt - schema: - type: string - - name: armor_class__gte - required: false - in: query - description: armor_class__gte - schema: - type: string - - name: ability_score_strength - required: false - in: query - description: ability_score_strength - schema: - type: string - - name: ability_score_strength__lt - required: false - in: query - description: ability_score_strength__lt - schema: - type: string - - name: ability_score_strength__lte - required: false - in: query - description: ability_score_strength__lte - schema: - type: string - - name: ability_score_strength__gt - required: false - in: query - description: ability_score_strength__gt - schema: - type: string - - name: ability_score_strength__gte - required: false - in: query - description: ability_score_strength__gte - schema: - type: string - - name: ability_score_dexterity - required: false - in: query - description: ability_score_dexterity - schema: - type: string - - name: ability_score_dexterity__lt - required: false - in: query - description: ability_score_dexterity__lt - schema: - type: string - - name: ability_score_dexterity__lte - required: false - in: query - description: ability_score_dexterity__lte - schema: - type: string - - name: ability_score_dexterity__gt - required: false - in: query - description: ability_score_dexterity__gt - schema: - type: string - - name: ability_score_dexterity__gte - required: false - in: query - description: ability_score_dexterity__gte - schema: - type: string - - name: ability_score_constitution - required: false - in: query - description: ability_score_constitution - schema: - type: string - - name: ability_score_constitution__lt - required: false - in: query - description: ability_score_constitution__lt - schema: - type: string - - name: ability_score_constitution__lte - required: false - in: query - description: ability_score_constitution__lte - schema: - type: string - - name: ability_score_constitution__gt - required: false - in: query - description: ability_score_constitution__gt - schema: - type: string - - name: ability_score_constitution__gte - required: false - in: query - description: ability_score_constitution__gte - schema: - type: string - - name: ability_score_intelligence - required: false - in: query - description: ability_score_intelligence - schema: - type: string - - name: ability_score_intelligence__lt - required: false - in: query - description: ability_score_intelligence__lt - schema: - type: string - - name: ability_score_intelligence__lte - required: false - in: query - description: ability_score_intelligence__lte - schema: - type: string - - name: ability_score_intelligence__gt - required: false - in: query - description: ability_score_intelligence__gt - schema: - type: string - - name: ability_score_intelligence__gte - required: false - in: query - description: ability_score_intelligence__gte - schema: - type: string - - name: ability_score_wisdom - required: false - in: query - description: ability_score_wisdom - schema: - type: string - - name: ability_score_wisdom__lt - required: false - in: query - description: ability_score_wisdom__lt - schema: - type: string - - name: ability_score_wisdom__lte - required: false - in: query - description: ability_score_wisdom__lte - schema: - type: string - - name: ability_score_wisdom__gt - required: false - in: query - description: ability_score_wisdom__gt - schema: - type: string - - name: ability_score_wisdom__gte - required: false - in: query - description: ability_score_wisdom__gte - schema: - type: string - - name: ability_score_charisma - required: false - in: query - description: ability_score_charisma - schema: - type: string - - name: ability_score_charisma__lt - required: false - in: query - description: ability_score_charisma__lt - schema: - type: string - - name: ability_score_charisma__lte - required: false - in: query - description: ability_score_charisma__lte - schema: - type: string - - name: ability_score_charisma__gt - required: false - in: query - description: ability_score_charisma__gt - schema: - type: string - - name: ability_score_charisma__gte - required: false - in: query - description: ability_score_charisma__gte - schema: - type: string - - name: saving_throw_strength__isnull - required: false - in: query - description: saving_throw_strength__isnull - schema: - type: string - - name: saving_throw_dexterity__isnull - required: false - in: query - description: saving_throw_dexterity__isnull - schema: - type: string - - name: saving_throw_constitution__isnull - required: false - in: query - description: saving_throw_constitution__isnull - schema: - type: string - - name: saving_throw_intelligence__isnull - required: false - in: query - description: saving_throw_intelligence__isnull - schema: - type: string - - name: saving_throw_wisdom__isnull - required: false - in: query - description: saving_throw_wisdom__isnull - schema: - type: string - - name: saving_throw_charisma__isnull - required: false - in: query - description: saving_throw_charisma__isnull - schema: - type: string - - name: skill_bonus_acrobatics__isnull - required: false - in: query - description: skill_bonus_acrobatics__isnull - schema: - type: string - - name: skill_bonus_animal_handling__isnull - required: false - in: query - description: skill_bonus_animal_handling__isnull - schema: - type: string - - name: skill_bonus_arcana__isnull - required: false - in: query - description: skill_bonus_arcana__isnull - schema: - type: string - - name: skill_bonus_athletics__isnull - required: false - in: query - description: skill_bonus_athletics__isnull - schema: - type: string - - name: skill_bonus_deception__isnull - required: false - in: query - description: skill_bonus_deception__isnull - schema: - type: string - - name: skill_bonus_history__isnull - required: false - in: query - description: skill_bonus_history__isnull - schema: - type: string - - name: skill_bonus_insight__isnull - required: false - in: query - description: skill_bonus_insight__isnull - schema: - type: string - - name: skill_bonus_intimidation__isnull - required: false - in: query - description: skill_bonus_intimidation__isnull - schema: - type: string - - name: skill_bonus_investigation__isnull - required: false - in: query - description: skill_bonus_investigation__isnull - schema: - type: string - - name: skill_bonus_medicine__isnull - required: false - in: query - description: skill_bonus_medicine__isnull - schema: - type: string - - name: skill_bonus_nature__isnull - required: false - in: query - description: skill_bonus_nature__isnull - schema: - type: string - - name: skill_bonus_perception__isnull - required: false - in: query - description: skill_bonus_perception__isnull - schema: - type: string - - name: skill_bonus_performance__isnull - required: false - in: query - description: skill_bonus_performance__isnull - schema: - type: string - - name: skill_bonus_persuasion__isnull - required: false - in: query - description: skill_bonus_persuasion__isnull - schema: - type: string - - name: skill_bonus_religion__isnull - required: false - in: query - description: skill_bonus_religion__isnull - schema: - type: string - - name: skill_bonus_sleight_of_hand__isnull - required: false - in: query - description: skill_bonus_sleight_of_hand__isnull - schema: - type: string - - name: skill_bonus_stealth__isnull - required: false - in: query - description: skill_bonus_stealth__isnull - schema: - type: string - - name: skill_bonus_survival__isnull - required: false - in: query - description: skill_bonus_survival__isnull - schema: - type: string - - name: passive_perception - required: false - in: query - description: passive_perception - schema: - type: string - - name: passive_perception__lt - required: false - in: query - description: passive_perception__lt - schema: - type: string - - name: passive_perception__lte - required: false - in: query - description: passive_perception__lte - schema: - type: string - - name: passive_perception__gt - required: false - in: query - description: passive_perception__gt - schema: - type: string - - name: passive_perception__gte - required: false - in: query - description: passive_perception__gte - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Creature' - description: '' - tags: - - v2 - https://api.open5e.com/v2/creatures/{key}/: - get: - operationId: retrieveCreature - description: API endpoint for returning a particular creature. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: size - required: false - in: query - description: size - schema: - type: string - - name: category - required: false - in: query - description: category - schema: - type: string - - name: category__iexact - required: false - in: query - description: category__iexact - schema: - type: string - - name: subcategory - required: false - in: query - description: subcategory - schema: - type: string - - name: subcategory__iexact - required: false - in: query - description: subcategory__iexact - schema: - type: string - - name: type - required: false - in: query - description: type - schema: - type: string - - name: challenge_rating_decimal - required: false - in: query - description: challenge_rating_decimal - schema: - type: string - - name: challenge_rating_decimal__lt - required: false - in: query - description: challenge_rating_decimal__lt - schema: - type: string - - name: challenge_rating_decimal__lte - required: false - in: query - description: challenge_rating_decimal__lte - schema: - type: string - - name: challenge_rating_decimal__gt - required: false - in: query - description: challenge_rating_decimal__gt - schema: - type: string - - name: challenge_rating_decimal__gte - required: false - in: query - description: challenge_rating_decimal__gte - schema: - type: string - - name: armor_class - required: false - in: query - description: armor_class - schema: - type: string - - name: armor_class__lt - required: false - in: query - description: armor_class__lt - schema: - type: string - - name: armor_class__lte - required: false - in: query - description: armor_class__lte - schema: - type: string - - name: armor_class__gt - required: false - in: query - description: armor_class__gt - schema: - type: string - - name: armor_class__gte - required: false - in: query - description: armor_class__gte - schema: - type: string - - name: ability_score_strength - required: false - in: query - description: ability_score_strength - schema: - type: string - - name: ability_score_strength__lt - required: false - in: query - description: ability_score_strength__lt - schema: - type: string - - name: ability_score_strength__lte - required: false - in: query - description: ability_score_strength__lte - schema: - type: string - - name: ability_score_strength__gt - required: false - in: query - description: ability_score_strength__gt - schema: - type: string - - name: ability_score_strength__gte - required: false - in: query - description: ability_score_strength__gte - schema: - type: string - - name: ability_score_dexterity - required: false - in: query - description: ability_score_dexterity - schema: - type: string - - name: ability_score_dexterity__lt - required: false - in: query - description: ability_score_dexterity__lt - schema: - type: string - - name: ability_score_dexterity__lte - required: false - in: query - description: ability_score_dexterity__lte - schema: - type: string - - name: ability_score_dexterity__gt - required: false - in: query - description: ability_score_dexterity__gt - schema: - type: string - - name: ability_score_dexterity__gte - required: false - in: query - description: ability_score_dexterity__gte - schema: - type: string - - name: ability_score_constitution - required: false - in: query - description: ability_score_constitution - schema: - type: string - - name: ability_score_constitution__lt - required: false - in: query - description: ability_score_constitution__lt - schema: - type: string - - name: ability_score_constitution__lte - required: false - in: query - description: ability_score_constitution__lte - schema: - type: string - - name: ability_score_constitution__gt - required: false - in: query - description: ability_score_constitution__gt - schema: - type: string - - name: ability_score_constitution__gte - required: false - in: query - description: ability_score_constitution__gte - schema: - type: string - - name: ability_score_intelligence - required: false - in: query - description: ability_score_intelligence - schema: - type: string - - name: ability_score_intelligence__lt - required: false - in: query - description: ability_score_intelligence__lt - schema: - type: string - - name: ability_score_intelligence__lte - required: false - in: query - description: ability_score_intelligence__lte - schema: - type: string - - name: ability_score_intelligence__gt - required: false - in: query - description: ability_score_intelligence__gt - schema: - type: string - - name: ability_score_intelligence__gte - required: false - in: query - description: ability_score_intelligence__gte - schema: - type: string - - name: ability_score_wisdom - required: false - in: query - description: ability_score_wisdom - schema: - type: string - - name: ability_score_wisdom__lt - required: false - in: query - description: ability_score_wisdom__lt - schema: - type: string - - name: ability_score_wisdom__lte - required: false - in: query - description: ability_score_wisdom__lte - schema: - type: string - - name: ability_score_wisdom__gt - required: false - in: query - description: ability_score_wisdom__gt - schema: - type: string - - name: ability_score_wisdom__gte - required: false - in: query - description: ability_score_wisdom__gte - schema: - type: string - - name: ability_score_charisma - required: false - in: query - description: ability_score_charisma - schema: - type: string - - name: ability_score_charisma__lt - required: false - in: query - description: ability_score_charisma__lt - schema: - type: string - - name: ability_score_charisma__lte - required: false - in: query - description: ability_score_charisma__lte - schema: - type: string - - name: ability_score_charisma__gt - required: false - in: query - description: ability_score_charisma__gt - schema: - type: string - - name: ability_score_charisma__gte - required: false - in: query - description: ability_score_charisma__gte - schema: - type: string - - name: saving_throw_strength__isnull - required: false - in: query - description: saving_throw_strength__isnull - schema: - type: string - - name: saving_throw_dexterity__isnull - required: false - in: query - description: saving_throw_dexterity__isnull - schema: - type: string - - name: saving_throw_constitution__isnull - required: false - in: query - description: saving_throw_constitution__isnull - schema: - type: string - - name: saving_throw_intelligence__isnull - required: false - in: query - description: saving_throw_intelligence__isnull - schema: - type: string - - name: saving_throw_wisdom__isnull - required: false - in: query - description: saving_throw_wisdom__isnull - schema: - type: string - - name: saving_throw_charisma__isnull - required: false - in: query - description: saving_throw_charisma__isnull - schema: - type: string - - name: skill_bonus_acrobatics__isnull - required: false - in: query - description: skill_bonus_acrobatics__isnull - schema: - type: string - - name: skill_bonus_animal_handling__isnull - required: false - in: query - description: skill_bonus_animal_handling__isnull - schema: - type: string - - name: skill_bonus_arcana__isnull - required: false - in: query - description: skill_bonus_arcana__isnull - schema: - type: string - - name: skill_bonus_athletics__isnull - required: false - in: query - description: skill_bonus_athletics__isnull - schema: - type: string - - name: skill_bonus_deception__isnull - required: false - in: query - description: skill_bonus_deception__isnull - schema: - type: string - - name: skill_bonus_history__isnull - required: false - in: query - description: skill_bonus_history__isnull - schema: - type: string - - name: skill_bonus_insight__isnull - required: false - in: query - description: skill_bonus_insight__isnull - schema: - type: string - - name: skill_bonus_intimidation__isnull - required: false - in: query - description: skill_bonus_intimidation__isnull - schema: - type: string - - name: skill_bonus_investigation__isnull - required: false - in: query - description: skill_bonus_investigation__isnull - schema: - type: string - - name: skill_bonus_medicine__isnull - required: false - in: query - description: skill_bonus_medicine__isnull - schema: - type: string - - name: skill_bonus_nature__isnull - required: false - in: query - description: skill_bonus_nature__isnull - schema: - type: string - - name: skill_bonus_perception__isnull - required: false - in: query - description: skill_bonus_perception__isnull - schema: - type: string - - name: skill_bonus_performance__isnull - required: false - in: query - description: skill_bonus_performance__isnull - schema: - type: string - - name: skill_bonus_persuasion__isnull - required: false - in: query - description: skill_bonus_persuasion__isnull - schema: - type: string - - name: skill_bonus_religion__isnull - required: false - in: query - description: skill_bonus_religion__isnull - schema: - type: string - - name: skill_bonus_sleight_of_hand__isnull - required: false - in: query - description: skill_bonus_sleight_of_hand__isnull - schema: - type: string - - name: skill_bonus_stealth__isnull - required: false - in: query - description: skill_bonus_stealth__isnull - schema: - type: string - - name: skill_bonus_survival__isnull - required: false - in: query - description: skill_bonus_survival__isnull - schema: - type: string - - name: passive_perception - required: false - in: query - description: passive_perception - schema: - type: string - - name: passive_perception__lt - required: false - in: query - description: passive_perception__lt - schema: - type: string - - name: passive_perception__lte - required: false - in: query - description: passive_perception__lte - schema: - type: string - - name: passive_perception__gt - required: false - in: query - description: passive_perception__gt - schema: - type: string - - name: passive_perception__gte - required: false - in: query - description: passive_perception__gte - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Creature' - description: '' - tags: - - v2 - https://api.open5e.com/v2/creaturetypes/: - get: - operationId: listCreatureTypes - description: API endpoint for returning a list of creatures types. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/CreatureType' - description: '' - tags: - - v2 - https://api.open5e.com/v2/creaturetypes/{key}/: - get: - operationId: retrieveCreatureType - description: API endpoint for returning a particular creature type. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CreatureType' - description: '' - tags: - - v2 - https://api.open5e.com/v2/creaturesets/: - get: - operationId: listCreatureSets - description: API endpoint for returning a list of creature sets, which is similar - to tags. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/CreatureSet' - description: '' - tags: - - v2 - https://api.open5e.com/v2/creaturesets/{key}/: - get: - operationId: retrieveCreatureSet - description: API endpoint for returning a particular creature set. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CreatureSet' - description: '' - tags: - - v2 - https://api.open5e.com/v2/damagetypes/: - get: - operationId: listDamageTypes - description: API endpoint for returning a list of damage types. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/DamageType' - description: '' - tags: - - v2 - https://api.open5e.com/v2/damagetypes/{key}/: - get: - operationId: retrieveDamageType - description: API endpoint for returning a particular damage type. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/DamageType' - description: '' - tags: - - v2 - https://api.open5e.com/v2/languages/: - get: - operationId: listLanguages - description: API endpoint for returning a list of feats. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: is_exotic - required: false - in: query - description: is_exotic - schema: - type: string - - name: is_secret - required: false - in: query - description: is_secret - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Language' - description: '' - tags: - - v2 - https://api.open5e.com/v2/languages/{key}/: - get: - operationId: retrieveLanguage - description: API endpoint for returning a particular feat. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: is_exotic - required: false - in: query - description: is_exotic - schema: - type: string - - name: is_secret - required: false - in: query - description: is_secret - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Language' - description: '' - tags: - - v2 - https://api.open5e.com/v2/alignments/: - get: - operationId: listAlignments - description: API endpoint for returning a list of alignments. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Alignment' - description: '' - tags: - - v2 - https://api.open5e.com/v2/alignments/{key}/: - get: - operationId: retrieveAlignment - description: API endpoint for returning a particular alignment. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Alignment' - description: '' - tags: - - v2 - https://api.open5e.com/v2/conditions/: - get: - operationId: listConditions - description: API endpoint for returning a list of conditions. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Condition' - description: '' - tags: - - v2 - https://api.open5e.com/v2/conditions/{key}/: - get: - operationId: retrieveCondition - description: API endpoint for returning a particular condition. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Condition' - description: '' - tags: - - v2 - https://api.open5e.com/v2/spells/: - get: - operationId: listSpells - description: API endpoint for returning a list of spells. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: classes__key__in - required: false - in: query - description: classes__key__in - schema: - type: string - - name: classes__key__iexact - required: false - in: query - description: classes__key__iexact - schema: - type: string - - name: classes__key - required: false - in: query - description: classes__key - schema: - type: string - - name: classes__name__in - required: false - in: query - description: classes__name__in - schema: - type: string - - name: level - required: false - in: query - description: level - schema: - type: string - - name: level__range - required: false - in: query - description: level__range - schema: - type: string - - name: level__gt - required: false - in: query - description: level__gt - schema: - type: string - - name: level__gte - required: false - in: query - description: level__gte - schema: - type: string - - name: level__lt - required: false - in: query - description: level__lt - schema: - type: string - - name: level__lte - required: false - in: query - description: level__lte - schema: - type: string - - name: range - required: false - in: query - description: range - schema: - type: string - - name: range__range - required: false - in: query - description: range__range - schema: - type: string - - name: range__gt - required: false - in: query - description: range__gt - schema: - type: string - - name: range__gte - required: false - in: query - description: range__gte - schema: - type: string - - name: range__lt - required: false - in: query - description: range__lt - schema: - type: string - - name: range__lte - required: false - in: query - description: range__lte - schema: - type: string - - name: school__key - required: false - in: query - description: school__key - schema: - type: string - - name: school__name__in - required: false - in: query - description: school__name__in - schema: - type: string - - name: school__name__iexact - required: false - in: query - description: school__name__iexact - schema: - type: string - - name: school__name - required: false - in: query - description: school__name - schema: - type: string - - name: duration__in - required: false - in: query - description: duration__in - schema: - type: string - - name: duration__iexact - required: false - in: query - description: duration__iexact - schema: - type: string - - name: duration - required: false - in: query - description: duration - schema: - type: string - enum: - - instantaneous - - instantaneous or special - - 1 turn - - 1 round - - concentration + 1 round - - 2 rounds - - 3 rounds - - 4 rounds - - 1d4+2 rounds - - 5 rounds - - 6 rounds - - 10 rounds - - up to 1 minute - - 1 minute - - 1 minute, or until expended - - 1 minute, until expended - - 1 minute - - 5 minutes - - 10 minutes - - 1 minute or 1 hour - - up to 1 hour - - 1 hour - - 1 hour or until triggered - - 2 hours - - 3 hours - - 1d10 hours - - 6 hours - - 2-12 hours - - up to 8 hours - - 8 hours - - 1 hour/caster level - - 10 hours - - 12 hours - - 24 hours or until the target attempts a third death saving throw - - 24 hours - - 1 day - - 3 days - - 5 days - - 7 days - - 10 days - - 13 days - - 30 days - - 1 year - - special - - until dispelled or destroyed - - until destroyed - - until dispelled - - until cured or dispelled - - until dispelled or triggered - - permanent until discharged - - permanent; one generation - - permanent - - name: concentration - required: false - in: query - description: concentration - schema: - type: string - - name: verbal - required: false - in: query - description: verbal - schema: - type: string - - name: somatic - required: false - in: query - description: somatic - schema: - type: string - - name: material - required: false - in: query - description: material - schema: - type: string - - name: material_consumed - required: false - in: query - description: material_consumed - schema: - type: string - - name: casting_time__in - required: false - in: query - description: casting_time__in - schema: - type: string - - name: casting_time__iexact - required: false - in: query - description: casting_time__iexact - schema: - type: string - - name: casting_time - required: false - in: query - description: casting_time - schema: - type: string - enum: - - reaction - - bonus-action - - action - - turn - - round - - 1minute - - 5minutes - - 10minutes - - 1hour - - 4hours - - 7hours - - 8hours - - 9hours - - 12hours - - 24hours - - 1week - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Spell' - description: '' - tags: - - v2 - https://api.open5e.com/v2/spells/{key}/: - get: - operationId: retrieveSpell - description: API endpoint for returning a particular spell. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: name__icontains - required: false - in: query - description: name__icontains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: classes__key__in - required: false - in: query - description: classes__key__in - schema: - type: string - - name: classes__key__iexact - required: false - in: query - description: classes__key__iexact - schema: - type: string - - name: classes__key - required: false - in: query - description: classes__key - schema: - type: string - - name: classes__name__in - required: false - in: query - description: classes__name__in - schema: - type: string - - name: level - required: false - in: query - description: level - schema: - type: string - - name: level__range - required: false - in: query - description: level__range - schema: - type: string - - name: level__gt - required: false - in: query - description: level__gt - schema: - type: string - - name: level__gte - required: false - in: query - description: level__gte - schema: - type: string - - name: level__lt - required: false - in: query - description: level__lt - schema: - type: string - - name: level__lte - required: false - in: query - description: level__lte - schema: - type: string - - name: range - required: false - in: query - description: range - schema: - type: string - - name: range__range - required: false - in: query - description: range__range - schema: - type: string - - name: range__gt - required: false - in: query - description: range__gt - schema: - type: string - - name: range__gte - required: false - in: query - description: range__gte - schema: - type: string - - name: range__lt - required: false - in: query - description: range__lt - schema: - type: string - - name: range__lte - required: false - in: query - description: range__lte - schema: - type: string - - name: school__key - required: false - in: query - description: school__key - schema: - type: string - - name: school__name__in - required: false - in: query - description: school__name__in - schema: - type: string - - name: school__name__iexact - required: false - in: query - description: school__name__iexact - schema: - type: string - - name: school__name - required: false - in: query - description: school__name - schema: - type: string - - name: duration__in - required: false - in: query - description: duration__in - schema: - type: string - - name: duration__iexact - required: false - in: query - description: duration__iexact - schema: - type: string - - name: duration - required: false - in: query - description: duration - schema: - type: string - enum: - - instantaneous - - instantaneous or special - - 1 turn - - 1 round - - concentration + 1 round - - 2 rounds - - 3 rounds - - 4 rounds - - 1d4+2 rounds - - 5 rounds - - 6 rounds - - 10 rounds - - up to 1 minute - - 1 minute - - 1 minute, or until expended - - 1 minute, until expended - - 1 minute - - 5 minutes - - 10 minutes - - 1 minute or 1 hour - - up to 1 hour - - 1 hour - - 1 hour or until triggered - - 2 hours - - 3 hours - - 1d10 hours - - 6 hours - - 2-12 hours - - up to 8 hours - - 8 hours - - 1 hour/caster level - - 10 hours - - 12 hours - - 24 hours or until the target attempts a third death saving throw - - 24 hours - - 1 day - - 3 days - - 5 days - - 7 days - - 10 days - - 13 days - - 30 days - - 1 year - - special - - until dispelled or destroyed - - until destroyed - - until dispelled - - until cured or dispelled - - until dispelled or triggered - - permanent until discharged - - permanent; one generation - - permanent - - name: concentration - required: false - in: query - description: concentration - schema: - type: string - - name: verbal - required: false - in: query - description: verbal - schema: - type: string - - name: somatic - required: false - in: query - description: somatic - schema: - type: string - - name: material - required: false - in: query - description: material - schema: - type: string - - name: material_consumed - required: false - in: query - description: material_consumed - schema: - type: string - - name: casting_time__in - required: false - in: query - description: casting_time__in - schema: - type: string - - name: casting_time__iexact - required: false - in: query - description: casting_time__iexact - schema: - type: string - - name: casting_time - required: false - in: query - description: casting_time - schema: - type: string - enum: - - reaction - - bonus-action - - action - - turn - - round - - 1minute - - 5minutes - - 10minutes - - 1hour - - 4hours - - 7hours - - 8hours - - 9hours - - 12hours - - 24hours - - 1week - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Spell' - description: '' - tags: - - v2 - https://api.open5e.com/v2/classes/: - get: - operationId: listCharacterClasses - description: API endpoint for returning a list of backgrounds. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: subclass_of - required: false - in: query - description: subclass_of - schema: - type: string - - name: is_subclass - required: false - in: query - description: is_subclass - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/CharacterClass' - description: '' - tags: - - v2 - https://api.open5e.com/v2/classes/{key}/: - get: - operationId: retrieveCharacterClass - description: API endpoint for returning a particular background. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: subclass_of - required: false - in: query - description: subclass_of - schema: - type: string - - name: is_subclass - required: false - in: query - description: is_subclass - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CharacterClass' - description: '' - tags: - - v2 - https://api.open5e.com/v2/sizes/: - get: - operationId: listSizes - description: API endpoint for returning a list of damage types. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Size' - description: '' - tags: - - v2 - https://api.open5e.com/v2/sizes/{key}/: - get: - operationId: retrieveSize - description: API endpoint for returning a particular damage type. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Size' - description: '' - tags: - - v2 - https://api.open5e.com/v2/itemrarities/: - get: - operationId: listItemRarities - description: API endpoint for returning a list of item rarities. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/ItemRarity' - description: '' - tags: - - v2 - https://api.open5e.com/v2/itemrarities/{key}/: - get: - operationId: retrieveItemRarity - description: API endpoint for returning a particular item rarity. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ItemRarity' - description: '' - tags: - - v2 - https://api.open5e.com/v2/environments/: - get: - operationId: listEnvironments - description: API endpoint for returning a list of environments. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Environment' - description: '' - tags: - - v2 - https://api.open5e.com/v2/environments/{key}/: - get: - operationId: retrieveEnvironment - description: API endpoint for returning a particular environment. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Environment' - description: '' - tags: - - v2 - https://api.open5e.com/v2/abilities/: - get: - operationId: listAbilities - description: API endpoint for returning a list of abilities. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Ability' - description: '' - tags: - - v2 - https://api.open5e.com/v2/abilities/{key}/: - get: - operationId: retrieveAbility - description: API endpoint for returning a particular ability. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: key__in - required: false - in: query - description: key__in - schema: - type: string - - name: key__iexact - required: false - in: query - description: key__iexact - schema: - type: string - - name: key - required: false - in: query - description: key - schema: - type: string - - name: name__iexact - required: false - in: query - description: name__iexact - schema: - type: string - - name: name - required: false - in: query - description: name - schema: - type: string - - name: name__contains - required: false - in: query - description: name__contains - schema: - type: string - - name: document__key__in - required: false - in: query - description: document__key__in - schema: - type: string - - name: document__key__iexact - required: false - in: query - description: document__key__iexact - schema: - type: string - - name: document__key - required: false - in: query - description: document__key - schema: - type: string - - name: document__gamesystem__key__in - required: false - in: query - description: document__gamesystem__key__in - schema: - type: string - - name: document__gamesystem__key__iexact - required: false - in: query - description: document__gamesystem__key__iexact - schema: - type: string - - name: document__gamesystem__key - required: false - in: query - description: document__gamesystem__key - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Ability' - description: '' - tags: - - v2 - https://api.open5e.com/v2/skills/: - get: - operationId: listSkills - description: API endpoint for returning a list of skills. - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Skill' - description: '' - tags: - - v2 - https://api.open5e.com/v2/skills/{key}/: - get: - operationId: retrieveSkill - description: API endpoint for returning a particular skill. - parameters: - - name: key - in: path - required: true - description: Unique key for the Item. - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Skill' - description: '' - tags: - - v2 - https://api.open5e.com/v2/rules/: - get: - operationId: listRules - description: '' - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/Rule' - description: '' - tags: - - v2 - https://api.open5e.com/v2/rules/{key}/: - get: - operationId: retrieveRule - description: '' - parameters: - - name: key - in: path - required: true - description: Unique key for the Document. - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Rule' - description: '' - tags: - - v2 - https://api.open5e.com/v2/rulesets/: - get: - operationId: listRuleSets - description: '' - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/RuleSet' - description: '' - tags: - - v2 - https://api.open5e.com/v2/rulesets/{key}/: - get: - operationId: retrieveRuleSet - description: '' - parameters: - - name: key - in: path - required: true - description: Unique key for the Document. - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/RuleSet' - description: '' - tags: - - v2 - https://api.open5e.com/v2/search/: - get: - operationId: listSearchResults - description: "This class both define the query to get results and the structure\ - \ of \nthose results for searching. Using the SearchResultSerializer for \n\ - structure, this makes a custom query out to a custom table built for\nfull-text\ - \ search." - parameters: - - name: page - required: false - in: query - description: A page number within the paginated result set. - schema: - type: integer - - name: limit - required: false - in: query - description: Number of results to return per page. - schema: - type: integer - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - type: object - required: - - count - - results - properties: - count: - type: integer - example: 123 - next: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=4 - previous: - type: string - nullable: true - format: uri - example: http://api.example.org/accounts/?page=2 - results: - type: array - items: - $ref: '#/components/schemas/SearchResult' - description: '' - tags: - - v2 - https://api.open5e.com/v2/search/{id}/: - get: - operationId: retrieveSearchResult - description: "This class both define the query to get results and the structure\ - \ of \nthose results for searching. Using the SearchResultSerializer for \n\ - structure, this makes a custom query out to a custom table built for\nfull-text\ - \ search." - parameters: - - name: id - in: path - required: true - description: '' - schema: - type: string - - name: ordering - required: false - in: query - description: Which field to use when ordering the results. - schema: - type: string - - name: search - required: false - in: query - description: A search term. - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SearchResult' - description: '' - tags: - - v2 - https://api.open5e.com/v2/enums/: - get: - operationId: listget_enums - description: API endpoint for enums. - parameters: [] - responses: - '200': - content: - application/json: - schema: - type: array - items: {} - description: '' - tags: - - v2 -components: - schemas: - Manifest: - type: object - properties: - filename: - type: string - description: Input file name. - maxLength: 255 - type: - type: string - description: Type of file (maps to a model). - maxLength: 25 - hash: - type: string - description: md5 hash of the file contents. - maxLength: 255 - created_at: - type: string - format: date-time - readOnly: true - description: Date that this object was added to the database. - required: - - filename - - type - - hash - Spell: - type: object - properties: - url: - type: string - readOnly: true - key: - type: string - readOnly: true - slot_expended: - type: string - readOnly: true - casting_options: - type: array - items: - type: object - properties: - type: - enum: - - default - - ritual - - player_level_1 - - player_level_2 - - player_level_3 - - player_level_4 - - player_level_5 - - player_level_6 - - player_level_7 - - player_level_8 - - player_level_9 - - player_level_10 - - player_level_11 - - player_level_12 - - player_level_13 - - player_level_14 - - player_level_15 - - player_level_16 - - player_level_17 - - player_level_18 - - player_level_19 - - player_level_20 - - slot_level_1 - - slot_level_2 - - slot_level_3 - - slot_level_4 - - slot_level_5 - - slot_level_6 - - slot_level_7 - - slot_level_8 - - slot_level_9 - type: string - damage_roll: - type: string - nullable: true - description: The damage roll for the field in dice notation. Empty - string if no roll. - target_count: - type: integer - maximum: 9223372036854775807 - format: int64 - nullable: true - description: Integer representing the count of targets. - minimum: 0 - duration: - type: string - nullable: true - description: Description of the duration of the effect such as "instantaneous" - or "Up to 1 minute" - range: - type: string - nullable: true - description: Description of the range of the spell. - required: - - type - school: - type: object - properties: - key: - type: string - description: Unique key for the Item. - maxLength: 100 - name: - type: string - description: Name of the item. - maxLength: 100 - desc: - type: string - description: Description of the game content item. Markdown. - document: - type: string - required: - - key - - name - - desc - - document - range_unit: - type: string - readOnly: true - shape_size_unit: - type: string - readOnly: true - name: - type: string - description: Name of the item. - maxLength: 100 - desc: - type: string - description: Description of the game content item. Markdown. - level: - type: integer - maximum: 9 - description: Integer representing the default slot level required by the - spell. - minimum: 0 - higher_level: - type: string - description: Description of casting the spell at a different level. - target_type: - enum: - - creature - - object - - point - - area - type: string - description: Spell target type key. - range_text: - enum: - - Self - - Touch - - Special - - 5 feet - - 10 feet - - 15 feet - - 20 feet - - 25 feet - - 30 feet - - 40 feet - - 50 feet - - 60 feet - - 90 feet - - 100 feet - - 120 feet - - 150 feet - - 180 feet - - 200 feet - - 300 feet - - 400 feet - - 500 feet - - 1000 feet - - Sight - - 1 mile - - 5 miles - - 10 miles - - 100 miles - - 150 miles - - 500 miles - - Unlimited - type: string - description: Spell target range. - range: - type: number - nullable: true - description: Used to measure distance. - minimum: 0 - ritual: - type: boolean - description: Whether or not the spell can be cast as a ritual. - casting_time: - enum: - - reaction - - bonus-action - - action - - turn - - round - - 1minute - - 5minutes - - 10minutes - - 1hour - - 4hours - - 7hours - - 8hours - - 9hours - - 12hours - - 24hours - - 1week - type: string - description: Casting time key, such as 'action' - reaction_condition: - type: string - nullable: true - description: The conditions describing when a reaction spell can be cast - verbal: - type: boolean - description: Whether or not casting the spell requires a verbal component. - somatic: - type: boolean - description: Whether or not casting the spell requires a verbal component. - material: - type: boolean - description: Whether or not casting the spell requires a verbal component. - material_specified: - type: string - description: Description of the material specified for the spell. - material_cost: - type: string - format: decimal - multipleOf: 0.01 - maximum: 100000000 - minimum: 0 - nullable: true - description: Number representing the cost of the materials of the spell. - material_consumed: - type: boolean - description: Whether or the material component is consumed during the casting. - target_count: - type: integer - maximum: 9223372036854775807 - format: int64 - nullable: true - description: Integer representing the count of targets. - minimum: 0 - saving_throw_ability: - type: string - description: Given the spell requires a saving throw, which ability is targeted. - Empty string if no saving throw. - attack_roll: - type: boolean - description: Whether or not the spell effect requires an attack roll. - damage_roll: - type: string - description: The damage roll for the field in dice notation. Empty string - if no roll. - damage_types: - type: object - description: The types of damage done by the spell in a list. - duration: - enum: - - instantaneous - - instantaneous or special - - 1 turn - - 1 round - - concentration + 1 round - - 2 rounds - - 3 rounds - - 4 rounds - - 1d4+2 rounds - - 5 rounds - - 6 rounds - - 10 rounds - - up to 1 minute - - 1 minute - - 1 minute, or until expended - - 1 minute, until expended - - 5 minutes - - 10 minutes - - 1 minute or 1 hour - - up to 1 hour - - 1 hour - - 1 hour or until triggered - - 2 hours - - 3 hours - - 1d10 hours - - 6 hours - - 2-12 hours - - up to 8 hours - - 8 hours - - 1 hour/caster level - - 10 hours - - 12 hours - - 24 hours or until the target attempts a third death saving throw - - 24 hours - - 1 day - - 3 days - - 5 days - - 7 days - - 10 days - - 13 days - - 30 days - - 1 year - - special - - until dispelled or destroyed - - until destroyed - - until dispelled - - until cured or dispelled - - until dispelled or triggered - - permanent until discharged - - permanent; one generation - - permanent - type: string - description: Description of the duration of the effect such as "instantaneous" - or "1 minute" - shape_type: - enum: - - cone - - cube - - cylinder - - line - - sphere - type: string - nullable: true - description: The shape of the area of effect. - shape_size: - type: number - nullable: true - description: Used to measure distance. - minimum: 0 - concentration: - type: boolean - description: Whether the effect requires concentration to be maintained. - document: - type: string - classes: - type: array - items: - type: string - required: - - casting_options - - school - - name - - desc - - level - - target_type - - range_text - - casting_time - - duration - - document - - classes - SpellList: - type: object - properties: - slug: - type: string - description: Short name for the game content item. - maxLength: 255 - name: - type: string - description: Name of the game content item. - desc: - type: string - description: Description of the game content item. Markdown. - spells: - type: array - items: - type: string - description: The set of spells. - document__slug: - type: string - readOnly: true - document__title: - type: string - readOnly: true - document__license_url: - type: string - readOnly: true - document__url: - type: string - readOnly: true - required: - - name - - desc - - spells - Monster: - type: object - properties: - slug: - type: string - description: Short name for the game content item. - maxLength: 255 - desc: - type: string - description: Description of the game content item. Markdown. - name: - type: string - description: Name of the game content item. - size: - type: string - description: Monster size category. - type: - type: string - description: The type of the monster, such as "aberration" - subtype: - type: string - description: If applicable, the subtype of the monster, such as "shapechanger" - group: - type: string - nullable: true - description: Used to group similar creatures at different stages. "Green - Dragon" - alignment: - type: string - description: Short description of the creature alignment, such as "lawful - good" - armor_class: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - description: Integer representing the armor class. - armor_desc: - type: string - nullable: true - description: Description of the armor or armor type. - hit_points: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer of the hit points. - hit_dice: - type: string - description: Dice string representing a way to calculate hit points. - speed: - type: string - readOnly: true - strength: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the strength score. - dexterity: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer represeting the dexterity score. - constitution: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the constitution score. - intelligence: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the intelligence score. - wisdom: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the wisdom score. - charisma: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the charisma score. - strength_save: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the strength save. - dexterity_save: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the dexterity save. - constitution_save: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the constitution save. - intelligence_save: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the intelligence save - wisdom_save: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the wisdom save. - charisma_save: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the charisma save. - perception: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - description: Integer representing the passive perception score. - skills: - type: string - readOnly: true - damage_vulnerabilities: - type: string - description: Comma separated list of damage types the monster is vulnerable - to. - damage_resistances: - type: string - description: Comma separated list of damage types the monster is resistant - to. - damage_immunities: - type: string - description: Comma separated list of damage types the monster is immune - to. - condition_immunities: - type: string - description: Comma separated list of conditions the monster is immune to. - senses: - type: string - languages: - type: string - challenge_rating: - type: string - description: Monster challenge rating. - cr: - type: number - nullable: true - description: Monster challenge rating as a float. - actions: - type: string - readOnly: true - bonus_actions: - type: string - readOnly: true - reactions: - type: string - readOnly: true - legendary_desc: - type: string - nullable: true - legendary_actions: - type: string - readOnly: true - special_abilities: - type: string - readOnly: true - spell_list: - type: array - items: - type: string - readOnly: true - page_no: - type: integer - maximum: 9223372036854775807 - minimum: -9223372036854775808 - format: int64 - nullable: true - environments: - type: string - readOnly: true - img_main: - type: string - readOnly: true - document__slug: - type: string - readOnly: true - document__title: - type: string - readOnly: true - document__license_url: - type: string - readOnly: true - document__url: - type: string - readOnly: true - required: - - desc - - name - - size - - type - - subtype - - alignment - - hit_dice - - damage_vulnerabilities - - damage_resistances - - damage_immunities - - condition_immunities - - senses - - languages - - challenge_rating - Document: - type: object - properties: - url: - type: string - readOnly: true - key: - type: string - readOnly: true - name: - type: string - description: Name of the item. - maxLength: 100 - desc: - type: string - description: Description of the game content item. Markdown. - author: - type: string - description: Author or authors. - published_at: - type: string - format: date-time - description: Date of publication, or null if unknown. - permalink: - type: string - format: uri - description: Link to the document. - maxLength: 200 - pattern: "^(?:[a-z0-9.+-]*)://(?:[^\\s:@/]+(?::[^\\s:@/]*)?@)?(?:(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)(?:\\\ - .(?:0|25[0-5]|2[0-4][0-9]|1[0-9]?[0-9]?|[1-9][0-9]?)){3}|\\[[0-9a-f:.]+\\\ - ]|([a-z\xA1-\uFFFF0-9](?:[a-z\xA1-\uFFFF0-9-]{0,61}[a-z\xA1-\uFFFF0-9])?(?:\\\ - .(?!-)[a-z\xA1-\uFFFF0-9-]{1,63}(? Date: Mon, 21 Oct 2024 15:40:08 -0400 Subject: [PATCH 02/10] remove most warnings, and all errors --- api_v2/models/abstracts.py | 64 +++++++++++++++ api_v2/models/alignment.py | 6 +- api_v2/models/armor.py | 4 + api_v2/models/characterclass.py | 14 ++++ api_v2/models/item.py | 3 + api_v2/models/race.py | 4 +- api_v2/models/speed.py | 38 +++++++++ api_v2/models/weapon.py | 13 ++- api_v2/serializers/creature.py | 139 +++++++++++++++++++++++++++++++- api_v2/serializers/item.py | 5 +- api_v2/serializers/search.py | 12 +++ api_v2/serializers/size.py | 4 + api_v2/serializers/spell.py | 7 ++ api_v2/views/enum.py | 13 +++ server/oas.py | 15 ++++ server/settings.py | 3 + 16 files changed, 339 insertions(+), 5 deletions(-) create mode 100644 server/oas.py diff --git a/api_v2/models/abstracts.py b/api_v2/models/abstracts.py index bcff09dd..c02ce819 100644 --- a/api_v2/models/abstracts.py +++ b/api_v2/models/abstracts.py @@ -10,6 +10,9 @@ from .enums import SAVING_THROW_MAXIMUM, SAVING_THROW_MINIMUM from .enums import SKILL_BONUS_MINIMUM, SKILL_BONUS_MAXIMUM from .enums import PASSIVE_SCORE_MAXIMUM +from drf_spectacular.utils import extend_schema_field, inline_serializer +from drf_spectacular.types import OpenApiTypes +from rest_framework import serializers # FIELDS USED ACROSS MULTIPLE MODELS @@ -140,6 +143,7 @@ class HasPrerequisite(models.Model): help_text='Prerequisite for the game content item.') @property + @extend_schema_field(OpenApiTypes.BOOL) def has_prerequisite(self): return self.prerequisite not in ("", None) @@ -202,6 +206,17 @@ class HasAbilities(models.Model): ability_score_charisma = ability_score_field( 'Integer representing the charisma ability.') + @extend_schema_field(inline_serializer( + name="ability_scores", + fields={ + "strength": serializers.IntegerField(), + "dexterity": serializers.IntegerField(), + "constitution": serializers.IntegerField(), + "intelligence": serializers.IntegerField(), + "wisdom": serializers.IntegerField(), + "charisma": serializers.IntegerField(), + }) + ) def get_ability_scores(self): return { 'strength': self.ability_score_strength, @@ -239,6 +254,18 @@ def modifier_wisdom(self): def modifier_charisma(self): return ability_modifier(self.ability_score_charisma) + @extend_schema_field(inline_serializer( + name="ability_modifiers", + fields={ + # todo: technically they're all typed as any, but they're `floor`'d, so they should come out as integers + "strength": serializers.IntegerField(), + "dexterity": serializers.IntegerField(), + "constitution": serializers.IntegerField(), + "intelligence": serializers.IntegerField(), + "wisdom": serializers.IntegerField(), + "charisma": serializers.IntegerField(), + }) + ) def get_modifiers(self): return { 'strength': self.modifier_strength, @@ -272,6 +299,19 @@ def get_modifiers(self): saving_throw_charisma = saving_throw_field( 'Signed integer added to charisma saving throws.') + + @extend_schema_field(inline_serializer( + name="saving_throws", + fields={ + # todo: all of these are "or none" + "strength": serializers.IntegerField(), + "dexterity": serializers.IntegerField(), + "constitution": serializers.IntegerField(), + "intelligence": serializers.IntegerField(), + "wisdom": serializers.IntegerField(), + "charisma": serializers.IntegerField(), + }) + ) def get_saving_throws(self): return { 'strength': self.saving_throw_strength, @@ -341,6 +381,30 @@ def get_saving_throws(self): skill_bonus_survival = skill_bonus_field( 'Signed integer added to survival skill checks.') + @extend_schema_field(inline_serializer( + name="skill_bonuses", + fields={ + # todo: all of these are typed as also none + 'acrobatics': serializers.IntegerField(), + 'animal_handling': serializers.IntegerField(), + 'arcana': serializers.IntegerField(), + 'athletics': serializers.IntegerField(), + 'deception': serializers.IntegerField(), + 'history': serializers.IntegerField(), + 'insight': serializers.IntegerField(), + 'intimidation': serializers.IntegerField(), + 'investigation': serializers.IntegerField(), + 'medicine': serializers.IntegerField(), + 'nature': serializers.IntegerField(), + 'perception': serializers.IntegerField(), + 'performance': serializers.IntegerField(), + 'persuasion': serializers.IntegerField(), + 'religion': serializers.IntegerField(), + 'sleight_of_hand': serializers.IntegerField(), + 'stealth': serializers.IntegerField(), + 'survival': serializers.IntegerField(), + } + )) def get_skill_bonuses(self): return { 'acrobatics': self.skill_bonus_acrobatics, diff --git a/api_v2/models/alignment.py b/api_v2/models/alignment.py index cc473dbe..c55c2a12 100644 --- a/api_v2/models/alignment.py +++ b/api_v2/models/alignment.py @@ -4,13 +4,15 @@ from .abstracts import HasName, HasDescription from .document import FromDocument - +from drf_spectacular.utils import extend_schema_field +from drf_spectacular.types import OpenApiTypes class Alignment(HasName, HasDescription, FromDocument): """This is the model for an alignment, which is way to describe the moral and personal attitudes of a creature.""" @property + @extend_schema_field(OpenApiTypes.STR) def short_name(self): short_name = "" for word in self.name.split(" "): @@ -18,9 +20,11 @@ def short_name(self): return short_name @property + @extend_schema_field(OpenApiTypes.STR) def morality(self): return self.name.split(" ")[-1].lower() @property + @extend_schema_field(OpenApiTypes.STR) def societal_attitude(self): return self.name.split(" ")[0].lower() diff --git a/api_v2/models/armor.py b/api_v2/models/armor.py index 8cdd176a..d3b8e3ef 100644 --- a/api_v2/models/armor.py +++ b/api_v2/models/armor.py @@ -4,6 +4,8 @@ from django.db import models from .abstracts import HasName from .document import FromDocument +from drf_spectacular.utils import extend_schema_field +from drf_spectacular.types import OpenApiTypes class Armor(HasName, FromDocument): @@ -40,6 +42,7 @@ class Armor(HasName, FromDocument): help_text='Integer representing the dexterity modifier cap.') @property + @extend_schema_field(OpenApiTypes.STR) def category(self): category = 'heavy' if self.ac_add_dexmod: @@ -50,6 +53,7 @@ def category(self): @property + @extend_schema_field(OpenApiTypes.STR) def ac_display(self): """Display text for armor class.""" ac_string = str(self.ac_base) diff --git a/api_v2/models/characterclass.py b/api_v2/models/characterclass.py index 4764229e..5d23cf59 100644 --- a/api_v2/models/characterclass.py +++ b/api_v2/models/characterclass.py @@ -1,11 +1,14 @@ """The model for a feat.""" from django.db import models from django.core.validators import MaxValueValidator, MinValueValidator +from rest_framework import serializers from .abstracts import HasName, HasDescription, Modification from .abstracts import key_field from .document import FromDocument from .enums import DIE_TYPES +from drf_spectacular.utils import extend_schema_field, inline_serializer +from drf_spectacular.types import OpenApiTypes class ClassFeatureItem(models.Model): """This is the class for an individual class feature item, a subset of a class @@ -54,6 +57,16 @@ class CharacterClass(HasName, FromDocument): help_text='Dice notation hit dice option.') @property + @extend_schema_field(inline_serializer( + name="hit_points", + fields={ + # todo: also none + "hit_dice": serializers.IntegerField(), + "hit_dice_name": serializers.StringRelatedField(), + "hit_points_at_1st_level": serializers.IntegerField(), + "hit_points_at_higher_levels": serializers.IntegerField() + } + )) def hit_points(self): hit_dice_name = "1{} per {} level".format(self.hit_dice, self.name) split_dice = self.hit_dice.lower().split("d")[1] @@ -78,6 +91,7 @@ def features(self): """Returns the set of features that are related to this class.""" return self.classfeature_set + # todo: dict, key is the level, value is an object with `features` (an array of currently typed as any), `proficiency-bonus` (currently typed as any), and `level` (currently typed as any)` def levels(self): """Returns an array of level information for the given class.""" by_level = {} diff --git a/api_v2/models/item.py b/api_v2/models/item.py index 13cb4eda..243c2ca8 100644 --- a/api_v2/models/item.py +++ b/api_v2/models/item.py @@ -9,6 +9,8 @@ from .object import Object from .damagetype import DamageType from .document import FromDocument +from drf_spectacular.utils import extend_schema_field +from drf_spectacular.types import OpenApiTypes class ItemRarity(HasName, FromDocument): @@ -77,6 +79,7 @@ class Item(Object, HasDescription, FromDocument): related_name="item_damage_resistances") @property + @extend_schema_field(OpenApiTypes.BOOL) def is_magic_item(self): return self.rarity is not None diff --git a/api_v2/models/race.py b/api_v2/models/race.py index f926a20b..f2d687e4 100644 --- a/api_v2/models/race.py +++ b/api_v2/models/race.py @@ -4,7 +4,8 @@ from .abstracts import HasName, HasDescription, HasPrerequisite from .abstracts import Modification from .document import FromDocument - +from drf_spectacular.utils import extend_schema_field +from drf_spectacular.types import OpenApiTypes class RaceTrait(Modification): """This is the model for a race or subrace trait. @@ -30,6 +31,7 @@ class Race(HasName, HasDescription, FromDocument): on_delete=models.CASCADE) @property + @extend_schema_field(OpenApiTypes.BOOL) def is_subrace(self): """Returns whether the object is a subrace.""" return self.subrace_of is not None diff --git a/api_v2/models/speed.py b/api_v2/models/speed.py index e01fb6c4..f71f936b 100644 --- a/api_v2/models/speed.py +++ b/api_v2/models/speed.py @@ -2,6 +2,9 @@ from django.db import models from .abstracts import distance_field, distance_unit_field +from drf_spectacular.utils import extend_schema_field, inline_serializer +from drf_spectacular.types import OpenApiTypes +from rest_framework import serializers class HasSpeed(models.Model): '''This object represents a creature's speed.''' @@ -46,6 +49,23 @@ def get_unit(self): return self.document.distance_unit return self.unit + @extend_schema_field(inline_serializer( + name="speed", + fields={ + # todo: model typed as any + "walk": serializers.StringRelatedField(), + # todo: model typed as any + "fly": serializers.StringRelatedField(), + # todo: model typed as any + "swim": serializers.StringRelatedField(), + # todo: model typed as any + "climb": serializers.StringRelatedField(), + # todo: model typed as any + "burrow": serializers.StringRelatedField(), + # todo: and none + "hover": serializers.BooleanField(), + } + )) def get_speed(self): speed={ "walk":self.walk, @@ -60,6 +80,24 @@ def get_speed(self): return speed + @extend_schema_field(inline_serializer( + name="speed_all", + fields={ + # todo: model typed as any + "unit": serializers.StringRelatedField(), + # todo: model typed as any + "walk": serializers.StringRelatedField(), + # todo: model typed as any + "crawl": serializers.StringRelatedField(), + "hover": serializers.BooleanField(), + "fly": serializers.FloatField(), + "burrow": serializers.FloatField(), + # todo: model typed as any + "climb": serializers.StringRelatedField(), + # todo: model typed as any + "swim": serializers.StringRelatedField(), + } + )) def get_speed_all(self): return { "unit": self.get_unit(), diff --git a/api_v2/models/weapon.py b/api_v2/models/weapon.py index 53ca7c7f..70c8897c 100644 --- a/api_v2/models/weapon.py +++ b/api_v2/models/weapon.py @@ -6,7 +6,8 @@ from .abstracts import HasName from .abstracts import distance_field, distance_unit_field from .document import FromDocument - +from drf_spectacular.utils import extend_schema_field +from drf_spectacular.types import OpenApiTypes class Weapon(HasName, FromDocument): """ @@ -45,6 +46,8 @@ class Weapon(HasName, FromDocument): distance_unit = distance_unit_field() @property + # or none + @extend_schema_field(OpenApiTypes.STR) def get_distance_unit(self): if self.distance_unit is None: return self.document.distance_unit @@ -107,33 +110,41 @@ def get_distance_unit(self): help_text='If the weapon is improvised.') @property + @extend_schema_field(OpenApiTypes.BOOL) def is_versatile(self): return self.versatile_dice != str(0) @property + @extend_schema_field(OpenApiTypes.BOOL) def is_martial(self): return not self.is_simple @property + @extend_schema_field(OpenApiTypes.BOOL) def is_melee(self): # Ammunition weapons can only be used as improvised melee weapons. return not self.requires_ammunition @property + @extend_schema_field(OpenApiTypes.BOOL) def ranged_attack_possible(self): # Only ammunition or throw weapons can make ranged attacks. return self.requires_ammunition or self.is_thrown @property + # type is any + @extend_schema_field(OpenApiTypes.BOOL) def range_melee(self): return self.reach @property + @extend_schema_field(OpenApiTypes.BOOL) def is_reach(self): # A weapon with a longer reach than the default has the reach property. return self.reach > 5 @property + # todo: array of enums ["special", "finesse", "ammunition", "light", "heavy", "thrown", "loading", "two-handed", "versatile", "reach"] def properties(self): properties = [] diff --git a/api_v2/serializers/creature.py b/api_v2/serializers/creature.py index 638155ec..8ebc41df 100644 --- a/api_v2/serializers/creature.py +++ b/api_v2/serializers/creature.py @@ -8,7 +8,8 @@ from .abstracts import GameContentSerializer from .size import SizeSerializer - +from drf_spectacular.utils import extend_schema_field, inline_serializer +from drf_spectacular.types import OpenApiTypes class CreatureActionAttackSerializer(serializers.ModelSerializer): @@ -18,6 +19,8 @@ class Meta: model = models.CreatureActionAttack fields = '__all__' + # todo: type is any + @extend_schema_field(OpenApiTypes.STR) def get_distance_unit(self, CreatureActionAttack): return CreatureActionAttack.get_distance_unit @@ -102,30 +105,125 @@ class Meta: 'creaturesets' ] + @extend_schema_field(inline_serializer( + name="ability_scores", + fields={ + "strength": serializers.IntegerField(), + "dexterity": serializers.IntegerField(), + "constitution": serializers.IntegerField(), + "intelligence": serializers.IntegerField(), + "wisdom": serializers.IntegerField(), + "charisma": serializers.IntegerField(), + }) + ) def get_ability_scores(self, creature): '''Ability scores helper method.''' return creature.get_ability_scores() + @extend_schema_field(inline_serializer( + name="ability_modifiers", + fields={ + # todo: technically they're all typed as any, but they're `floor`'d, so they should come out as integers + "strength": serializers.IntegerField(), + "dexterity": serializers.IntegerField(), + "constitution": serializers.IntegerField(), + "intelligence": serializers.IntegerField(), + "wisdom": serializers.IntegerField(), + "charisma": serializers.IntegerField(), + }) + ) def get_modifiers(self, creature): '''Modifiers helper method.''' return creature.get_modifiers() + @extend_schema_field(inline_serializer( + name="saving_throws", + fields={ + # todo: all of these are "or none" + "strength": serializers.IntegerField(), + "dexterity": serializers.IntegerField(), + "constitution": serializers.IntegerField(), + "intelligence": serializers.IntegerField(), + "wisdom": serializers.IntegerField(), + "charisma": serializers.IntegerField(), + }) + ) def get_saving_throws(self, creature): '''Explicit saving throws helper method.''' entries = creature.get_saving_throws().items() return { key: value for key, value in entries if value is not None } + @extend_schema_field(inline_serializer( + name="saving_throws_all", + fields={ + # todo: all of these are "or none" + "strength": serializers.IntegerField(), + "dexterity": serializers.IntegerField(), + "constitution": serializers.IntegerField(), + "intelligence": serializers.IntegerField(), + "wisdom": serializers.IntegerField(), + "charisma": serializers.IntegerField(), + }) + ) def get_saving_throws_all(self, creature): '''Implicit saving throws helper method.''' defaults = creature.get_modifiers() entries = creature.get_saving_throws().items() return { key: (defaults[key] if value is None else value) for key, value in entries } + @extend_schema_field(inline_serializer( + name="skill_bonuses", + fields={ + # todo: all of these are typed as also none + 'acrobatics': serializers.IntegerField(), + 'animal_handling': serializers.IntegerField(), + 'arcana': serializers.IntegerField(), + 'athletics': serializers.IntegerField(), + 'deception': serializers.IntegerField(), + 'history': serializers.IntegerField(), + 'insight': serializers.IntegerField(), + 'intimidation': serializers.IntegerField(), + 'investigation': serializers.IntegerField(), + 'medicine': serializers.IntegerField(), + 'nature': serializers.IntegerField(), + 'perception': serializers.IntegerField(), + 'performance': serializers.IntegerField(), + 'persuasion': serializers.IntegerField(), + 'religion': serializers.IntegerField(), + 'sleight_of_hand': serializers.IntegerField(), + 'stealth': serializers.IntegerField(), + 'survival': serializers.IntegerField(), + } + )) def get_skill_bonuses(self, creature): '''Explicit skill bonuses helper method.''' entries = creature.get_skill_bonuses().items() return { key: value for key, value in entries if value is not None } + @extend_schema_field(inline_serializer( + name="skill_bonuses_all", + fields={ + # todo: all of these are typed as any + 'acrobatics': serializers.IntegerField(), + 'animal_handling': serializers.IntegerField(), + 'arcana': serializers.IntegerField(), + 'athletics': serializers.IntegerField(), + 'deception': serializers.IntegerField(), + 'history': serializers.IntegerField(), + 'insight': serializers.IntegerField(), + 'intimidation': serializers.IntegerField(), + 'investigation': serializers.IntegerField(), + 'medicine': serializers.IntegerField(), + 'nature': serializers.IntegerField(), + 'perception': serializers.IntegerField(), + 'performance': serializers.IntegerField(), + 'persuasion': serializers.IntegerField(), + 'religion': serializers.IntegerField(), + 'sleight_of_hand': serializers.IntegerField(), + 'stealth': serializers.IntegerField(), + 'survival': serializers.IntegerField(), + } + )) def get_skill_bonuses_all(self, creature): '''Implicit skill bonuses helper method.''' defaults = { @@ -151,18 +249,57 @@ def get_skill_bonuses_all(self, creature): entries = creature.get_skill_bonuses().items() return { key: (defaults[key] if value is None else value) for key, value in entries } + @extend_schema_field(inline_serializer( + name="speed", + fields={ + # todo: model typed as any + "walk": serializers.StringRelatedField(), + # todo: model typed as any + "fly": serializers.StringRelatedField(), + # todo: model typed as any + "swim": serializers.StringRelatedField(), + # todo: model typed as any + "climb": serializers.StringRelatedField(), + # todo: model typed as any + "burrow": serializers.StringRelatedField(), + # todo: and none + "hover": serializers.BooleanField(), + } + )) def get_speed(self, creature): '''Explicit speed helper method.''' entries = creature.get_speed().items() return { key: value for key, value in entries if value is not None } + @extend_schema_field(inline_serializer( + name="speed_all", + fields={ + # todo: model typed as any + "unit": serializers.StringRelatedField(), + # todo: model typed as any + "walk": serializers.StringRelatedField(), + # todo: model typed as any + "crawl": serializers.StringRelatedField(), + "hover": serializers.BooleanField(), + "fly": serializers.FloatField(), + "burrow": serializers.FloatField(), + # todo: model typed as any + "climb": serializers.StringRelatedField(), + # todo: model typed as any + "swim": serializers.StringRelatedField(), + } + )) def get_speed_all(self, creature): '''Implicit speed helper method.''' return creature.get_speed_all() + # todo: model typed as any + @extend_schema_field(OpenApiTypes.STR) def get_challenge_rating_text(self, creature): return creature.challenge_rating_text + # todo: model typed as any + @extend_schema_field(OpenApiTypes.INT) def get_experience_points(self, creature): return creature.experience_points diff --git a/api_v2/serializers/item.py b/api_v2/serializers/item.py index 3a3c00a6..f8460617 100644 --- a/api_v2/serializers/item.py +++ b/api_v2/serializers/item.py @@ -6,7 +6,8 @@ from .abstracts import GameContentSerializer from .size import SizeSerializer - +from drf_spectacular.utils import extend_schema_field +from drf_spectacular.types import OpenApiTypes class ArmorSerializer(GameContentSerializer): @@ -33,6 +34,8 @@ class Meta: model = models.Weapon fields = '__all__' + # todo: type is any + @extend_schema_field(OpenApiTypes.STR) def get_distance_unit(self, Weapon): return Weapon.get_distance_unit diff --git a/api_v2/serializers/search.py b/api_v2/serializers/search.py index 8b01c99c..083926ef 100644 --- a/api_v2/serializers/search.py +++ b/api_v2/serializers/search.py @@ -4,6 +4,8 @@ from api_v2 import models from api import models as v1 +from drf_spectacular.utils import extend_schema_field, inline_serializer +from drf_spectacular.types import OpenApiTypes class SearchResultSerializer(serializers.ModelSerializer): """This method builds the search result object structure. @@ -26,6 +28,7 @@ class Meta: 'text', 'highlighted'] + # todo: we want to type this as oneof all types... which might not be easy. def get_object(self, obj): """This returns a given object based on the lookup from the search result key.""" result_detail = None @@ -57,6 +60,14 @@ def get_object(self, obj): else: return None + @extend_schema_field(inline_serializer( + name="search_document", + fields={ + # todo: slug is typed as any + "key": serializers.StringRelatedField(), + "name": serializers.StringRelatedField() + } + )) def get_document(self, obj): """All search results have documents related to them, this returns the related document.""" if obj.schema_version == 'v1': @@ -73,6 +84,7 @@ def get_document(self, obj): 'name': doc.name } + @extend_schema_field(OpenApiTypes.STR) def get_route(self, obj): """Route is a way to build the link to the object.""" diff --git a/api_v2/serializers/size.py b/api_v2/serializers/size.py index 39bc2814..42599294 100644 --- a/api_v2/serializers/size.py +++ b/api_v2/serializers/size.py @@ -5,6 +5,8 @@ from api_v2 import models from .abstracts import GameContentSerializer +from drf_spectacular.utils import extend_schema_field +from drf_spectacular.types import OpenApiTypes class SizeSerializer(GameContentSerializer): """Serializer for the Size type""" @@ -15,5 +17,7 @@ class Meta: model = models.Size fields = '__all__' + # todo: model typed as any + @extend_schema_field(OpenApiTypes.STR) def get_distance_unit(self, Size): return Size.get_distance_unit diff --git a/api_v2/serializers/spell.py b/api_v2/serializers/spell.py index 3d1fe267..f632a495 100644 --- a/api_v2/serializers/spell.py +++ b/api_v2/serializers/spell.py @@ -6,6 +6,9 @@ from .abstracts import GameContentSerializer +from drf_spectacular.utils import extend_schema_field +from drf_spectacular.types import OpenApiTypes + class SpellSchoolSerializer(serializers.ModelSerializer): class Meta: model = models.SpellSchool @@ -27,9 +30,13 @@ class SpellSerializer(GameContentSerializer): range_unit = serializers.SerializerMethodField() shape_size_unit = serializers.SerializerMethodField() + # todo: model typed as any + @extend_schema_field(OpenApiTypes.STR) def get_range_unit(self, spell): return spell.get_range_unit() + #todo: model typed as any + @extend_schema_field(OpenApiTypes.STR) def get_shape_size_unit(self, spell): return spell.get_shape_size_unit() diff --git a/api_v2/views/enum.py b/api_v2/views/enum.py index 707a7cf4..b80e0359 100644 --- a/api_v2/views/enum.py +++ b/api_v2/views/enum.py @@ -3,7 +3,20 @@ from api_v2.models import enums +from drf_spectacular.types import OpenApiTypes +from rest_framework import serializers +from drf_spectacular.utils import extend_schema_field, extend_schema_view, extend_schema, inline_serializer +@extend_schema( + description="API endpoint for enums.", + responses={ + 200: serializers.ListSerializer( + child=serializers.DictField( + child=serializers.CharField() + ) + ) + } +) @api_view() def get_enums(_): """ diff --git a/server/oas.py b/server/oas.py new file mode 100644 index 00000000..ca23cb74 --- /dev/null +++ b/server/oas.py @@ -0,0 +1,15 @@ +# https://drf-spectacular.readthedocs.io/en/latest/customization.html#step-7-preprocessing-hooks +def custom_preprocessing_hook(endpoints): + # Only show api v2 endpoints + endpoints = [ + (path, path_regex, method, callback) + for (path, path_regex, method, callback) in endpoints + if path.startswith('/v2') + ] + + return endpoints + + +# https://drf-spectacular.readthedocs.io/en/latest/customization.html#step-6-postprocessing-hooks +# def custom_postprocessing_hook(result, generator, request, public): +# return result \ No newline at end of file diff --git a/server/settings.py b/server/settings.py index b309304f..30f00ecd 100644 --- a/server/settings.py +++ b/server/settings.py @@ -218,4 +218,7 @@ 'TITLE': 'Open5e', 'DESCRIPTION': 'The Open5e API includes all monsters and spells from the SRD and other', 'SERVERS': [{'url': 'https://api.open5e.com', 'description': 'Production server'}], + 'PREPROCESSING_HOOKS': [ + 'server.oas.custom_preprocessing_hook' + ] } \ No newline at end of file From 3f9656e335a563a1b979b118574194c6d06474b1 Mon Sep 17 00:00:00 2001 From: Aaron Hedges Date: Mon, 21 Oct 2024 20:17:53 -0400 Subject: [PATCH 03/10] fix some harder schemas --- api_v2/models/characterclass.py | 14 +++++++++++++- api_v2/models/weapon.py | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/api_v2/models/characterclass.py b/api_v2/models/characterclass.py index 5d23cf59..8e16dd46 100644 --- a/api_v2/models/characterclass.py +++ b/api_v2/models/characterclass.py @@ -9,6 +9,7 @@ from .enums import DIE_TYPES from drf_spectacular.utils import extend_schema_field, inline_serializer from drf_spectacular.types import OpenApiTypes +from rest_framework import serializers class ClassFeatureItem(models.Model): """This is the class for an individual class feature item, a subset of a class @@ -91,7 +92,18 @@ def features(self): """Returns the set of features that are related to this class.""" return self.classfeature_set - # todo: dict, key is the level, value is an object with `features` (an array of currently typed as any), `proficiency-bonus` (currently typed as any), and `level` (currently typed as any)` + @extend_schema_field(serializers.DictField( + child=inline_serializer( + name="levels", + fields={ + "features": serializers.ListSerializer( + child=serializers.CharField() + ), + "proficiency-bonus": serializers.IntegerField(), + "level": serializers.IntegerField + } + ) + )) def levels(self): """Returns an array of level information for the given class.""" by_level = {} diff --git a/api_v2/models/weapon.py b/api_v2/models/weapon.py index 70c8897c..774c4b26 100644 --- a/api_v2/models/weapon.py +++ b/api_v2/models/weapon.py @@ -8,6 +8,7 @@ from .document import FromDocument from drf_spectacular.utils import extend_schema_field from drf_spectacular.types import OpenApiTypes +from rest_framework import serializers class Weapon(HasName, FromDocument): """ @@ -144,7 +145,7 @@ def is_reach(self): return self.reach > 5 @property - # todo: array of enums ["special", "finesse", "ammunition", "light", "heavy", "thrown", "loading", "two-handed", "versatile", "reach"] + @extend_schema_field(serializers.ChoiceField(choices=['special', 'finesse', 'ammunition', 'light', 'heavy', 'thrown', 'loading', 'two-handed', 'versatile', 'reach'])) def properties(self): properties = [] From 43b0feeb4b208aab65552684be6d0f70febc9173 Mon Sep 17 00:00:00 2001 From: Aaron Hedges Date: Mon, 21 Oct 2024 21:17:18 -0400 Subject: [PATCH 04/10] add a postprocessing hook to fix the search object --- api_v2/serializers/search.py | 6 ++++-- server/oas.py | 16 ++++++++++++++-- server/settings.py | 5 ++++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/api_v2/serializers/search.py b/api_v2/serializers/search.py index 083926ef..bd6195ed 100644 --- a/api_v2/serializers/search.py +++ b/api_v2/serializers/search.py @@ -4,8 +4,9 @@ from api_v2 import models from api import models as v1 -from drf_spectacular.utils import extend_schema_field, inline_serializer +from drf_spectacular.utils import extend_schema_field, inline_serializer, PolymorphicProxySerializer from drf_spectacular.types import OpenApiTypes +from api_v2 import serializers as v2_serializers class SearchResultSerializer(serializers.ModelSerializer): """This method builds the search result object structure. @@ -28,7 +29,8 @@ class Meta: 'text', 'highlighted'] - # todo: we want to type this as oneof all types... which might not be easy. + # The following override is replaced in a postproccessing hook defined in oas.py. I couldn't figure out how to get a oneof in here + @extend_schema_field(OpenApiTypes.STR) def get_object(self, obj): """This returns a given object based on the lookup from the search result key.""" result_detail = None diff --git a/server/oas.py b/server/oas.py index ca23cb74..6af687b1 100644 --- a/server/oas.py +++ b/server/oas.py @@ -11,5 +11,17 @@ def custom_preprocessing_hook(endpoints): # https://drf-spectacular.readthedocs.io/en/latest/customization.html#step-6-postprocessing-hooks -# def custom_postprocessing_hook(result, generator, request, public): -# return result \ No newline at end of file +def custom_postprocessing_hook(result, generator, request, public): + + # Add a oneOf to the SearchResult object field. Couldn't figure out how to do this with @extend_schema_field + result['components']['schemas']['SearchResult']['properties']['object'] = { + 'oneOf': [ + { '$ref': '#/components/schemas/Item' }, + { '$ref': '#/components/schemas/Creature' }, + { '$ref': '#/components/schemas/Spell' }, + { '$ref': '#/components/schemas/CharacterClass' }, + { '$ref': '#/components/schemas/Race' } + ] + } + + return result \ No newline at end of file diff --git a/server/settings.py b/server/settings.py index 30f00ecd..77171c84 100644 --- a/server/settings.py +++ b/server/settings.py @@ -220,5 +220,8 @@ 'SERVERS': [{'url': 'https://api.open5e.com', 'description': 'Production server'}], 'PREPROCESSING_HOOKS': [ 'server.oas.custom_preprocessing_hook' - ] + ], + 'POSTPROCESSING_HOOKS': [ + 'server.oas.custom_postprocessing_hook' + ], } \ No newline at end of file From c5c7735f9b0b4ba01e0163c8ca546b10503196cf Mon Sep 17 00:00:00 2001 From: Aaron Hedges Date: Tue, 22 Oct 2024 15:38:29 -0400 Subject: [PATCH 05/10] fix decimal issue --- api_v2/models/abstracts.py | 3 ++- api_v2/models/creature.py | 4 ++-- api_v2/models/item.py | 4 ++-- api_v2/models/object.py | 4 ++-- api_v2/models/spell.py | 3 ++- api_v2/serializers/spell.py | 1 - 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/api_v2/models/abstracts.py b/api_v2/models/abstracts.py index c02ce819..e7cb18a6 100644 --- a/api_v2/models/abstracts.py +++ b/api_v2/models/abstracts.py @@ -13,6 +13,7 @@ from drf_spectacular.utils import extend_schema_field, inline_serializer from drf_spectacular.types import OpenApiTypes from rest_framework import serializers +import decimal # FIELDS USED ACROSS MULTIPLE MODELS @@ -52,7 +53,7 @@ def distance_field(null=True): return models.FloatField( null=null, blank=True, - validators=[MinValueValidator(0)], + validators=[MinValueValidator(decimal.Decimal(0.0))], help_text="Used to measure distance." ) diff --git a/api_v2/models/creature.py b/api_v2/models/creature.py index 5fe293ee..0cc83b64 100644 --- a/api_v2/models/creature.py +++ b/api_v2/models/creature.py @@ -15,7 +15,7 @@ from .document import FromDocument from .speed import HasSpeed from .enums import CREATURE_ATTACK_TYPES, CREATURE_USES_TYPES, ACTION_TYPES - +import decimal class CreatureType(HasName, HasDescription, FromDocument): @@ -69,7 +69,7 @@ class Creature(Object, HasAbilities, HasSenses, HasLanguage, HasSpeed, FromDocum null=False, max_digits=10, decimal_places=3, - validators=[MinValueValidator(0),MaxValueValidator(30)], + validators=[MinValueValidator(decimal.Decimal(0.0)),MaxValueValidator(decimal.Decimal(30.0))], help_text="Challenge Rating field as a decimal number." ) diff --git a/api_v2/models/item.py b/api_v2/models/item.py index 243c2ca8..a2f2830f 100644 --- a/api_v2/models/item.py +++ b/api_v2/models/item.py @@ -11,7 +11,7 @@ from .document import FromDocument from drf_spectacular.utils import extend_schema_field from drf_spectacular.types import OpenApiTypes - +import decimal class ItemRarity(HasName, FromDocument): """A class describing the rarity of items.""" @@ -36,7 +36,7 @@ class Item(Object, HasDescription, FromDocument): default=None, max_digits=10, decimal_places=2, # Only track down to 2 decimal places. - validators=[MinValueValidator(0)], + validators=[MinValueValidator(decimal.Decimal(0.0))], help_text='Number representing the cost of the object.') weapon = models.ForeignKey( diff --git a/api_v2/models/object.py b/api_v2/models/object.py index 0fda321f..555faef1 100644 --- a/api_v2/models/object.py +++ b/api_v2/models/object.py @@ -7,7 +7,7 @@ from .size import Size from .damagetype import DamageType from .enums import OBJECT_ARMOR_CLASS_MAXIMUM, OBJECT_HIT_POINT_MAXIMUM - +import decimal class Object(HasName): """ @@ -26,7 +26,7 @@ class Object(HasName): null=False, # Allow an unspecified weight. max_digits=10, decimal_places=3, - validators=[MinValueValidator(0)], + validators=[MinValueValidator(decimal.Decimal(0.0))], help_text='Number representing the weight of the object.') armor_class = models.IntegerField( diff --git a/api_v2/models/spell.py b/api_v2/models/spell.py index 3b70ca62..0ef7dec7 100644 --- a/api_v2/models/spell.py +++ b/api_v2/models/spell.py @@ -16,6 +16,7 @@ from .enums import SPELL_TARGET_RANGE_CHOICES, SPELL_CASTING_TIME_CHOICES from .enums import SPELL_EFFECT_SHAPE_CHOICES, SPELL_EFFECT_DURATIONS from .enums import CASTING_OPTION_TYPES +import decimal class SpellSchool(HasName, HasDescription, FromDocument): """The model for a spell school object.""" @@ -85,7 +86,7 @@ class Spell(HasName, HasDescription, FromDocument): default=None, max_digits=10, decimal_places=2, # Only track down to 2 decimal places. - validators=[MinValueValidator(0)], + validators=[MinValueValidator(decimal.Decimal(0.0))], help_text='Number representing the cost of the materials of the spell.') material_consumed = models.BooleanField( diff --git a/api_v2/serializers/spell.py b/api_v2/serializers/spell.py index f632a495..87fbef5a 100644 --- a/api_v2/serializers/spell.py +++ b/api_v2/serializers/spell.py @@ -23,7 +23,6 @@ class Meta: class SpellSerializer(GameContentSerializer): key = serializers.ReadOnlyField() - slot_expended=serializers.ReadOnlyField() casting_options = SpellCastingOptionSerializer(many=True) school = SpellSchoolSerializer() From 0d5ed00a8a2ea66763384ee40c0dc57678569797 Mon Sep 17 00:00:00 2001 From: Aaron Hedges Date: Tue, 22 Oct 2024 16:16:06 -0400 Subject: [PATCH 06/10] update github action --- .github/workflows/rdme-openapi.yml | 19 ++++++++++++++++++- .gitignore | 3 ++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rdme-openapi.yml b/.github/workflows/rdme-openapi.yml index 63589f7e..d650288e 100644 --- a/.github/workflows/rdme-openapi.yml +++ b/.github/workflows/rdme-openapi.yml @@ -17,7 +17,24 @@ jobs: - name: Check out repo 📚 uses: actions/checkout@v3 + - name: setup python + uses: actions/setup-python@v4 + with: + python-version: "3.11" + + - name: install python packages + run: | + python -m p install --upgrade pip pipenv + + - name: install dependencies + run: | + pipenv install + + - name: build oas file + run: | + pipenv run python manage.py spectacular --file openapi-schema.yml + - name: Run `openapi` command for v1🚀 uses: readmeio/rdme@v8 with: - rdme: openapi openapi-schema.yml --key=${{ secrets.README_API_KEY }} --id=641f6d9e0ffbcd06c0e7343c \ No newline at end of file + rdme: openapi openapi-schema.yml --key=${{ secrets.README_API_KEY }} --id=641f6d9e0ffbcd06c0e7343c diff --git a/.gitignore b/.gitignore index 61e79c89..35e51540 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,5 @@ server/whoosh_index/ # pyenv env file .python-version -api/tests/approved_files/*.recieved.* \ No newline at end of file +api/tests/approved_files/*.recieved.* +openapi-schema.yml From 3ebb03fe32eb196f5e64da41c5cf0601c79edc18 Mon Sep 17 00:00:00 2001 From: Aaron Hedges Date: Tue, 22 Oct 2024 16:21:03 -0400 Subject: [PATCH 07/10] temp tweak github action to test oas upload --- .github/workflows/rdme-openapi.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rdme-openapi.yml b/.github/workflows/rdme-openapi.yml index d650288e..58fb29fa 100644 --- a/.github/workflows/rdme-openapi.yml +++ b/.github/workflows/rdme-openapi.yml @@ -9,6 +9,7 @@ on: # Check out GitHub's docs for more info on configuring this: # https://docs.github.com/actions/using-workflows/events-that-trigger-workflows - main + - oas-v2 jobs: rdme-openapi: @@ -37,4 +38,4 @@ jobs: - name: Run `openapi` command for v1🚀 uses: readmeio/rdme@v8 with: - rdme: openapi openapi-schema.yml --key=${{ secrets.README_API_KEY }} --id=641f6d9e0ffbcd06c0e7343c + rdme: openapi openapi-schema.yml --key=${{ secrets.README_API_KEY }} --id=6715b7fb7960ee004eb4a8cf From c7bbb510c0d2579fd5dc0231e9d1f5d373c25e33 Mon Sep 17 00:00:00 2001 From: Aaron Hedges Date: Tue, 22 Oct 2024 16:28:51 -0400 Subject: [PATCH 08/10] more github action tests --- .github/workflows/rdme-openapi.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rdme-openapi.yml b/.github/workflows/rdme-openapi.yml index 58fb29fa..06e2db49 100644 --- a/.github/workflows/rdme-openapi.yml +++ b/.github/workflows/rdme-openapi.yml @@ -9,7 +9,8 @@ on: # Check out GitHub's docs for more info on configuring this: # https://docs.github.com/actions/using-workflows/events-that-trigger-workflows - main - - oas-v2 + pull_request: + types: [opened, synchronize, reopened] jobs: rdme-openapi: From 37416c04ea2141bf513da18056c379a92c409cb0 Mon Sep 17 00:00:00 2001 From: Aaron Hedges Date: Tue, 22 Oct 2024 16:31:40 -0400 Subject: [PATCH 09/10] more github action tests --- .github/workflows/rdme-openapi.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/rdme-openapi.yml b/.github/workflows/rdme-openapi.yml index 06e2db49..81634453 100644 --- a/.github/workflows/rdme-openapi.yml +++ b/.github/workflows/rdme-openapi.yml @@ -16,17 +16,14 @@ jobs: rdme-openapi: runs-on: ubuntu-latest steps: - - name: Check out repo 📚 - uses: actions/checkout@v3 - - - name: setup python - uses: actions/setup-python@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: "3.11" - - name: install python packages + - name: install pipenv run: | - python -m p install --upgrade pip pipenv + pip install pipenv - name: install dependencies run: | From 4a24ecf2d1135e78fe5fb8a940a6e0876cb9189f Mon Sep 17 00:00:00 2001 From: Aaron Hedges Date: Tue, 22 Oct 2024 16:34:35 -0400 Subject: [PATCH 10/10] remove pull request option for rdme github action --- .github/workflows/rdme-openapi.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/rdme-openapi.yml b/.github/workflows/rdme-openapi.yml index 81634453..86b2f70e 100644 --- a/.github/workflows/rdme-openapi.yml +++ b/.github/workflows/rdme-openapi.yml @@ -9,8 +9,6 @@ on: # Check out GitHub's docs for more info on configuring this: # https://docs.github.com/actions/using-workflows/events-that-trigger-workflows - main - pull_request: - types: [opened, synchronize, reopened] jobs: rdme-openapi: