diff --git a/backend/Pipfile.lock b/backend/Pipfile.lock index 3973491..19c6849 100644 --- a/backend/Pipfile.lock +++ b/backend/Pipfile.lock @@ -23,44 +23,53 @@ }, "anyio": { "hashes": [ - "sha256:413adf95f93886e442aea925f3ee43baa5a765a64a0f52c6081894f9992fdd0b", - "sha256:cb29b9c70620506a9a8f87a309591713446953302d7d995344d0d7c6c0c9a7be" + "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421", + "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3" ], "markers": "python_full_version >= '3.6.2'", - "version": "==3.6.1" + "version": "==3.6.2" }, "azure-core": { "hashes": [ - "sha256:3c1cf368650e76ec009c07cd1174a95cdcb471b247bb72d18245f7d56c1809b2", - "sha256:b0d62e67ec6d47365eebb12c50bc96f7b22d06b359f56ce7f904b095cb46b195" + "sha256:578ea3ae56bca48880c96797871b6c954b5ae78d10d54360182c7604dc837f25", + "sha256:b0036a0d256329e08d1278dff7df36be30031d2ec9b16c691bc61e4732f71fe0" ], "markers": "python_version >= '3.7'", - "version": "==1.25.1" + "version": "==1.26.0" }, "azure-storage-blob": { "hashes": [ - "sha256:1477dfd2efad0e88d7529606b30c131bcc6575cd162869122d78fc7eafba3f45", - "sha256:eae1442aa425564daa98a707303451ee2823230fc13f11c5d7c541eab015f9d6" + "sha256:52b84658e8df7853a3cf1c563814655b5028b979b2a87905b92aa6bb30be240e", + "sha256:860d4d82985a4bfc7d3271e71275af330f54f330a754355435a7ba749ccde997" ], "markers": "python_version >= '3.7'", - "version": "==12.14.0b2" + "version": "==12.14.1" }, "bcrypt": { "hashes": [ - "sha256:0b0f0c7141622a31e9734b7f649451147c04ebb5122327ac0bd23744df84be90", - "sha256:1c3334446fac200499e8bc04a530ce3cf0b3d7151e0e4ac5c0dddd3d95e97843", - "sha256:2d0dd19aad87e4ab882ef1d12df505f4c52b28b69666ce83c528f42c07379227", - "sha256:594780b364fb45f2634c46ec8d3e61c1c0f1811c4f2da60e8eb15594ecbf93ed", - "sha256:7c7dd6c1f05bf89e65261d97ac3a6520f34c2acb369afb57e3ea4449be6ff8fd", - "sha256:845b1daf4df2dd94d2fdbc9454953ca9dd0e12970a0bfc9f3dcc6faea3fa96e4", - "sha256:8780e69f9deec9d60f947b169507d2c9816e4f11548f1f7ebee2af38b9b22ae4", - "sha256:bf413f2a9b0a2950fc750998899013f2e718d20fa4a58b85ca50b6df5ed1bbf9", - "sha256:bfb67f6a6c72dfb0a02f3df51550aa1862708e55128b22543e2b42c74f3620d7", - "sha256:c59c170fc9225faad04dde1ba61d85b413946e8ce2e5f5f5ff30dfd67283f319", - "sha256:dc6ec3dc19b1c193b2f7cf279d3e32e7caf447532fbcb7af0906fe4398900c33", - "sha256:ede0f506554571c8eda80db22b83c139303ec6b595b8f60c4c8157bdd0bdee36" + "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535", + "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0", + "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410", + "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd", + "sha256:2b3ac11cf45161628f1f3733263e63194f22664bf4d0c0f3ab34099c02134665", + "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab", + "sha256:3100851841186c25f127731b9fa11909ab7b1df6fc4b9f8353f4f1fd952fbf71", + "sha256:5ad4d32a28b80c5fa6671ccfb43676e8c1cc232887759d1cd7b6f56ea4355215", + "sha256:67a97e1c405b24f19d08890e7ae0c4f7ce1e56a712a016746c8b2d7732d65d4b", + "sha256:705b2cea8a9ed3d55b4491887ceadb0106acf7c6387699fca771af56b1cdeeda", + "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9", + "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a", + "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344", + "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f", + "sha256:b3b85202d95dd568efcb35b53936c5e3b3600c7cdcc6115ba461df3a8e89f38d", + "sha256:b57adba8a1444faf784394de3436233728a1ecaeb6e07e8c22c8848f179b893c", + "sha256:bf4fa8b2ca74381bb5442c089350f09a3f17797829d958fad058d6e44d9eb83c", + "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2", + "sha256:cbb03eec97496166b704ed663a53680ab57c5084b2fc98ef23291987b525cb7d", + "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e", + "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3" ], - "version": "==4.0.0" + "version": "==4.0.1" }, "cachetools": { "hashes": [ @@ -72,11 +81,11 @@ }, "certifi": { "hashes": [ - "sha256:36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5", - "sha256:e232343de1ab72c2aa521b625c80f699e356830fd0e2c620b465b304b17b0516" + "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14", + "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382" ], "markers": "python_version >= '3.6'", - "version": "==2022.9.14" + "version": "==2022.9.24" }, "cffi": { "hashes": [ @@ -152,7 +161,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.1.1" }, "click": { @@ -243,11 +252,11 @@ }, "faker": { "hashes": [ - "sha256:6db56e2c43a2b74250d1c332ef25fef7dc07dcb6c5fab5329dd7b4467b8ed7b9", - "sha256:e02c55a5b0586caaf913cc6c254b3de178e08b031c5922e590fd033ebbdbfd02" + "sha256:096c15e136adb365db24d8c3964fe26bfc68fe060c9385071a339f8c14e09c8a", + "sha256:a741b77f484215c3aab2604100669657189548f440fcb2ed0f8b7ee21c385629" ], - "markers": "python_version >= '3.6'", - "version": "==14.2.0" + "markers": "python_version >= '3.7'", + "version": "==15.1.1" }, "fastapi": { "hashes": [ @@ -274,11 +283,11 @@ }, "google-auth": { "hashes": [ - "sha256:516e6623038b81430dd062a1a25ecd24f173d7c15cdf4e48a9e78bc87e97aeec", - "sha256:53bdc0c2b4e25895575779caef4cfb3a6bdff1b7b32dc38a654d71aba35bb5f8" + "sha256:9352dd6394093169157e6971526bab9a2799244d68a94a4a609f0dd751ef6f5e", + "sha256:99510e664155f1a3c0396a076b5deb6367c52ea04d280152c85ac7f51f50eb42" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==2.11.1" + "version": "==2.13.0" }, "greenlet": { "hashes": [ @@ -342,11 +351,11 @@ }, "h11": { "hashes": [ - "sha256:70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06", - "sha256:8ddd78563b633ca55346c8cd41ec0af27d3c79931828beffb46ce70a379e7442" + "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", + "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761" ], - "markers": "python_version >= '3.6'", - "version": "==0.13.0" + "markers": "python_version >= '3.7'", + "version": "==0.14.0" }, "idna": { "hashes": [ @@ -387,11 +396,11 @@ }, "kubernetes": { "hashes": [ - "sha256:9900f12ae92007533247167d14cdee949cd8c7721f88b4a7da5f5351da3834cd", - "sha256:da19d58865cf903a8c7b9c3691a2e6315d583a98f0659964656dfdf645bf7e49" + "sha256:293b89aca0b17d0c2c09e32a74d6944d820310fe51d75c995c9d896ebae2f276", + "sha256:cafb2263c612b91ca9dbd95b5df6678fdde203fa429c680b947cdd2e8f55382e" ], "markers": "python_version >= '3.6'", - "version": "==24.2.0" + "version": "==25.3.0b1" }, "loguru": { "hashes": [ @@ -449,10 +458,10 @@ }, "minio": { "hashes": [ - "sha256:12ac2d1d4fd3cea159d625847445e1bfceba3fbc2f4ab692c2d2bf716f82246c", - "sha256:1cab424275749b8b5b8bb0c6cc856d667305ef549796ae56f3237fe55306a1fc" + "sha256:63111fedf67e07c5a4c8948b3a4e5ecbb372b522ea562bfa4d484194ec6a2b99", + "sha256:c8ab8646f93d47b9aefbf4db76aaba5ac54c87454b922a3d6c1423aed050aad5" ], - "version": "==7.1.11" + "version": "==7.1.12" }, "msrest": { "hashes": [ @@ -464,11 +473,11 @@ }, "oauthlib": { "hashes": [ - "sha256:1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721", - "sha256:88e912ca1ad915e1dcc1c06fc9259d19de8deacd6fd17cc2df266decc2e49066" + "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", + "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918" ], "markers": "python_version >= '3.6'", - "version": "==3.2.1" + "version": "==3.2.2" }, "packaging": { "hashes": [ @@ -497,58 +506,62 @@ }, "psutil": { "hashes": [ - "sha256:14b29f581b5edab1f133563272a6011925401804d52d603c5c606936b49c8b97", - "sha256:256098b4f6ffea6441eb54ab3eb64db9ecef18f6a80d7ba91549195d55420f84", - "sha256:39ec06dc6c934fb53df10c1672e299145ce609ff0611b569e75a88f313634969", - "sha256:404f4816c16a2fcc4eaa36d7eb49a66df2d083e829d3e39ee8759a411dbc9ecf", - "sha256:42638876b7f5ef43cef8dcf640d3401b27a51ee3fa137cb2aa2e72e188414c32", - "sha256:4642fd93785a29353d6917a23e2ac6177308ef5e8be5cc17008d885cb9f70f12", - "sha256:4fb54941aac044a61db9d8eb56fc5bee207db3bc58645d657249030e15ba3727", - "sha256:561dec454853846d1dd0247b44c2e66a0a0c490f937086930ec4b8f83bf44f06", - "sha256:5d39e3a2d5c40efa977c9a8dd4f679763c43c6c255b1340a56489955dbca767c", - "sha256:614337922702e9be37a39954d67fdb9e855981624d8011a9927b8f2d3c9625d9", - "sha256:67b33f27fc0427483b61563a16c90d9f3b547eeb7af0ef1b9fe024cdc9b3a6ea", - "sha256:68b35cbff92d1f7103d8f1db77c977e72f49fcefae3d3d2b91c76b0e7aef48b8", - "sha256:7cbb795dcd8ed8fd238bc9e9f64ab188f3f4096d2e811b5a82da53d164b84c3f", - "sha256:8f024fbb26c8daf5d70287bb3edfafa22283c255287cf523c5d81721e8e5d82c", - "sha256:91aa0dac0c64688667b4285fa29354acfb3e834e1fd98b535b9986c883c2ce1d", - "sha256:94e621c6a4ddb2573d4d30cba074f6d1aa0186645917df42c811c473dd22b339", - "sha256:9770c1d25aee91417eba7869139d629d6328a9422ce1cdd112bd56377ca98444", - "sha256:b1928b9bf478d31fdffdb57101d18f9b70ed4e9b0e41af751851813547b2a9ab", - "sha256:b2f248ffc346f4f4f0d747ee1947963613216b06688be0be2e393986fe20dbbb", - "sha256:b315febaebae813326296872fdb4be92ad3ce10d1d742a6b0c49fb619481ed0b", - "sha256:b3591616fa07b15050b2f87e1cdefd06a554382e72866fcc0ab2be9d116486c8", - "sha256:b4018d5f9b6651f9896c7a7c2c9f4652e4eea53f10751c4e7d08a9093ab587ec", - "sha256:d75291912b945a7351d45df682f9644540d564d62115d4a20d45fa17dc2d48f8", - "sha256:dc9bda7d5ced744622f157cc8d8bdd51735dafcecff807e928ff26bdb0ff097d", - "sha256:e3ac2c0375ef498e74b9b4ec56df3c88be43fe56cac465627572dbfb21c4be34", - "sha256:e4c4a7636ffc47b7141864f1c5e7d649f42c54e49da2dd3cceb1c5f5d29bfc85", - "sha256:ed29ea0b9a372c5188cdb2ad39f937900a10fb5478dc077283bf86eeac678ef1", - "sha256:f40ba362fefc11d6bea4403f070078d60053ed422255bd838cd86a40674364c9", - "sha256:f4cb67215c10d4657e320037109939b1c1d2fd70ca3d76301992f89fe2edb1f1", - "sha256:f7929a516125f62399d6e8e026129c8835f6c5a3aab88c3fff1a05ee8feb840d", - "sha256:fd331866628d18223a4265371fd255774affd86244fc307ef66eaf00de0633d5", - "sha256:feb861a10b6c3bb00701063b37e4afc754f8217f0f09c42280586bd6ac712b5c" + "sha256:07d880053c6461c9b89cd5d4808f3b8336665fa3acdefd6777662c5ed73a851a", + "sha256:12500d761ac091f2426567f19f95fd3f15a197d96befb44a5c1e3cbe6db5752c", + "sha256:1b540599481c73408f6b392cdffef5b01e8ff7a2ac8caae0a91b8222e88e8f1e", + "sha256:35feafe232d1aaf35d51bd42790cbccb882456f9f18cdc411532902370d660df", + "sha256:3a7826e68b0cf4ce2c1ee385d64eab7d70e3133171376cac53d7c1790357ec8f", + "sha256:46907fa62acaac364fff0b8a9da7b360265d217e4fdeaca0a2397a6883dffba2", + "sha256:4bd4854f0c83aa84a5a40d3b5d0eb1f3c128f4146371e03baed4589fe4f3c931", + "sha256:538fcf6ae856b5e12d13d7da25ad67f02113c96f5989e6ad44422cb5994ca7fc", + "sha256:547ebb02031fdada635452250ff39942db8310b5c4a8102dfe9384ee5791e650", + "sha256:5e8b50241dd3c2ed498507f87a6602825073c07f3b7e9560c58411c14fe1e1c9", + "sha256:5fa88e3d5d0b480602553d362c4b33a63e0c40bfea7312a7bf78799e01e0810b", + "sha256:68fa227c32240c52982cb931801c5707a7f96dd8927f9102d6c7771ea1ff5698", + "sha256:6ced1ad823ecfa7d3ce26fe8aa4996e2e53fb49b7fed8ad81c80958501ec0619", + "sha256:71b1206e7909792d16933a0d2c1c7f04ae196186c51ba8567abae1d041f06dcb", + "sha256:767ef4fa33acda16703725c0473a91e1832d296c37c63896c7153ba81698f1ab", + "sha256:7ccfcdfea4fc4b0a02ca2c31de7fcd186beb9cff8207800e14ab66f79c773af6", + "sha256:7e4939ff75149b67aef77980409f156f0082fa36accc475d45c705bb00c6c16a", + "sha256:828c9dc9478b34ab96be75c81942d8df0c2bb49edbb481f597314d92b6441d89", + "sha256:8a4e07611997acf178ad13b842377e3d8e9d0a5bac43ece9bfc22a96735d9a4f", + "sha256:941a6c2c591da455d760121b44097781bc970be40e0e43081b9139da485ad5b7", + "sha256:9a4af6ed1094f867834f5f07acd1250605a0874169a5fcadbcec864aec2496a6", + "sha256:9ec296f565191f89c48f33d9544d8d82b0d2af7dd7d2d4e6319f27a818f8d1cc", + "sha256:9ec95df684583b5596c82bb380c53a603bb051cf019d5c849c47e117c5064395", + "sha256:a04a1836894c8279e5e0a0127c0db8e198ca133d28be8a2a72b4db16f6cf99c1", + "sha256:a3d81165b8474087bb90ec4f333a638ccfd1d69d34a9b4a1a7eaac06648f9fbe", + "sha256:b4a247cd3feaae39bb6085fcebf35b3b8ecd9b022db796d89c8f05067ca28e71", + "sha256:ba38cf9984d5462b506e239cf4bc24e84ead4b1d71a3be35e66dad0d13ded7c1", + "sha256:beb57d8a1ca0ae0eb3d08ccaceb77e1a6d93606f0e1754f0d60a6ebd5c288837", + "sha256:d266cd05bd4a95ca1c2b9b5aac50d249cf7c94a542f47e0b22928ddf8b80d1ef", + "sha256:d8c3cc6bb76492133474e130a12351a325336c01c96a24aae731abf5a47fe088", + "sha256:db8e62016add2235cc87fb7ea000ede9e4ca0aa1f221b40cef049d02d5d2593d", + "sha256:e7507f6c7b0262d3e7b0eeda15045bf5881f4ada70473b87bc7b7c93b992a7d7", + "sha256:ed15edb14f52925869250b1375f0ff58ca5c4fa8adefe4883cfb0737d32f5c02", + "sha256:f57d63a2b5beaf797b87024d018772439f9d3103a395627b77d17a8d72009543", + "sha256:fa5e32c7d9b60b2528108ade2929b115167fe98d59f89555574715054f50fa31", + "sha256:fe79b4ad4836e3da6c4650cb85a663b3a51aef22e1a829c384e18fae87e5e727" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==5.9.2" + "version": "==5.9.3" }, "psycopg2": { "hashes": [ - "sha256:06f32425949bd5fe8f625c49f17ebb9784e1e4fe928b7cce72edc36fb68e4c0c", - "sha256:0762c27d018edbcb2d34d51596e4346c983bd27c330218c56c4dc25ef7e819bf", - "sha256:083707a696e5e1c330af2508d8fab36f9700b26621ccbcb538abe22e15485362", - "sha256:34b33e0162cfcaad151f249c2649fd1030010c16f4bbc40a604c1cb77173dcf7", - "sha256:4295093a6ae3434d33ec6baab4ca5512a5082cc43c0505293087b8a46d108461", - "sha256:8cf3878353cc04b053822896bc4922b194792df9df2f1ad8da01fb3043602126", - "sha256:8e841d1bf3434da985cc5ef13e6f75c8981ced601fd70cc6bf33351b91562981", - "sha256:9572e08b50aed176ef6d66f15a21d823bb6f6d23152d35e8451d7d2d18fdac56", - "sha256:a81e3866f99382dfe8c15a151f1ca5fde5815fde879348fe5a9884a7c092a305", - "sha256:cb10d44e6694d763fa1078a26f7f6137d69f555a78ec85dc2ef716c37447e4b2", - "sha256:d3ca6421b942f60c008f81a3541e8faf6865a28d5a9b48544b0ee4f40cac7fca" + "sha256:07b90a24d5056687781ddaef0ea172fd951f2f7293f6ffdd03d4f5077801f426", + "sha256:1da77c061bdaab450581458932ae5e469cc6e36e0d62f988376e9f513f11cb5c", + "sha256:46361c054df612c3cc813fdb343733d56543fb93565cff0f8ace422e4da06acb", + "sha256:839f9ea8f6098e39966d97fcb8d08548fbc57c523a1e27a1f0609addf40f777c", + "sha256:849bd868ae3369932127f0771c08d1109b254f08d48dc42493c3d1b87cb2d308", + "sha256:8de6a9fc5f42fa52f559e65120dcd7502394692490c98fed1221acf0819d7797", + "sha256:a11946bad3557ca254f17357d5a4ed63bdca45163e7a7d2bfb8e695df069cc3a", + "sha256:aa184d551a767ad25df3b8d22a0a62ef2962e0e374c04f6cbd1204947f540d61", + "sha256:aafa96f2da0071d6dd0cbb7633406d99f414b40ab0f918c9d9af7df928a1accb", + "sha256:c7fa041b4acb913f6968fce10169105af5200f296028251d817ab37847c30184", + "sha256:d529926254e093a1b669f692a3aa50069bc71faf5b0ecd91686a78f62767d52f" ], "markers": "python_version >= '3.6'", - "version": "==2.9.3" + "version": "==2.9.4" }, "pyasn1": { "hashes": [ @@ -717,7 +730,7 @@ "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" ], - "markers": "python_version >= '3.7' and python_version < '4.0'", + "markers": "python_version >= '3.7' and python_version < '4'", "version": "==2.28.1" }, "requests-oauthlib": { @@ -730,26 +743,27 @@ }, "requests-toolbelt": { "hashes": [ - "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f", - "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0" + "sha256:64c6b8c51b515d123f9f708a29743f44eb70c4479440641ed2df8c4dea56d985", + "sha256:f695d6207931200b46c8ef6addbc8a921fb5d77cc4cd209c2e7d39293fcd2b30" ], - "version": "==0.9.1" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.10.0" }, "rsa": { "hashes": [ "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21" ], - "markers": "python_version >= '3.6' and python_version < '4.0'", + "markers": "python_version >= '3.6' and python_version < '4'", "version": "==4.9" }, "setuptools": { "hashes": [ - "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82", - "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57" + "sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17", + "sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356" ], "markers": "python_version >= '3.7'", - "version": "==65.3.0" + "version": "==65.5.0" }, "shortuuid": { "hashes": [ @@ -777,50 +791,50 @@ }, "sqlalchemy": { "hashes": [ - "sha256:0002e829142b2af00b4eaa26c51728f3ea68235f232a2e72a9508a3116bd6ed0", - "sha256:0005bd73026cd239fc1e8ccdf54db58b6193be9a02b3f0c5983808f84862c767", - "sha256:0292f70d1797e3c54e862e6f30ae474014648bc9c723e14a2fda730adb0a9791", - "sha256:036d8472356e1d5f096c5e0e1a7e0f9182140ada3602f8fff6b7329e9e7cfbcd", - "sha256:05f0de3a1dc3810a776275763764bb0015a02ae0f698a794646ebc5fb06fad33", - "sha256:0990932f7cca97fece8017414f57fdd80db506a045869d7ddf2dda1d7cf69ecc", - "sha256:13e397a9371ecd25573a7b90bd037db604331cf403f5318038c46ee44908c44d", - "sha256:14576238a5f89bcf504c5f0a388d0ca78df61fb42cb2af0efe239dc965d4f5c9", - "sha256:199a73c31ac8ea59937cc0bf3dfc04392e81afe2ec8a74f26f489d268867846c", - "sha256:2082a2d2fca363a3ce21cfa3d068c5a1ce4bf720cf6497fb3a9fc643a8ee4ddd", - "sha256:22ff16cedab5b16a0db79f1bc99e46a6ddececb60c396562e50aab58ddb2871c", - "sha256:2307495d9e0ea00d0c726be97a5b96615035854972cc538f6e7eaed23a35886c", - "sha256:2ad2b727fc41c7f8757098903f85fafb4bf587ca6605f82d9bf5604bd9c7cded", - "sha256:2d6495f84c4fd11584f34e62f9feec81bf373787b3942270487074e35cbe5330", - "sha256:361f6b5e3f659e3c56ea3518cf85fbdae1b9e788ade0219a67eeaaea8a4e4d2a", - "sha256:3e2ef592ac3693c65210f8b53d0edcf9f4405925adcfc031ff495e8d18169682", - "sha256:4676d51c9f6f6226ae8f26dc83ec291c088fe7633269757d333978df78d931ab", - "sha256:4ba7e122510bbc07258dc42be6ed45997efdf38129bde3e3f12649be70683546", - "sha256:5102fb9ee2c258a2218281adcb3e1918b793c51d6c2b4666ce38c35101bb940e", - "sha256:5323252be2bd261e0aa3f33cb3a64c45d76829989fa3ce90652838397d84197d", - "sha256:58bb65b3274b0c8a02cea9f91d6f44d0da79abc993b33bdedbfec98c8440175a", - "sha256:59bdc291165b6119fc6cdbc287c36f7f2859e6051dd923bdf47b4c55fd2f8bd0", - "sha256:5facb7fd6fa8a7353bbe88b95695e555338fb038ad19ceb29c82d94f62775a05", - "sha256:639e1ae8d48b3c86ffe59c0daa9a02e2bfe17ca3d2b41611b30a0073937d4497", - "sha256:8eb8897367a21b578b26f5713833836f886817ee2ffba1177d446fa3f77e67c8", - "sha256:90484a2b00baedad361402c257895b13faa3f01780f18f4a104a2f5c413e4536", - "sha256:9c56e19780cd1344fcd362fd6265a15f48aa8d365996a37fab1495cae8fcd97d", - "sha256:b67fc780cfe2b306180e56daaa411dd3186bf979d50a6a7c2a5b5036575cbdbb", - "sha256:c0dcf127bb99458a9d211e6e1f0f3edb96c874dd12f2503d4d8e4f1fd103790b", - "sha256:c23d64a0b28fc78c96289ffbd0d9d1abd48d267269b27f2d34e430ea73ce4b26", - "sha256:ccfd238f766a5bb5ee5545a62dd03f316ac67966a6a658efb63eeff8158a4bbf", - "sha256:cd767cf5d7252b1c88fcfb58426a32d7bd14a7e4942497e15b68ff5d822b41ad", - "sha256:ce8feaa52c1640de9541eeaaa8b5fb632d9d66249c947bb0d89dd01f87c7c288", - "sha256:d2e054aed4645f9b755db85bc69fc4ed2c9020c19c8027976f66576b906a74f1", - "sha256:e16c2be5cb19e2c08da7bd3a87fed2a0d4e90065ee553a940c4fc1a0fb1ab72b", - "sha256:e4b12e3d88a8fffd0b4ca559f6d4957ed91bd4c0613a4e13846ab8729dc5c251", - "sha256:e570cfc40a29d6ad46c9aeaddbdcee687880940a3a327f2c668dd0e4ef0a441d", - "sha256:eb30cf008850c0a26b72bd1b9be6730830165ce049d239cfdccd906f2685f892", - "sha256:f37fa70d95658763254941ddd30ecb23fc4ec0c5a788a7c21034fc2305dab7cc", - "sha256:f5ebeeec5c14533221eb30bad716bc1fd32f509196318fb9caa7002c4a364e4c", - "sha256:f5fa526d027d804b1f85cdda1eb091f70bde6fb7d87892f6dd5a48925bc88898" + "sha256:04f2598c70ea4a29b12d429a80fad3a5202d56dce19dd4916cc46a965a5ca2e9", + "sha256:0501f74dd2745ec38f44c3a3900fb38b9db1ce21586b691482a19134062bf049", + "sha256:0ee377eb5c878f7cefd633ab23c09e99d97c449dd999df639600f49b74725b80", + "sha256:11b2ec26c5d2eefbc3e6dca4ec3d3d95028be62320b96d687b6e740424f83b7d", + "sha256:15d878929c30e41fb3d757a5853b680a561974a0168cd33a750be4ab93181628", + "sha256:177e41914c476ed1e1b77fd05966ea88c094053e17a85303c4ce007f88eff363", + "sha256:1811a0b19a08af7750c0b69e38dec3d46e47c4ec1d74b6184d69f12e1c99a5e0", + "sha256:1d0c23ecf7b3bc81e29459c34a3f4c68ca538de01254e24718a7926810dc39a6", + "sha256:22459fc1718785d8a86171bbe7f01b5c9d7297301ac150f508d06e62a2b4e8d2", + "sha256:28e881266a172a4d3c5929182fde6bb6fba22ac93f137d5380cc78a11a9dd124", + "sha256:2e56dfed0cc3e57b2f5c35719d64f4682ef26836b81067ee6cfad062290fd9e2", + "sha256:2fd49af453e590884d9cdad3586415922a8e9bb669d874ee1dc55d2bc425aacd", + "sha256:3ab7c158f98de6cb4f1faab2d12973b330c2878d0c6b689a8ca424c02d66e1b3", + "sha256:4948b6c5f4e56693bbeff52f574279e4ff972ea3353f45967a14c30fb7ae2beb", + "sha256:4e1c5f8182b4f89628d782a183d44db51b5af84abd6ce17ebb9804355c88a7b5", + "sha256:5ce6929417d5dce5ad1d3f147db81735a4a0573b8fb36e3f95500a06eaddd93e", + "sha256:5ede1495174e69e273fad68ad45b6d25c135c1ce67723e40f6cf536cb515e20b", + "sha256:5f966b64c852592469a7eb759615bbd351571340b8b344f1d3fa2478b5a4c934", + "sha256:6045b3089195bc008aee5c273ec3ba9a93f6a55bc1b288841bd4cfac729b6516", + "sha256:6c9d004eb78c71dd4d3ce625b80c96a827d2e67af9c0d32b1c1e75992a7916cc", + "sha256:6e39e97102f8e26c6c8550cb368c724028c575ec8bc71afbbf8faaffe2b2092a", + "sha256:723e3b9374c1ce1b53564c863d1a6b2f1dc4e97b1c178d9b643b191d8b1be738", + "sha256:876eb185911c8b95342b50a8c4435e1c625944b698a5b4a978ad2ffe74502908", + "sha256:9256563506e040daddccaa948d055e006e971771768df3bb01feeb4386c242b0", + "sha256:934472bb7d8666727746a75670a1f8d91a9cae8c464bba79da30a0f6faccd9e1", + "sha256:97ff50cd85bb907c2a14afb50157d0d5486a4b4639976b4a3346f34b6d1b5272", + "sha256:9b01d9cd2f9096f688c71a3d0f33f3cd0af8549014e66a7a7dee6fc214a7277d", + "sha256:9e3a65ce9ed250b2f096f7b559fe3ee92e6605fab3099b661f0397a9ac7c8d95", + "sha256:a7dd5b7b34a8ba8d181402d824b87c5cee8963cb2e23aa03dbfe8b1f1e417cde", + "sha256:a85723c00a636eed863adb11f1e8aaa36ad1c10089537823b4540948a8429798", + "sha256:b42c59ffd2d625b28cdb2ae4cde8488543d428cba17ff672a543062f7caee525", + "sha256:bd448b262544b47a2766c34c0364de830f7fb0772d9959c1c42ad61d91ab6565", + "sha256:ca9389a00f639383c93ed00333ed763812f80b5ae9e772ea32f627043f8c9c88", + "sha256:df76e9c60879fdc785a34a82bf1e8691716ffac32e7790d31a98d7dec6e81545", + "sha256:e12c6949bae10f1012ab5c0ea52ab8db99adcb8c7b717938252137cdf694c775", + "sha256:e4ef8cb3c5b326f839bfeb6af5f406ba02ad69a78c7aac0fbeeba994ad9bb48a", + "sha256:e7e740453f0149437c101ea4fdc7eea2689938c5760d7dcc436c863a12f1f565", + "sha256:effc89e606165ca55f04f3f24b86d3e1c605e534bf1a96e4e077ce1b027d0b71", + "sha256:f0f574465b78f29f533976c06b913e54ab4980b9931b69aa9d306afff13a9471", + "sha256:fa5b7eb2051e857bf83bade0641628efe5a88de189390725d3e6033a1fff4257", + "sha256:fdb94a3d1ba77ff2ef11912192c066f01e68416f554c194d769391638c8ad09a" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.4.41" + "version": "==1.4.42" }, "starlette": { "hashes": [ @@ -832,31 +846,38 @@ }, "streaming-form-data": { "hashes": [ - "sha256:1bfbe6fa880fa35d73db187d5d52fda9b79c8f57944a078696714a24c3f9c3f9", - "sha256:20f619b674b5d5b1e1629b4dc60400f7dd4ed17eeebc27725664e45fe1cb68c1", - "sha256:3c0a8a1a13e05de9c236aca6c3a3a0df13968fc7f1bda1869a8e4858ce0d4fdf", - "sha256:3c4932a6ce2c0b518bac5e024ff1452f4ed9046ca80e79bfdfd9dff883949a60", - "sha256:4b90e1020e94df2e7071899da3d8ab759e93252147f4353b929a7b731aec3135", - "sha256:51cd8db8c6f65b0f17a05e021269a797d266aeb455e49cac2b125598fbac1518", - "sha256:532c7f70697fcc8a9a37b56495dcf36df11feefe42f626cff789beac11728f45", - "sha256:6d82534633c24f00e0fb3c46b90de1c21b1e97cb1403c7d002665b99ddecb5bb", - "sha256:7ce1b8ce3bbe393d244e3ef6bde79c52cbf7a23f54e65c11a88d4bce9714db5f", - "sha256:8096fa9f229f4d32addff7a316f842f3f41ef05420a0661537802cd478613ec9", - "sha256:86aa5dabbd7d15a3dc8300d7c148b82715b6ced8b852e83ef52edab00c31777f", - "sha256:95cfa5306346a4ff0be74fb25e596ce2d068d928c5a3d35da03c08551174c932", - "sha256:989a8e2961c67707e04ce2d4f41daad9df8d52eebbfdeb6b3ed8ea1e431cb536", - "sha256:b236fcae398ade3af975da6fc519488e74fdef7d7c1c8d0b2015378de6ccd885", - "sha256:b31fb147fe981cee0215e1f811f99d94dfcc1bdd1a717b4d5e4896b06db454fa", - "sha256:b6b334c9c664a39d546955a125502023ae26de8e40606a456a8c59e3cdb6f5a3", - "sha256:cec3a0a7662fb3b54236340e17d59fd70508a39b5f0d6bc000fe57fe1a3a6945", - "sha256:d1fef64b966f6ff13f279131705696f4a04b29514afe288c24fb50802fe394b6", - "sha256:e39645a1fcb09d7ed43960482f0d0d9747ec57c47115238347c249ec663d28fc", - "sha256:ebb2c1d31b21f0fffade29785c27bbacb8882605b9c0e51a317529ae5ad305a7", - "sha256:f030f857b27392a7400b9eafe054614295057fbc4c2e5972b563e43dd1e0b8de", - "sha256:f6f3adf6b334c90d0f4e3dfeddf5790f3299af7d4bed37824bfd471b17869a0c" + "sha256:1428e0fe38d7d5dea984a772a235955a4f4e6e846d2f377239b7b8a42b2ab455", + "sha256:1d56ac0fb880cb8143cbfd5c67361fc6caa0ab5e9863074555304ad27c1d0e2b", + "sha256:1eccecf020053de8bfba7844ac9e0ed2cb1ca2a3d39980aa9077ca3f31048b1f", + "sha256:1fbdd0df497465524e2010ae1465582663c9fb2a1f933075fddb6710a0cf9f17", + "sha256:202cea84200e8d412dd22b3ae522e1896a8a7d041aae809278b003b64ed1712b", + "sha256:267a4921decbd3a800463d72b6a8df362e17cad7825924a5a61e3cbc7bacf96d", + "sha256:27a21a95d9d05448f638c049b2da1406a6d4ac357c6e8bec4268d9a2f99bdd76", + "sha256:301dba4f0b634d4e7e632172cc9fb6e0db136ce6a12b0f5cf118d25f0aaa484e", + "sha256:406cd5a23eef77f360b549b93fa64a8ee724309063ab1dce528e1c8e397cb56f", + "sha256:52fd1ea2a8c0b4ac56b99903214e239f0e8b9266f65c8cae6c00787aaf1f9cfe", + "sha256:5358cc32bf775944d366525c2854620e55548563f40868f01ea4af6f252b682b", + "sha256:5bffc52d57f6733c5462b8fb19b4d7ce54c2faea3c7d5b12725b86740be1c7c9", + "sha256:5dfb34b8e147c4f30ada3ab333b517cbc8c273e06a0f464c85f92e70647bbbd6", + "sha256:70321f427e0600c7d5b74fd8f91a4478edb92143bd9fd051dd11a18c1e08a37c", + "sha256:89a20560924bbbd07fc51f3f7b6710744e8b845028a9af338b6caa9c2611f7bb", + "sha256:8db536c6387d27b2ce9b89e58269ff79d8da197f1f3c300f53dc130271bb5f78", + "sha256:9ff76ec968a1c04dcc94fd66fae343b9fc576cb455fdd3f93370dad5fa1d8771", + "sha256:a780dc298ff4da1d20c9deae02f817c08de59e0094b591627727efe6e94574af", + "sha256:aa07f1c565436319862abb338e3a9ae68855b09fc5ceb83564c34a53af852c52", + "sha256:ab59d14825cb4ed9d96eb17a2f78f5a96935fb4e8e6b98fcae5ce07fcd6e0fa9", + "sha256:adc810f256214af1dc45b9351cca1f8e7af60fb9de07bb3ab9ba1379770c51f7", + "sha256:b073baa08f349ab4737ebb673e8dc5c4cd19be6c8d18f43262e659d95b290733", + "sha256:b208c0918cdf2e274d286c78f3f6b1fd5e9c0cf35bc1dc33a60d1c3c4edf0b51", + "sha256:cf8de78d747e95db780cd18672783735bcb811ea495b8e4546c8fa534829d90d", + "sha256:d33096083ae86837b7f8dfd3653b7cf87044d7ffb6b52102114e46a74a3a1164", + "sha256:e551dc5604af5b971224c5c82c132ec8d99bc3da627ad6228ff899f1b1043839", + "sha256:f348e67d55dcb60ce8571647dd0e18aa4205091c9c1d1f1b0ee2816e8f612421", + "sha256:f7bf111cd071853089b3904ec9dd9250959a45e88ea05ce078b2632375597cef", + "sha256:fe46eff0cb5aebcc752c7ee3258bbeaa6aa9007bad9c32cfbd46d00df5c1f4d4" ], "markers": "python_version >= '3.6'", - "version": "==1.10.2" + "version": "==1.11.0" }, "text-unidecode": { "hashes": [ @@ -882,27 +903,27 @@ }, "typing-extensions": { "hashes": [ - "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02", - "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6" + "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa", + "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e" ], "markers": "python_version >= '3.7'", - "version": "==4.3.0" + "version": "==4.4.0" }, "urllib3": { "hashes": [ "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4.0'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", "version": "==1.26.12" }, "uvicorn": { "hashes": [ - "sha256:0abd429ebb41e604ed8d2be6c60530de3408f250e8d2d84967d85ba9e86fe3af", - "sha256:9a66e7c42a2a95222f76ec24a4b754c158261c4696e683b9dadc72b590e0311b" + "sha256:cc277f7e73435748e69e075a721841f7c4a95dba06d12a72fe9874acced16f6f", + "sha256:cf538f3018536edb1f4a826311137ab4944ed741d52aeb98846f52215de57f25" ], "markers": "python_version >= '3.7'", - "version": "==0.18.3" + "version": "==0.19.0" }, "websocket-client": { "hashes": [ @@ -923,11 +944,11 @@ }, "anyio": { "hashes": [ - "sha256:413adf95f93886e442aea925f3ee43baa5a765a64a0f52c6081894f9992fdd0b", - "sha256:cb29b9c70620506a9a8f87a309591713446953302d7d995344d0d7c6c0c9a7be" + "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421", + "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3" ], "markers": "python_full_version >= '3.6.2'", - "version": "==3.6.1" + "version": "==3.6.2" }, "asttokens": { "hashes": [ @@ -946,19 +967,19 @@ }, "azure-core": { "hashes": [ - "sha256:3c1cf368650e76ec009c07cd1174a95cdcb471b247bb72d18245f7d56c1809b2", - "sha256:b0d62e67ec6d47365eebb12c50bc96f7b22d06b359f56ce7f904b095cb46b195" + "sha256:578ea3ae56bca48880c96797871b6c954b5ae78d10d54360182c7604dc837f25", + "sha256:b0036a0d256329e08d1278dff7df36be30031d2ec9b16c691bc61e4732f71fe0" ], "markers": "python_version >= '3.7'", - "version": "==1.25.1" + "version": "==1.26.0" }, "azure-storage-blob": { "hashes": [ - "sha256:1477dfd2efad0e88d7529606b30c131bcc6575cd162869122d78fc7eafba3f45", - "sha256:eae1442aa425564daa98a707303451ee2823230fc13f11c5d7c541eab015f9d6" + "sha256:52b84658e8df7853a3cf1c563814655b5028b979b2a87905b92aa6bb30be240e", + "sha256:860d4d82985a4bfc7d3271e71275af330f54f330a754355435a7ba749ccde997" ], "markers": "python_version >= '3.7'", - "version": "==12.14.0b2" + "version": "==12.14.1" }, "backcall": { "hashes": [ @@ -969,49 +990,56 @@ }, "bcrypt": { "hashes": [ - "sha256:0b0f0c7141622a31e9734b7f649451147c04ebb5122327ac0bd23744df84be90", - "sha256:1c3334446fac200499e8bc04a530ce3cf0b3d7151e0e4ac5c0dddd3d95e97843", - "sha256:2d0dd19aad87e4ab882ef1d12df505f4c52b28b69666ce83c528f42c07379227", - "sha256:594780b364fb45f2634c46ec8d3e61c1c0f1811c4f2da60e8eb15594ecbf93ed", - "sha256:7c7dd6c1f05bf89e65261d97ac3a6520f34c2acb369afb57e3ea4449be6ff8fd", - "sha256:845b1daf4df2dd94d2fdbc9454953ca9dd0e12970a0bfc9f3dcc6faea3fa96e4", - "sha256:8780e69f9deec9d60f947b169507d2c9816e4f11548f1f7ebee2af38b9b22ae4", - "sha256:bf413f2a9b0a2950fc750998899013f2e718d20fa4a58b85ca50b6df5ed1bbf9", - "sha256:bfb67f6a6c72dfb0a02f3df51550aa1862708e55128b22543e2b42c74f3620d7", - "sha256:c59c170fc9225faad04dde1ba61d85b413946e8ce2e5f5f5ff30dfd67283f319", - "sha256:dc6ec3dc19b1c193b2f7cf279d3e32e7caf447532fbcb7af0906fe4398900c33", - "sha256:ede0f506554571c8eda80db22b83c139303ec6b595b8f60c4c8157bdd0bdee36" + "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535", + "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0", + "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410", + "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd", + "sha256:2b3ac11cf45161628f1f3733263e63194f22664bf4d0c0f3ab34099c02134665", + "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab", + "sha256:3100851841186c25f127731b9fa11909ab7b1df6fc4b9f8353f4f1fd952fbf71", + "sha256:5ad4d32a28b80c5fa6671ccfb43676e8c1cc232887759d1cd7b6f56ea4355215", + "sha256:67a97e1c405b24f19d08890e7ae0c4f7ce1e56a712a016746c8b2d7732d65d4b", + "sha256:705b2cea8a9ed3d55b4491887ceadb0106acf7c6387699fca771af56b1cdeeda", + "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9", + "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a", + "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344", + "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f", + "sha256:b3b85202d95dd568efcb35b53936c5e3b3600c7cdcc6115ba461df3a8e89f38d", + "sha256:b57adba8a1444faf784394de3436233728a1ecaeb6e07e8c22c8848f179b893c", + "sha256:bf4fa8b2ca74381bb5442c089350f09a3f17797829d958fad058d6e44d9eb83c", + "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2", + "sha256:cbb03eec97496166b704ed663a53680ab57c5084b2fc98ef23291987b525cb7d", + "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e", + "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3" ], - "version": "==4.0.0" + "version": "==4.0.1" }, "black": { "hashes": [ - "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411", - "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c", - "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497", - "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e", - "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342", - "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27", - "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41", - "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab", - "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5", - "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16", - "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e", - "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c", - "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe", - "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3", - "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec", - "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3", - "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd", - "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c", - "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4", - "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90", - "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869", - "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747", - "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875" + "sha256:14ff67aec0a47c424bc99b71005202045dc09270da44a27848d534600ac64fc7", + "sha256:197df8509263b0b8614e1df1756b1dd41be6738eed2ba9e9769f3880c2b9d7b6", + "sha256:1e464456d24e23d11fced2bc8c47ef66d471f845c7b7a42f3bd77bf3d1789650", + "sha256:2039230db3c6c639bd84efe3292ec7b06e9214a2992cd9beb293d639c6402edb", + "sha256:21199526696b8f09c3997e2b4db8d0b108d801a348414264d2eb8eb2532e540d", + "sha256:2644b5d63633702bc2c5f3754b1b475378fbbfb481f62319388235d0cd104c2d", + "sha256:432247333090c8c5366e69627ccb363bc58514ae3e63f7fc75c54b1ea80fa7de", + "sha256:444ebfb4e441254e87bad00c661fe32df9969b2bf224373a448d8aca2132b395", + "sha256:5b9b29da4f564ba8787c119f37d174f2b69cdfdf9015b7d8c5c16121ddc054ae", + "sha256:5cc42ca67989e9c3cf859e84c2bf014f6633db63d1cbdf8fdb666dcd9e77e3fa", + "sha256:5d8f74030e67087b219b032aa33a919fae8806d49c867846bfacde57f43972ef", + "sha256:72ef3925f30e12a184889aac03d77d031056860ccae8a1e519f6cbb742736383", + "sha256:819dc789f4498ecc91438a7de64427c73b45035e2e3680c92e18795a839ebb66", + "sha256:915ace4ff03fdfff953962fa672d44be269deb2eaf88499a0f8805221bc68c87", + "sha256:9311e99228ae10023300ecac05be5a296f60d2fd10fff31cf5c1fa4ca4b1988d", + "sha256:974308c58d057a651d182208a484ce80a26dac0caef2895836a92dd6ebd725e0", + "sha256:b8b49776299fece66bffaafe357d929ca9451450f5466e997a7285ab0fe28e3b", + "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458", + "sha256:e41a86c6c650bcecc6633ee3180d80a025db041a8e2398dcc059b3afa8382cd4", + "sha256:f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1", + "sha256:fba8a281e570adafb79f7755ac8721b6cf1bbf691186a287e990c7929c7692ff" ], - "markers": "python_full_version >= '3.6.2'", - "version": "==22.8.0" + "markers": "python_version >= '3.7'", + "version": "==22.10.0" }, "bleach": { "hashes": [ @@ -1098,11 +1126,11 @@ }, "certifi": { "hashes": [ - "sha256:36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5", - "sha256:e232343de1ab72c2aa521b625c80f699e356830fd0e2c620b465b304b17b0516" + "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14", + "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382" ], "markers": "python_version >= '3.6'", - "version": "==2022.9.14" + "version": "==2022.9.24" }, "cffi": { "hashes": [ @@ -1178,7 +1206,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.1.1" }, "click": { @@ -1216,59 +1244,59 @@ "toml" ], "hashes": [ - "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2", - "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820", - "sha256:1238b08f3576201ebf41f7c20bf59baa0d05da941b123c6656e42cdb668e9827", - "sha256:14a32ec68d721c3d714d9b105c7acf8e0f8a4f4734c811eda75ff3718570b5e3", - "sha256:15e38d853ee224e92ccc9a851457fb1e1f12d7a5df5ae44544ce7863691c7a0d", - "sha256:354df19fefd03b9a13132fa6643527ef7905712109d9c1c1903f2133d3a4e145", - "sha256:35ef1f8d8a7a275aa7410d2f2c60fa6443f4a64fae9be671ec0696a68525b875", - "sha256:4179502f210ebed3ccfe2f78bf8e2d59e50b297b598b100d6c6e3341053066a2", - "sha256:42c499c14efd858b98c4e03595bf914089b98400d30789511577aa44607a1b74", - "sha256:4b7101938584d67e6f45f0015b60e24a95bf8dea19836b1709a80342e01b472f", - "sha256:564cd0f5b5470094df06fab676c6d77547abfdcb09b6c29c8a97c41ad03b103c", - "sha256:5f444627b3664b80d078c05fe6a850dd711beeb90d26731f11d492dcbadb6973", - "sha256:6113e4df2fa73b80f77663445be6d567913fb3b82a86ceb64e44ae0e4b695de1", - "sha256:61b993f3998ee384935ee423c3d40894e93277f12482f6e777642a0141f55782", - "sha256:66e6df3ac4659a435677d8cd40e8eb1ac7219345d27c41145991ee9bf4b806a0", - "sha256:67f9346aeebea54e845d29b487eb38ec95f2ecf3558a3cffb26ee3f0dcc3e760", - "sha256:6913dddee2deff8ab2512639c5168c3e80b3ebb0f818fed22048ee46f735351a", - "sha256:6a864733b22d3081749450466ac80698fe39c91cb6849b2ef8752fd7482011f3", - "sha256:7026f5afe0d1a933685d8f2169d7c2d2e624f6255fb584ca99ccca8c0e966fd7", - "sha256:783bc7c4ee524039ca13b6d9b4186a67f8e63d91342c713e88c1865a38d0892a", - "sha256:7a98d6bf6d4ca5c07a600c7b4e0c5350cd483c85c736c522b786be90ea5bac4f", - "sha256:8d032bfc562a52318ae05047a6eb801ff31ccee172dc0d2504614e911d8fa83e", - "sha256:98c0b9e9b572893cdb0a00e66cf961a238f8d870d4e1dc8e679eb8bdc2eb1b86", - "sha256:9c7b9b498eb0c0d48b4c2abc0e10c2d78912203f972e0e63e3c9dc21f15abdaa", - "sha256:9cc4f107009bca5a81caef2fca843dbec4215c05e917a59dec0c8db5cff1d2aa", - "sha256:9d6e1f3185cbfd3d91ac77ea065d85d5215d3dfa45b191d14ddfcd952fa53796", - "sha256:a095aa0a996ea08b10580908e88fbaf81ecf798e923bbe64fb98d1807db3d68a", - "sha256:a3b2752de32c455f2521a51bd3ffb53c5b3ae92736afde67ce83477f5c1dd928", - "sha256:ab066f5ab67059d1f1000b5e1aa8bbd75b6ed1fc0014559aea41a9eb66fc2ce0", - "sha256:c1328d0c2f194ffda30a45f11058c02410e679456276bfa0bbe0b0ee87225fac", - "sha256:c35cca192ba700979d20ac43024a82b9b32a60da2f983bec6c0f5b84aead635c", - "sha256:cbbb0e4cd8ddcd5ef47641cfac97d8473ab6b132dd9a46bacb18872828031685", - "sha256:cdbb0d89923c80dbd435b9cf8bba0ff55585a3cdb28cbec65f376c041472c60d", - "sha256:cf2afe83a53f77aec067033199797832617890e15bed42f4a1a93ea24794ae3e", - "sha256:d5dd4b8e9cd0deb60e6fcc7b0647cbc1da6c33b9e786f9c79721fd303994832f", - "sha256:dfa0b97eb904255e2ab24166071b27408f1f69c8fbda58e9c0972804851e0558", - "sha256:e16c45b726acb780e1e6f88b286d3c10b3914ab03438f32117c4aa52d7f30d58", - "sha256:e1fabd473566fce2cf18ea41171d92814e4ef1495e04471786cbc943b89a3781", - "sha256:e3d3c4cc38b2882f9a15bafd30aec079582b819bec1b8afdbde8f7797008108a", - "sha256:e431e305a1f3126477abe9a184624a85308da8edf8486a863601d58419d26ffa", - "sha256:e7b4da9bafad21ea45a714d3ea6f3e1679099e420c8741c74905b92ee9bfa7cc", - "sha256:ee2b2fb6eb4ace35805f434e0f6409444e1466a47f620d1d5763a22600f0f892", - "sha256:ee6ae6bbcac0786807295e9687169fba80cb0617852b2fa118a99667e8e6815d", - "sha256:ef6f44409ab02e202b31a05dd6666797f9de2aa2b4b3534e9d450e42dea5e817", - "sha256:f67cf9f406cf0d2f08a3515ce2db5b82625a7257f88aad87904674def6ddaec1", - "sha256:f855b39e4f75abd0dfbcf74a82e84ae3fc260d523fcb3532786bcbbcb158322c", - "sha256:fc600f6ec19b273da1d85817eda339fb46ce9eef3e89f220055d8696e0a06908", - "sha256:fcbe3d9a53e013f8ab88734d7e517eb2cd06b7e689bedf22c0eb68db5e4a0a19", - "sha256:fde17bc42e0716c94bf19d92e4c9f5a00c5feb401f5bc01101fdf2a8b7cacf60", - "sha256:ff934ced84054b9018665ca3967fc48e1ac99e811f6cc99ea65978e1d384454b" + "sha256:027018943386e7b942fa832372ebc120155fd970837489896099f5cfa2890f79", + "sha256:11b990d520ea75e7ee8dcab5bc908072aaada194a794db9f6d7d5cfd19661e5a", + "sha256:12adf310e4aafddc58afdb04d686795f33f4d7a6fa67a7a9d4ce7d6ae24d949f", + "sha256:1431986dac3923c5945271f169f59c45b8802a114c8f548d611f2015133df77a", + "sha256:1ef221513e6f68b69ee9e159506d583d31aa3567e0ae84eaad9d6ec1107dddaa", + "sha256:20c8ac5386253717e5ccc827caad43ed66fea0efe255727b1053a8154d952398", + "sha256:2198ea6fc548de52adc826f62cb18554caedfb1d26548c1b7c88d8f7faa8f6ba", + "sha256:255758a1e3b61db372ec2736c8e2a1fdfaf563977eedbdf131de003ca5779b7d", + "sha256:265de0fa6778d07de30bcf4d9dc471c3dc4314a23a3c6603d356a3c9abc2dfcf", + "sha256:33a7da4376d5977fbf0a8ed91c4dffaaa8dbf0ddbf4c8eea500a2486d8bc4d7b", + "sha256:42eafe6778551cf006a7c43153af1211c3aaab658d4d66fa5fcc021613d02518", + "sha256:4433b90fae13f86fafff0b326453dd42fc9a639a0d9e4eec4d366436d1a41b6d", + "sha256:4a5375e28c5191ac38cca59b38edd33ef4cc914732c916f2929029b4bfb50795", + "sha256:4a8dbc1f0fbb2ae3de73eb0bdbb914180c7abfbf258e90b311dcd4f585d44bd2", + "sha256:59f53f1dc5b656cafb1badd0feb428c1e7bc19b867479ff72f7a9dd9b479f10e", + "sha256:5dbec3b9095749390c09ab7c89d314727f18800060d8d24e87f01fb9cfb40b32", + "sha256:633713d70ad6bfc49b34ead4060531658dc6dfc9b3eb7d8a716d5873377ab745", + "sha256:6b07130585d54fe8dff3d97b93b0e20290de974dc8177c320aeaf23459219c0b", + "sha256:6c4459b3de97b75e3bd6b7d4b7f0db13f17f504f3d13e2a7c623786289dd670e", + "sha256:6d4817234349a80dbf03640cec6109cd90cba068330703fa65ddf56b60223a6d", + "sha256:723e8130d4ecc8f56e9a611e73b31219595baa3bb252d539206f7bbbab6ffc1f", + "sha256:784f53ebc9f3fd0e2a3f6a78b2be1bd1f5575d7863e10c6e12504f240fd06660", + "sha256:7b6be138d61e458e18d8e6ddcddd36dd96215edfe5f1168de0b1b32635839b62", + "sha256:7ccf362abd726b0410bf8911c31fbf97f09f8f1061f8c1cf03dfc4b6372848f6", + "sha256:83516205e254a0cb77d2d7bb3632ee019d93d9f4005de31dca0a8c3667d5bc04", + "sha256:851cf4ff24062c6aec510a454b2584f6e998cada52d4cb58c5e233d07172e50c", + "sha256:8f830ed581b45b82451a40faabb89c84e1a998124ee4212d440e9c6cf70083e5", + "sha256:94e2565443291bd778421856bc975d351738963071e9b8839ca1fc08b42d4bef", + "sha256:95203854f974e07af96358c0b261f1048d8e1083f2de9b1c565e1be4a3a48cfc", + "sha256:97117225cdd992a9c2a5515db1f66b59db634f59d0679ca1fa3fe8da32749cae", + "sha256:98e8a10b7a314f454d9eff4216a9a94d143a7ee65018dd12442e898ee2310578", + "sha256:a1170fa54185845505fbfa672f1c1ab175446c887cce8212c44149581cf2d466", + "sha256:a6b7d95969b8845250586f269e81e5dfdd8ff828ddeb8567a4a2eaa7313460c4", + "sha256:a8fb6cf131ac4070c9c5a3e21de0f7dc5a0fbe8bc77c9456ced896c12fcdad91", + "sha256:af4fffaffc4067232253715065e30c5a7ec6faac36f8fc8d6f64263b15f74db0", + "sha256:b4a5be1748d538a710f87542f22c2cad22f80545a847ad91ce45e77417293eb4", + "sha256:b5604380f3415ba69de87a289a2b56687faa4fe04dbee0754bfcae433489316b", + "sha256:b9023e237f4c02ff739581ef35969c3739445fb059b060ca51771e69101efffe", + "sha256:bc8ef5e043a2af066fa8cbfc6e708d58017024dc4345a1f9757b329a249f041b", + "sha256:c4ed2820d919351f4167e52425e096af41bfabacb1857186c1ea32ff9983ed75", + "sha256:cca4435eebea7962a52bdb216dec27215d0df64cf27fc1dd538415f5d2b9da6b", + "sha256:d900bb429fdfd7f511f868cedd03a6bbb142f3f9118c09b99ef8dc9bf9643c3c", + "sha256:d9ecf0829c6a62b9b573c7bb6d4dcd6ba8b6f80be9ba4fc7ed50bf4ac9aecd72", + "sha256:dbdb91cd8c048c2b09eb17713b0c12a54fbd587d79adcebad543bc0cd9a3410b", + "sha256:de3001a203182842a4630e7b8d1a2c7c07ec1b45d3084a83d5d227a3806f530f", + "sha256:e07f4a4a9b41583d6eabec04f8b68076ab3cd44c20bd29332c6572dda36f372e", + "sha256:ef8674b0ee8cc11e2d574e3e2998aea5df5ab242e012286824ea3c6970580e53", + "sha256:f4f05d88d9a80ad3cac6244d36dd89a3c00abc16371769f1340101d3cb899fc3", + "sha256:f642e90754ee3e06b0e7e51bce3379590e76b7f76b708e1a71ff043f87025c84", + "sha256:fc2af30ed0d5ae0b1abdb4ebdce598eafd5b35397d4d75deb341a614d333d987" ], "markers": "python_version >= '3.7'", - "version": "==6.4.4" + "version": "==6.5.0" }, "cryptography": { "hashes": [ @@ -1408,11 +1436,11 @@ }, "faker": { "hashes": [ - "sha256:6db56e2c43a2b74250d1c332ef25fef7dc07dcb6c5fab5329dd7b4467b8ed7b9", - "sha256:e02c55a5b0586caaf913cc6c254b3de178e08b031c5922e590fd033ebbdbfd02" + "sha256:096c15e136adb365db24d8c3964fe26bfc68fe060c9385071a339f8c14e09c8a", + "sha256:a741b77f484215c3aab2604100669657189548f440fcb2ed0f8b7ee21c385629" ], - "markers": "python_version >= '3.6'", - "version": "==14.2.0" + "markers": "python_version >= '3.7'", + "version": "==15.1.1" }, "fastapi": { "hashes": [ @@ -1476,133 +1504,137 @@ }, "gevent": { "hashes": [ - "sha256:0082d8a5d23c35812ce0e716a91ede597f6dd2c5ff508a02a998f73598c59397", - "sha256:01928770972181ad8866ee37ea3504f1824587b188fcab782ef1619ce7538766", - "sha256:05c5e8a50cd6868dd36536c92fb4468d18090e801bd63611593c0717bab63692", - "sha256:08b4c17064e28f4eb85604486abc89f442c7407d2aed249cf54544ce5c9baee6", - "sha256:177f93a3a90f46a5009e0841fef561601e5c637ba4332ab8572edd96af650101", - "sha256:22ce1f38fdfe2149ffe8ec2131ca45281791c1e464db34b3b4321ae9d8d2efbb", - "sha256:24d3550fbaeef5fddd794819c2853bca45a86c3d64a056a2c268d981518220d1", - "sha256:2afa3f3ad528155433f6ac8bd64fa5cc303855b97004416ec719a6b1ca179481", - "sha256:2bcec9f80196c751fdcf389ca9f7141e7b0db960d8465ed79be5e685bfcad682", - "sha256:2cfff82f05f14b7f5d9ed53ccb7a609ae8604df522bb05c971bca78ec9d8b2b9", - "sha256:3baeeccc4791ba3f8db27179dff11855a8f9210ddd754f6c9b48e0d2561c2aea", - "sha256:3c012c73e6c61f13c75e3a4869dbe6a2ffa025f103421a6de9c85e627e7477b1", - "sha256:3dad62f55fad839d498c801e139481348991cee6e1c7706041b5fe096cb6a279", - "sha256:542ae891e2aa217d2cf6d8446538fcd2f3263a40eec123b970b899bac391c47a", - "sha256:6a02a88723ed3f0fd92cbf1df3c4cd2fbd87d82b0a4bac3e36a8875923115214", - "sha256:74fc1ef16b86616cfddcc74f7292642b0f72dde4dd95aebf4c45bb236744be54", - "sha256:7909780f0cf18a1fc32aafd8c8e130cdd93c6e285b11263f7f2d1a0f3678bc50", - "sha256:7ccffcf708094564e442ac6fde46f0ae9e40015cb69d995f4b39cc29a7643881", - "sha256:8c21cb5c9f4e14d75b3fe0b143ec875d7dbd1495fad6d49704b00e57e781ee0f", - "sha256:973749bacb7bc4f4181a8fb2a7e0e2ff44038de56d08e856dd54a5ac1d7331b4", - "sha256:9d86438ede1cbe0fde6ef4cc3f72bf2f1ecc9630d8b633ff344a3aeeca272cdd", - "sha256:9f9652d1e4062d4b5b5a0a49ff679fa890430b5f76969d35dccb2df114c55e0f", - "sha256:a5ad4ed8afa0a71e1927623589f06a9b5e8b5e77810be3125cb4d93050d3fd1f", - "sha256:b7709c64afa8bb3000c28bb91ec42c79594a7cb0f322e20427d57f9762366a5b", - "sha256:bb5cb8db753469c7a9a0b8a972d2660fe851aa06eee699a1ca42988afb0aaa02", - "sha256:c43f081cbca41d27fd8fef9c6a32cf83cb979345b20abc07bf68df165cdadb24", - "sha256:cc2fef0f98ee180704cf95ec84f2bc2d86c6c3711bb6b6740d74e0afe708b62c", - "sha256:da8d2d51a49b2a5beb02ad619ca9ddbef806ef4870ba04e5ac7b8b41a5b61db3", - "sha256:e1899b921219fc8959ff9afb94dae36be82e0769ed13d330a393594d478a0b3a", - "sha256:eae3c46f9484eaacd67ffcdf4eaf6ca830f587edd543613b0f5c4eb3c11d052d", - "sha256:ec21f9eaaa6a7b1e62da786132d6788675b314f25f98d9541f1bf00584ed4749", - "sha256:f289fae643a3f1c3b909d6b033e6921b05234a4907e9c9c8c3f1fe403e6ac452", - "sha256:f48b64578c367b91fa793bf8eaaaf4995cb93c8bc45860e473bf868070ad094e" + "sha256:04a920a812b6c0c36d4613a15c254ca1ce415ee75ade0df3b8941ab61ae7ce3f", + "sha256:0569e133bb620de1001ac807ad9a8abaadedd25349c6d695f80c9048a3f59d42", + "sha256:06ea39c70ce166c4a1d4386c7fae96cb8d84ad799527b3378406051104d15443", + "sha256:0cafb8f5399224990a5329bca3606bf399ee3604ae711b2d9238129b44551ad5", + "sha256:1ac816f5e8e318c5fa27091ee43fcf4caaa6ae73a487e875a1a296a04c3da5af", + "sha256:1e1c609f9e4171588006bea7ff41bb830ff27c27d071bbd311f91860fb5ef4cc", + "sha256:1ec5f77f629d997668983be53bad2a90d1b858a00e43b9e75e1c9a118c3a840b", + "sha256:21dbeb6d3b47093f40ca97aab493b2fb64b6f22112f88f56d79cf6f52a8c1c16", + "sha256:2dcfd8ef9dcca78c51dd266d0f4b48d9b7ea2592ae881bf66d8dbe59bb16631a", + "sha256:33c4cd095f99768ecc4b3bb75a12f52ea9df5c40a58671c667f86ea087a075e1", + "sha256:36e47ca663081a71fca137b7c852e99e7ee3761082070c13aa2ae3b5b6234af6", + "sha256:3c1cfd9f9fb6a2a5a9a04132d315db7fb819db019dea260695fe6e4012416f96", + "sha256:3e73c9f71aa2a6795ecbec9b57282b002375e863e283558feb87b62840c8c1ac", + "sha256:3f7d11136b3ae6312effbc2ac0ed902ae718d86e7acb9a51cf927262cfb2931e", + "sha256:4b0d29fc18ee338a85396facfc508e5f26e2e0e90f4c2889f8a9e74d341ad467", + "sha256:4be5859af086de1ed85702c0a84479387087ddf49e38332c41861b0a10e96d8f", + "sha256:4c06c0f3f4f1b147f51a934fbf541880cee769492b98c4ebd3e930b5ff862646", + "sha256:5bc3758f0dc95007c1780d28a9fd2150416a79c50f308f62a674d78a845ea1b9", + "sha256:5d64b208bec99adc7e0b6e08a3e2c296065c665ca725ca8da434c4ffc5aa302e", + "sha256:702a51b8f21bad1976b0893f90ade466e8c27039b846b611ad2beb8c6e6ac701", + "sha256:7e8c4ccc544f6e6c26ab10d0d6a7be86bd522222ce40f00bfafa01289f04bffc", + "sha256:a12443b7326e40d00fb445d37bae154fd1f4693055330c6b4e68670ca3b6e6bf", + "sha256:a838437b7b629328ad457cd36df454500afe7f3df4b971a6ff85851dfcf8c844", + "sha256:acb21bee2e66da45b8916073c8ae54c44629beb94d49120c188d27aff4ebf8dd", + "sha256:af7baec79a5f8ad1cc132d3b14edd12661c628d8094e501b089b1fe2d3df7f6e", + "sha256:be43278781d39b4081f7f4d3e8ebb1dac188c9fe98f25da817325cb12c01887a", + "sha256:cf6dd33052919de8fb56e0bea0e6a7c7d6545281fe280ea78e311621c7adb50e", + "sha256:d18fcc324f39a3b21795022eb47c7752d6e4f4ed89d8cca41f1cc604553265b3", + "sha256:d2ea4ce36c09355379bc038be2bd50118f97d2eb6381b7096de4d05aa4c3e241", + "sha256:d701208d4d65dbdf9feb02561a75ecc5bd28300e47b59f74033a07b593887806", + "sha256:d8df3f628c8a9fb339b87a849dc2076e56d124e2169261fa58b4a01db3a335b6", + "sha256:db592cfe5106730667ac36f43554e7a869d757e411f8a08116c3739cee507145", + "sha256:df3042349c9a4460eeaec8d0e56d737cb183eed055e75a6af9dbda94aaddaf4d", + "sha256:eb0d9d6f869ba7c49d7f9b7d244dd20daec5cc87cd3e2e90209d6ed8172e0cad", + "sha256:eefcb21fda3055f2e7eaad2e8098885a7bbddd83b174b012e2142db6b2b4c09d", + "sha256:f16c6937d47593f051fc3ac7996c819919082a1e7e0dec927cdae8771d26ed45", + "sha256:fe2c0ff095171c49f78f1d4e6dc89fa58253783c7b6dccab9f1d76e2ee391f10" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==21.12.0" + "version": "==22.10.1" }, "geventhttpclient": { "hashes": [ - "sha256:00b7b2b836294c091c53789a469c5671202d79420b5191931df4e3a767d607fa", - "sha256:01c1c783fce45f16db448d7e34864f1e9c22fe60a7780d2c1c14edbb1fb7262e", - "sha256:09acd03d0a8c1bb7d5a1cb6fcb77aaa19a907c1b4915ab58da5d283675edb0a5", - "sha256:0e9f7283c01d970e643d89da81127869a8d94bb7a0081020dcad5b590bc007c4", - "sha256:12d271cc53486efb3716e99855dc5cb84f2cd3fc9f3243721747bb39ec0fff8a", - "sha256:2435e0f2a60e00d977822ec4c12e7851deb7aa49a23d32d648e72c641aae3b05", - "sha256:27049ea40e3b559eee380310272aaa9b7c19e73c1d9e51e2ec137362be2caa70", - "sha256:28d7655d1d50bc75ece683a0ae8faf978821d4aeae358d77b59371548db07f1e", - "sha256:2ba69422d4e8670dd99803b1313ba574a4d41f52e92b512af51068c9c577bdc1", - "sha256:2ca459cedb3827d960362e05ea3a4ae600a6d0d93de77eac2ac0f79828e5e18c", - "sha256:2f817e226c02b5a71d86de3772d6accdf250288d1e6825e426c713759830162d", - "sha256:31c7febba298ecf44838561074a3fb7a01523adca286469b5a82dcc90e8d6a07", - "sha256:320a2c756d8a4f296de370476a1515485c186d9e22c3fc29e04f8f743a7d47bb", - "sha256:3648626ca58ea4b340e695d78e5d533e6b8be78d375edbd42ff188bc3447e095", - "sha256:36d3345c6585b09738195a7c45d279a87ccbab0350f1cce3679d3f0dce8577a1", - "sha256:379d90d8b1fcdda94e74d693806e0b0116c0610504e7f62d5576bac738dc66a5", - "sha256:3a5841dd02e6f792a4ef15dbd04fefe620c831ba0b78105808160bb779a31af4", - "sha256:3e9f2ff09706e3a64a99886d5f2595f3bf364821bc609f2865dbc3e499e21a36", - "sha256:3ebb582a291c4c5daaac2ea115b413f4be86874baa60def44d333301cee17bd7", - "sha256:407d54499556c2741b93691b86da93232590b013f4a0b773327d766fe3e5c0a9", - "sha256:4f0d70a83ef4ab93102c6601477c13e9cdbc87205e5237fbf5797e30dc9d3ee8", - "sha256:57c993c4b2bea551c4a71b75ae1e172e9f3e4352f704ff1b619a0f16aa762f76", - "sha256:5ceb492d43a659b895794999dc40d0e7c23b1d41dd34040bbacd0dc264b57d5b", - "sha256:5d0813d97050446dab2fb243312e6c446e4ef5e9591befd597ef8f2887f8e2a8", - "sha256:5f3326e115ec7e7ce95a5d0d47698e8f3584944c4c434a7404937d56b17136b8", - "sha256:60b81a6d4e65db7c1a5350c9fb72ebf800b478849a7e8020d1ab93af237a3747", - "sha256:6775bc81e25c48fa58b034444aecfa508b0c3d1bc1e4ae546cc17661be1f51aa", - "sha256:6e3af579c6b46b9caa515a8baf6a2cadeafcd1d41ad22ca5712851f074a40b47", - "sha256:6ff7fc19f9a4fdd54a2b1c106a705ea2c679fa049685ed763051d417725bdab1", - "sha256:716f1f72f50b841daf9c9511a01fc31a030866510a11863f27741e26e4f556a7", - "sha256:721c3075897bfc81e918066f16ae3d1a88c7bb14eeeb831a4f89ea636474643e", - "sha256:7551b6db860b56411de1f96618e91b54f65e1a7be8d10255bd1adfb738bb6ee5", - "sha256:777fcdb72077dfbf70516ecb9e9022246dd337b83a4c1e96f17f3ab9e15f4547", - "sha256:77c407c2b4bea817c6f752502db4ab0e9f9465b4fb85b459d1332b5f93a3096c", - "sha256:7adaa29e5699dea54e0224d1d2d9d8869668d8ad79f5b89433ff9c46f9424a6c", - "sha256:805554594bb29231fd990cc2cbbe493d223d76a6085fec891dd76bb4e0928933", - "sha256:8135a85200b170def7293d01dd1557931fcd1bec1ac78c52ad7cedd22368b9ba", - "sha256:81f839d6becd664d0972b488422f5dc821f8ad2f2196d53aa5e4d799a3a35a66", - "sha256:84d7be660b6bc53dd53e3f46b3bc5d275972a8116bd183a77139bb4d9d6d9fb1", - "sha256:852da9bb0fc792cdca5ffc9327490094783e42415494b3569e5d532615027439", - "sha256:8770b8ab9e8c31d2aaf8a6fbc63fbb7239c58db10bb49cee191ca5c141c61542", - "sha256:91615fed7931acd49cfe5fc30984acd5411dc1f2643b1544c879d1a537233c6d", - "sha256:94edb022fa50d576cf63f6dd0c437c1acd24a719872a5935991aaf08f8e88cb2", - "sha256:95959c201d3151fa8f57e0f1ce184476d1173996bdde41dc7d600006023dc5be", - "sha256:96922d170ef8933f4c20036e8d70d4fbe861f54c543e32e7459ebdbaafa65a2e", - "sha256:996c5f453d810b3c592160193d6832a065cca0112e92adc74e62df0e4c564df6", - "sha256:9be5000ba57336a90b438782117c1e43205f51f49aa9b1499a82e210e8431b11", - "sha256:9d075355862d7726eb3436f0136fce7650c884f2d04eaae7a39fed3aad9798bc", - "sha256:a0156882c73537bbbbc7c693ae44c9808119963174078692613ffa4feea21fcf", - "sha256:a3f67e789e31c7b1ce440cd1465dcdefeca29ba6108735eac0b1a593d3a55b7f", - "sha256:a594ab319872a38fb7f16be4cfb107d3c63c43a081f2abe241834e9877f27401", - "sha256:aa7b1a27f950d209fe223a97906fe41312dc12c92372424639b8a9b96f1adf91", - "sha256:ad6c2fcbc3733785bd3b8c2bb43d1f605f9085b0a8b70ce354d198f37143f884", - "sha256:b03f298ec19b8a4717cce8112fe30322c9e5bfada84dde61a1a44d1eeffc1d3c", - "sha256:b2dc94b9a23eb6744a8c729aec2b1cdc4e39acf1d8f16ea85a62810aa6b2cae5", - "sha256:b88a10538341e33fed1682c0dd4579c655d49db5863e7456583085a1cd6bd9d4", - "sha256:b9c0c6b75b3905000d2490dc64b4c98a8bac155efbc0ff8917ac082ae0bad261", - "sha256:bc46d5479673dfb293ea428c057d2e23e48ebef5c5d44587cdbaada7f87553e4", - "sha256:bcb7e061c243308d9a44b02de5298001e917f1636a9f270c10da86601fcc8dfa", - "sha256:bcf325131b0e4600b793643108cd85dddd66bbf532fd2eb498be5727ef532a1e", - "sha256:c55b7ac0ba0e1e1afbf297b7608f0b3a0bbc34fb4b0c19b7869f32a77ddc6209", - "sha256:c58877b4440a580063571a23fbc616aed7c735c6bf9ef525c5129783df8b6966", - "sha256:c8b7298eb1ebd015257bf4503e34f5fbbe64bd83324140f76b511046aba5a0d5", - "sha256:cd76acdc7e7ee5c54c7b279f806b28957a6b092f79c40db34adcfd972749343c", - "sha256:d52aba2c38420b3fc518188449f1c2a46b1a99adf1c0266c68e72ee0422cd0fa", - "sha256:daff1e977fccf98f27266d3891afdc101f1d705a48331754909e960bcae83f8a", - "sha256:dbccf1ba155dea3ea99ba0e67a835c05b4303f05298e85f5bb2a46700ccdf092", - "sha256:e707f62271a093e6e3af6f1bbd8cc398b414b8c508fe6b15505dd8e76c4409ac", - "sha256:e79304a63a9d0512f2757c5862487b332b18a9c85feebecf6ebc3526c6dd1ba2", - "sha256:e956a457d8831dc81d6f046ab09ebeec680f9a1e9c07e25a1906e77b287918ee", - "sha256:eb23527d98f626ca7a4e8961ed9bdc6aed3388de306614c69a133b34262460f4", - "sha256:ebb3c993903d40fd4bb1f3e55b84c62c8fc1d14433ae6d4d477dd9a325354c94", - "sha256:ebf98db9435824cf0b80b5247be6c88b20bfafd6249f7ebaabb85297da37e380", - "sha256:eec7c52e8eb817674a193e0124486b507215d9e86d34f2638bf9a9292d16f815", - "sha256:ef328ee3e7dca5055b833fdf3c181647a335abf0249947b27f5df2d95390198c", - "sha256:f44153e4b3ef9b901edcd14be54145a0058bf5fa371b3e583153865fac866245", - "sha256:fcf96e212b55b93490f3a5fcdfe7a2ef4995a0d13b7d9df398b11e319b7a86b1", - "sha256:fe4e06313aad353b103950780b050d3958000464cc732d621ff8ea3cacbd2bc4" - ], - "version": "==2.0.2" + "sha256:04d63ca753e7c68d6bc979be5e5c1a315f62920453d10aa226f6f415e328646e", + "sha256:05a762367923c2622e9031de53cfe4411efca376b545c06528acb50580789ced", + "sha256:169583c427b627c3e531593af43b14887f9538ad72e4f8f5860de0a2809d08d1", + "sha256:19f26e2901e28506a59be4de2ec079ddb9db04505bf28467eca7cc320b34f6a1", + "sha256:1a44476377881f5c2c2cfff9b2ed4f74f6f50b59e0b9c412a2276302deb4cab1", + "sha256:1b8a394cac1526b1f63d8142253c0ac49f9b70ac66f27f63b4e9db88b69fd24d", + "sha256:1d00e32195945cdd4e1be82611f9f91c52a90b2ff16aec96223a8a1faf0abedf", + "sha256:1d6cfdb16aafa697266d383745b8e3ca29bbffc6deb1310ac647bb71da69c546", + "sha256:1dc3b70311558a3a92d81a951729b998b02b0e3e76a6461fd2b5801bee07dd0c", + "sha256:1f740231cf69d942a1633b23ce7ec86b716144166b561edbd735f690aa1a45c3", + "sha256:21dfd851d87627f79997a57e088bfd12a680a499a2327c29c6520f6b40d65ebf", + "sha256:2205726a567abd26809e15c6388bb62eaf1b6240823497d8fed92a557dd6dfb5", + "sha256:23f5546190431172ea720817e38b083834a2fd57bc9dbbd57d59074ff71cf1e8", + "sha256:2604a4255ed4643f832740a083110652748f96fd8f1818b6e3eaecadbe462801", + "sha256:2eb41db8a5368d679e44f9022935d109dcbfa52cfede479b7e9f778e07bf3af9", + "sha256:31fb378a7296e778f0dec5410c75425e2fe9b22158cce636499df7509ff91cdb", + "sha256:365a6415bcc07b58e97d65ade9a7345ba1951762499af66cb1be2407d1846e7f", + "sha256:3caea57e125b1b0ca6b3cd4201b0859fab491c0e1dca2fccee1580ea022f0d73", + "sha256:3efd77d7d27c33da04e325baa04fce922c2b083a502aed740edbe7ba211504a2", + "sha256:43e00845b6894ccbbf363319ccef8d5004913e5bac45ec5cebdb4d5119a8acd9", + "sha256:4559d3d5925920ead5dc12d338fcb3e85a6c4e15653745e064b3b55638813e40", + "sha256:4c32855a3445b87c6d56ee603839d103216152f69fe23a7d5523a0e8da8d2a96", + "sha256:4f5618d8533fcc0c6ee27f22440e79454e7ba30962aed0d61da7d403857fea41", + "sha256:53f94f3d9838ca5fa9db6a7ca80e45e80776b37fe32707533e1b8f4dcd1d4d2d", + "sha256:5976243c0a9a9df45115905a75184e69da80fe07633e74146a5b618a349697dc", + "sha256:5c81a060c722e132affca38371a0c852046c994dae694bfc8e35e61571f081fa", + "sha256:5f782c419643f74be4d0918c0d2b63956ef6ddc7a2127f07cbb8033a75ab366f", + "sha256:62f43aff9837f89d63009c78dc321d21a6b2e64023e4c08d6cad7a9c0f329b89", + "sha256:66fdcbedb9855c7f6b1867554481074e2b4d48c72381a1de0f6e68407577f93a", + "sha256:7086e042630a9b2b241781d364e5b84fa54dc0cb56fb963a921486dd2860cdd0", + "sha256:7218e094cd633840c3e996dac8de1a3aa3236834f9f951f9fcc52d72b1de0620", + "sha256:73e6dd9687458c388f595876816d98d4a47961763fd755c5438ccfe437329594", + "sha256:7720155e7ceb6b8250d3fee17d1ccecea39ca01a3c45b7aea0bcbd2932e81152", + "sha256:7756608de2bf0d71de2734fd33023a28863af71680ef6a454b072debfad8d762", + "sha256:7791f10856cd05f0953260d5cc01a2d5ca7a31f2391f8ccd511955fd2e78d516", + "sha256:7936b7c016174a410fb723c2ec57e77a88cd3ccdd8f3af2fe307efbdaa92758a", + "sha256:7adf16dd091e2f185d18ab28257dea250755559adaec73296e61f00dae5bd697", + "sha256:7c035881d6f68cdccb6b64bec42750d90c250633b37b7856097ee83bdd3d3798", + "sha256:7cd3827b5aace4e993b4c3a628832bb93d7e5f6a6f698709e5e95dd0e36a3538", + "sha256:7cdec0417b478f2d01262e0a22e201393b043b457d72fe81cab004e35974b0e8", + "sha256:7ce730313f1d14df73ac0d22ebb1e1c8c3bd6259564ed2037fd2a7a45195c6c4", + "sha256:7d1ef3de46f69beaeaa3ecc7ffcba7c17735ed9d2e7427cad25d61b032508e50", + "sha256:7f22f73c909c315b3b3a243ab8ca0b4f8c7b12c69e364d99aa8aaaa7e2a0e0b2", + "sha256:84291d65c4e5810db45784b54fc1e01c2eeb0ed73d772746318bca29aaa0c8a3", + "sha256:854c7e7dd10c6a237c201a61779a0da8c6868adb971cf220ae46c5375f118ffa", + "sha256:887065ddae16db77312b63391207005a200e3b8739c94eb54c800d4502bd6af8", + "sha256:8a4718e3b2cb093300be90b485496488aaa6633b0713de01a6105bb813e38afb", + "sha256:8b2868e857fd7fdcafb5037785e81a1753aa8e3c41a1b126abfbeb0004b93f38", + "sha256:8e63398cb88a12449170da45b5304d09e0c52c2f60971fb89cad47522a1afe45", + "sha256:97d30bbc075c1ac53db135135956f4f103cdc40199b9ae1f64aecb0ef035c2b2", + "sha256:9af70637b345b47b450907478f31a3128f628124fd44154a728f51360ca8cc5a", + "sha256:a3e797e13af0b233040b26730d0e497bfd7fb5c51fa502bc8906008e89d499f6", + "sha256:a80374e7d82b31a9dfdd8f2ea3ae35d4810b4027f5d585a74da623281d92b9d4", + "sha256:aba9d8c4e6e7f45502346767917dd9439e22ea6c9fec4046c474bc75dc56a53c", + "sha256:b52997481f13e1ba46753d76cd30b0935590f999482f360933aacfa8ed8ca193", + "sha256:b93518c845f16813f9f144c8961e26289cea71dc7294889349b47872edc7c3c5", + "sha256:bc611ecfadf80cc7e47e871f73812590f473ea19abfbf8a13042bb49eb14347f", + "sha256:bdf0ddd942994e435e3c552663b294fb4a09fc8a25b445397b66032baf724b21", + "sha256:c6575c6cea12d713508ecdc76e983474096e47ca07115fad4227f86b28b5f8e6", + "sha256:ca292ee0329a7f70b51fb4277e342a7675d46516158292ed09248b88abf9db5b", + "sha256:cd85582c765c5fa9f5773bb55e1e99efcf390d23cbc175692f9b5fdb92fe600f", + "sha256:d04d7d6bbe6f89fa1a9d009b5cbbb8428026adf9f62489e089ba39fd0b2e65ef", + "sha256:d60912b7f8b7c6e499c5488cd83fc50562e8e501a14e0ca856bdf0b22aa5d861", + "sha256:e04ab943b06fcad17667864e8193b1d3c52c6bc5b11175e1452593df39f9d537", + "sha256:e34d5b05bee3e0682acf40e94f3810c918d2e6f91115f44084dc0d7a6b66d1ab", + "sha256:e4252b1f70afc8b948894b16f33500da1c068ac100a4c37272cf611208f7eef0", + "sha256:e74f3c0f26955038524f55b276847b2ed85a17f5656d912677a9c71635e16eb3", + "sha256:e7a7751a8658bce1f347b602181c5ae4d8acad3df8e67950b4c7140720bdd1a4", + "sha256:e90c20b50e2980084a5af8bf100a253b54ca13481454959e86a2bbdf9fff4747", + "sha256:ee476dc70a27b2421144582eb6445bd5cf58307d5a6bb2673935f57fb60aa830", + "sha256:f29e65b8e9abd19bc62fd77fe31a7a509d618bacb13becc00e214839f8373817", + "sha256:f3abfc631e465d1914d78b98df4ec8c0846e473b4083620324435e212a4fb3eb", + "sha256:f44f9eba0c3006166756d9f23d90f49bb6f7ec233cc25fe963e3c5ae3ceadc2f", + "sha256:f69f26554974a60f8b3d74d08646e09dd86e23a09e57830b8b6a7ea4bdb5505a", + "sha256:f8b41eb12b2d558e38812bc808563149bb91169b679086c77e5427c21cc5954a", + "sha256:f9f60f6b6681fac6eac74676404359958337bf133760d80dfe9b4d43aa8fa9ba", + "sha256:f9f92f78494c63a810f627df6666efa60314f4ccd1be5dd55674ae58e25c3093", + "sha256:ffb637e0bc91a30351fa1714402e7bc1955e3ff5b11f42c830d1c71651de9574" + ], + "version": "==2.0.8" }, "google-auth": { "hashes": [ - "sha256:516e6623038b81430dd062a1a25ecd24f173d7c15cdf4e48a9e78bc87e97aeec", - "sha256:53bdc0c2b4e25895575779caef4cfb3a6bdff1b7b32dc38a654d71aba35bb5f8" + "sha256:9352dd6394093169157e6971526bab9a2799244d68a94a4a609f0dd751ef6f5e", + "sha256:99510e664155f1a3c0396a076b5deb6367c52ea04d280152c85ac7f51f50eb42" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==2.11.1" + "version": "==2.13.0" }, "gprof2dot": { "hashes": [ @@ -1674,11 +1706,11 @@ }, "h11": { "hashes": [ - "sha256:70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06", - "sha256:8ddd78563b633ca55346c8cd41ec0af27d3c79931828beffb46ce70a379e7442" + "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", + "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761" ], - "markers": "python_version >= '3.6'", - "version": "==0.13.0" + "markers": "python_version >= '3.7'", + "version": "==0.14.0" }, "idna": { "hashes": [ @@ -1690,11 +1722,11 @@ }, "importlib-metadata": { "hashes": [ - "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670", - "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23" + "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab", + "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43" ], "markers": "python_version >= '3.7'", - "version": "==4.12.0" + "version": "==5.0.0" }, "iniconfig": { "hashes": [ @@ -1705,11 +1737,11 @@ }, "ipykernel": { "hashes": [ - "sha256:b81d57b0e171670844bf29cdc11562b1010d3da87115c4513e0ee660a8368765", - "sha256:befe3736944b21afec8e832725e9a45f254c8bd9afc40b61d6661c97e45aff5a" + "sha256:32eb7bdc5af57185e9a42b0dcef66413ef91a0490b378eae46cbdf0d4e0b5912", + "sha256:3a27a550c1d682e7825f0f7732b0142b79ef1b21cd2e713cacac0c9847535f13" ], "markers": "python_version >= '3.7'", - "version": "==6.15.3" + "version": "==6.16.1" }, "ipython": { "hashes": [ @@ -1731,7 +1763,7 @@ "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7", "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951" ], - "markers": "python_version < '4' and python_full_version >= '3.6.1'", + "markers": "python_version < '4.0' and python_full_version >= '3.6.1'", "version": "==5.10.1" }, "itsdangerous": { @@ -1744,11 +1776,11 @@ }, "jaraco.classes": { "hashes": [ - "sha256:6745f113b0b588239ceb49532aa09c3ebb947433ce311ef2f8e3ad64ebb74594", - "sha256:e6ef6fd3fcf4579a7a019d87d1e56a883f4e4c35cfe925f86731abc58804e647" + "sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158", + "sha256:89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a" ], "markers": "python_version >= '3.7'", - "version": "==3.2.2" + "version": "==3.2.3" }, "jedi": { "hashes": [ @@ -1790,19 +1822,19 @@ }, "jupyter-client": { "hashes": [ - "sha256:3c58466a1b8d55dba0bf3ce0834e4f5b7760baf98d1d73db0add6f19de9ecd1d", - "sha256:b33222bdc9dd1714228bd286af006533a0abe2bbc093e8f3d29dc0b91bdc2be4" + "sha256:3d3e78483dafca7abb037d73031281571bc13e682f8e870fc069d34138a07330", + "sha256:ddbd2bcf3763d7310c72aa697c74e56df007d595c88c9b18e3c125d8b336a1e1" ], "markers": "python_version >= '3.7'", - "version": "==7.3.5" + "version": "==8.0.0a0" }, "jupyter-core": { "hashes": [ - "sha256:2e5f244d44894c4154d06aeae3419dd7f1b0ef4494dc5584929b398c61cfd314", - "sha256:715e22bb6cc7db3718fddfac1f69f1c7e899ca00e42bdfd4bf3705452b9fd84a" + "sha256:3473d812b9a3f6a339a9e9ee17a1616da6f52a2bf00dea3571cff3ca76eb3e69", + "sha256:6b0677bd596a37f019816529b07026135cdd76480426d9fb63f4406c4326eccc" ], "markers": "python_version >= '3.7'", - "version": "==4.11.1" + "version": "==5.0.0rc2" }, "keyring": { "hashes": [ @@ -1814,11 +1846,11 @@ }, "kubernetes": { "hashes": [ - "sha256:9900f12ae92007533247167d14cdee949cd8c7721f88b4a7da5f5351da3834cd", - "sha256:da19d58865cf903a8c7b9c3691a2e6315d583a98f0659964656dfdf645bf7e49" + "sha256:293b89aca0b17d0c2c09e32a74d6944d820310fe51d75c995c9d896ebae2f276", + "sha256:cafb2263c612b91ca9dbd95b5df6678fdde203fa429c680b947cdd2e8f55382e" ], "markers": "python_version >= '3.6'", - "version": "==24.2.0" + "version": "==25.3.0b1" }, "lazydocs": { "hashes": [ @@ -1830,11 +1862,11 @@ }, "locust": { "hashes": [ - "sha256:27d13cf36bc49bfc18f78670b75fd0cc4738c60df1334a2b9638255b1d9a39e0", - "sha256:f34b7958bc21781fd4929f898b3a38397ce0da3b7d5950271a54c9379b02cacb" + "sha256:672bca05700d1ab7152bc345473f55eb802f2573e7734e15fa5bffd7f348bec2", + "sha256:dfb385bc50a40a5dd8b591842c22a8224348d3fe23aa2d970f20a006f594f1a8" ], "markers": "python_version >= '3.7'", - "version": "==2.12.1.dev49" + "version": "==2.12.3.dev14" }, "loguru": { "hashes": [ @@ -1908,18 +1940,18 @@ }, "minio": { "hashes": [ - "sha256:12ac2d1d4fd3cea159d625847445e1bfceba3fbc2f4ab692c2d2bf716f82246c", - "sha256:1cab424275749b8b5b8bb0c6cc856d667305ef549796ae56f3237fe55306a1fc" + "sha256:63111fedf67e07c5a4c8948b3a4e5ecbb372b522ea562bfa4d484194ec6a2b99", + "sha256:c8ab8646f93d47b9aefbf4db76aaba5ac54c87454b922a3d6c1423aed050aad5" ], - "version": "==7.1.11" + "version": "==7.1.12" }, "more-itertools": { "hashes": [ - "sha256:1bc4f91ee5b1b31ac7ceacc17c09befe6a40a503907baf9c839c229b5095cfd2", - "sha256:c09443cd3d5438b8dafccd867a6bc1cb0894389e90cb53d227456b0b0bccb750" + "sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41", + "sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab" ], - "markers": "python_version >= '3.5'", - "version": "==8.14.0" + "markers": "python_version >= '3.7'", + "version": "==9.0.0" }, "msgpack": { "hashes": [ @@ -1988,32 +2020,33 @@ }, "mypy": { "hashes": [ - "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655", - "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9", - "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3", - "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6", - "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0", - "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58", - "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103", - "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09", - "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417", - "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56", - "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2", - "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856", - "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0", - "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8", - "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27", - "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5", - "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71", - "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27", - "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe", - "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca", - "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf", - "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9", - "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c" + "sha256:1021c241e8b6e1ca5a47e4d52601274ac078a89845cfde66c6d5f769819ffa1d", + "sha256:14d53cdd4cf93765aa747a7399f0961a365bcddf7855d9cef6306fa41de01c24", + "sha256:175f292f649a3af7082fe36620369ffc4661a71005aa9f8297ea473df5772046", + "sha256:26ae64555d480ad4b32a267d10cab7aec92ff44de35a7cd95b2b7cb8e64ebe3e", + "sha256:41fd1cf9bc0e1c19b9af13a6580ccb66c381a5ee2cf63ee5ebab747a4badeba3", + "sha256:5085e6f442003fa915aeb0a46d4da58128da69325d8213b4b35cc7054090aed5", + "sha256:58f27ebafe726a8e5ccb58d896451dd9a662a511a3188ff6a8a6a919142ecc20", + "sha256:6389af3e204975d6658de4fb8ac16f58c14e1bacc6142fee86d1b5b26aa52bda", + "sha256:724d36be56444f569c20a629d1d4ee0cb0ad666078d59bb84f8f887952511ca1", + "sha256:75838c649290d83a2b83a88288c1eb60fe7a05b36d46cbea9d22efc790002146", + "sha256:7b35ce03a289480d6544aac85fa3674f493f323d80ea7226410ed065cd46f206", + "sha256:85f7a343542dc8b1ed0a888cdd34dca56462654ef23aa673907305b260b3d746", + "sha256:86ebe67adf4d021b28c3f547da6aa2cce660b57f0432617af2cca932d4d378a6", + "sha256:8ee8c2472e96beb1045e9081de8e92f295b89ac10c4109afdf3a23ad6e644f3e", + "sha256:91781eff1f3f2607519c8b0e8518aad8498af1419e8442d5d0afb108059881fc", + "sha256:a692a8e7d07abe5f4b2dd32d731812a0175626a90a223d4b58f10f458747dd8a", + "sha256:a705a93670c8b74769496280d2fe6cd59961506c64f329bb179970ff1d24f9f8", + "sha256:c6e564f035d25c99fd2b863e13049744d96bd1947e3d3d2f16f5828864506763", + "sha256:cebca7fd333f90b61b3ef7f217ff75ce2e287482206ef4a8b18f32b49927b1a2", + "sha256:d6af646bd46f10d53834a8e8983e130e47d8ab2d4b7a97363e35b24e1d588947", + "sha256:e7aeaa763c7ab86d5b66ff27f68493d672e44c8099af636d433a7f3fa5596d40", + "sha256:eaa97b9ddd1dd9901a22a879491dbb951b5dec75c3b90032e2baa7336777363b", + "sha256:eb7a068e503be3543c4bd329c994103874fa543c1727ba5288393c21d912d795", + "sha256:f793e3dd95e166b66d50e7b63e69e58e88643d80a3dcc3bcd81368e0478b089c" ], - "markers": "python_version >= '3.6'", - "version": "==0.971" + "markers": "python_version >= '3.7'", + "version": "==0.982" }, "mypy-extensions": { "hashes": [ @@ -2024,19 +2057,19 @@ }, "nest-asyncio": { "hashes": [ - "sha256:b98e3ec1b246135e4642eceffa5a6c23a3ab12c82ff816a92c612d68205813b2", - "sha256:e442291cd942698be619823a17a86a5759eabe1f8613084790de189fe9e16d65" + "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8", + "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290" ], "markers": "python_version >= '3.5'", - "version": "==1.5.5" + "version": "==1.5.6" }, "oauthlib": { "hashes": [ - "sha256:1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721", - "sha256:88e912ca1ad915e1dcc1c06fc9259d19de8deacd6fd17cc2df266decc2e49066" + "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", + "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918" ], "markers": "python_version >= '3.6'", - "version": "==3.2.1" + "version": "==3.2.2" }, "packaging": { "hashes": [ @@ -2089,11 +2122,11 @@ }, "pipenv": { "hashes": [ - "sha256:b6dfff06dea56e3bade92fc267c2da1f0807c5c7b0903eef6115fdb899c2b4b6", - "sha256:e02642085a160516c49df34fa939a99cea306aa04bef8a5610392aacbfb03574" + "sha256:a4d88f6667cbcd9ea432d626a8b373cd3101886b9fb964ea7e7f9650a83fc307", + "sha256:f43972a42411107ade86b6f17dd698dfcd843bd84eb7264163ebb363f6b0ede4" ], "markers": "python_version >= '3.7'", - "version": "==2022.9.8" + "version": "==2022.10.12" }, "pkginfo": { "hashes": [ @@ -2136,58 +2169,62 @@ }, "psutil": { "hashes": [ - "sha256:14b29f581b5edab1f133563272a6011925401804d52d603c5c606936b49c8b97", - "sha256:256098b4f6ffea6441eb54ab3eb64db9ecef18f6a80d7ba91549195d55420f84", - "sha256:39ec06dc6c934fb53df10c1672e299145ce609ff0611b569e75a88f313634969", - "sha256:404f4816c16a2fcc4eaa36d7eb49a66df2d083e829d3e39ee8759a411dbc9ecf", - "sha256:42638876b7f5ef43cef8dcf640d3401b27a51ee3fa137cb2aa2e72e188414c32", - "sha256:4642fd93785a29353d6917a23e2ac6177308ef5e8be5cc17008d885cb9f70f12", - "sha256:4fb54941aac044a61db9d8eb56fc5bee207db3bc58645d657249030e15ba3727", - "sha256:561dec454853846d1dd0247b44c2e66a0a0c490f937086930ec4b8f83bf44f06", - "sha256:5d39e3a2d5c40efa977c9a8dd4f679763c43c6c255b1340a56489955dbca767c", - "sha256:614337922702e9be37a39954d67fdb9e855981624d8011a9927b8f2d3c9625d9", - "sha256:67b33f27fc0427483b61563a16c90d9f3b547eeb7af0ef1b9fe024cdc9b3a6ea", - "sha256:68b35cbff92d1f7103d8f1db77c977e72f49fcefae3d3d2b91c76b0e7aef48b8", - "sha256:7cbb795dcd8ed8fd238bc9e9f64ab188f3f4096d2e811b5a82da53d164b84c3f", - "sha256:8f024fbb26c8daf5d70287bb3edfafa22283c255287cf523c5d81721e8e5d82c", - "sha256:91aa0dac0c64688667b4285fa29354acfb3e834e1fd98b535b9986c883c2ce1d", - "sha256:94e621c6a4ddb2573d4d30cba074f6d1aa0186645917df42c811c473dd22b339", - "sha256:9770c1d25aee91417eba7869139d629d6328a9422ce1cdd112bd56377ca98444", - "sha256:b1928b9bf478d31fdffdb57101d18f9b70ed4e9b0e41af751851813547b2a9ab", - "sha256:b2f248ffc346f4f4f0d747ee1947963613216b06688be0be2e393986fe20dbbb", - "sha256:b315febaebae813326296872fdb4be92ad3ce10d1d742a6b0c49fb619481ed0b", - "sha256:b3591616fa07b15050b2f87e1cdefd06a554382e72866fcc0ab2be9d116486c8", - "sha256:b4018d5f9b6651f9896c7a7c2c9f4652e4eea53f10751c4e7d08a9093ab587ec", - "sha256:d75291912b945a7351d45df682f9644540d564d62115d4a20d45fa17dc2d48f8", - "sha256:dc9bda7d5ced744622f157cc8d8bdd51735dafcecff807e928ff26bdb0ff097d", - "sha256:e3ac2c0375ef498e74b9b4ec56df3c88be43fe56cac465627572dbfb21c4be34", - "sha256:e4c4a7636ffc47b7141864f1c5e7d649f42c54e49da2dd3cceb1c5f5d29bfc85", - "sha256:ed29ea0b9a372c5188cdb2ad39f937900a10fb5478dc077283bf86eeac678ef1", - "sha256:f40ba362fefc11d6bea4403f070078d60053ed422255bd838cd86a40674364c9", - "sha256:f4cb67215c10d4657e320037109939b1c1d2fd70ca3d76301992f89fe2edb1f1", - "sha256:f7929a516125f62399d6e8e026129c8835f6c5a3aab88c3fff1a05ee8feb840d", - "sha256:fd331866628d18223a4265371fd255774affd86244fc307ef66eaf00de0633d5", - "sha256:feb861a10b6c3bb00701063b37e4afc754f8217f0f09c42280586bd6ac712b5c" + "sha256:07d880053c6461c9b89cd5d4808f3b8336665fa3acdefd6777662c5ed73a851a", + "sha256:12500d761ac091f2426567f19f95fd3f15a197d96befb44a5c1e3cbe6db5752c", + "sha256:1b540599481c73408f6b392cdffef5b01e8ff7a2ac8caae0a91b8222e88e8f1e", + "sha256:35feafe232d1aaf35d51bd42790cbccb882456f9f18cdc411532902370d660df", + "sha256:3a7826e68b0cf4ce2c1ee385d64eab7d70e3133171376cac53d7c1790357ec8f", + "sha256:46907fa62acaac364fff0b8a9da7b360265d217e4fdeaca0a2397a6883dffba2", + "sha256:4bd4854f0c83aa84a5a40d3b5d0eb1f3c128f4146371e03baed4589fe4f3c931", + "sha256:538fcf6ae856b5e12d13d7da25ad67f02113c96f5989e6ad44422cb5994ca7fc", + "sha256:547ebb02031fdada635452250ff39942db8310b5c4a8102dfe9384ee5791e650", + "sha256:5e8b50241dd3c2ed498507f87a6602825073c07f3b7e9560c58411c14fe1e1c9", + "sha256:5fa88e3d5d0b480602553d362c4b33a63e0c40bfea7312a7bf78799e01e0810b", + "sha256:68fa227c32240c52982cb931801c5707a7f96dd8927f9102d6c7771ea1ff5698", + "sha256:6ced1ad823ecfa7d3ce26fe8aa4996e2e53fb49b7fed8ad81c80958501ec0619", + "sha256:71b1206e7909792d16933a0d2c1c7f04ae196186c51ba8567abae1d041f06dcb", + "sha256:767ef4fa33acda16703725c0473a91e1832d296c37c63896c7153ba81698f1ab", + "sha256:7ccfcdfea4fc4b0a02ca2c31de7fcd186beb9cff8207800e14ab66f79c773af6", + "sha256:7e4939ff75149b67aef77980409f156f0082fa36accc475d45c705bb00c6c16a", + "sha256:828c9dc9478b34ab96be75c81942d8df0c2bb49edbb481f597314d92b6441d89", + "sha256:8a4e07611997acf178ad13b842377e3d8e9d0a5bac43ece9bfc22a96735d9a4f", + "sha256:941a6c2c591da455d760121b44097781bc970be40e0e43081b9139da485ad5b7", + "sha256:9a4af6ed1094f867834f5f07acd1250605a0874169a5fcadbcec864aec2496a6", + "sha256:9ec296f565191f89c48f33d9544d8d82b0d2af7dd7d2d4e6319f27a818f8d1cc", + "sha256:9ec95df684583b5596c82bb380c53a603bb051cf019d5c849c47e117c5064395", + "sha256:a04a1836894c8279e5e0a0127c0db8e198ca133d28be8a2a72b4db16f6cf99c1", + "sha256:a3d81165b8474087bb90ec4f333a638ccfd1d69d34a9b4a1a7eaac06648f9fbe", + "sha256:b4a247cd3feaae39bb6085fcebf35b3b8ecd9b022db796d89c8f05067ca28e71", + "sha256:ba38cf9984d5462b506e239cf4bc24e84ead4b1d71a3be35e66dad0d13ded7c1", + "sha256:beb57d8a1ca0ae0eb3d08ccaceb77e1a6d93606f0e1754f0d60a6ebd5c288837", + "sha256:d266cd05bd4a95ca1c2b9b5aac50d249cf7c94a542f47e0b22928ddf8b80d1ef", + "sha256:d8c3cc6bb76492133474e130a12351a325336c01c96a24aae731abf5a47fe088", + "sha256:db8e62016add2235cc87fb7ea000ede9e4ca0aa1f221b40cef049d02d5d2593d", + "sha256:e7507f6c7b0262d3e7b0eeda15045bf5881f4ada70473b87bc7b7c93b992a7d7", + "sha256:ed15edb14f52925869250b1375f0ff58ca5c4fa8adefe4883cfb0737d32f5c02", + "sha256:f57d63a2b5beaf797b87024d018772439f9d3103a395627b77d17a8d72009543", + "sha256:fa5e32c7d9b60b2528108ade2929b115167fe98d59f89555574715054f50fa31", + "sha256:fe79b4ad4836e3da6c4650cb85a663b3a51aef22e1a829c384e18fae87e5e727" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==5.9.2" + "version": "==5.9.3" }, "psycopg2": { "hashes": [ - "sha256:06f32425949bd5fe8f625c49f17ebb9784e1e4fe928b7cce72edc36fb68e4c0c", - "sha256:0762c27d018edbcb2d34d51596e4346c983bd27c330218c56c4dc25ef7e819bf", - "sha256:083707a696e5e1c330af2508d8fab36f9700b26621ccbcb538abe22e15485362", - "sha256:34b33e0162cfcaad151f249c2649fd1030010c16f4bbc40a604c1cb77173dcf7", - "sha256:4295093a6ae3434d33ec6baab4ca5512a5082cc43c0505293087b8a46d108461", - "sha256:8cf3878353cc04b053822896bc4922b194792df9df2f1ad8da01fb3043602126", - "sha256:8e841d1bf3434da985cc5ef13e6f75c8981ced601fd70cc6bf33351b91562981", - "sha256:9572e08b50aed176ef6d66f15a21d823bb6f6d23152d35e8451d7d2d18fdac56", - "sha256:a81e3866f99382dfe8c15a151f1ca5fde5815fde879348fe5a9884a7c092a305", - "sha256:cb10d44e6694d763fa1078a26f7f6137d69f555a78ec85dc2ef716c37447e4b2", - "sha256:d3ca6421b942f60c008f81a3541e8faf6865a28d5a9b48544b0ee4f40cac7fca" + "sha256:07b90a24d5056687781ddaef0ea172fd951f2f7293f6ffdd03d4f5077801f426", + "sha256:1da77c061bdaab450581458932ae5e469cc6e36e0d62f988376e9f513f11cb5c", + "sha256:46361c054df612c3cc813fdb343733d56543fb93565cff0f8ace422e4da06acb", + "sha256:839f9ea8f6098e39966d97fcb8d08548fbc57c523a1e27a1f0609addf40f777c", + "sha256:849bd868ae3369932127f0771c08d1109b254f08d48dc42493c3d1b87cb2d308", + "sha256:8de6a9fc5f42fa52f559e65120dcd7502394692490c98fed1221acf0819d7797", + "sha256:a11946bad3557ca254f17357d5a4ed63bdca45163e7a7d2bfb8e695df069cc3a", + "sha256:aa184d551a767ad25df3b8d22a0a62ef2962e0e374c04f6cbd1204947f540d61", + "sha256:aafa96f2da0071d6dd0cbb7633406d99f414b40ab0f918c9d9af7df928a1accb", + "sha256:c7fa041b4acb913f6968fce10169105af5200f296028251d817ab37847c30184", + "sha256:d529926254e093a1b669f692a3aa50069bc71faf5b0ecd91686a78f62767d52f" ], "markers": "python_version >= '3.6'", - "version": "==2.9.3" + "version": "==2.9.4" }, "ptyprocess": { "hashes": [ @@ -2385,19 +2422,19 @@ }, "pytest-cov": { "hashes": [ - "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6", - "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470" + "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b", + "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470" ], "markers": "python_version >= '3.6'", - "version": "==3.0.0" + "version": "==4.0.0" }, "pytest-mock": { "hashes": [ - "sha256:77f03f4554392558700295e05aed0b1096a20d4a60a4f3ddcde58b0c31c8fca2", - "sha256:8a9e226d6c0ef09fcf20c94eb3405c388af438a90f3e39687f84166da82d5948" + "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b", + "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f" ], "markers": "python_version >= '3.7'", - "version": "==3.8.2" + "version": "==3.10.0" }, "pytest-profiling": { "hashes": [ @@ -2495,98 +2532,98 @@ }, "pyzmq": { "hashes": [ - "sha256:00a8a4f83259b91b238244c999a33e0a77c0427d496902fb75fdf1601e4c9d3d", - "sha256:025a0815d36ccd54cf002feb9cbe0e37c2253eca305ee4dc72ccdb4a814eefb4", - "sha256:0584420cbd2dac77f81bdc4b9da2635a54300563d4632433b08cb1f505341ef0", - "sha256:0775b65e79cccfca2b017e80ffe6dbd224b035a47245c4140b08e93996425942", - "sha256:0a07fb73ae006a5b565d19232e5a6592fd7c93e57e67c2e592bf0b21f1676767", - "sha256:13b008bd142c9f6079ad75a30504eef2291502e9eac90e722b16fcf9ce856147", - "sha256:1a53c6030c4f45859af9a75cfc0d8b551b8924f9b2503397c69d0fa2f62d2370", - "sha256:1b978e1318311eb69523ed60f084b752f52f27ffea4ce2f60deab4d8a4cca6de", - "sha256:1bdec8988cad1f9a8453b4d00fd11598a91604cd9b205640e98b2f22e0435921", - "sha256:1c23568e1581f637b1a1e1fd15dcd5e9165332c94bf8101c562e7c50640d673e", - "sha256:1f200cdca2fc842749a3f263ccf9e4b50e732ad14f53b60faf68ef656b75c32a", - "sha256:201e4d5733cecfd469d9ceee57500a0f365f85d6f14dd524105e2a0be8cd93c1", - "sha256:2e5a398955b1cfdd85dd699f2390661b7bbe9edcbadd70a444c79c69e6c31c91", - "sha256:3823e5e613a61948b2e6b85fd91f872772717d24cd1df871836665d4c56d6b34", - "sha256:38e9ff2918d50a588e56aa80dae0373ef9f67512fc5691f95db2f59edabc083e", - "sha256:3b5107313c7f28b0e074da7a9d8c0132cb8dc32fdd3b5a4c6a224d30e50d6324", - "sha256:3e66d3237a7e8a11cdb8b470c77a6fb43f49fe9407936a2c9ac468ba2ba0982e", - "sha256:40cdb50e82393253d340b6a357474588eb01cfd90b06231d5bfbc14490490b1b", - "sha256:44c1dc858b76d2ab28f5ea040dd5e816a71624a8cf38d4ca3208006fd2a9375e", - "sha256:452c3d5bfbaf96f32ef20673e6ba238355891884009f0c87e0f97a985293ef42", - "sha256:460f0ff945d4b46c2d568941be33cf08954fca1e3239cf6a6ee03b1371de8f64", - "sha256:4985a82958d67eafd3f8c9c215c3da8f633592024f771420477f22f011846235", - "sha256:4ec8847ab93200a94fd3e88e2824a6bba9a46d28161f1bf0be24f2237c40c291", - "sha256:52d881c33f8db5ffcb0aabc14cc71098453f4700511195cebca846000b44b080", - "sha256:534d13940b2476e4bacb54558c7b9b62fb275c2839e06267597a3e4b2f291196", - "sha256:5439bef77fd3818c20e1bf5657836e105e4e48e1a7996e24ebb55402a681934e", - "sha256:5c1c2d7ebe991d8e36365ccd6b47297b6b96393ad453cad990901c21924add30", - "sha256:62ee069fe338d0b057b81e752dad2b9b6b206ba8570a878dbbe8b93b7b99ebb1", - "sha256:65b532c95a4cde95bb4787b5545321ed5624fa8d7391bce17c4e2a0717b97bb7", - "sha256:6814a6add1b7cb76e3fdfd961ce4c48c1f0a29e82bdb3d060a669b85bc6db454", - "sha256:761016baa6ca720677ce01d453801e41db2d0e53cf052ed00ba8c2e6cae4d2cd", - "sha256:8361c90701fc6ff5f16c81c969563c6915402fbecb2ddc9c5063fec0238e5e52", - "sha256:844040d44cc4320cdffb258fe03768ff0b37e710d56a70dd1f6c2902738f1e28", - "sha256:8698db54fd49af74333190fb154448dcfc67a382aa2b2d784ffe981b7cf421ec", - "sha256:8988209d5efae9b5c9297fb48d153e2528384c1afe2c9fd8eeb474cd6e765199", - "sha256:8a43105683a66de78489b30037b97c9ce5f821f57035f6944f633bbd4baadd15", - "sha256:8a93abd67a46c6b91f28a7513b9f8b9a5432fd573c3d6444c083e07209bf96e4", - "sha256:8ea1861512c7f32d0c585119a2caea6665eec6df429abf5810826b0df9587de1", - "sha256:99bb8cff279f7d1f516919d82b35ed0796c53ce7da7dca191fabfa4c53f47740", - "sha256:9ed10f5a942a2903a722d63806b7a9d2e0a966c038100dc763483d8fbe8ea074", - "sha256:a5b9471e5e507f51f4c0acabec60a7ae2ea218ac6134a8e5ec5674845347a63a", - "sha256:a5cdbede23aae133e50f786adc4a2cacf60bddde649e3dc122c32368daa2c007", - "sha256:aa6d0dfa94ce89d050dca0104389e10c537715bf10e5b0bfe5ece79f17f1719e", - "sha256:adbf2bb11a616210735d6a112186d378f7934be3f2935e6d9dd760c110840c3a", - "sha256:ae33cb195304ac16996184b115f9e27eb9f0b14062e97fbd1d446e3e4a594ff0", - "sha256:b1ef471c62c3d0681cfbaa8bbaf96f22e20cafd391ecad8a43317f6b1598478e", - "sha256:b94a3453a18bb914b2cac1ac38c09f980a3c86a8cd0bb744dd6bd03ab8ff958a", - "sha256:be67e7f48fce8dbefd602f779c7382c874a1a1a3d08f375366c4d28baaa0bfd4", - "sha256:c37c0046d04c0fdd99a9a31d6a9ce7d703cca3b7fdde5738603503dfba58a25f", - "sha256:c6736703c7581d18e3959c1d786035c620def2f096e762aefaf08cfa39844d1e", - "sha256:ce8c61297a751c67062d11e44352e9379da03a90d95aa352395d3b1e53e9f20a", - "sha256:cf6477a083f8a1b54893ad24bc15f94dd0684b02320c69d2a69dcf36f70e73cb", - "sha256:dbb871b22acec52c1b046ef6aa3d16f83618c704772f126a49e7446a0c885278", - "sha256:dbece43299705eca217808759f4322c7cab41db2ba3ad8d7261ee2b17abe6488", - "sha256:dfde6624d3d99d9a67235b60ae13be1a6ffce2f1de3cd2be9900f011d5d6a6a6", - "sha256:e0128c7b723984e31c1b0df5bc532715defd13bf64d8d9eddd7207d093759ae4", - "sha256:e24d7bda7a32ff35d0c914a52dd920a408f73d7e4b93d6755d7c67e819a8cd8c", - "sha256:e9cd5c7449f297a1b53a4803413db907a8cad1178435e2879c1b92816f2bbe56", - "sha256:e9e3fa94fa1e58763a7b824b8e0015d93c9fdd8e449d0218d13d01172e3d1539", - "sha256:eadf1d3841c2155b68ef49147253fd4ac1447a972d01c08248114edc4d3ba9d5", - "sha256:eb3b8acb5dc33ec812d79f35b85fddc43d8f75b65c00c635ee3c0b527e11c8ea", - "sha256:ebdb43e947291c5cb80ef6c7d525f64bc4ed685de43f855ba0cf2b0fd8052e3a", - "sha256:ee24b94b5ae22af9148e597f512fae8383908ca07d3b7f99b349679fede4d7d3", - "sha256:ef4bd725c06d6ee9e502419ceeb5dfaccb6bbe36f359fd0366b90a56b6dae647", - "sha256:f05524f7cfa4f7398259a428fbb22ec4c3f0665c6a303a0d6afdd98457b19af3", - "sha256:f1ddc43cceb500e4a6495250d9d34cac93e6d9e89a46f0e34fcefcc3caf66ef3", - "sha256:f328d28d0a1ea43d7030e1999ced9db252ba4ef2531af3e9bfc135cca77b8324", - "sha256:f355d23a420a6b39241bbef2c803839b01d52d680d89aac39460505e57b2cd03", - "sha256:f81f4065ff8ccd207204129463fd587b25c9f593128176a717dbabc03af9b233", - "sha256:f969214a9ebf1175a8aba863d6f1220174130188686d4ed475d138a240e60c1c", - "sha256:fc21a74f337298840f59f21a12fbf6ec1de798cd69d6b331ef9ed88ac8cb18f0", - "sha256:fc2c363f68bbb9fea6b8137c432c6df9d7c8c76b01549c4410c506dac9e30663", - "sha256:ff4e510a9509d36359c7af4684e73489cdd53c781dd4bc9b07dc808fab56cc48", - "sha256:ff6c9fdbcfb285e28fe35eaf5ba39644cbc65343aa41844217c2b5a99abbdd7e" + "sha256:02f39e0d3ce151ac51529fd14ee5a4e005622d12a4a6b1734e726656a9b50821", + "sha256:05f30be72671347b79d1b86ccf1d32ea41ea1e44bf64ef06b338465628f66e26", + "sha256:061aba113171c90947675893d0290a814be3b8efea9614fe6357c7df5881a503", + "sha256:07ef51d202c5a875b1a9e9ddc038f9441319ae3351a431109c6ad649a391c9ca", + "sha256:082e3b338da85c9c947d263921cef73e0d7cca3156acd8d7aa48f6df46ee24be", + "sha256:0d1801c2e1435473c530a3022f3c96a480f0702991791198c9471f4836215d56", + "sha256:0d66d6b333269fdd40e6882b5602418e847000b4ec4e5a5a1295ad4aa5eb3787", + "sha256:106daa5680c14d1154cbedb5ca0a39779b48ca9d8d682974cb2e2ff5f9d5ae18", + "sha256:11f9a583e9496d990b4499cc482fe565edb74af100e847508975d1342c17ad46", + "sha256:1252cb8602105399d5c182ec6ce408b60b376ffc75e2a91d3c17ddb37b77a369", + "sha256:135b2d908a55981ba878af68a14dbca78d147960fddb377614cf8e418e27671f", + "sha256:1399765e92343b58ec4e5d117e519df3857a2ac8a21604452924ee3ead1d7f99", + "sha256:15c1db0c828f43210b123651d145ebb11d62a4953ef0b4cec6998dab80d514ac", + "sha256:16eef4734b8f8baae6e067e159ddf8d2e429c26ff4a622421b51a859d840b0da", + "sha256:17c66a2be06b7668dae5445dd523afe64b925a53609a8f27e94760b6924ebfca", + "sha256:18f9beb087dcf6680b32963534be1a52517da6f666f72d81d638b2f8c14e308d", + "sha256:196db0581f5fc88034b9530f6aad62b97281753e497be6d87ff5bdf16215d0e3", + "sha256:1d501c9a8fc1f1834f137d6814533511a75090a761f8a7a0f847c5269df4e0e3", + "sha256:1e343584b3e58de0e2622fce79583211d083134ef63149dc44d14cfea104a494", + "sha256:209c2730b58c7929ac55f5ec1c35b5a754c4b7aaed3dd80ad01e47360ef9804b", + "sha256:3a500ac3fa966ec0efc21011cba440c29582547770be3b275dd8fe300417b3fd", + "sha256:3ae455ddaf6aab77b9240909146697e9e757425d29a28f89ec6e19c5bcddcfd4", + "sha256:3b74cff1444efc4b3f9b42cae71c8288d8c80e4a4fd2b5aa9f448c91a710487e", + "sha256:41dab254b8214f86bf3119e83372596cc36719a3841d8fc9b4c4db498e8e4ee0", + "sha256:42b5cb4f77694e526cf6a7180ca2417c75ec4efcacc429a2fb08d06916d5559f", + "sha256:48e210b4110ea0bd4a46e421d63b6e553442e48344a7149c727ffe6f127142c8", + "sha256:4e7646d6fb3a27a659d6a05ffdf69a06132b58094c7b5f7fba3e00047e4706fa", + "sha256:619de714b9f1e3dd940eac6ec561a583feb2de8cb745061fdfd232ad78b7f4ba", + "sha256:62785a63ef18c0f339ada5e5966c70b25c0a7c0b239d763093b352ff47c7ff54", + "sha256:66762a651b08404ba767958aeddaab2f356048141f44fefa06834f3d0d2ea553", + "sha256:7015d2113bfbbdc86370f2c664004e4ee8c7c8e02e002f84a521f618f108ca7d", + "sha256:72df27d879b946013b89b4494fd94f098052c8963a13e3288dd7dd927143cbfc", + "sha256:73c581afef04c53ca2cb9952e2e4fee09cbdf27f538b344629ba2e28b49c1843", + "sha256:78da75ee15ec967c7d96e1c7daca4a0d5c9dd68b22e375d9ec2eea2a770c8365", + "sha256:79ab080f3289e398efc987a7b1ceeabd2cd1990252f72c368d5f9ae61c6ec118", + "sha256:8528b72de259357f29cfc2a42c9ee02a1c4f616f25ad40fda505773f1da8b5b8", + "sha256:852a0172d4440c53e9fe2d8036b1f492b36bf1f774632a05ebbebde70e164256", + "sha256:867b77a3c4946e13010a10cf46611f0089407f1986b0c89242e424eae6e8eaf8", + "sha256:873c1a34752fcba09417b3d9197f93128a2cf6735d7fa22da0ae72ba0f617c2c", + "sha256:9008193a3b038b7d31d6c161257220089f4dd6403563d2e9f25ca3aedb00f737", + "sha256:909c6b0ff13bafa5258e9acd6892a3bd56eee5bb9a5e9ca4d7f063064b68229a", + "sha256:919a49c3609348741b013d5f992148b37f8a051b9d0b6ff37662c1b58a270c3d", + "sha256:92bf087eb3bcdcc0fafcdc41fabd064711bb95d62a156405d513b936df9bad6b", + "sha256:997341a1728b3c5ae2c3fbc44efbf765695d5877ad9528653b065c5d2b143b7a", + "sha256:9e5fbeabfba76ae8cdab45ca633dcf52fabad5bfe2dcccfb2931f43103101175", + "sha256:9fd596c19d783b3e2f042be711f7bb61337c8028a94f8dcac48dfcc342490892", + "sha256:a0b9df3d3190eefceb49ea1bb077ea09d8ca62d47758bd5176b6a1d4fb5fafaa", + "sha256:a2a77d360558501b90b482535546df333d882d479dc26ae7946428d1fe92ca4a", + "sha256:aeba98faeb305d1033b5e73e08f7fcee3f424269ff8902cffd2a7035aa905102", + "sha256:b313df01600deb01eaf69b5cf6754821a227e76be6ece5b7ba62966eee4ca627", + "sha256:b6f47bcd9f794a2d5f2fba0662e1e3cb408cb347c9143ded2af5a68ff59c26b0", + "sha256:ba22327f6a139451ab3ba794bb1004a20e9b0cee256bfceac627d93e88e02e02", + "sha256:bccc291fcb99d87a8f82b2dcebf1f14ce69459fdef2981fb3cd7490cea8b614c", + "sha256:c2f71d086d46a168883f12bddf8081915b05e379f051c7dd8b54e5f0f549c7bd", + "sha256:c3ff827d8af741d59716dd3372009bc79b06a1d08475967d0e7771ce280af0b8", + "sha256:c9aa72b28061fcc48df207361679016f6f804765ee3408096f59f4676e769ecf", + "sha256:cb1c92246ddf9fa444e5dca0116eb56367c711d088f014456e08b6e78b256cba", + "sha256:cbfe68a51179cc7a00e55502f552f16d8f62e38883a3303500edf423a4e76c64", + "sha256:ccec59d84247bc13ba16524a9a83fffc00731c6efcf39e09c1b1b2b6958cdf55", + "sha256:ce058de5b08d31c4c63b0554e1faf0b95e10ddc33798fae47664282cd11f9796", + "sha256:cf6cdfbd77677b636d086478439a730e7140e8ab5c5f40272bcf09e71bd25b44", + "sha256:d0987640a3e7c8ff7ff3a5885f83a1f5e3c398b3792e7d07ac4cafe4acdc0f0f", + "sha256:d235e097ecc464f81b994d0d0260a773726907f0d6826549498cba46f850cde7", + "sha256:d577c4a1e0f04bdba88534f1ccd7f27200bc455551f226cb5d66136182d1bdf3", + "sha256:de4a4179a1ebe1e4737264caa6b806f7623a2278695bc861085c1e655c174b0a", + "sha256:e100279c9c657df16ff7d23a3e3154c6a26c43d5112de6d6a3791926e3595376", + "sha256:e34681feb36361ead3cd722fe570c219d0957248a6ab93132924bc8a60f1139f", + "sha256:e8fcac4005b62fec0ddd03f4c3e7fc454a041d56f348983c93515e44a026c360", + "sha256:f453a8325c1ffff651d4224d2232255cddca749c601f65d3d8f734b574424fa8", + "sha256:f59cd579ff0c8a07d71003f45876d8e9fc25e99bf02c4d5171f7b38e663f1b4f", + "sha256:f68323617fc0d7f11ffbbd34b6a1ebe59a2cbd73298671de2aae7a12a56c0b2c", + "sha256:f80e122db717f21f65febccc7f74810c0e3939382d1362cd39310e5599596316", + "sha256:fa45d98f9f64d963fdd3bd31a18e547acdab4f744e5419b2907dd548418e09ac", + "sha256:ff04b7915573ce6d647c2044bfe8ed1dc317326e1afb2bd9516581d317cd051d" ], "markers": "python_version >= '3.6'", - "version": "==24.0.0" + "version": "==25.0.0b1" }, "readme-renderer": { "hashes": [ - "sha256:16c914ca7731fd062a316a2a8e5434a175ee34661a608af771a60c881f528a34", - "sha256:96768c069729f69176f514477e57f2f8cd543fbb2cd7bad372976249fa509a0c" + "sha256:d3f06a69e8c40fca9ab3174eca48f96d9771eddb43517b17d96583418427b106", + "sha256:e8ad25293c98f781dbc2c5a36a309929390009f902f99e1798c761aaf04a7923" ], "markers": "python_version >= '3.7'", - "version": "==37.1" + "version": "==37.2" }, "requests": { "hashes": [ "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" ], - "markers": "python_version >= '3.7' and python_version < '4.0'", + "markers": "python_version >= '3.7' and python_version < '4'", "version": "==2.28.1" }, "requests-oauthlib": { @@ -2599,10 +2636,11 @@ }, "requests-toolbelt": { "hashes": [ - "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f", - "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0" + "sha256:64c6b8c51b515d123f9f708a29743f44eb70c4479440641ed2df8c4dea56d985", + "sha256:f695d6207931200b46c8ef6addbc8a921fb5d77cc4cd209c2e7d39293fcd2b30" ], - "version": "==0.9.1" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.10.0" }, "rfc3986": { "hashes": [ @@ -2614,11 +2652,11 @@ }, "rich": { "hashes": [ - "sha256:2eb4e6894cde1e017976d2975ac210ef515d7548bc595ba20e195fb9628acdeb", - "sha256:63a5c5ce3673d3d5fbbf23cd87e11ab84b6b451436f1b7f19ec54b6bc36ed7ca" + "sha256:a4eb26484f2c82589bd9a17c73d32a010b1e29d89f1604cd9bf3a2097b81bb5e", + "sha256:ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0" ], - "markers": "python_version < '4' and python_full_version >= '3.6.3'", - "version": "==12.5.1" + "markers": "python_full_version >= '3.6.3' and python_full_version < '4.0.0'", + "version": "==12.6.0" }, "roundrobin": { "hashes": [ @@ -2631,7 +2669,7 @@ "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21" ], - "markers": "python_version >= '3.6' and python_version < '4.0'", + "markers": "python_version >= '3.6' and python_version < '4'", "version": "==4.9" }, "secretstorage": { @@ -2644,11 +2682,11 @@ }, "setuptools": { "hashes": [ - "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82", - "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57" + "sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17", + "sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356" ], "markers": "python_version >= '3.7'", - "version": "==65.3.0" + "version": "==65.5.0" }, "shortuuid": { "hashes": [ @@ -2683,57 +2721,57 @@ }, "sqlalchemy": { "hashes": [ - "sha256:0002e829142b2af00b4eaa26c51728f3ea68235f232a2e72a9508a3116bd6ed0", - "sha256:0005bd73026cd239fc1e8ccdf54db58b6193be9a02b3f0c5983808f84862c767", - "sha256:0292f70d1797e3c54e862e6f30ae474014648bc9c723e14a2fda730adb0a9791", - "sha256:036d8472356e1d5f096c5e0e1a7e0f9182140ada3602f8fff6b7329e9e7cfbcd", - "sha256:05f0de3a1dc3810a776275763764bb0015a02ae0f698a794646ebc5fb06fad33", - "sha256:0990932f7cca97fece8017414f57fdd80db506a045869d7ddf2dda1d7cf69ecc", - "sha256:13e397a9371ecd25573a7b90bd037db604331cf403f5318038c46ee44908c44d", - "sha256:14576238a5f89bcf504c5f0a388d0ca78df61fb42cb2af0efe239dc965d4f5c9", - "sha256:199a73c31ac8ea59937cc0bf3dfc04392e81afe2ec8a74f26f489d268867846c", - "sha256:2082a2d2fca363a3ce21cfa3d068c5a1ce4bf720cf6497fb3a9fc643a8ee4ddd", - "sha256:22ff16cedab5b16a0db79f1bc99e46a6ddececb60c396562e50aab58ddb2871c", - "sha256:2307495d9e0ea00d0c726be97a5b96615035854972cc538f6e7eaed23a35886c", - "sha256:2ad2b727fc41c7f8757098903f85fafb4bf587ca6605f82d9bf5604bd9c7cded", - "sha256:2d6495f84c4fd11584f34e62f9feec81bf373787b3942270487074e35cbe5330", - "sha256:361f6b5e3f659e3c56ea3518cf85fbdae1b9e788ade0219a67eeaaea8a4e4d2a", - "sha256:3e2ef592ac3693c65210f8b53d0edcf9f4405925adcfc031ff495e8d18169682", - "sha256:4676d51c9f6f6226ae8f26dc83ec291c088fe7633269757d333978df78d931ab", - "sha256:4ba7e122510bbc07258dc42be6ed45997efdf38129bde3e3f12649be70683546", - "sha256:5102fb9ee2c258a2218281adcb3e1918b793c51d6c2b4666ce38c35101bb940e", - "sha256:5323252be2bd261e0aa3f33cb3a64c45d76829989fa3ce90652838397d84197d", - "sha256:58bb65b3274b0c8a02cea9f91d6f44d0da79abc993b33bdedbfec98c8440175a", - "sha256:59bdc291165b6119fc6cdbc287c36f7f2859e6051dd923bdf47b4c55fd2f8bd0", - "sha256:5facb7fd6fa8a7353bbe88b95695e555338fb038ad19ceb29c82d94f62775a05", - "sha256:639e1ae8d48b3c86ffe59c0daa9a02e2bfe17ca3d2b41611b30a0073937d4497", - "sha256:8eb8897367a21b578b26f5713833836f886817ee2ffba1177d446fa3f77e67c8", - "sha256:90484a2b00baedad361402c257895b13faa3f01780f18f4a104a2f5c413e4536", - "sha256:9c56e19780cd1344fcd362fd6265a15f48aa8d365996a37fab1495cae8fcd97d", - "sha256:b67fc780cfe2b306180e56daaa411dd3186bf979d50a6a7c2a5b5036575cbdbb", - "sha256:c0dcf127bb99458a9d211e6e1f0f3edb96c874dd12f2503d4d8e4f1fd103790b", - "sha256:c23d64a0b28fc78c96289ffbd0d9d1abd48d267269b27f2d34e430ea73ce4b26", - "sha256:ccfd238f766a5bb5ee5545a62dd03f316ac67966a6a658efb63eeff8158a4bbf", - "sha256:cd767cf5d7252b1c88fcfb58426a32d7bd14a7e4942497e15b68ff5d822b41ad", - "sha256:ce8feaa52c1640de9541eeaaa8b5fb632d9d66249c947bb0d89dd01f87c7c288", - "sha256:d2e054aed4645f9b755db85bc69fc4ed2c9020c19c8027976f66576b906a74f1", - "sha256:e16c2be5cb19e2c08da7bd3a87fed2a0d4e90065ee553a940c4fc1a0fb1ab72b", - "sha256:e4b12e3d88a8fffd0b4ca559f6d4957ed91bd4c0613a4e13846ab8729dc5c251", - "sha256:e570cfc40a29d6ad46c9aeaddbdcee687880940a3a327f2c668dd0e4ef0a441d", - "sha256:eb30cf008850c0a26b72bd1b9be6730830165ce049d239cfdccd906f2685f892", - "sha256:f37fa70d95658763254941ddd30ecb23fc4ec0c5a788a7c21034fc2305dab7cc", - "sha256:f5ebeeec5c14533221eb30bad716bc1fd32f509196318fb9caa7002c4a364e4c", - "sha256:f5fa526d027d804b1f85cdda1eb091f70bde6fb7d87892f6dd5a48925bc88898" + "sha256:04f2598c70ea4a29b12d429a80fad3a5202d56dce19dd4916cc46a965a5ca2e9", + "sha256:0501f74dd2745ec38f44c3a3900fb38b9db1ce21586b691482a19134062bf049", + "sha256:0ee377eb5c878f7cefd633ab23c09e99d97c449dd999df639600f49b74725b80", + "sha256:11b2ec26c5d2eefbc3e6dca4ec3d3d95028be62320b96d687b6e740424f83b7d", + "sha256:15d878929c30e41fb3d757a5853b680a561974a0168cd33a750be4ab93181628", + "sha256:177e41914c476ed1e1b77fd05966ea88c094053e17a85303c4ce007f88eff363", + "sha256:1811a0b19a08af7750c0b69e38dec3d46e47c4ec1d74b6184d69f12e1c99a5e0", + "sha256:1d0c23ecf7b3bc81e29459c34a3f4c68ca538de01254e24718a7926810dc39a6", + "sha256:22459fc1718785d8a86171bbe7f01b5c9d7297301ac150f508d06e62a2b4e8d2", + "sha256:28e881266a172a4d3c5929182fde6bb6fba22ac93f137d5380cc78a11a9dd124", + "sha256:2e56dfed0cc3e57b2f5c35719d64f4682ef26836b81067ee6cfad062290fd9e2", + "sha256:2fd49af453e590884d9cdad3586415922a8e9bb669d874ee1dc55d2bc425aacd", + "sha256:3ab7c158f98de6cb4f1faab2d12973b330c2878d0c6b689a8ca424c02d66e1b3", + "sha256:4948b6c5f4e56693bbeff52f574279e4ff972ea3353f45967a14c30fb7ae2beb", + "sha256:4e1c5f8182b4f89628d782a183d44db51b5af84abd6ce17ebb9804355c88a7b5", + "sha256:5ce6929417d5dce5ad1d3f147db81735a4a0573b8fb36e3f95500a06eaddd93e", + "sha256:5ede1495174e69e273fad68ad45b6d25c135c1ce67723e40f6cf536cb515e20b", + "sha256:5f966b64c852592469a7eb759615bbd351571340b8b344f1d3fa2478b5a4c934", + "sha256:6045b3089195bc008aee5c273ec3ba9a93f6a55bc1b288841bd4cfac729b6516", + "sha256:6c9d004eb78c71dd4d3ce625b80c96a827d2e67af9c0d32b1c1e75992a7916cc", + "sha256:6e39e97102f8e26c6c8550cb368c724028c575ec8bc71afbbf8faaffe2b2092a", + "sha256:723e3b9374c1ce1b53564c863d1a6b2f1dc4e97b1c178d9b643b191d8b1be738", + "sha256:876eb185911c8b95342b50a8c4435e1c625944b698a5b4a978ad2ffe74502908", + "sha256:9256563506e040daddccaa948d055e006e971771768df3bb01feeb4386c242b0", + "sha256:934472bb7d8666727746a75670a1f8d91a9cae8c464bba79da30a0f6faccd9e1", + "sha256:97ff50cd85bb907c2a14afb50157d0d5486a4b4639976b4a3346f34b6d1b5272", + "sha256:9b01d9cd2f9096f688c71a3d0f33f3cd0af8549014e66a7a7dee6fc214a7277d", + "sha256:9e3a65ce9ed250b2f096f7b559fe3ee92e6605fab3099b661f0397a9ac7c8d95", + "sha256:a7dd5b7b34a8ba8d181402d824b87c5cee8963cb2e23aa03dbfe8b1f1e417cde", + "sha256:a85723c00a636eed863adb11f1e8aaa36ad1c10089537823b4540948a8429798", + "sha256:b42c59ffd2d625b28cdb2ae4cde8488543d428cba17ff672a543062f7caee525", + "sha256:bd448b262544b47a2766c34c0364de830f7fb0772d9959c1c42ad61d91ab6565", + "sha256:ca9389a00f639383c93ed00333ed763812f80b5ae9e772ea32f627043f8c9c88", + "sha256:df76e9c60879fdc785a34a82bf1e8691716ffac32e7790d31a98d7dec6e81545", + "sha256:e12c6949bae10f1012ab5c0ea52ab8db99adcb8c7b717938252137cdf694c775", + "sha256:e4ef8cb3c5b326f839bfeb6af5f406ba02ad69a78c7aac0fbeeba994ad9bb48a", + "sha256:e7e740453f0149437c101ea4fdc7eea2689938c5760d7dcc436c863a12f1f565", + "sha256:effc89e606165ca55f04f3f24b86d3e1c605e534bf1a96e4e077ce1b027d0b71", + "sha256:f0f574465b78f29f533976c06b913e54ab4980b9931b69aa9d306afff13a9471", + "sha256:fa5b7eb2051e857bf83bade0641628efe5a88de189390725d3e6033a1fff4257", + "sha256:fdb94a3d1ba77ff2ef11912192c066f01e68416f554c194d769391638c8ad09a" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.4.41" + "version": "==1.4.42" }, "stack-data": { "hashes": [ - "sha256:66d2ebd3d7f29047612ead465b6cae5371006a71f45037c7e2507d01367bce3b", - "sha256:715c8855fbf5c43587b141e46cc9d9339cc0d1f8d6e0f98ed0d01c6cb974e29f" + "sha256:5120731a18ba4c82cefcf84a945f6f3e62319ef413bfc210e32aca3a69310ba2", + "sha256:95eb784942e861a3d80efd549ff9af6cf847d88343a12eb681d7157cfcb6e32b" ], - "version": "==0.5.0" + "version": "==0.5.1" }, "starlette": { "hashes": [ @@ -2745,31 +2783,38 @@ }, "streaming-form-data": { "hashes": [ - "sha256:1bfbe6fa880fa35d73db187d5d52fda9b79c8f57944a078696714a24c3f9c3f9", - "sha256:20f619b674b5d5b1e1629b4dc60400f7dd4ed17eeebc27725664e45fe1cb68c1", - "sha256:3c0a8a1a13e05de9c236aca6c3a3a0df13968fc7f1bda1869a8e4858ce0d4fdf", - "sha256:3c4932a6ce2c0b518bac5e024ff1452f4ed9046ca80e79bfdfd9dff883949a60", - "sha256:4b90e1020e94df2e7071899da3d8ab759e93252147f4353b929a7b731aec3135", - "sha256:51cd8db8c6f65b0f17a05e021269a797d266aeb455e49cac2b125598fbac1518", - "sha256:532c7f70697fcc8a9a37b56495dcf36df11feefe42f626cff789beac11728f45", - "sha256:6d82534633c24f00e0fb3c46b90de1c21b1e97cb1403c7d002665b99ddecb5bb", - "sha256:7ce1b8ce3bbe393d244e3ef6bde79c52cbf7a23f54e65c11a88d4bce9714db5f", - "sha256:8096fa9f229f4d32addff7a316f842f3f41ef05420a0661537802cd478613ec9", - "sha256:86aa5dabbd7d15a3dc8300d7c148b82715b6ced8b852e83ef52edab00c31777f", - "sha256:95cfa5306346a4ff0be74fb25e596ce2d068d928c5a3d35da03c08551174c932", - "sha256:989a8e2961c67707e04ce2d4f41daad9df8d52eebbfdeb6b3ed8ea1e431cb536", - "sha256:b236fcae398ade3af975da6fc519488e74fdef7d7c1c8d0b2015378de6ccd885", - "sha256:b31fb147fe981cee0215e1f811f99d94dfcc1bdd1a717b4d5e4896b06db454fa", - "sha256:b6b334c9c664a39d546955a125502023ae26de8e40606a456a8c59e3cdb6f5a3", - "sha256:cec3a0a7662fb3b54236340e17d59fd70508a39b5f0d6bc000fe57fe1a3a6945", - "sha256:d1fef64b966f6ff13f279131705696f4a04b29514afe288c24fb50802fe394b6", - "sha256:e39645a1fcb09d7ed43960482f0d0d9747ec57c47115238347c249ec663d28fc", - "sha256:ebb2c1d31b21f0fffade29785c27bbacb8882605b9c0e51a317529ae5ad305a7", - "sha256:f030f857b27392a7400b9eafe054614295057fbc4c2e5972b563e43dd1e0b8de", - "sha256:f6f3adf6b334c90d0f4e3dfeddf5790f3299af7d4bed37824bfd471b17869a0c" + "sha256:1428e0fe38d7d5dea984a772a235955a4f4e6e846d2f377239b7b8a42b2ab455", + "sha256:1d56ac0fb880cb8143cbfd5c67361fc6caa0ab5e9863074555304ad27c1d0e2b", + "sha256:1eccecf020053de8bfba7844ac9e0ed2cb1ca2a3d39980aa9077ca3f31048b1f", + "sha256:1fbdd0df497465524e2010ae1465582663c9fb2a1f933075fddb6710a0cf9f17", + "sha256:202cea84200e8d412dd22b3ae522e1896a8a7d041aae809278b003b64ed1712b", + "sha256:267a4921decbd3a800463d72b6a8df362e17cad7825924a5a61e3cbc7bacf96d", + "sha256:27a21a95d9d05448f638c049b2da1406a6d4ac357c6e8bec4268d9a2f99bdd76", + "sha256:301dba4f0b634d4e7e632172cc9fb6e0db136ce6a12b0f5cf118d25f0aaa484e", + "sha256:406cd5a23eef77f360b549b93fa64a8ee724309063ab1dce528e1c8e397cb56f", + "sha256:52fd1ea2a8c0b4ac56b99903214e239f0e8b9266f65c8cae6c00787aaf1f9cfe", + "sha256:5358cc32bf775944d366525c2854620e55548563f40868f01ea4af6f252b682b", + "sha256:5bffc52d57f6733c5462b8fb19b4d7ce54c2faea3c7d5b12725b86740be1c7c9", + "sha256:5dfb34b8e147c4f30ada3ab333b517cbc8c273e06a0f464c85f92e70647bbbd6", + "sha256:70321f427e0600c7d5b74fd8f91a4478edb92143bd9fd051dd11a18c1e08a37c", + "sha256:89a20560924bbbd07fc51f3f7b6710744e8b845028a9af338b6caa9c2611f7bb", + "sha256:8db536c6387d27b2ce9b89e58269ff79d8da197f1f3c300f53dc130271bb5f78", + "sha256:9ff76ec968a1c04dcc94fd66fae343b9fc576cb455fdd3f93370dad5fa1d8771", + "sha256:a780dc298ff4da1d20c9deae02f817c08de59e0094b591627727efe6e94574af", + "sha256:aa07f1c565436319862abb338e3a9ae68855b09fc5ceb83564c34a53af852c52", + "sha256:ab59d14825cb4ed9d96eb17a2f78f5a96935fb4e8e6b98fcae5ce07fcd6e0fa9", + "sha256:adc810f256214af1dc45b9351cca1f8e7af60fb9de07bb3ab9ba1379770c51f7", + "sha256:b073baa08f349ab4737ebb673e8dc5c4cd19be6c8d18f43262e659d95b290733", + "sha256:b208c0918cdf2e274d286c78f3f6b1fd5e9c0cf35bc1dc33a60d1c3c4edf0b51", + "sha256:cf8de78d747e95db780cd18672783735bcb811ea495b8e4546c8fa534829d90d", + "sha256:d33096083ae86837b7f8dfd3653b7cf87044d7ffb6b52102114e46a74a3a1164", + "sha256:e551dc5604af5b971224c5c82c132ec8d99bc3da627ad6228ff899f1b1043839", + "sha256:f348e67d55dcb60ce8571647dd0e18aa4205091c9c1d1f1b0ee2816e8f612421", + "sha256:f7bf111cd071853089b3904ec9dd9250959a45e88ea05ce078b2632375597cef", + "sha256:fe46eff0cb5aebcc752c7ee3258bbeaa6aa9007bad9c32cfbd46d00df5c1f4d4" ], "markers": "python_version >= '3.6'", - "version": "==1.10.2" + "version": "==1.11.0" }, "text-unidecode": { "hashes": [ @@ -2812,11 +2857,11 @@ }, "traitlets": { "hashes": [ - "sha256:3f2c4e435e271592fe4390f1746ea56836e3a080f84e7833f0f801d9613fec39", - "sha256:93663cc8236093d48150e2af5e2ed30fc7904a11a6195e21bab0408af4e6d6c8" + "sha256:1201b2c9f76097195989cdf7f65db9897593b0dfd69e4ac96016661bb6f0d30f", + "sha256:b122f9ff2f2f6c1709dab289a05555be011c87828e911c0cf4074b85cb780a79" ], "markers": "python_version >= '3.7'", - "version": "==5.4.0" + "version": "==5.5.0" }, "twine": { "hashes": [ @@ -2850,25 +2895,25 @@ }, "types-requests": { "hashes": [ - "sha256:45b485725ed58752f2b23461252f1c1ad9205b884a1e35f786bb295525a3e16a", - "sha256:97d8f40aa1ffe1e58c3726c77d63c182daea9a72d9f1fa2cafdea756b2a19f2c" + "sha256:14941f8023a80b16441b3b46caffcbfce5265fd14555844d6029697824b5a2ef", + "sha256:fdcd7bd148139fb8eef72cf4a41ac7273872cad9e6ada14b11ff5dfdeee60ed3" ], - "version": "==2.28.10" + "version": "==2.28.11.2" }, "types-urllib3": { "hashes": [ - "sha256:a1b3aaea7dda3eb1b51699ee723aadd235488e4dc4648e030f09bc429ecff42f", - "sha256:cf7918503d02d3576e503bbfb419b0e047c4617653bba09624756ab7175e15c9" + "sha256:a948584944b2412c9a74b9cf64f6c48caf8652cb88b38361316f6d15d8a184cd", + "sha256:f6422596cc9ee5fdf68f9d547f541096a20c2dcfd587e37c804c9ea720bf5cb2" ], - "version": "==1.26.24" + "version": "==1.26.25.1" }, "typing-extensions": { "hashes": [ - "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02", - "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6" + "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa", + "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e" ], "markers": "python_version >= '3.7'", - "version": "==4.3.0" + "version": "==4.4.0" }, "universal-build": { "hashes": [ @@ -2883,16 +2928,16 @@ "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4.0'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", "version": "==1.26.12" }, "uvicorn": { "hashes": [ - "sha256:0abd429ebb41e604ed8d2be6c60530de3408f250e8d2d84967d85ba9e86fe3af", - "sha256:9a66e7c42a2a95222f76ec24a4b754c158261c4696e683b9dadc72b590e0311b" + "sha256:cc277f7e73435748e69e075a721841f7c4a95dba06d12a72fe9874acced16f6f", + "sha256:cf538f3018536edb1f4a826311137ab4944ed741d52aeb98846f52215de57f25" ], "markers": "python_version >= '3.7'", - "version": "==0.18.3" + "version": "==0.19.0" }, "virtualenv": { "hashes": [ @@ -2950,11 +2995,11 @@ }, "zipp": { "hashes": [ - "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2", - "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009" + "sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1", + "sha256:7a7262fd930bd3e36c50b9a64897aec3fafff3dfdeec9623ae22b40e93f99bb8" ], "markers": "python_version >= '3.7'", - "version": "==3.8.1" + "version": "==3.10.0" }, "zope.event": { "hashes": [ @@ -2965,60 +3010,46 @@ }, "zope.interface": { "hashes": [ - "sha256:08f9636e99a9d5410181ba0729e0408d3d8748026ea938f3b970a0249daa8192", - "sha256:0b465ae0962d49c68aa9733ba92a001b2a0933c317780435f00be7ecb959c702", - "sha256:0cba8477e300d64a11a9789ed40ee8932b59f9ee05f85276dbb4b59acee5dd09", - "sha256:0cee5187b60ed26d56eb2960136288ce91bcf61e2a9405660d271d1f122a69a4", - "sha256:0ea1d73b7c9dcbc5080bb8aaffb776f1c68e807767069b9ccdd06f27a161914a", - "sha256:0f91b5b948686659a8e28b728ff5e74b1be6bf40cb04704453617e5f1e945ef3", - "sha256:15e7d1f7a6ee16572e21e3576d2012b2778cbacf75eb4b7400be37455f5ca8bf", - "sha256:17776ecd3a1fdd2b2cd5373e5ef8b307162f581c693575ec62e7c5399d80794c", - "sha256:194d0bcb1374ac3e1e023961610dc8f2c78a0f5f634d0c737691e215569e640d", - "sha256:1c0e316c9add0db48a5b703833881351444398b04111188069a26a61cfb4df78", - "sha256:205e40ccde0f37496904572035deea747390a8b7dc65146d30b96e2dd1359a83", - "sha256:273f158fabc5ea33cbc936da0ab3d4ba80ede5351babc4f577d768e057651531", - "sha256:2876246527c91e101184f63ccd1d716ec9c46519cc5f3d5375a3351c46467c46", - "sha256:2c98384b254b37ce50eddd55db8d381a5c53b4c10ee66e1e7fe749824f894021", - "sha256:2e5a26f16503be6c826abca904e45f1a44ff275fdb7e9d1b75c10671c26f8b94", - "sha256:334701327f37c47fa628fc8b8d28c7d7730ce7daaf4bda1efb741679c2b087fc", - "sha256:3748fac0d0f6a304e674955ab1365d515993b3a0a865e16a11ec9d86fb307f63", - "sha256:3c02411a3b62668200910090a0dff17c0b25aaa36145082a5a6adf08fa281e54", - "sha256:3dd4952748521205697bc2802e4afac5ed4b02909bb799ba1fe239f77fd4e117", - "sha256:3f24df7124c323fceb53ff6168da70dbfbae1442b4f3da439cd441681f54fe25", - "sha256:469e2407e0fe9880ac690a3666f03eb4c3c444411a5a5fddfdabc5d184a79f05", - "sha256:4de4bc9b6d35c5af65b454d3e9bc98c50eb3960d5a3762c9438df57427134b8e", - "sha256:5208ebd5152e040640518a77827bdfcc73773a15a33d6644015b763b9c9febc1", - "sha256:52de7fc6c21b419078008f697fd4103dbc763288b1406b4562554bd47514c004", - "sha256:5bb3489b4558e49ad2c5118137cfeaf59434f9737fa9c5deefc72d22c23822e2", - "sha256:5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e", - "sha256:5dd9ca406499444f4c8299f803d4a14edf7890ecc595c8b1c7115c2342cadc5f", - "sha256:5f931a1c21dfa7a9c573ec1f50a31135ccce84e32507c54e1ea404894c5eb96f", - "sha256:63b82bb63de7c821428d513607e84c6d97d58afd1fe2eb645030bdc185440120", - "sha256:66c0061c91b3b9cf542131148ef7ecbecb2690d48d1612ec386de9d36766058f", - "sha256:6f0c02cbb9691b7c91d5009108f975f8ffeab5dff8f26d62e21c493060eff2a1", - "sha256:71aace0c42d53abe6fc7f726c5d3b60d90f3c5c055a447950ad6ea9cec2e37d9", - "sha256:7d97a4306898b05404a0dcdc32d9709b7d8832c0c542b861d9a826301719794e", - "sha256:7df1e1c05304f26faa49fa752a8c690126cf98b40b91d54e6e9cc3b7d6ffe8b7", - "sha256:8270252effc60b9642b423189a2fe90eb6b59e87cbee54549db3f5562ff8d1b8", - "sha256:867a5ad16892bf20e6c4ea2aab1971f45645ff3102ad29bd84c86027fa99997b", - "sha256:877473e675fdcc113c138813a5dd440da0769a2d81f4d86614e5d62b69497155", - "sha256:8892f89999ffd992208754851e5a052f6b5db70a1e3f7d54b17c5211e37a98c7", - "sha256:9a9845c4c6bb56e508651f005c4aeb0404e518c6f000d5a1123ab077ab769f5c", - "sha256:a1e6e96217a0f72e2b8629e271e1b280c6fa3fe6e59fa8f6701bec14e3354325", - "sha256:a8156e6a7f5e2a0ff0c5b21d6bcb45145efece1909efcbbbf48c56f8da68221d", - "sha256:a9506a7e80bcf6eacfff7f804c0ad5350c8c95b9010e4356a4b36f5322f09abb", - "sha256:af310ec8335016b5e52cae60cda4a4f2a60a788cbb949a4fbea13d441aa5a09e", - "sha256:b0297b1e05fd128d26cc2460c810d42e205d16d76799526dfa8c8ccd50e74959", - "sha256:bf68f4b2b6683e52bec69273562df15af352e5ed25d1b6641e7efddc5951d1a7", - "sha256:d0c1bc2fa9a7285719e5678584f6b92572a5b639d0e471bb8d4b650a1a910920", - "sha256:d4d9d6c1a455d4babd320203b918ccc7fcbefe308615c521062bc2ba1aa4d26e", - "sha256:db1fa631737dab9fa0b37f3979d8d2631e348c3b4e8325d6873c2541d0ae5a48", - "sha256:dd93ea5c0c7f3e25335ab7d22a507b1dc43976e1345508f845efc573d3d779d8", - "sha256:f44e517131a98f7a76696a7b21b164bcb85291cee106a23beccce454e1f433a4", - "sha256:f7ee479e96f7ee350db1cf24afa5685a5899e2b34992fb99e1f7c1b0b758d263" + "sha256:006f8dd81fae28027fc28ada214855166712bf4f0bfbc5a8788f9b70982b9437", + "sha256:03f5ae315db0d0de668125d983e2a819a554f3fdb2d53b7e934e3eb3c3c7375d", + "sha256:0eb2b3e84f48dd9cfc8621c80fba905d7e228615c67f76c7df7c716065669bb6", + "sha256:1e3495bb0cdcea212154e558082c256f11b18031f05193ae2fb85d048848db14", + "sha256:26c1456520fdcafecc5765bec4783eeafd2e893eabc636908f50ee31fe5c738c", + "sha256:2cb3003941f5f4fa577479ac6d5db2b940acb600096dd9ea9bf07007f5cab46f", + "sha256:37ec9ade9902f412cc7e7a32d71f79dec3035bad9bd0170226252eed88763c48", + "sha256:3eedf3d04179774d750e8bb4463e6da350956a50ed44d7b86098e452d7ec385e", + "sha256:3f68404edb1a4fb6aa8a94675521ca26c83ebbdbb90e894f749ae0dc4ca98418", + "sha256:423c074e404f13e6fa07f4454f47fdbb38d358be22945bc812b94289d9142374", + "sha256:43490ad65d4c64e45a30e51a2beb7a6b63e1ff395302ad22392224eb618476d6", + "sha256:47ff078734a1030c48103422a99e71a7662d20258c00306546441adf689416f7", + "sha256:58a66c2020a347973168a4a9d64317bac52f9fdfd3e6b80b252be30da881a64e", + "sha256:58a975f89e4584d0223ab813c5ba4787064c68feef4b30d600f5e01de90ae9ce", + "sha256:5c6023ae7defd052cf76986ce77922177b0c2f3913bea31b5b28fbdf6cb7099e", + "sha256:6566b3d2657e7609cd8751bcb1eab1202b1692a7af223035a5887d64bb3a2f3b", + "sha256:687cab7f9ae18d2c146f315d0ca81e5ffe89a139b88277afa70d52f632515854", + "sha256:700ebf9662cf8df70e2f0cb4988e078c53f65ee3eefd5c9d80cf988c4175c8e3", + "sha256:740f3c1b44380658777669bcc42f650f5348e53797f2cee0d93dc9b0f9d7cc69", + "sha256:7bdcec93f152e0e1942102537eed7b166d6661ae57835b20a52a2a3d6a3e1bf3", + "sha256:7d9ec1e6694af39b687045712a8ad14ddcb568670d5eb1b66b48b98b9312afba", + "sha256:85dd6dd9aaae7a176948d8bb62e20e2968588fd787c29c5d0d964ab475168d3d", + "sha256:8b9f153208d74ccfa25449a0c6cb756ab792ce0dc99d9d771d935f039b38740c", + "sha256:8c791f4c203ccdbcda588ea4c8a6e4353e10435ea48ddd3d8734a26fe9714cba", + "sha256:970661ece2029915b8f7f70892e88404340fbdefd64728380cad41c8dce14ff4", + "sha256:9cdc4e898d3b1547d018829fd4a9f403e52e51bba24be0fbfa37f3174e1ef797", + "sha256:9dc4493aa3d87591e3d2bf1453e25b98038c839ca8e499df3d7106631b66fe83", + "sha256:a69c28d85bb7cf557751a5214cb3f657b2b035c8c96d71080c1253b75b79b69b", + "sha256:aeac590cce44e68ee8ad0b8ecf4d7bf15801f102d564ca1b0eb1f12f584ee656", + "sha256:be11fce0e6af6c0e8d93c10ef17b25aa7c4acb7ec644bff2596c0d639c49e20f", + "sha256:cbbf83914b9a883ab324f728de869f4e406e0cbcd92df7e0a88decf6f9ab7d5a", + "sha256:cfa614d049667bed1c737435c609c0956c5dc0dbafdc1145ee7935e4658582cb", + "sha256:d18fb0f6c8169d26044128a2e7d3c39377a8a151c564e87b875d379dbafd3930", + "sha256:d80f6236b57a95eb19d5e47eb68d0296119e1eff6deaa2971ab8abe3af918420", + "sha256:da7912ae76e1df6a1fb841b619110b1be4c86dfb36699d7fd2f177105cdea885", + "sha256:df6593e150d13cfcce69b0aec5df7bc248cb91e4258a7374c129bb6d56b4e5ca", + "sha256:f70726b60009433111fe9928f5d89cbb18962411d33c45fb19eb81b9bbd26fcd" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==5.4.0" + "version": "==5.5.0" } } } diff --git a/backend/docs/contaxy.schema.shared.md b/backend/docs/contaxy.schema.shared.md index e8d834b..396efb8 100644 --- a/backend/docs/contaxy.schema.shared.md +++ b/backend/docs/contaxy.schema.shared.md @@ -54,7 +54,7 @@ An enumeration. --- - + ## class `ResourceInput` @@ -67,7 +67,7 @@ An enumeration. --- - + ## class `Resource` @@ -80,7 +80,7 @@ An enumeration. --- - + ## class `ActionInstruction` An enumeration. @@ -91,7 +91,7 @@ An enumeration. --- - + ## class `ResourceAction` @@ -104,7 +104,7 @@ An enumeration. --- - + ## class `ResourceActionExecution` diff --git a/backend/openapi-spec.json b/backend/openapi-spec.json index 9462a35..55531f5 100644 --- a/backend/openapi-spec.json +++ b/backend/openapi-spec.json @@ -1 +1 @@ -{"openapi": "3.0.2", "info": {"title": "Contaxy API", "description": "Functionality to create and manage projects, services, jobs, and files.", "version": "0.0.21"}, "paths": {"/system/info": {"get": {"tags": ["system"], "summary": "Get system info.", "description": "Returns information about this instance.", "operationId": "get_system_info", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SystemInfo"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/system/health": {"get": {"tags": ["system"], "summary": "Check server health status.", "description": "Returns a successful return code if the instance is healthy.", "operationId": "check_health_system_health_get", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/system/statistics": {"get": {"tags": ["system"], "summary": "Get system statistics.", "description": "Returns statistics about this instance.", "operationId": "get_system_statistics", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SystemStatistics"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/system/initialize": {"post": {"tags": ["system"], "summary": "Initialize the system.", "description": "Initializes the system.", "operationId": "initialize_system", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/system/admin": {"post": {"tags": ["system"], "summary": "Register Admin User", "operationId": "register_admin_user_system_admin_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_register_admin_user_system_admin_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/system/allowed-images": {"get": {"tags": ["system"], "summary": "List all allowed images.", "operationId": "list_allowed_images", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Allowed Images", "type": "array", "items": {"$ref": "#/components/schemas/AllowedImageInfo"}}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["system"], "summary": "Add an image to the list of allowed images or replace one already on the list.", "operationId": "add_allowed_image", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/AllowedImageInfo"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AllowedImageInfo"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["system"], "summary": "Remove an image from the list of allowed images.", "operationId": "delete_allowed_image", "parameters": [{"description": "Name of a docker image without the tag", "required": true, "schema": {"title": "Docker image name", "type": "string", "description": "Name of a docker image without the tag"}, "name": "image_name", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/login-page": {"get": {"tags": ["auth"], "summary": "Open the login page.", "description": "Returns or redirect to the login-page.", "operationId": "open_login_page", "responses": {"303": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/auth/login": {"get": {"tags": ["auth"], "summary": "Login a user session.", "description": "Signs in the user based on username and password credentials.\n\nThis will set http-only cookies containg tokens with full user access.", "operationId": "login_user_session", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_login_user_session"}}}, "required": true}, "responses": {"307": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/auth/logout": {"get": {"tags": ["auth"], "summary": "Logout a user session.", "description": "Removes all session token cookies and redirects to the login page.\n\nWhen making requests to the this endpoint, the browser should be redirected to this endpoint.", "operationId": "logout_user_session", "responses": {"307": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/tokens": {"get": {"tags": ["auth"], "summary": "List API tokens.", "description": "Returns list of created API tokens associated with the authenticated user.", "operationId": "list_api_tokens", "parameters": [{"description": "Subject for which the tokens should be listed.If it is not provided, the tokens of the authorized user are returned.", "required": false, "schema": {"title": "Token Subject", "type": "string", "description": "Subject for which the tokens should be listed.If it is not provided, the tokens of the authorized user are returned."}, "name": "token_subject", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Api Tokens", "type": "array", "items": {"$ref": "#/components/schemas/ApiToken"}}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["auth"], "summary": "Create API or session token.", "description": "Returns a session or API token with the specified scopes.\n\nIf no scopes are specified, the token will be generated with the same scopes as the authorized token.\n\nThe API token can be deleted (revoked) at any time.\nIn comparison, the session token cannot be revoked but expires after a short time (a few minutes).\n\nThis operation can only be called with API tokens (or refresh tokens) due to security aspects.\nSession tokens are not allowed to create other tokens.\nFurthermore, tokens can only be created if the API token used for authorization is granted at least\nthe same access level on the given resource. For example, a token with `write` access level on a given resource\nallows to create new tokens with `write` or `read` granted level on that resource.", "operationId": "create_token", "parameters": [{"description": "Scopes requested for this token. If none specified, the token will be generated with same set of scopes as the authorized token.", "required": false, "schema": {"title": "Scopes", "type": "array", "items": {"type": "string"}, "description": "Scopes requested for this token. If none specified, the token will be generated with same set of scopes as the authorized token."}, "name": "scope", "in": "query"}, {"description": "Type of the token.", "required": false, "schema": {"type": "string", "allOf": [{"$ref": "#/components/schemas/TokenType"}], "description": "Type of the token.", "default": "session-token"}, "name": "token_type", "in": "query"}, {"description": "Attach a short description to the generated token.", "required": false, "schema": {"title": "Description", "type": "string", "description": "Attach a short description to the generated token."}, "name": "description", "in": "query"}, {"description": "Purpose of this token.", "required": false, "schema": {"title": "Token Purpose", "type": "string", "description": "Purpose of this token.", "default": "custom-token-purpose"}, "name": "token_purpose", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Create Token", "type": "string"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/permissions": {"get": {"tags": ["auth"], "summary": "Lists permissions for given resource.", "description": "Lists the permissions for a given resource, admin access for that resource is required.", "operationId": "list_resource_permissions", "parameters": [{"required": true, "schema": {"title": "Resource Name", "type": "string"}, "name": "resource_name", "in": "query"}, {"required": false, "schema": {"title": "Resolve Roles", "type": "boolean", "default": true}, "name": "resolve_roles", "in": "query"}, {"required": false, "schema": {"title": "Use Cache", "type": "boolean", "default": true}, "name": "use_cache", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Resource Permissions", "type": "array", "items": {"type": "string"}}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["auth"], "summary": "Add permission to specified resource.", "description": "Adds permission to specified resource, admin access to the /auth/permissions resource is required.", "operationId": "set_resource_permissions", "parameters": [{"required": true, "schema": {"title": "Resource Name", "type": "string"}, "name": "resource_name", "in": "query"}, {"required": true, "schema": {"title": "Permission", "type": "string"}, "name": "permission", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["auth"], "summary": "Deletes permission of specified resource.", "description": "Deletes permission of specified resource, admin access to the /auth/permissions resource is required.", "operationId": "delete_resource_permissions", "parameters": [{"required": true, "schema": {"title": "Resource Name", "type": "string"}, "name": "resource_name", "in": "query"}, {"required": true, "schema": {"title": "Permission", "type": "string"}, "name": "permission", "in": "query"}, {"required": false, "schema": {"title": "Remove Sub Permissions", "type": "boolean", "default": false}, "name": "remove_sub_permissions", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/resources": {"get": {"tags": ["auth"], "summary": "List all resources that have a certain permission.", "description": "List all resources that have a certain permission, admin access to the /auth/resources resource is required.", "operationId": "get_resources_with_permission", "parameters": [{"required": true, "schema": {"title": "Permission", "type": "string"}, "name": "permission", "in": "query"}, {"required": false, "schema": {"title": "Resource Name Prefix", "type": "string"}, "name": "resource_name_prefix", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Resources With Permission", "type": "array", "items": {"type": "string"}}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/tokens/verify": {"post": {"tags": ["auth"], "summary": "Verify a Session or API Token.", "description": "Verifies a session or API token for its validity and - if provided - if it has the specified permission.\n\nReturns an successful HTTP Status code if verification was successful, otherwise an error is returned.", "operationId": "verify_access", "parameters": [{"description": "The token is checked if it is granted this permission. If none specified, only the existence or validity of the token itself is checked.", "required": false, "schema": {"title": "Resource Type ", "type": "string", "description": "The token is checked if it is granted this permission. If none specified, only the existence or validity of the token itself is checked."}, "name": "permission", "in": "query"}, {"description": "If false, no cache will be used for verifying the token.", "required": false, "schema": {"title": "Use Cache", "type": "boolean", "description": "If false, no cache will be used for verifying the token.", "default": true}, "name": "use_cache", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Token", "type": "string", "description": "Token to verify."}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AuthorizedAccess"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/oauth/token": {"post": {"tags": ["auth"], "summary": "Request a token (OAuth2 Endpoint).", "description": "Returns an access tokens, ID tokens, or refresh tokens depending on the request parameters.\n\n The token endpoint is used by the client to obtain an access token by\n presenting its authorization grant or refresh token.\n\n The token endpoint supports the following grant types:\n - [Password Grant](https://tools.ietf.org/html/rfc6749#section-4.3.2): Used when the application exchanges the user\u2019s username and password for an access token.\n - `grant_type` must be set to `password`\n - `username` (required): The user\u2019s username.\n - `password` (required): The user\u2019s password.\n - `scope` (optional): Optional requested scope values for the access token.\n - [Refresh Token Grant](https://tools.ietf.org/html/rfc6749#section-6): Allows to use refresh tokens to obtain new access tokens.\n - `grant_type` must be set to `refresh_token`\n - `refresh_token` (required): The refresh token previously issued to the client.\n - `scope` (optional): Requested scope values for the new access token. Must not include any scope values not originally granted by the resource owner, and if omitted is treated as equal to the originally granted scope.\n - [Client Credentials Grant](https://tools.ietf.org/html/rfc6749#section-4.4.2): Request an access token using only its client\ncredentials.\n - `grant_type` must be set to `client_credentials`\n - `scope` (optional): Optional requested scope values for the access token.\n - Client Authentication required (e.g. via client_id and client_secret or auth header)\n - [Authorization Code Grant](https://tools.ietf.org/html/rfc6749#section-4.1): Used to obtain both access tokens and refresh tokens based on an authorization code from the `/authorize` endpoint.\n - `grant_type` must be set to `authorization_code`\n - `code` (required): The authorization code that the client previously received from the authorization server.\n - `redirect_uri` (required): The redirect_uri parameter included in the original authorization request.\n - Client Authentication required (e.g. via client_id and client_secret or auth header)\n\nFor password, client credentials, and refresh token flows, calling this endpoint is the only step of the flow.\nFor the authorization code flow, calling this endpoint is the second step of the flow.\n\nThis endpoint implements the [OAuth2 Token Endpoint](https://tools.ietf.org/html/rfc6749#section-3.2).", "operationId": "request_token", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_request_token"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OAuthToken"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OAuth2ErrorDetails"}}}}}}}, "/auth/oauth/revoke": {"post": {"tags": ["auth"], "summary": "Revoke a token (OAuth2 Endpoint).", "description": "Revokes a given token.\n\nThis will delete the API token, preventing further requests with the given token.\nBecause of caching, the API token might still be usable under certain conditions\nfor some operations for a maximum of 15 minutes after deletion.\n\nThis endpoint implements the OAuth2 Revocation Flow ([RFC7009](https://tools.ietf.org/html/rfc7009)).", "operationId": "revoke_token", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_revoke_token"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OAuth2ErrorDetails"}}}}}}}, "/auth/oauth/introspect": {"post": {"tags": ["auth"], "summary": "Introspect a token (OAuth2 Endpoint).", "description": "Introspects a given token.\n\nReturns a boolean that indicates whether it is active or not.\nIf the token is active, additional data about the token is also returned.\nIf the token is invalid, expired, or revoked, it is considered inactive.\n\nThis endpoint implements the [OAuth2 Introspection Flow](https://www.oauth.com/oauth2-servers/token-introspection-endpoint/) ([RFC7662](https://tools.ietf.org/html/rfc7662)).", "operationId": "introspect_token", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_introspect_token"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OAuthTokenIntrospection"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/auth/oauth/callback": {"get": {"tags": ["auth"], "summary": "Open the login page (OAuth2 Client Endpoint).", "description": "Callback to finish the login process (OAuth2 Client Endpoint).\n\nThe authorization `code` is exchanged for an access and ID token.\nThe ID token contains all relevant user information and is used to login the user.\nIf the user does not exist, a new user will be created with the information from the ID token.\n\nFinally, the user is redirected to the webapp and a session/refresh token is set in the cookies.\n\nThis endpoint implements the [Authorization Response](https://tools.ietf.org/html/rfc6749#section-4.1.2) from RFC6749.", "operationId": "login_callback", "parameters": [{"description": "The authorization code generated by the authorization server.", "required": true, "schema": {"title": "Code", "type": "string", "description": "The authorization code generated by the authorization server."}, "name": "code", "in": "query"}, {"required": false, "schema": {"title": "State", "type": "string"}, "name": "state", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/auth/oauth/enabled": {"get": {"tags": ["auth"], "summary": "Check if external OAuth2 (OIDC) IDP is enabled.", "description": "Returns the value of `OIDC_AUTH_ENABLED`.\n\nReturns \"0\" if it is not set, \"1\" if it is set.", "operationId": "oauth_enabled", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Oauth Enabled", "type": "string"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/users": {"get": {"tags": ["users", "users"], "summary": "List all users.", "description": "Lists all users that are visible to the authenticated user.", "operationId": "list_users", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Users", "type": "array", "items": {"anyOf": [{"$ref": "#/components/schemas/User"}, {"$ref": "#/components/schemas/UserRead"}]}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["users", "users"], "summary": "Create a user.", "description": "Creates a user. For the user also a technical project is created.\n\nIf the `password` is not provided, the user can only login by using other methods (social login).", "operationId": "create_user", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserRegistration"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/users/me": {"get": {"tags": ["users", "users"], "summary": "Get my user metadata.", "description": "Returns the user metadata from the authenticated user.", "operationId": "get_my_user", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/users/{user_id}": {"get": {"tags": ["users", "users"], "summary": "Get user metadata.", "description": "Returns the user metadata for a single user.", "operationId": "get_user", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["users", "users"], "summary": "Delete a user.", "description": "Deletes a user and all resources which are only accesible by this user.\n\nShared project resources will not be deleted.", "operationId": "delete_user", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["users", "users"], "summary": "Update user metadata.", "description": "Updates the user metadata.\n\nThis will update only the properties that are explicitly set in the patch request.\nThe patching is based on the JSON Merge Patch Standard [RFC7396](https://tools.ietf.org/html/rfc7396).", "operationId": "update_user", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/users/{user_id}:change-password": {"put": {"tags": ["users", "users"], "summary": "Change the user password", "description": "Changes the password of a given user.\n\nThe password can be changed by the given user or a system admin.\n\nThe password is stored as a hash.", "operationId": "change_password", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Password", "type": "string"}}}, "required": true}, "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/users/{user_id}/token": {"get": {"tags": ["users", "users"], "summary": "Get a user token.", "description": "Returns an API token with permission to access all resources accessible by the given user.\n\nThe `read` access level allows read-only access on all resources.\nThe `write` access level allows to create and delete user resources.\nThe `admin` access level allows additional user actions such as deletion of the user itself.", "operationId": "get_user_token", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}, {"description": "Access level of the token.", "required": false, "schema": {"type": "string", "allOf": [{"$ref": "#/components/schemas/AccessLevel"}], "description": "Access level of the token.", "default": "write"}, "name": "access_level", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Token", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects": {"get": {"tags": ["projects"], "summary": "List all projects.", "description": "Lists all projects visible to the authenticated user.\n\nA project is visible to a user, if the user has the at least a `read` permission for the project.\nSystem administrators will also see technical projects, such as `system-internal` and `system-global`.", "operationId": "list_projects", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Projects", "type": "array", "items": {"$ref": "#/components/schemas/Project"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["projects"], "summary": "Create a new project.", "description": "Creates a new project.\n\nWe suggest to use the `suggest_project_id` endpoint to get a valid and available ID.\nThe project ID might also be set manually, however, an error will be returned if it does not comply with the ID requirements or is already used.", "operationId": "create_project", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectCreation"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}": {"get": {"tags": ["projects"], "summary": "Get details for a project.", "description": "Returns the metadata of a single project.", "operationId": "get_project", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["projects"], "summary": "Delete a project.", "description": "Deletes a project and all its associated resources including deployments and files.\n\nA project can only be delete by a user with `admin` permission on the project.", "operationId": "delete_project", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["projects"], "summary": "Update project metadata.", "description": "Updates the metadata of the given project.\n\nThis will update only the properties that are explicitly set in the patch request.\nThe patching is based on the JSON Merge Patch Standard [RFC7396](https://tools.ietf.org/html/rfc7396).", "operationId": "update_project", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects:suggest-id": {"get": {"tags": ["projects"], "summary": "Suggest project ID.", "description": "Suggests a valid and unique project ID for the given display name.\n\nThe project ID will be human-readable and resemble the provided display name,\nbut might be cut off or have an attached counter prefix.", "operationId": "suggest_project_id", "parameters": [{"required": true, "schema": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string"}, "name": "display_name", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Suggest Project Id", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/users": {"get": {"tags": ["projects"], "summary": "List project members.", "description": "Lists all project members.\n\nThis include all users that have atlease a `read` permission on the given project.", "operationId": "list_project_members", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Project Members", "type": "array", "items": {"$ref": "#/components/schemas/UserPermission"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/users/{user_id}": {"put": {"tags": ["projects"], "summary": "Add user to project.", "description": "Adds a user to the project.\n\nThis will add the permission for this project to the user item.\nThe `access_level` defines what the user can do:\n\n- The `read` permission level allows read-only access on all resources.\n- The `write` permission level allows to create and delete project resources.\n- The `admin` permission level allows to delete the project or add/remove other users.", "operationId": "add_project_member", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}, {"description": "The permission level.", "required": false, "schema": {"type": "string", "allOf": [{"$ref": "#/components/schemas/AccessLevel"}], "description": "The permission level.", "default": "write"}, "name": "access_level", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Add Project Member", "type": "array", "items": {"$ref": "#/components/schemas/User"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["projects"], "summary": "Remove user from project.", "description": "Removes a user from a project.\n\nThis will remove the permission for this project from the user item.", "operationId": "remove_project_member", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Remove Project Member", "type": "array", "items": {"$ref": "#/components/schemas/User"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/token": {"get": {"tags": ["projects", "projects"], "summary": "Get project token.", "description": "Returns an API token with permission (`read`, `write`, or `admin`) to access all project resources.\n\nThe `read` access level allows read-only access on all resources.\nThe `write` access level allows to create and delete project resources.\nThe `admin` access level allows to delete the project or add/remove other users.", "operationId": "get_project_token", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Access level of the token.", "required": false, "schema": {"type": "string", "allOf": [{"$ref": "#/components/schemas/AccessLevel"}], "description": "Access level of the token.", "default": "write"}, "name": "access_level", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Project Token", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs": {"get": {"tags": ["jobs"], "summary": "List project jobs.", "description": "Lists all jobs associated with the given project.", "operationId": "list_jobs", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Jobs", "type": "array", "items": {"$ref": "#/components/schemas/Job"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["jobs"], "summary": "Deploy a job.", "description": "Deploy a job for the specified project.\n\nIf no `action_id` is provided, the system will automatically select the best deployment option.\n\nAvailable actions can be requested via the [list_deploy_job_actions](#jobs/list_deploy_job_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_deploy_job_actions](#jobs/list_deploy_job_actions).", "operationId": "deploy_job", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "The action ID from the job deploy options.", "required": false, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the job deploy options."}, "name": "action_id", "in": "query"}, {"description": "If true, the server waits for the job to be ready before sending a response.", "required": false, "schema": {"title": "Wait", "type": "boolean", "description": "If true, the server waits for the job to be ready before sending a response.", "default": false}, "name": "wait", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/JobInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "307": {"description": "Redirecting to another URL"}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["jobs"], "summary": "Delete all jobs.", "description": "Deletes all jobs associated with a project.", "operationId": "delete_jobs", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs/{job_id}": {"get": {"tags": ["jobs"], "summary": "Get job metadata.", "description": "Returns the metadata of a single job.\n\nThe returned metadata might be filtered based on the permission level of the authenticated user.", "operationId": "get_job_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["jobs"], "summary": "Delete a job.", "description": "Deletes a job.\n\nThis will kill and remove the container and all associated deployment artifacts.", "operationId": "delete_job", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs:suggest-config": {"get": {"tags": ["jobs"], "summary": "Suggest job configuration.", "description": "Suggests an input configuration based on the provided `container_image`.\n\nThe suggestion is based on metadata extracted from the container image (e.g. labels)\nas well as suggestions based on previous project deployments with the same image.", "operationId": "suggest_job_config", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Container image to use for suggestion.", "required": true, "schema": {"title": "Container Image", "type": "string", "description": "Container image to use for suggestion."}, "name": "container_image", "in": "query"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JobInput"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs:deploy-actions": {"post": {"tags": ["jobs"], "summary": "List deploy job actions.", "description": "Lists all available job deployment options (actions).\n\nThe returned action IDs should be used when calling the [deploy_job](#job/deploy_job) operation.\n\nThe action mechanism allows extensions to provide additional deployment options for a job based on the provided configuration. It works the following way:\n\n1. The user requests all available deployment options via the [list_deploy_job_actions](#jobs/list_deploy_job_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_deploy_job_actions](#jobs/list_deploy_job_actions) operation.\n3. Extensions can run arbitrary code based on the provided job configuration and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [deploy_job](#jobs/deploy_job) operation by providing the selected action ID. The `action_id` from an extension contains the extension ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to deploy the job based on the provided configuration.\n6. The return value of the operation should be a `Job` object.\n\nThe same action mechanism is also used for other type of actions on resources.", "operationId": "list_deploy_job_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/JobInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Deploy Job Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs/{job_id}/logs": {"get": {"tags": ["jobs"], "summary": "Get job logs.", "description": "Returns the stdout/stderr logs of the job.", "operationId": "get_job_logs", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}, {"description": "Only show the last n lines.", "required": false, "schema": {"title": "Lines", "type": "integer", "description": "Only show the last n lines."}, "name": "lines", "in": "query"}, {"description": "Only show the logs generated after a given date.", "required": false, "schema": {"title": "Since", "type": "string", "description": "Only show the logs generated after a given date.", "format": "date-time"}, "name": "since", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Job Logs", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs/{job_id}/actions": {"get": {"tags": ["jobs"], "summary": "List job actions.", "description": "Lists all actions available for the specified job.\n\nThe returned action IDs should be used when calling the [execute_job_action](#jobs/execute_job_action) operation.\n\nThe action mechanism allows extensions to provide additional functionality on jobs. It works the following way:\n\n1. The user requests all available actions via the [list_job_actions](#jobs/list_job_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_job_actions](#jobs/list_job_actions) operation.\n3. Extensions can run arbitrary code - e.g., request and check the job metadata for compatibility - and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [execute_job_action](#jobs/execute_job_action) operation by providing the selected action ID. The `action_id` from an extension contains the extension ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to execute the selected action.\n6. The return value of the operation can be either a simple message (shown to the user) or a redirect to another URL (e.g., to show a web UI).\n\nThe same action mechanism is also used for other resources (e.g., files, services).\nIt can support a very broad set of use-cases, for example: Access to dashboards for monitoring, adminsitration tools, and more...", "operationId": "list_job_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Job Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs/{job_id}/actions/{action_id}": {"post": {"tags": ["jobs"], "summary": "Execute a job action.", "description": "Executes the selected job action.\n\nThe actions need to be first requested from the [list_job_actions](#jobs/list_job_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_job_actions](#jobs/list_job_actions).", "operationId": "execute_job_action", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}, {"description": "The action ID from the list_job_actions operation.", "required": true, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the list_job_actions operation."}, "name": "action_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourceActionExecution"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "307": {"description": "Redirecting to another URL"}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services": {"get": {"tags": ["services"], "summary": "List project services.", "description": "Lists all services associated with the given project.", "operationId": "list_services", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Services", "type": "array", "items": {"$ref": "#/components/schemas/Service"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["services"], "summary": "Deploy a service.", "description": "Deploy a service for the specified project.\n\nIf no `action_id` is provided, the system will automatically select the best deployment option.\n\nAvailable deployment options (actions) can be requested via the [list_deploy_service_actions](#services/list_deploy_service_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_deploy_service_actions](#services/list_deploy_service_actions).", "operationId": "deploy_service", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "The action ID from the service deploy options.", "required": false, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the service deploy options."}, "name": "action_id", "in": "query"}, {"description": "If true, the server waits for the service to be ready before sending a response.", "required": false, "schema": {"title": "Wait", "type": "boolean", "description": "If true, the server waits for the service to be ready before sending a response.", "default": false}, "name": "wait", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ServiceInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Service"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["services"], "summary": "Delete all services.", "description": "Deletes all services associated with a project.", "operationId": "delete_services", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services:suggest-config": {"get": {"tags": ["services"], "summary": "Suggest service configuration.", "description": "Suggests an input configuration based on the provided `container_image`.\n\nThe suggestion is based on metadata extracted from the container image (e.g. labels)\nas well as suggestions based on previous project deployments with the same image.", "operationId": "suggest_service_config", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Container image to use for suggestion.", "required": true, "schema": {"title": "Container Image", "type": "string", "description": "Container image to use for suggestion."}, "name": "container_image", "in": "query"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ServiceInput"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}": {"get": {"tags": ["services"], "summary": "Get service metadata.", "description": "Returns the metadata of a single service.\n\nThe returned metadata might be filtered based on the permission level of the authenticated user.", "operationId": "get_service_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Service"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["services"], "summary": "Delete a service.", "description": "Deletes a service.\n\nThis will kill and remove the container and all associated deployment artifacts.", "operationId": "delete_service", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "Delete all volumes associated with the deployment.", "required": false, "schema": {"title": "Delete Volumes", "type": "boolean", "description": "Delete all volumes associated with the deployment.", "default": false}, "name": "delete_volumes", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["services"], "summary": "Update a service.", "description": "Updates a service.\n\nThis might force a recreation of the underlying container.", "operationId": "update_service", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ServiceUpdate"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Service"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services:deploy-actions": {"post": {"tags": ["services"], "summary": "List deploy service actions.", "description": "Lists all available service deployment options (actions).\n\nThe returned action IDs should be used when calling the [deploy_service](#services/deploy_service) operation.\n\nThe action mechanism allows extensions to provide additional deployment options for a service based on the provided configuration. It works the following way:\n\n1. The user requests all available deployment options via the [list_deploy_service_actions](#services/list_deploy_service_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_deploy_service_actions](#services/list_deploy_service_actions) operation.\n3. Extensions can run arbitrary code based on the provided service configuration and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [deploy_service](#services/deploy_service) operation by providing the selected action ID. The `action_id` from an extension contains the extension ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to deploy the service based on the provided configuration.\n6. The return value of the operation should be a `Service` object.\n\nThe same action mechanism is also used for other type of actions on resources.", "operationId": "list_deploy_service_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ServiceInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Deploy Service Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}:update-service-access": {"post": {"tags": ["services"], "summary": "Update a service.", "description": "Update the last access information of the service to the current time and calling user.", "operationId": "update_service_access", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}/logs": {"get": {"tags": ["services"], "summary": "Get service logs.", "description": "Returns the stdout/stderr logs of the service.", "operationId": "get_service_logs", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "Only show the last n lines.", "required": false, "schema": {"title": "Lines", "type": "integer", "description": "Only show the last n lines."}, "name": "lines", "in": "query"}, {"description": "Only show the logs generated after a given date.", "required": false, "schema": {"title": "Since", "type": "string", "description": "Only show the logs generated after a given date.", "format": "date-time"}, "name": "since", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Service Logs", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}/actions": {"get": {"tags": ["services"], "summary": "List service actions.", "description": "Lists all actions available for the specified service.\n\nThe returned action IDs should be used when calling the [execute_service_action](#services/execute_service_action) operation.\n\nThe action mechanism allows extensions to provide additional functionality on services. It works the following way:\n\n1. The user requests all available actions via the [list_service_actions](#services/list_service_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_service_actions](#services/list_service_actions) operation.\n3. Extensions can run arbitrary code - e.g., request and check the service metadata for compatibility - and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [execute_service_action](#services/execute_service_action) operation by providing the selected action ID. The `action_id` from an extension contains the extension ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to execute the selected action.\n6. The return value of the operation can be either a simple message (shown to the user) or a redirect to another URL (e.g., to show a web UI).\n\nThe same action mechanism is also used for other resources (e.g., files, jobs).\nIt can support a very broad set of use-cases, for example: Access to service endpoints, dashboards for monitoring, administration tools, and more...", "operationId": "list_service_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Service Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}/actions/{action_id}": {"post": {"tags": ["services"], "summary": "Execute a service action.", "description": "Executes the selected service action.\n\nThe actions need to be first requested from the [list_service_actions](#services/list_service_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_service_actions](#services/list_service_actions).", "operationId": "execute_service_action", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "The action ID from the list_service_actions operation.", "required": true, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the list_service_actions operation."}, "name": "action_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourceActionExecution"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "307": {"description": "Redirecting to another URL"}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}/token": {"get": {"tags": ["services", "services"], "summary": "Get service access token.", "description": "Returns an API token with permission to access the service endpoints.\n\nThis token is read-only (permission level read) and does not allow any other permission such as deleting or updating the service.\nThe token can be deleted (revoked) at any time.", "operationId": "get_service_access_token", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "If specified, the token only allows access to this endpoint.", "required": false, "schema": {"title": "Endpoint", "type": "string", "description": "If specified, the token only allows access to this endpoint."}, "name": "endpoint", "in": "query"}, {"description": "Attach a short description to the generated token.", "required": false, "schema": {"title": "Description", "type": "string", "description": "Attach a short description to the generated token."}, "name": "description", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Service Access Token", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/extensions": {"get": {"tags": ["extensions"], "summary": "List extensions.", "description": "Returns all installed extensions accesible by the specified project.\n\nThis also includes all extensions which are installed globally as well as\nextensions installed by the authorized user.", "operationId": "list_extensions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Extensions", "type": "array", "items": {"$ref": "#/components/schemas/Extension"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["extensions"], "summary": "Install extension.", "description": "Installs an extension for the given project.\n\nThis will deploy the extension container for the selected project and\nregisters the extension for all the specified capabilities.", "operationId": "install_extension", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtensionInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Extension"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/extensions/{extension_id}": {"get": {"tags": ["extensions"], "summary": "Get extension metadata.", "description": "Returns the metadata of the given extension.", "operationId": "get_extension_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid extension ID.", "required": true, "schema": {"title": "Extension ID", "type": "string", "description": "A valid extension ID."}, "name": "extension_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Extension"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["extensions"], "summary": "Delete extension.", "description": "Deletes an extension.\n\nThis will delete the installation metadata as well as the service container.", "operationId": "delete_extension", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid extension ID.", "required": true, "schema": {"title": "Extension ID", "type": "string", "description": "A valid extension ID."}, "name": "extension_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/extensions:suggest-config": {"get": {"tags": ["extensions"], "summary": "Suggest extension configuration.", "description": "Suggests an input configuration based on the provided `container_image`.\n\nThe suggestion is based on metadata extracted from the container image (e.g. labels)\nas well as suggestions based on previous project deployments with the same image.", "operationId": "suggest_extension_config", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Container image to use for suggestion.", "required": true, "schema": {"title": "Container Image", "type": "string", "description": "Container image to use for suggestion."}, "name": "container_image", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtensionInput"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files": {"get": {"tags": ["files"], "summary": "List project files.", "description": "Lists all available files for the project.\n\nThe files can be filtered by using a `prefix`. The prefix is applied on the full path (directory path + filename).\n\nAll versions of the files can be included by setting `versions` to `true` (default is `false`).\n\nSet `recursive` to `false` to only show files and folders (prefixes) of the current folder.\nThe current folder is either the root folder (`/`) or the folder selected by the `prefix` parameter (has to end with `/`).", "operationId": "list_files", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Include all content of subfolders.", "required": false, "schema": {"title": "Recursive", "type": "boolean", "description": "Include all content of subfolders.", "default": true}, "name": "recursive", "in": "query"}, {"description": "Include all versions of all files.", "required": false, "schema": {"title": "Include Versions", "type": "boolean", "description": "Include all versions of all files.", "default": false}, "name": "include_versions", "in": "query"}, {"description": "Filter results to include only files whose names begin with this prefix.", "required": false, "schema": {"title": "Prefix", "type": "string", "description": "Filter results to include only files whose names begin with this prefix."}, "name": "prefix", "in": "query"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Files", "type": "array", "items": {"$ref": "#/components/schemas/File"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["files"], "summary": "Delete all files.", "description": "Deletes all files associated with a project.", "operationId": "delete_files", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}": {"post": {"tags": ["files"], "summary": "Upload a file.", "description": "Uploads a file to a file storage.\n\nThe file will be streamed to the selected file storage (core platform or extension).\n\nThis upload operation allows to attach file metadata by passing headers with the prefix 'x-amz-meta-'\nOnce the upload is finished, you can use the [update_file_metadata operation](#files/update_file_metadata)\nto add or update the metadata of the file.\n\nThe `file_key` allows to categorize the uploaded file under a virtual file structure managed by the core platform.\nThis allows to create a directory-like structure for files from different extensions and file-storage types.", "operationId": "upload_file", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/File"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_upload_file_projects__project_id__files__file_key___post"}}}}}, "delete": {"tags": ["files"], "summary": "Delete a file.", "description": "Deletes the specified file.\n\nIf the file storage supports versioning and no `version` is specified, all versions of the file will be deleted.\n\nThe parameter `keep_latest_version` is useful if you want to delete all older versions of a file.", "operationId": "delete_file", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, all versions of the file will be deleted.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, all versions of the file will be deleted."}, "name": "version", "in": "query"}, {"description": "Keep the latest version of the file.", "required": false, "schema": {"title": "Keep Latest Version", "type": "boolean", "description": "Keep the latest version of the file.", "default": false}, "name": "keep_latest_version", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["files"], "summary": "Update file metadata.", "description": "Updates the file metadata.\n\nThis will not change the actual content or the key of the file.\n\nThe update is applied on the existing metadata based on the JSON Merge Patch Standard ([RFC7396](https://tools.ietf.org/html/rfc7396)).\nThereby, only the specified properties will be updated.", "operationId": "update_file_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/FileInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/File"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}:metadata": {"get": {"tags": ["files"], "summary": "Get file metadata.", "description": "Returns metadata about the specified file.", "operationId": "get_file_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/File"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}:download": {"get": {"tags": ["files"], "summary": "Download a file.", "description": "Downloads the selected file.\n\nIf the file storage supports versioning and no `version` is specified, the latest version will be downloaded.", "operationId": "download_file", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}/actions": {"get": {"tags": ["files"], "summary": "List file actions.", "description": "Lists all actions available for the specified file.\n\nThe returned action IDs should be used when calling the [execute_file_action](#files/execute_file_action) operation.\n\nThe action mechanism allows extensions to provide additional functionality on files. It works the following way:\n\n1. The user requests all available actions via the [list_file_actions](#files/list_file_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_file_actions](#files/list_file_actions) operation.\n3. Extensions can run arbitrary code - e.g., request and check the file metadata for compatibility - and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [execute_file_action](#files/execute_file_action) operation by providing the selected action- and extension-ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to execute the selected action.\n6. The return value of the operation can be either a simple message (shown to the user) or a redirect to another URL (e.g., to show a web UI).\n\nThe same action mechanism is also used for other resources (e.g., services, jobs).\nIt can support a very broad set of use-cases, for example: CSV Viewer, Tensorflow Model Deployment, ZIP Archive Explorer ...", "operationId": "list_file_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List File Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}/actions/{action_id}": {"get": {"tags": ["files"], "summary": "Execute a file action.", "description": "Executes the selected action.\n\nThe actions need to be first requested from the [list_file_actions](#files/list_file_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_file_actions](#files/list_file_actions).", "operationId": "execute_file_action", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "The action ID from the file actions operation.", "required": true, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the file actions operation."}, "name": "action_id", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "307": {"description": "Redirecting to another URL"}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/json/{collection_id}/{key}": {"get": {"tags": ["json"], "summary": "Get JSON document.", "description": "Returns a single JSON document.", "operationId": "get_json_document", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "Key of the JSON document.", "required": true, "schema": {"title": "Key", "type": "string", "description": "Key of the JSON document."}, "name": "key", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JsonDocument"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "put": {"tags": ["json"], "summary": "Create JSON document.", "description": "Creates a JSON document. If a document already exists for the given key, the document will be overwritten.\n\nIf no collection exists in the project with the provided `collection_id`, a new collection will be created.", "operationId": "create_json_document", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "Key of the JSON document.", "required": true, "schema": {"title": "Key", "type": "string", "description": "Key of the JSON document."}, "name": "key", "in": "path"}, {"description": "If `True`, the document will be updated/overwritten if it already exists.", "required": false, "schema": {"title": "Upsert", "type": "boolean", "description": "If `True`, the document will be updated/overwritten if it already exists.", "default": true}, "name": "upsert", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Json Document", "type": "object"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JsonDocument"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["json"], "summary": "Delete JSON document.", "description": "Deletes a single JSON document.\n\nIf no other document exists in the project collection, the collection will be deleted.", "operationId": "delete_json_document", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "Key of the JSON document.", "required": true, "schema": {"title": "Key", "type": "string", "description": "Key of the JSON document."}, "name": "key", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["json"], "summary": "Update a JSON document.", "description": "Updates a JSON document.\n\nThe update is applied on the existing document based on the JSON Merge Patch Standard [RFC7396](https://tools.ietf.org/html/rfc7396).", "operationId": "update_json_document", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "Key of the JSON document.", "required": true, "schema": {"title": "Key", "type": "string", "description": "Key of the JSON document."}, "name": "key", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Json Document", "type": "object"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JsonDocument"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/json/{collection_id}": {"get": {"tags": ["json"], "summary": "List JSON documents.", "description": "Lists all JSON documents for the given project collection.\n\nIf extensions are registered for this operation and no extension is selected via the `extension_id` parameter, the results from all extensions will be included in the returned list.\n\nThe `filter` parameter allows to filter the result documents based on a JSONPath expression ([JSON Path Specification](https://goessner.net/articles/JsonPath/)). The filter is only applied to filter documents in the list. It is not usable to extract specific properties.\n\n# TODO: Add filter examples", "operationId": "list_json_documents", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "JSON Path query used to filter the results.", "required": false, "schema": {"title": "Filter", "type": "string", "description": "JSON Path query used to filter the results."}, "name": "filter", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Json Documents", "type": "array", "items": {"$ref": "#/components/schemas/JsonDocument"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["json"], "summary": "Delete a JSON collection.", "description": "Deletes all documents of a single JSON collection.", "operationId": "delete_json_collection", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/json": {"delete": {"tags": ["json"], "summary": "Delete all JSON collections.", "description": "Deletes all JSON collections for the given project.", "operationId": "delete_json_collections", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}}, "components": {"schemas": {"AccessLevel": {"title": "AccessLevel", "enum": ["read", "write", "admin"], "type": "string", "description": "An enumeration."}, "AccessToken": {"title": "AccessToken", "required": ["token", "token_type", "subject", "scopes"], "type": "object", "properties": {"token": {"title": "Token", "type": "string", "description": "API Token.", "example": "f4528e540a133dd53ba6809e74e16774ebe4777a"}, "token_type": {"allOf": [{"$ref": "#/components/schemas/TokenType"}], "description": "The type of the token.", "example": "api-token"}, "subject": {"title": "Subject", "type": "string", "description": "Identifies the principal that is the subject of the token. Usually refers to the user to which the token is issued to.", "example": "users/dklqmomr2c8dx9cpb202dsqku"}, "scopes": {"title": "Scopes", "type": "array", "items": {"type": "string"}, "description": "List of scopes associated with the token.", "example": ["projects#read"]}, "created_at": {"title": "Created At", "type": "string", "description": "Creation date of the token.", "format": "date-time"}, "expires_at": {"title": "Expires At", "type": "string", "description": "Date at which the token expires and, thereby, gets revoked.", "format": "date-time", "example": "2021-04-25T10:20:30.400+02:30"}}}, "AllowedImageInfo": {"title": "AllowedImageInfo", "required": ["image_name", "image_tags"], "type": "object", "properties": {"image_name": {"title": "Image Name", "type": "string", "description": "Name of the docker image to allow. Do not specify the image tag (the part after the colon)", "example": "my-docker-registry.com/my-image"}, "image_tags": {"title": "Image Tags", "type": "array", "items": {"type": "string"}, "description": "List of tags that are allowed for this image. Can be set to [\"*\"] to allow all tags.", "example": ["0.2.1", "0.3.0"]}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this image that does not need predefined structure.", "example": {"additional-metadata": "value"}}}}, "ApiToken": {"title": "ApiToken", "required": ["token", "token_type", "subject", "scopes"], "type": "object", "properties": {"token": {"title": "Token", "type": "string", "description": "API Token.", "example": "f4528e540a133dd53ba6809e74e16774ebe4777a"}, "token_type": {"allOf": [{"$ref": "#/components/schemas/TokenType"}], "description": "The type of the token.", "example": "api-token"}, "subject": {"title": "Subject", "type": "string", "description": "Identifies the principal that is the subject of the token. Usually refers to the user to which the token is issued to.", "example": "users/dklqmomr2c8dx9cpb202dsqku"}, "scopes": {"title": "Scopes", "type": "array", "items": {"type": "string"}, "description": "List of scopes associated with the token.", "example": ["projects#read"]}, "created_at": {"title": "Created At", "type": "string", "description": "Creation date of the token.", "format": "date-time"}, "expires_at": {"title": "Expires At", "type": "string", "description": "Date at which the token expires and, thereby, gets revoked.", "format": "date-time", "example": "2021-04-25T10:20:30.400+02:30"}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "Short description about the context and usage of the token.", "example": "Token used for accesing project resources on my local machine."}, "created_by": {"title": "Created By", "type": "string", "description": "ID of the user that created this token.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}, "token_purpose": {"title": "Token Purpose", "type": "string", "description": "The purpose of the token.", "example": "login-token"}}}, "AuthorizedAccess": {"title": "AuthorizedAccess", "required": ["authorized_subject"], "type": "object", "properties": {"authorized_subject": {"title": "Authorized Subject", "type": "string"}, "resource_name": {"title": "Resource Name", "type": "string"}, "access_level": {"$ref": "#/components/schemas/AccessLevel"}, "access_token": {"$ref": "#/components/schemas/AccessToken"}}}, "Body_introspect_token": {"title": "Body_introspect_token", "required": ["token"], "type": "object", "properties": {"token": {"title": "Token", "type": "string", "description": "The token that should be instrospected."}, "token_type_hint": {"title": "Token Type Hint", "type": "string", "description": "A hint about the type of the token submitted for introspection (e.g. `access_token`, `id_token` and `refresh_token`)."}}}, "Body_login_user_session": {"title": "Body_login_user_session", "required": ["username", "password"], "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "The user\u2019s username or email used for login."}, "password": {"title": "Password", "type": "string", "description": "The user\u2019s password."}}}, "Body_register_admin_user_system_admin_post": {"title": "Body_register_admin_user_system_admin_post", "required": ["password", "password_confirm"], "type": "object", "properties": {"password": {"title": "Password", "type": "string"}, "password_confirm": {"title": "Password Confirm", "type": "string"}}}, "Body_request_token": {"title": "Body_request_token", "required": ["grant_type"], "type": "object", "properties": {"grant_type": {"title": "Grant Type"}, "username": {"title": "Username"}, "password": {"title": "Password"}, "scope": {"title": "Scope"}, "client_id": {"title": "Client Id"}, "client_secret": {"title": "Client Secret"}, "code": {"title": "Code"}, "redirect_uri": {"title": "Redirect Uri"}, "refresh_token": {"title": "Refresh Token"}, "state": {"title": "State"}, "set_as_cookie": {"title": "Set As Cookie", "default": false}}}, "Body_revoke_token": {"title": "Body_revoke_token", "required": ["token"], "type": "object", "properties": {"token": {"title": "Token", "type": "string", "description": "The token that should be revoked."}, "token_type_hint": {"title": "Token Type Hint", "type": "string", "description": "A hint about the type of the token submitted for revokation."}}}, "DeploymentCompute": {"title": "DeploymentCompute", "type": "object", "properties": {"min_cpus": {"title": "Min Cpus", "minimum": 0.0, "type": "number", "description": "Minimum number of CPU cores required by this deployment. The system will make sure that atleast this amount is available to the deployment.", "default": 1, "example": 2}, "max_cpus": {"title": "Max Cpus", "minimum": 0.0, "type": "number", "description": "Maximum number of CPU cores. Even so the system will try to provide the specified amount, it's only guaranteed that the deployment cannot use more. 0 means unlimited.", "example": 4}, "min_memory": {"title": "Min Memory", "minimum": 4.0, "type": "integer", "description": "Minimum amount of memory in Megabyte required by this deployment. The system will make sure that atleast this amount is available to the deployment.", "default": 1000, "example": 4000}, "max_memory": {"title": "Max Memory", "minimum": 0.0, "type": "integer", "description": "Maximum amount of memory in Megabyte. Even so the system will try to provide the specified amount, it's only guaranteed that the deployment cannot use more. 0 means unlimited.", "example": 8000}, "min_gpus": {"title": "Min Gpus", "minimum": 0.0, "type": "integer", "description": "Minimum number of GPUs required by this deployments. The system will make sure that atleast this amount is available to the deployment.", "example": 1}, "max_gpus": {"title": "Max Gpus", "minimum": 0.0, "type": "integer", "description": "Maximum number of GPUs. Even so the system will try to provide the specified amount, it's only guaranteed that the deployment cannot use more.", "example": 2}, "volume_path": {"title": "Volume Path", "type": "string", "description": "Container internal directory that should mount a volume for data persistence.", "example": "/path/to/data"}, "max_volume_size": {"title": "Max Volume Size", "minimum": 1.0, "type": "integer", "description": "Maximum volume size in Megabyte. This is only applied in combination with volume_path.", "example": 32000}, "max_container_size": {"title": "Max Container Size", "minimum": 1.0, "type": "integer", "description": "Maximum container size in Megabyte. The deployment will be killed if it grows above this limit.", "example": 32000}, "max_replicas": {"title": "Max Replicas", "minimum": 1.0, "type": "integer", "description": "Maximum number of deployment instances. The system will make sure to optimize the deployment based on the available resources and requests. Use 1 if the deployment is not scalable.", "default": 1, "example": 2}, "min_lifetime": {"title": "Min Lifetime", "type": "integer", "description": "Minimum guaranteed lifetime in seconds. Once the lifetime is reached, the system is allowed to kill the deployment in case it requires additional resources.", "default": 0, "example": 86400}}}, "DeploymentStatus": {"title": "DeploymentStatus", "enum": ["pending", "running", "succeeded", "failed", "terminating", "stopped", "unknown"], "type": "string", "description": "An enumeration."}, "DeploymentType": {"title": "DeploymentType", "enum": ["core-backend", "service", "job", "extension", "unknown"], "type": "string", "description": "An enumeration."}, "Extension": {"title": "Extension", "required": ["container_image"], "type": "object", "properties": {"capabilities": {"title": "Capabilities", "type": "array", "items": {"type": "string"}, "description": "List of capabilities implemented by this extension."}, "api_extension_endpoint": {"title": "Api Extension Endpoint", "type": "string", "description": "The endpoint base URL that implements the API operation stated in the capabilities property.", "example": "8080/extension/api"}, "ui_extension_endpoint": {"title": "Ui Extension Endpoint", "type": "string", "description": "The endpoint instruction that provide a Web UI. If this is provided, the extension will be integrated into the UI.", "example": "8080/webapp/ui"}, "extension_type": {"allOf": [{"$ref": "#/components/schemas/ExtensionType"}], "description": "The type of the extension.", "example": "project-extension"}, "container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "name": {"title": "Name", "type": "string", "description": "Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "started_at": {"title": "Started At", "type": "string", "description": "Timestamp when the deployment was started.", "format": "date-time"}, "stopped_at": {"title": "Stopped At", "type": "string", "description": "Timestamp when the container has stopped.", "format": "date-time"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID in case the deployment is deployed via an extension."}, "deployment_type": {"allOf": [{"$ref": "#/components/schemas/DeploymentType"}], "description": "The type of this deployment.", "default": "unknown"}, "status": {"allOf": [{"$ref": "#/components/schemas/DeploymentStatus"}], "description": "The status of this deployment.", "default": "unknown", "example": "running"}, "internal_id": {"title": "Internal Id", "type": "string", "description": "The ID of the deployment on the orchestration platform.", "example": "73d247087fea5bfb3a67e98da6a07f5bf4e2a90e5b52f3c12875a35600818376"}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "last_access_time": {"title": "Last Access Time", "type": "string", "description": "Timestamp of the last time the service was accessed.", "format": "date-time"}, "last_access_user": {"title": "Last Access User", "type": "string", "description": "Id of the user that last accessed the service."}}}, "ExtensionInput": {"title": "ExtensionInput", "required": ["container_image"], "type": "object", "properties": {"capabilities": {"title": "Capabilities", "type": "array", "items": {"type": "string"}, "description": "List of capabilities implemented by this extension."}, "api_extension_endpoint": {"title": "Api Extension Endpoint", "type": "string", "description": "The endpoint base URL that implements the API operation stated in the capabilities property.", "example": "8080/extension/api"}, "ui_extension_endpoint": {"title": "Ui Extension Endpoint", "type": "string", "description": "The endpoint instruction that provide a Web UI. If this is provided, the extension will be integrated into the UI.", "example": "8080/webapp/ui"}, "extension_type": {"allOf": [{"$ref": "#/components/schemas/ExtensionType"}], "description": "The type of the extension.", "example": "project-extension"}, "container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "is_stopped": {"title": "Is Stopped", "type": "boolean", "description": "If set to true, the service will be created in the DB but not started. The service status will be 'stopped'.", "default": false}}}, "ExtensionType": {"title": "ExtensionType", "enum": ["user-extension", "project-extension"], "type": "string", "description": "An enumeration."}, "File": {"title": "File", "required": ["key", "version", "latest_version"], "type": "object", "properties": {"id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "name": {"title": "Name", "type": "string", "description": "Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "key": {"title": "Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "The (virtual) path of the file. This path might not correspond to the actual path on the file storage.", "example": "datasets/customer-table.csv"}, "content_type": {"title": "Content Type", "type": "string", "description": "A standard MIME type describing the format of the contents. If an file is stored without a Content-Type, it is served as application/octet-stream.", "example": "text/csv"}, "external_id": {"title": "External Id", "type": "string", "description": "The ID (or access instruction) of the file on the file storage provider.", "example": "datasets/customer-table.csv"}, "file_extension": {"title": "File Extension", "type": "string", "description": "The full file extension extracted from the key field. May contain multiple concatenated extensions, such as `tar.gz`.", "default": "", "example": "csv"}, "file_size": {"title": "File Size", "type": "integer", "description": "The file size in bytes.", "default": 0, "example": 1073741824}, "version": {"title": "Version", "type": "string", "description": "Version tag of this file. The version order might not be inferable from the version tag.", "example": "1614204512210009"}, "available_versions": {"title": "Available Versions", "type": "array", "items": {"type": "string"}, "description": "All version tags available for the given file.", "default": [], "example": ["1614204512210009", "23424512210009", "6144204512210009"]}, "latest_version": {"title": "Latest Version", "type": "boolean", "description": "Indicates if this is the latest available version of the file.", "example": true}, "md5_hash": {"title": "Md5 Hash", "type": "string", "description": "The base64-encoded 128-bit MD5 digest of the file. This can be used for checking the file integrity.", "example": "2a53375ff139d9837e93a38a279d63e5"}, "etag": {"title": "Etag", "type": "string", "description": "The etag of the file (mainly used by S3 storage). An entity-tag is an opaque validator for differentiating between multiple representations of the same resource", "example": "57f456164b0e5f365aaf9bb549731f32-95"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID in case the file is provided via an extension."}}}, "FileInput": {"title": "FileInput", "type": "object", "properties": {"display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}}}, "Job": {"title": "Job", "required": ["container_image"], "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "name": {"title": "Name", "type": "string", "description": "Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "started_at": {"title": "Started At", "type": "string", "description": "Timestamp when the deployment was started.", "format": "date-time"}, "stopped_at": {"title": "Stopped At", "type": "string", "description": "Timestamp when the container has stopped.", "format": "date-time"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID in case the deployment is deployed via an extension."}, "deployment_type": {"allOf": [{"$ref": "#/components/schemas/DeploymentType"}], "description": "The type of this deployment.", "default": "unknown"}, "status": {"allOf": [{"$ref": "#/components/schemas/DeploymentStatus"}], "description": "The status of this deployment.", "default": "unknown", "example": "running"}, "internal_id": {"title": "Internal Id", "type": "string", "description": "The ID of the deployment on the orchestration platform.", "example": "73d247087fea5bfb3a67e98da6a07f5bf4e2a90e5b52f3c12875a35600818376"}}}, "JobInput": {"title": "JobInput", "required": ["container_image"], "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}}}, "JsonDocument": {"title": "JsonDocument", "required": ["key", "json_value"], "type": "object", "properties": {"key": {"title": "Key", "type": "string", "description": "Unique key of the document.", "example": "my-json-document"}, "json_value": {"title": "Json Value", "type": "string", "description": "JSON value of the document.", "example": "{'foo': 'bar'}"}, "created_at": {"title": "Created At", "type": "string", "description": "Creation date of the document.", "format": "date-time", "example": "2021-04-23T10:20:30.400+02:30"}, "created_by": {"title": "Created By", "type": "string", "description": "ID of the user that created this document.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Last date at which the document was updated.", "format": "date-time", "example": "2021-04-23T10:20:30.400+02:30"}, "updated_by": {"title": "Updated By", "type": "string", "description": "ID of the user that has last updated this document.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}}}, "OAuth2ErrorDetails": {"title": "OAuth2ErrorDetails", "required": ["error"], "type": "object", "properties": {"error": {"title": "Error", "type": "string"}}}, "OAuthToken": {"title": "OAuthToken", "required": ["token_type", "access_token"], "type": "object", "properties": {"token_type": {"title": "Token Type", "type": "string", "description": "The type of token this is, typically just the string `bearer`"}, "access_token": {"title": "Access Token", "type": "string", "description": "The access token string."}, "expires_in": {"title": "Expires In", "type": "integer", "description": "The expiration time of the access token in seconds."}, "refresh_token": {"title": "Refresh Token", "type": "string", "description": "API token to refresh the sesion token (if it expires)."}, "scope": {"title": "Scope", "type": "string", "description": "The scopes contained in the access token."}, "id_token": {"title": "Id Token", "type": "string", "description": "OpenID Connect ID Token that encodes the user\u2019s authentication information."}}}, "OAuthTokenIntrospection": {"title": "OAuthTokenIntrospection", "required": ["active"], "type": "object", "properties": {"active": {"title": "Active", "type": "boolean", "description": "Indicator of whether or not the presented token is currently active."}, "scope": {"title": "Scope", "type": "string", "description": "A space-delimited list of scopes."}, "client_id": {"title": "Client Id", "type": "string", "description": "Client identifier for the OAuth 2.0 client that requested this token."}, "username": {"title": "Username", "type": "string", "description": "Human-readable identifier for the resource owner who authorized this token."}, "token_type": {"title": "Token Type", "type": "string", "description": "Type of the token as defined in Section 5.1 of OAuth 2.0 [RFC6749]."}, "exp": {"title": "Exp", "type": "integer", "description": "Timestamp, measured in the number of seconds since January 1 1970 UTC, indicating when this token will expire, as defined in JWT [RFC7519]."}, "iat": {"title": "Iat", "type": "integer", "description": "Timestamp, measured in the number of seconds since January 1 1970 UTC, indicating when this token was originally issued, as defined in JWT [RFC7519]."}, "nbf": {"title": "Nbf", "type": "integer", "description": "Timestamp, measured in the number of seconds since January 1 1970 UTC, indicating when this token is not to be used before, as defined in JWT [RFC7519]."}, "sub": {"title": "Sub", "type": "string", "description": "Subject of the token, as defined in JWT [RFC7519]. Usually a machine-readable identifier of the resource owner who authorized this token."}, "aud": {"title": "Aud", "type": "string", "description": "Service-specific string identifier or list of string identifiers representing the intended audience for this token, as defined in JWT [RFC7519]."}, "iss": {"title": "Iss", "type": "string", "description": "String representing the issuer of this token, as defined in JWT [RFC7519]."}, "jti": {"title": "Jti", "type": "string", "description": "String identifier for the token, as defined in JWT [RFC7519]."}, "uid": {"title": "Uid", "type": "string", "description": "The user ID. This parameter is returned only if the token is an access token and the subject is an end user."}}}, "ProblemDetails": {"title": "ProblemDetails", "type": "object", "properties": {"code": {"title": "Code", "exclusiveMaximum": 600.0, "minimum": 100.0, "type": "integer", "description": "The HTTP status code generated by the origin server for this occurrence of the problem.", "example": 400}, "message": {"title": "Message", "type": "string", "description": "A developer-facing human-readable error message in English."}, "explanation": {"title": "Explanation", "type": "string", "description": "A human readable explanation specific to this error that is helpful to locate the problem and give advice on how to proceed."}, "details": {"title": "Details", "description": "A map of additional problem details."}}}, "Project": {"title": "Project", "type": "object", "properties": {"id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "name": {"title": "Name", "type": "string", "description": "Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "technical_project": {"title": "Technical Project", "type": "boolean", "description": "Indicates that this is a technical project created by the system.", "default": false}}}, "ProjectCreation": {"title": "ProjectCreation", "required": ["id"], "type": "object", "properties": {"display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "id": {"title": "Id", "maxLength": 25, "minLength": 4, "type": "string", "description": "Project ID used for creating the project.", "example": "my-awesome-project"}}}, "ProjectInput": {"title": "ProjectInput", "type": "object", "properties": {"display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}}}, "ResourceAction": {"title": "ResourceAction", "required": ["action_id"], "type": "object", "properties": {"action_id": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "ID used to identify this action.", "example": "access-8080"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "Display name of this action.", "example": "Access Port 8080"}, "icon": {"title": "Icon", "maxLength": 1000, "type": "string", "description": "Material Design Icon name or image URL used for displaying this action.", "example": "open_in_new"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID associated with this action."}, "extension_name": {"title": "Extension Name", "type": "string", "description": "The extension name associated with this action."}, "instructions": {"title": "Instructions", "type": "array", "items": {}, "description": "A list of instructions for the frontend application.", "example": ["new-tab"]}}}, "ResourceActionExecution": {"title": "ResourceActionExecution", "type": "object", "properties": {"parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters that are passed to the resource action.", "default": {}, "example": {"action-parameter": "parameter-value"}}}}, "Service": {"title": "Service", "required": ["container_image"], "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "name": {"title": "Name", "type": "string", "description": "Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "started_at": {"title": "Started At", "type": "string", "description": "Timestamp when the deployment was started.", "format": "date-time"}, "stopped_at": {"title": "Stopped At", "type": "string", "description": "Timestamp when the container has stopped.", "format": "date-time"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID in case the deployment is deployed via an extension."}, "deployment_type": {"allOf": [{"$ref": "#/components/schemas/DeploymentType"}], "description": "The type of this deployment.", "default": "unknown"}, "status": {"allOf": [{"$ref": "#/components/schemas/DeploymentStatus"}], "description": "The status of this deployment.", "default": "unknown", "example": "running"}, "internal_id": {"title": "Internal Id", "type": "string", "description": "The ID of the deployment on the orchestration platform.", "example": "73d247087fea5bfb3a67e98da6a07f5bf4e2a90e5b52f3c12875a35600818376"}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "last_access_time": {"title": "Last Access Time", "type": "string", "description": "Timestamp of the last time the service was accessed.", "format": "date-time"}, "last_access_user": {"title": "Last Access User", "type": "string", "description": "Id of the user that last accessed the service."}}}, "ServiceInput": {"title": "ServiceInput", "required": ["container_image"], "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "is_stopped": {"title": "Is Stopped", "type": "boolean", "description": "If set to true, the service will be created in the DB but not started. The service status will be 'stopped'.", "default": false}}}, "ServiceUpdate": {"title": "ServiceUpdate", "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "default": "", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parmeters (enviornment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "is_stopped": {"title": "Is Stopped", "type": "boolean", "description": "If set to true, the service will be created in the DB but not started. The service status will be 'stopped'.", "default": false}}}, "SystemInfo": {"title": "SystemInfo", "required": ["version", "namespace", "system_state"], "type": "object", "properties": {"version": {"title": "Version", "type": "string", "description": "Platform version.", "example": "0.1.0"}, "namespace": {"title": "Namespace", "type": "string", "description": "Namespace of this system.", "example": "mlhub"}, "system_state": {"allOf": [{"$ref": "#/components/schemas/SystemState"}], "description": "The state of the system."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "Additional key-value metadata associated with this system.", "example": {"additional-metadata": "value"}}}}, "SystemState": {"title": "SystemState", "enum": ["uninitialized", "running"], "type": "string", "description": "An enumeration."}, "SystemStatistics": {"title": "SystemStatistics", "required": ["project_count", "user_count", "job_count", "service_count", "file_count"], "type": "object", "properties": {"project_count": {"title": "Project Count", "type": "integer"}, "user_count": {"title": "User Count", "type": "integer"}, "job_count": {"title": "Job Count", "type": "integer"}, "service_count": {"title": "Service Count", "type": "integer"}, "file_count": {"title": "File Count", "type": "integer"}}}, "TokenType": {"title": "TokenType", "enum": ["session-token", "api-token"], "type": "string", "description": "An enumeration."}, "User": {"title": "User", "required": ["id"], "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}, "id": {"title": "Id", "type": "string", "description": "Unique ID of the user.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}, "technical_user": {"title": "Technical User", "type": "boolean", "description": "Indicates if the user is a technical user created by the system.", "default": false}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the user creation. Assigned by the server and read-only.", "format": "date-time"}, "last_activity": {"title": "Last Activity", "type": "string", "description": "Last time the user accessed the system. Right now this is only updated when the user calls the /users/me endpoint so that call should always be done when the user loads the UI.", "format": "date-time"}, "has_password": {"title": "Has Password", "type": "boolean", "description": "Indicates if the user log in with password or SSO", "default": true}}}, "UserInput": {"title": "UserInput", "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}}}, "UserPermission": {"title": "UserPermission", "required": ["id"], "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}, "id": {"title": "Id", "type": "string", "description": "Unique ID of the user.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}, "permission": {"allOf": [{"$ref": "#/components/schemas/AccessLevel"}], "description": "Permissions of the user for the particular project", "example": "READ"}}}, "UserRead": {"title": "UserRead", "required": ["id"], "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}, "id": {"title": "Id", "type": "string", "description": "Unique ID of the user.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}}}, "UserRegistration": {"title": "UserRegistration", "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}, "password": {"title": "Password", "type": "string", "description": "Password for the user. The password will be stored in as a hash."}}}, "Body_upload_file_projects__project_id__files__file_key___post": {"title": "Body_upload_file_projects__project_id__files__file_key___post", "required": ["file"], "type": "object", "properties": {"file": {"title": "File", "type": "string", "format": "binary"}}}}, "securitySchemes": {"APIKeyQuery": {"type": "apiKey", "in": "query", "name": "ct_token"}, "APIKeyHeader": {"type": "apiKey", "in": "header", "name": "ct_token"}, "OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "auth/oauth/token"}}}, "APIKeyCookie": {"type": "apiKey", "in": "cookie", "name": "ct_token"}}}} \ No newline at end of file +{"openapi": "3.0.2", "info": {"title": "Contaxy API", "description": "Functionality to create and manage projects, services, jobs, and files.", "version": "0.0.22"}, "paths": {"/system/info": {"get": {"tags": ["system"], "summary": "Get system info.", "description": "Returns information about this instance.", "operationId": "get_system_info", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SystemInfo"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/system/health": {"get": {"tags": ["system"], "summary": "Check server health status.", "description": "Returns a successful return code if the instance is healthy.", "operationId": "check_health_system_health_get", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/system/statistics": {"get": {"tags": ["system"], "summary": "Get system statistics.", "description": "Returns statistics about this instance.", "operationId": "get_system_statistics", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SystemStatistics"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/system/initialize": {"post": {"tags": ["system"], "summary": "Initialize the system.", "description": "Initializes the system.", "operationId": "initialize_system", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/system/admin": {"post": {"tags": ["system"], "summary": "Register Admin User", "operationId": "register_admin_user_system_admin_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_register_admin_user_system_admin_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/system/allowed-images": {"get": {"tags": ["system"], "summary": "List all allowed images.", "operationId": "list_allowed_images", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Allowed Images", "type": "array", "items": {"$ref": "#/components/schemas/AllowedImageInfo"}}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["system"], "summary": "Add an image to the list of allowed images or replace one already on the list.", "operationId": "add_allowed_image", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/AllowedImageInfo"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AllowedImageInfo"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["system"], "summary": "Remove an image from the list of allowed images.", "operationId": "delete_allowed_image", "parameters": [{"description": "Name of a docker image without the tag", "required": true, "schema": {"title": "Docker image name", "type": "string", "description": "Name of a docker image without the tag"}, "name": "image_name", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/login-page": {"get": {"tags": ["auth"], "summary": "Open the login page.", "description": "Returns or redirect to the login-page.", "operationId": "open_login_page", "responses": {"303": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/auth/login": {"get": {"tags": ["auth"], "summary": "Login a user session.", "description": "Signs in the user based on username and password credentials.\n\nThis will set http-only cookies containg tokens with full user access.", "operationId": "login_user_session", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_login_user_session"}}}, "required": true}, "responses": {"307": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/auth/logout": {"get": {"tags": ["auth"], "summary": "Logout a user session.", "description": "Removes all session token cookies and redirects to the login page.\n\nWhen making requests to the this endpoint, the browser should be redirected to this endpoint.", "operationId": "logout_user_session", "responses": {"307": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/tokens": {"get": {"tags": ["auth"], "summary": "List API tokens.", "description": "Returns list of created API tokens associated with the authenticated user.", "operationId": "list_api_tokens", "parameters": [{"description": "Subject for which the tokens should be listed.If it is not provided, the tokens of the authorized user are returned.", "required": false, "schema": {"title": "Token Subject", "type": "string", "description": "Subject for which the tokens should be listed.If it is not provided, the tokens of the authorized user are returned."}, "name": "token_subject", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Api Tokens", "type": "array", "items": {"$ref": "#/components/schemas/ApiToken"}}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["auth"], "summary": "Create API or session token.", "description": "Returns a session or API token with the specified scopes.\n\nIf no scopes are specified, the token will be generated with the same scopes as the authorized token.\n\nThe API token can be deleted (revoked) at any time.\nIn comparison, the session token cannot be revoked but expires after a short time (a few minutes).\n\nThis operation can only be called with API tokens (or refresh tokens) due to security aspects.\nSession tokens are not allowed to create other tokens.\nFurthermore, tokens can only be created if the API token used for authorization is granted at least\nthe same access level on the given resource. For example, a token with `write` access level on a given resource\nallows to create new tokens with `write` or `read` granted level on that resource.", "operationId": "create_token", "parameters": [{"description": "Scopes requested for this token. If none specified, the token will be generated with same set of scopes as the authorized token.", "required": false, "schema": {"title": "Scopes", "type": "array", "items": {"type": "string"}, "description": "Scopes requested for this token. If none specified, the token will be generated with same set of scopes as the authorized token."}, "name": "scope", "in": "query"}, {"description": "Type of the token.", "required": false, "schema": {"type": "string", "allOf": [{"$ref": "#/components/schemas/TokenType"}], "description": "Type of the token.", "default": "session-token"}, "name": "token_type", "in": "query"}, {"description": "Attach a short description to the generated token.", "required": false, "schema": {"title": "Description", "type": "string", "description": "Attach a short description to the generated token."}, "name": "description", "in": "query"}, {"description": "Purpose of this token.", "required": false, "schema": {"title": "Token Purpose", "type": "string", "description": "Purpose of this token.", "default": "custom-token-purpose"}, "name": "token_purpose", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Create Token", "type": "string"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/permissions": {"get": {"tags": ["auth"], "summary": "Lists permissions for given resource.", "description": "Lists the permissions for a given resource, admin access for that resource is required.", "operationId": "list_resource_permissions", "parameters": [{"required": true, "schema": {"title": "Resource Name", "type": "string"}, "name": "resource_name", "in": "query"}, {"required": false, "schema": {"title": "Resolve Roles", "type": "boolean", "default": true}, "name": "resolve_roles", "in": "query"}, {"required": false, "schema": {"title": "Use Cache", "type": "boolean", "default": true}, "name": "use_cache", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Resource Permissions", "type": "array", "items": {"type": "string"}}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["auth"], "summary": "Add permission to specified resource.", "description": "Adds permission to specified resource, admin access to the /auth/permissions resource is required.", "operationId": "set_resource_permissions", "parameters": [{"required": true, "schema": {"title": "Resource Name", "type": "string"}, "name": "resource_name", "in": "query"}, {"required": true, "schema": {"title": "Permission", "type": "string"}, "name": "permission", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["auth"], "summary": "Deletes permission of specified resource.", "description": "Deletes permission of specified resource, admin access to the /auth/permissions resource is required.", "operationId": "delete_resource_permissions", "parameters": [{"required": true, "schema": {"title": "Resource Name", "type": "string"}, "name": "resource_name", "in": "query"}, {"required": true, "schema": {"title": "Permission", "type": "string"}, "name": "permission", "in": "query"}, {"required": false, "schema": {"title": "Remove Sub Permissions", "type": "boolean", "default": false}, "name": "remove_sub_permissions", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/resources": {"get": {"tags": ["auth"], "summary": "List all resources that have a certain permission.", "description": "List all resources that have a certain permission, admin access to the /auth/resources resource is required.", "operationId": "get_resources_with_permission", "parameters": [{"required": true, "schema": {"title": "Permission", "type": "string"}, "name": "permission", "in": "query"}, {"required": false, "schema": {"title": "Resource Name Prefix", "type": "string"}, "name": "resource_name_prefix", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Resources With Permission", "type": "array", "items": {"type": "string"}}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/tokens/verify": {"post": {"tags": ["auth"], "summary": "Verify a Session or API Token.", "description": "Verifies a session or API token for its validity and - if provided - if it has the specified permission.\n\nReturns an successful HTTP Status code if verification was successful, otherwise an error is returned.", "operationId": "verify_access", "parameters": [{"description": "The token is checked if it is granted this permission. If none specified, only the existence or validity of the token itself is checked.", "required": false, "schema": {"title": "Resource Type ", "type": "string", "description": "The token is checked if it is granted this permission. If none specified, only the existence or validity of the token itself is checked."}, "name": "permission", "in": "query"}, {"description": "If false, no cache will be used for verifying the token.", "required": false, "schema": {"title": "Use Cache", "type": "boolean", "description": "If false, no cache will be used for verifying the token.", "default": true}, "name": "use_cache", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Token", "type": "string", "description": "Token to verify."}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AuthorizedAccess"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/auth/oauth/token": {"post": {"tags": ["auth"], "summary": "Request a token (OAuth2 Endpoint).", "description": "Returns an access tokens, ID tokens, or refresh tokens depending on the request parameters.\n\n The token endpoint is used by the client to obtain an access token by\n presenting its authorization grant or refresh token.\n\n The token endpoint supports the following grant types:\n - [Password Grant](https://tools.ietf.org/html/rfc6749#section-4.3.2): Used when the application exchanges the user\u2019s username and password for an access token.\n - `grant_type` must be set to `password`\n - `username` (required): The user\u2019s username.\n - `password` (required): The user\u2019s password.\n - `scope` (optional): Optional requested scope values for the access token.\n - [Refresh Token Grant](https://tools.ietf.org/html/rfc6749#section-6): Allows to use refresh tokens to obtain new access tokens.\n - `grant_type` must be set to `refresh_token`\n - `refresh_token` (required): The refresh token previously issued to the client.\n - `scope` (optional): Requested scope values for the new access token. Must not include any scope values not originally granted by the resource owner, and if omitted is treated as equal to the originally granted scope.\n - [Client Credentials Grant](https://tools.ietf.org/html/rfc6749#section-4.4.2): Request an access token using only its client\ncredentials.\n - `grant_type` must be set to `client_credentials`\n - `scope` (optional): Optional requested scope values for the access token.\n - Client Authentication required (e.g. via client_id and client_secret or auth header)\n - [Authorization Code Grant](https://tools.ietf.org/html/rfc6749#section-4.1): Used to obtain both access tokens and refresh tokens based on an authorization code from the `/authorize` endpoint.\n - `grant_type` must be set to `authorization_code`\n - `code` (required): The authorization code that the client previously received from the authorization server.\n - `redirect_uri` (required): The redirect_uri parameter included in the original authorization request.\n - Client Authentication required (e.g. via client_id and client_secret or auth header)\n\nFor password, client credentials, and refresh token flows, calling this endpoint is the only step of the flow.\nFor the authorization code flow, calling this endpoint is the second step of the flow.\n\nThis endpoint implements the [OAuth2 Token Endpoint](https://tools.ietf.org/html/rfc6749#section-3.2).", "operationId": "request_token", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_request_token"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OAuthToken"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OAuth2ErrorDetails"}}}}}}}, "/auth/oauth/revoke": {"post": {"tags": ["auth"], "summary": "Revoke a token (OAuth2 Endpoint).", "description": "Revokes a given token.\n\nThis will delete the API token, preventing further requests with the given token.\nBecause of caching, the API token might still be usable under certain conditions\nfor some operations for a maximum of 15 minutes after deletion.\n\nThis endpoint implements the OAuth2 Revocation Flow ([RFC7009](https://tools.ietf.org/html/rfc7009)).", "operationId": "revoke_token", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_revoke_token"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OAuth2ErrorDetails"}}}}}}}, "/auth/oauth/introspect": {"post": {"tags": ["auth"], "summary": "Introspect a token (OAuth2 Endpoint).", "description": "Introspects a given token.\n\nReturns a boolean that indicates whether it is active or not.\nIf the token is active, additional data about the token is also returned.\nIf the token is invalid, expired, or revoked, it is considered inactive.\n\nThis endpoint implements the [OAuth2 Introspection Flow](https://www.oauth.com/oauth2-servers/token-introspection-endpoint/) ([RFC7662](https://tools.ietf.org/html/rfc7662)).", "operationId": "introspect_token", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_introspect_token"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OAuthTokenIntrospection"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/auth/oauth/callback": {"get": {"tags": ["auth"], "summary": "Open the login page (OAuth2 Client Endpoint).", "description": "Callback to finish the login process (OAuth2 Client Endpoint).\n\nThe authorization `code` is exchanged for an access and ID token.\nThe ID token contains all relevant user information and is used to login the user.\nIf the user does not exist, a new user will be created with the information from the ID token.\n\nFinally, the user is redirected to the webapp and a session/refresh token is set in the cookies.\n\nThis endpoint implements the [Authorization Response](https://tools.ietf.org/html/rfc6749#section-4.1.2) from RFC6749.", "operationId": "login_callback", "parameters": [{"description": "The authorization code generated by the authorization server.", "required": true, "schema": {"title": "Code", "type": "string", "description": "The authorization code generated by the authorization server."}, "name": "code", "in": "query"}, {"required": false, "schema": {"title": "State", "type": "string"}, "name": "state", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/auth/oauth/enabled": {"get": {"tags": ["auth"], "summary": "Check if external OAuth2 (OIDC) IDP is enabled.", "description": "Returns the value of `OIDC_AUTH_ENABLED`.\n\nReturns \"0\" if it is not set, \"1\" if it is set.", "operationId": "oauth_enabled", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Oauth Enabled", "type": "string"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}}}, "/users": {"get": {"tags": ["users", "users"], "summary": "List all users.", "description": "Lists all users that are visible to the authenticated user.", "operationId": "list_users", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Users", "type": "array", "items": {"anyOf": [{"$ref": "#/components/schemas/User"}, {"$ref": "#/components/schemas/UserRead"}]}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["users", "users"], "summary": "Create a user.", "description": "Creates a user. For the user also a technical project is created.\n\nIf the `password` is not provided, the user can only login by using other methods (social login).", "operationId": "create_user", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserRegistration"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/users/me": {"get": {"tags": ["users", "users"], "summary": "Get my user metadata.", "description": "Returns the user metadata from the authenticated user.", "operationId": "get_my_user", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/users/{user_id}": {"get": {"tags": ["users", "users"], "summary": "Get user metadata.", "description": "Returns the user metadata for a single user.", "operationId": "get_user", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["users", "users"], "summary": "Delete a user.", "description": "Deletes a user and all resources which are only accesible by this user.\n\nShared project resources will not be deleted.", "operationId": "delete_user", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["users", "users"], "summary": "Update user metadata.", "description": "Updates the user metadata.\n\nThis will update only the properties that are explicitly set in the patch request.\nThe patching is based on the JSON Merge Patch Standard [RFC7396](https://tools.ietf.org/html/rfc7396).", "operationId": "update_user", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/User"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/users/{user_id}:change-password": {"put": {"tags": ["users", "users"], "summary": "Change the user password", "description": "Changes the password of a given user.\n\nThe password can be changed by the given user or a system admin.\n\nThe password is stored as a hash.", "operationId": "change_password", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Password", "type": "string"}}}, "required": true}, "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/users/{user_id}/token": {"get": {"tags": ["users", "users"], "summary": "Get a user token.", "description": "Returns an API token with permission to access all resources accessible by the given user.\n\nThe `read` access level allows read-only access on all resources.\nThe `write` access level allows to create and delete user resources.\nThe `admin` access level allows additional user actions such as deletion of the user itself.", "operationId": "get_user_token", "parameters": [{"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}, {"description": "Access level of the token.", "required": false, "schema": {"type": "string", "allOf": [{"$ref": "#/components/schemas/AccessLevel"}], "description": "Access level of the token.", "default": "write"}, "name": "access_level", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get User Token", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects": {"get": {"tags": ["projects"], "summary": "List all projects.", "description": "Lists all projects visible to the authenticated user.\n\nA project is visible to a user, if the user has the at least a `read` permission for the project.\nSystem administrators will also see technical projects, such as `system-internal` and `system-global`.", "operationId": "list_projects", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Projects", "type": "array", "items": {"$ref": "#/components/schemas/Project"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["projects"], "summary": "Create a new project.", "description": "Creates a new project.\n\nWe suggest to use the `suggest_project_id` endpoint to get a valid and available ID.\nThe project ID might also be set manually, however, an error will be returned if it does not comply with the ID requirements or is already used.", "operationId": "create_project", "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectCreation"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}": {"get": {"tags": ["projects"], "summary": "Get details for a project.", "description": "Returns the metadata of a single project.", "operationId": "get_project", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["projects"], "summary": "Delete a project.", "description": "Deletes a project and all its associated resources including deployments and files.\n\nA project can only be delete by a user with `admin` permission on the project.", "operationId": "delete_project", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["projects"], "summary": "Update project metadata.", "description": "Updates the metadata of the given project.\n\nThis will update only the properties that are explicitly set in the patch request.\nThe patching is based on the JSON Merge Patch Standard [RFC7396](https://tools.ietf.org/html/rfc7396).", "operationId": "update_project", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProjectInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Project"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects:suggest-id": {"get": {"tags": ["projects"], "summary": "Suggest project ID.", "description": "Suggests a valid and unique project ID for the given display name.\n\nThe project ID will be human-readable and resemble the provided display name,\nbut might be cut off or have an attached counter prefix.", "operationId": "suggest_project_id", "parameters": [{"required": true, "schema": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string"}, "name": "display_name", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Suggest Project Id", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/users": {"get": {"tags": ["projects"], "summary": "List project members.", "description": "Lists all project members.\n\nThis include all users that have atlease a `read` permission on the given project.", "operationId": "list_project_members", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Project Members", "type": "array", "items": {"$ref": "#/components/schemas/UserPermission"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/users/{user_id}": {"put": {"tags": ["projects"], "summary": "Add user to project.", "description": "Adds a user to the project.\n\nThis will add the permission for this project to the user item.\nThe `access_level` defines what the user can do:\n\n- The `read` permission level allows read-only access on all resources.\n- The `write` permission level allows to create and delete project resources.\n- The `admin` permission level allows to delete the project or add/remove other users.", "operationId": "add_project_member", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}, {"description": "The permission level.", "required": false, "schema": {"type": "string", "allOf": [{"$ref": "#/components/schemas/AccessLevel"}], "description": "The permission level.", "default": "write"}, "name": "access_level", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Add Project Member", "type": "array", "items": {"$ref": "#/components/schemas/User"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["projects"], "summary": "Remove user from project.", "description": "Removes a user from a project.\n\nThis will remove the permission for this project from the user item.", "operationId": "remove_project_member", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid user ID.", "required": true, "schema": {"title": "User ID", "type": "string", "description": "A valid user ID."}, "name": "user_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Remove Project Member", "type": "array", "items": {"$ref": "#/components/schemas/User"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/token": {"get": {"tags": ["projects", "projects"], "summary": "Get project token.", "description": "Returns an API token with permission (`read`, `write`, or `admin`) to access all project resources.\n\nThe `read` access level allows read-only access on all resources.\nThe `write` access level allows to create and delete project resources.\nThe `admin` access level allows to delete the project or add/remove other users.", "operationId": "get_project_token", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Access level of the token.", "required": false, "schema": {"type": "string", "allOf": [{"$ref": "#/components/schemas/AccessLevel"}], "description": "Access level of the token.", "default": "write"}, "name": "access_level", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Project Token", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs": {"get": {"tags": ["jobs"], "summary": "List project jobs.", "description": "Lists all jobs associated with the given project.", "operationId": "list_jobs", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Jobs", "type": "array", "items": {"$ref": "#/components/schemas/Job"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["jobs"], "summary": "Deploy a job.", "description": "Deploy a job for the specified project.\n\nIf no `action_id` is provided, the system will automatically select the best deployment option.\n\nAvailable actions can be requested via the [list_deploy_job_actions](#jobs/list_deploy_job_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_deploy_job_actions](#jobs/list_deploy_job_actions).", "operationId": "deploy_job", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "The action ID from the job deploy options.", "required": false, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the job deploy options."}, "name": "action_id", "in": "query"}, {"description": "If true, the server waits for the job to be ready before sending a response.", "required": false, "schema": {"title": "Wait", "type": "boolean", "description": "If true, the server waits for the job to be ready before sending a response.", "default": false}, "name": "wait", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/JobInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "307": {"description": "Redirecting to another URL"}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["jobs"], "summary": "Delete all jobs.", "description": "Deletes all jobs associated with a project.", "operationId": "delete_jobs", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs/{job_id}": {"get": {"tags": ["jobs"], "summary": "Get job metadata.", "description": "Returns the metadata of a single job.\n\nThe returned metadata might be filtered based on the permission level of the authenticated user.", "operationId": "get_job_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Job"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["jobs"], "summary": "Delete a job.", "description": "Deletes a job.\n\nThis will kill and remove the container and all associated deployment artifacts.", "operationId": "delete_job", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs:suggest-config": {"get": {"tags": ["jobs"], "summary": "Suggest job configuration.", "description": "Suggests an input configuration based on the provided `container_image`.\n\nThe suggestion is based on metadata extracted from the container image (e.g. labels)\nas well as suggestions based on previous project deployments with the same image.", "operationId": "suggest_job_config", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Container image to use for suggestion.", "required": true, "schema": {"title": "Container Image", "type": "string", "description": "Container image to use for suggestion."}, "name": "container_image", "in": "query"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JobInput"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs:deploy-actions": {"post": {"tags": ["jobs"], "summary": "List deploy job actions.", "description": "Lists all available job deployment options (actions).\n\nThe returned action IDs should be used when calling the [deploy_job](#job/deploy_job) operation.\n\nThe action mechanism allows extensions to provide additional deployment options for a job based on the provided configuration. It works the following way:\n\n1. The user requests all available deployment options via the [list_deploy_job_actions](#jobs/list_deploy_job_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_deploy_job_actions](#jobs/list_deploy_job_actions) operation.\n3. Extensions can run arbitrary code based on the provided job configuration and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [deploy_job](#jobs/deploy_job) operation by providing the selected action ID. The `action_id` from an extension contains the extension ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to deploy the job based on the provided configuration.\n6. The return value of the operation should be a `Job` object.\n\nThe same action mechanism is also used for other type of actions on resources.", "operationId": "list_deploy_job_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/JobInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Deploy Job Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs/{job_id}/logs": {"get": {"tags": ["jobs"], "summary": "Get job logs.", "description": "Returns the stdout/stderr logs of the job.", "operationId": "get_job_logs", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}, {"description": "Only show the last n lines.", "required": false, "schema": {"title": "Lines", "type": "integer", "description": "Only show the last n lines."}, "name": "lines", "in": "query"}, {"description": "Only show the logs generated after a given date.", "required": false, "schema": {"title": "Since", "type": "string", "description": "Only show the logs generated after a given date.", "format": "date-time"}, "name": "since", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Job Logs", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs/{job_id}/actions": {"get": {"tags": ["jobs"], "summary": "List job actions.", "description": "Lists all actions available for the specified job.\n\nThe returned action IDs should be used when calling the [execute_job_action](#jobs/execute_job_action) operation.\n\nThe action mechanism allows extensions to provide additional functionality on jobs. It works the following way:\n\n1. The user requests all available actions via the [list_job_actions](#jobs/list_job_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_job_actions](#jobs/list_job_actions) operation.\n3. Extensions can run arbitrary code - e.g., request and check the job metadata for compatibility - and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [execute_job_action](#jobs/execute_job_action) operation by providing the selected action ID. The `action_id` from an extension contains the extension ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to execute the selected action.\n6. The return value of the operation can be either a simple message (shown to the user) or a redirect to another URL (e.g., to show a web UI).\n\nThe same action mechanism is also used for other resources (e.g., files, services).\nIt can support a very broad set of use-cases, for example: Access to dashboards for monitoring, adminsitration tools, and more...", "operationId": "list_job_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Job Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/jobs/{job_id}/actions/{action_id}": {"post": {"tags": ["jobs"], "summary": "Execute a job action.", "description": "Executes the selected job action.\n\nThe actions need to be first requested from the [list_job_actions](#jobs/list_job_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_job_actions](#jobs/list_job_actions).", "operationId": "execute_job_action", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid job ID.", "required": true, "schema": {"title": "Job ID", "type": "string", "description": "A valid job ID."}, "name": "job_id", "in": "path"}, {"description": "The action ID from the list_job_actions operation.", "required": true, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the list_job_actions operation."}, "name": "action_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourceActionExecution"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "307": {"description": "Redirecting to another URL"}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services": {"get": {"tags": ["services"], "summary": "List project services.", "description": "Lists all services associated with the given project.", "operationId": "list_services", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Services", "type": "array", "items": {"$ref": "#/components/schemas/Service"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["services"], "summary": "Deploy a service.", "description": "Deploy a service for the specified project.\n\nIf no `action_id` is provided, the system will automatically select the best deployment option.\n\nAvailable deployment options (actions) can be requested via the [list_deploy_service_actions](#services/list_deploy_service_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_deploy_service_actions](#services/list_deploy_service_actions).", "operationId": "deploy_service", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "The action ID from the service deploy options.", "required": false, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the service deploy options."}, "name": "action_id", "in": "query"}, {"description": "If true, the server waits for the service to be ready before sending a response.", "required": false, "schema": {"title": "Wait", "type": "boolean", "description": "If true, the server waits for the service to be ready before sending a response.", "default": false}, "name": "wait", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ServiceInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Service"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["services"], "summary": "Delete all services.", "description": "Deletes all services associated with a project.", "operationId": "delete_services", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services:suggest-config": {"get": {"tags": ["services"], "summary": "Suggest service configuration.", "description": "Suggests an input configuration based on the provided `container_image`.\n\nThe suggestion is based on metadata extracted from the container image (e.g. labels)\nas well as suggestions based on previous project deployments with the same image.", "operationId": "suggest_service_config", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Container image to use for suggestion.", "required": true, "schema": {"title": "Container Image", "type": "string", "description": "Container image to use for suggestion."}, "name": "container_image", "in": "query"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ServiceInput"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}": {"get": {"tags": ["services"], "summary": "Get service metadata.", "description": "Returns the metadata of a single service.\n\nThe returned metadata might be filtered based on the permission level of the authenticated user.", "operationId": "get_service_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Service"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["services"], "summary": "Delete a service.", "description": "Deletes a service.\n\nThis will kill and remove the container and all associated deployment artifacts.", "operationId": "delete_service", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "Delete all volumes associated with the deployment.", "required": false, "schema": {"title": "Delete Volumes", "type": "boolean", "description": "Delete all volumes associated with the deployment.", "default": false}, "name": "delete_volumes", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["services"], "summary": "Update a service.", "description": "Updates a service.\n\nThis might force a recreation of the underlying container.", "operationId": "update_service", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ServiceUpdate"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Service"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services:deploy-actions": {"post": {"tags": ["services"], "summary": "List deploy service actions.", "description": "Lists all available service deployment options (actions).\n\nThe returned action IDs should be used when calling the [deploy_service](#services/deploy_service) operation.\n\nThe action mechanism allows extensions to provide additional deployment options for a service based on the provided configuration. It works the following way:\n\n1. The user requests all available deployment options via the [list_deploy_service_actions](#services/list_deploy_service_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_deploy_service_actions](#services/list_deploy_service_actions) operation.\n3. Extensions can run arbitrary code based on the provided service configuration and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [deploy_service](#services/deploy_service) operation by providing the selected action ID. The `action_id` from an extension contains the extension ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to deploy the service based on the provided configuration.\n6. The return value of the operation should be a `Service` object.\n\nThe same action mechanism is also used for other type of actions on resources.", "operationId": "list_deploy_service_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ServiceInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Deploy Service Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}:update-service-access": {"post": {"tags": ["services"], "summary": "Update a service.", "description": "Update the last access information of the service to the current time and calling user.", "operationId": "update_service_access", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}/logs": {"get": {"tags": ["services"], "summary": "Get service logs.", "description": "Returns the stdout/stderr logs of the service.", "operationId": "get_service_logs", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "Only show the last n lines.", "required": false, "schema": {"title": "Lines", "type": "integer", "description": "Only show the last n lines."}, "name": "lines", "in": "query"}, {"description": "Only show the logs generated after a given date.", "required": false, "schema": {"title": "Since", "type": "string", "description": "Only show the logs generated after a given date.", "format": "date-time"}, "name": "since", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Service Logs", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}/actions": {"get": {"tags": ["services"], "summary": "List service actions.", "description": "Lists all actions available for the specified service.\n\nThe returned action IDs should be used when calling the [execute_service_action](#services/execute_service_action) operation.\n\nThe action mechanism allows extensions to provide additional functionality on services. It works the following way:\n\n1. The user requests all available actions via the [list_service_actions](#services/list_service_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_service_actions](#services/list_service_actions) operation.\n3. Extensions can run arbitrary code - e.g., request and check the service metadata for compatibility - and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [execute_service_action](#services/execute_service_action) operation by providing the selected action ID. The `action_id` from an extension contains the extension ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to execute the selected action.\n6. The return value of the operation can be either a simple message (shown to the user) or a redirect to another URL (e.g., to show a web UI).\n\nThe same action mechanism is also used for other resources (e.g., files, jobs).\nIt can support a very broad set of use-cases, for example: Access to service endpoints, dashboards for monitoring, administration tools, and more...", "operationId": "list_service_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Service Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}/actions/{action_id}": {"post": {"tags": ["services"], "summary": "Execute a service action.", "description": "Executes the selected service action.\n\nThe actions need to be first requested from the [list_service_actions](#services/list_service_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_service_actions](#services/list_service_actions).", "operationId": "execute_service_action", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "The action ID from the list_service_actions operation.", "required": true, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the list_service_actions operation."}, "name": "action_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResourceActionExecution"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "307": {"description": "Redirecting to another URL"}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/services/{service_id}/token": {"get": {"tags": ["services", "services"], "summary": "Get service access token.", "description": "Returns an API token with permission to access the service endpoints.\n\nThis token is read-only (permission level read) and does not allow any other permission such as deleting or updating the service.\nThe token can be deleted (revoked) at any time.", "operationId": "get_service_access_token", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid Service ID.", "required": true, "schema": {"title": "Service ID", "type": "string", "description": "A valid Service ID."}, "name": "service_id", "in": "path"}, {"description": "If specified, the token only allows access to this endpoint.", "required": false, "schema": {"title": "Endpoint", "type": "string", "description": "If specified, the token only allows access to this endpoint."}, "name": "endpoint", "in": "query"}, {"description": "Attach a short description to the generated token.", "required": false, "schema": {"title": "Description", "type": "string", "description": "Attach a short description to the generated token."}, "name": "description", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response Get Service Access Token", "type": "string"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/extensions": {"get": {"tags": ["extensions"], "summary": "List extensions.", "description": "Returns all installed extensions accesible by the specified project.\n\nThis also includes all extensions which are installed globally as well as\nextensions installed by the authorized user.", "operationId": "list_extensions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Extensions", "type": "array", "items": {"$ref": "#/components/schemas/Extension"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "post": {"tags": ["extensions"], "summary": "Install extension.", "description": "Installs an extension for the given project.\n\nThis will deploy the extension container for the selected project and\nregisters the extension for all the specified capabilities.", "operationId": "install_extension", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtensionInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Extension"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/extensions/{extension_id}": {"get": {"tags": ["extensions"], "summary": "Get extension metadata.", "description": "Returns the metadata of the given extension.", "operationId": "get_extension_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid extension ID.", "required": true, "schema": {"title": "Extension ID", "type": "string", "description": "A valid extension ID."}, "name": "extension_id", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Extension"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["extensions"], "summary": "Delete extension.", "description": "Deletes an extension.\n\nThis will delete the installation metadata as well as the service container.", "operationId": "delete_extension", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid extension ID.", "required": true, "schema": {"title": "Extension ID", "type": "string", "description": "A valid extension ID."}, "name": "extension_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/extensions:suggest-config": {"get": {"tags": ["extensions"], "summary": "Suggest extension configuration.", "description": "Suggests an input configuration based on the provided `container_image`.\n\nThe suggestion is based on metadata extracted from the container image (e.g. labels)\nas well as suggestions based on previous project deployments with the same image.", "operationId": "suggest_extension_config", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Container image to use for suggestion.", "required": true, "schema": {"title": "Container Image", "type": "string", "description": "Container image to use for suggestion."}, "name": "container_image", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtensionInput"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files": {"get": {"tags": ["files"], "summary": "List project files.", "description": "Lists all available files for the project.\n\nThe files can be filtered by using a `prefix`. The prefix is applied on the full path (directory path + filename).\n\nAll versions of the files can be included by setting `versions` to `true` (default is `false`).\n\nSet `recursive` to `false` to only show files and folders (prefixes) of the current folder.\nThe current folder is either the root folder (`/`) or the folder selected by the `prefix` parameter (has to end with `/`).", "operationId": "list_files", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Include all content of subfolders.", "required": false, "schema": {"title": "Recursive", "type": "boolean", "description": "Include all content of subfolders.", "default": true}, "name": "recursive", "in": "query"}, {"description": "Include all versions of all files.", "required": false, "schema": {"title": "Include Versions", "type": "boolean", "description": "Include all versions of all files.", "default": false}, "name": "include_versions", "in": "query"}, {"description": "Filter results to include only files whose names begin with this prefix.", "required": false, "schema": {"title": "Prefix", "type": "string", "description": "Filter results to include only files whose names begin with this prefix."}, "name": "prefix", "in": "query"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Files", "type": "array", "items": {"$ref": "#/components/schemas/File"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["files"], "summary": "Delete all files.", "description": "Deletes all files associated with a project.", "operationId": "delete_files", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}": {"post": {"tags": ["files"], "summary": "Upload a file.", "description": "Uploads a file to a file storage.\n\nThe file will be streamed to the selected file storage (core platform or extension).\n\nThis upload operation allows to attach file metadata by passing headers with the prefix 'x-amz-meta-'\nOnce the upload is finished, you can use the [update_file_metadata operation](#files/update_file_metadata)\nto add or update the metadata of the file.\n\nThe `file_key` allows to categorize the uploaded file under a virtual file structure managed by the core platform.\nThis allows to create a directory-like structure for files from different extensions and file-storage types.", "operationId": "upload_file", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/File"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_upload_file_projects__project_id__files__file_key___post"}}}}}, "delete": {"tags": ["files"], "summary": "Delete a file.", "description": "Deletes the specified file.\n\nIf the file storage supports versioning and no `version` is specified, all versions of the file will be deleted.\n\nThe parameter `keep_latest_version` is useful if you want to delete all older versions of a file.", "operationId": "delete_file", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, all versions of the file will be deleted.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, all versions of the file will be deleted."}, "name": "version", "in": "query"}, {"description": "Keep the latest version of the file.", "required": false, "schema": {"title": "Keep Latest Version", "type": "boolean", "description": "Keep the latest version of the file.", "default": false}, "name": "keep_latest_version", "in": "query"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["files"], "summary": "Update file metadata.", "description": "Updates the file metadata.\n\nThis will not change the actual content or the key of the file.\n\nThe update is applied on the existing metadata based on the JSON Merge Patch Standard ([RFC7396](https://tools.ietf.org/html/rfc7396)).\nThereby, only the specified properties will be updated.", "operationId": "update_file_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/FileInput"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/File"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}:metadata": {"get": {"tags": ["files"], "summary": "Get file metadata.", "description": "Returns metadata about the specified file.", "operationId": "get_file_metadata", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/File"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}:download": {"get": {"tags": ["files"], "summary": "Download a file.", "description": "Downloads the selected file.\n\nIf the file storage supports versioning and no `version` is specified, the latest version will be downloaded.", "operationId": "download_file", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}/actions": {"get": {"tags": ["files"], "summary": "List file actions.", "description": "Lists all actions available for the specified file.\n\nThe returned action IDs should be used when calling the [execute_file_action](#files/execute_file_action) operation.\n\nThe action mechanism allows extensions to provide additional functionality on files. It works the following way:\n\n1. The user requests all available actions via the [list_file_actions](#files/list_file_actions) operation.\n2. The operation will be forwarded to all installed extensions that have implemented the [list_file_actions](#files/list_file_actions) operation.\n3. Extensions can run arbitrary code - e.g., request and check the file metadata for compatibility - and return a list of actions with self-defined action IDs.\n4. The user selects one of those actions and triggers the [execute_file_action](#files/execute_file_action) operation by providing the selected action- and extension-ID.\n5. The operation is forwarded to the selected extension, which can run arbitrary code to execute the selected action.\n6. The return value of the operation can be either a simple message (shown to the user) or a redirect to another URL (e.g., to show a web UI).\n\nThe same action mechanism is also used for other resources (e.g., services, jobs).\nIt can support a very broad set of use-cases, for example: CSV Viewer, Tensorflow Model Deployment, ZIP Archive Explorer ...", "operationId": "list_file_actions", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}, {"description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform.", "required": false, "schema": {"title": "Extension ID", "pattern": "^(?!.*--)[a-z0-9\\-]{1,61}[a-z0-9]$", "type": "string", "description": "Extension ID. If not specified, the system will decide. Use `core` to explicitly select the core platform."}, "name": "extension_id", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List File Actions", "type": "array", "items": {"$ref": "#/components/schemas/ResourceAction"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/files/{file_key}/actions/{action_id}": {"get": {"tags": ["files"], "summary": "Execute a file action.", "description": "Executes the selected action.\n\nThe actions need to be first requested from the [list_file_actions](#files/list_file_actions) operation.\nIf the action is from an extension, the `action_id` must be a composite ID with the following format: `{extension_id}~{action_id}`.\n\nThe action mechanism is further explained in the description of the [list_file_actions](#files/list_file_actions).", "operationId": "execute_file_action", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "A valid file key.", "required": true, "schema": {"title": "File Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "A valid file key."}, "example": "datasets/customer-table.csv", "name": "file_key", "in": "path"}, {"description": "The action ID from the file actions operation.", "required": true, "schema": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "The action ID from the file actions operation."}, "name": "action_id", "in": "path"}, {"description": "File version tag. If not specified, the latest version will be used.", "required": false, "schema": {"title": "Version", "type": "string", "description": "File version tag. If not specified, the latest version will be used."}, "name": "version", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "307": {"description": "Redirecting to another URL"}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/json/{collection_id}/{key}": {"get": {"tags": ["json"], "summary": "Get JSON document.", "description": "Returns a single JSON document.", "operationId": "get_json_document", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "Key of the JSON document.", "required": true, "schema": {"title": "Key", "type": "string", "description": "Key of the JSON document."}, "name": "key", "in": "path"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JsonDocument"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "put": {"tags": ["json"], "summary": "Create JSON document.", "description": "Creates a JSON document. If a document already exists for the given key, the document will be overwritten.\n\nIf no collection exists in the project with the provided `collection_id`, a new collection will be created.", "operationId": "create_json_document", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "Key of the JSON document.", "required": true, "schema": {"title": "Key", "type": "string", "description": "Key of the JSON document."}, "name": "key", "in": "path"}, {"description": "If `True`, the document will be updated/overwritten if it already exists.", "required": false, "schema": {"title": "Upsert", "type": "boolean", "description": "If `True`, the document will be updated/overwritten if it already exists.", "default": true}, "name": "upsert", "in": "query"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Json Document", "type": "object"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JsonDocument"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "The resource already exists.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["json"], "summary": "Delete JSON document.", "description": "Deletes a single JSON document.\n\nIf no other document exists in the project collection, the collection will be deleted.", "operationId": "delete_json_document", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "Key of the JSON document.", "required": true, "schema": {"title": "Key", "type": "string", "description": "Key of the JSON document."}, "name": "key", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "patch": {"tags": ["json"], "summary": "Update a JSON document.", "description": "Updates a JSON document.\n\nThe update is applied on the existing document based on the JSON Merge Patch Standard [RFC7396](https://tools.ietf.org/html/rfc7396).", "operationId": "update_json_document", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "Key of the JSON document.", "required": true, "schema": {"title": "Key", "type": "string", "description": "Key of the JSON document."}, "name": "key", "in": "path"}], "requestBody": {"content": {"application/json": {"schema": {"title": "Json Document", "type": "object"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/JsonDocument"}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "404": {"description": "A specified resource is not found.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "409": {"description": "Resource update failed.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/json/{collection_id}": {"get": {"tags": ["json"], "summary": "List JSON documents.", "description": "Lists all JSON documents for the given project collection.\n\nIf extensions are registered for this operation and no extension is selected via the `extension_id` parameter, the results from all extensions will be included in the returned list.\n\nThe `filter` parameter allows to filter the result documents based on a JSONPath expression ([JSON Path Specification](https://goessner.net/articles/JsonPath/)). The filter is only applied to filter documents in the list. It is not usable to extract specific properties.\n\n# TODO: Add filter examples", "operationId": "list_json_documents", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}, {"description": "JSON Path query used to filter the results.", "required": false, "schema": {"title": "Filter", "type": "string", "description": "JSON Path query used to filter the results."}, "name": "filter", "in": "query"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"title": "Response List Json Documents", "type": "array", "items": {"$ref": "#/components/schemas/JsonDocument"}}}}}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}, "delete": {"tags": ["json"], "summary": "Delete a JSON collection.", "description": "Deletes all documents of a single JSON collection.", "operationId": "delete_json_collection", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}, {"description": "ID of the collection.", "required": true, "schema": {"title": "Collection Id", "type": "string", "description": "ID of the collection."}, "name": "collection_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}, "/projects/{project_id}/json": {"delete": {"tags": ["json"], "summary": "Delete all JSON collections.", "description": "Deletes all JSON collections for the given project.", "operationId": "delete_json_collections", "parameters": [{"description": "A valid project ID.", "required": true, "schema": {"title": "Project ID", "maxLength": 25, "minLength": 4, "type": "string", "description": "A valid project ID."}, "example": "image-search-engine", "name": "project_id", "in": "path"}], "responses": {"204": {"description": "Successful Response"}, "401": {"description": "Invalid authentication credentials.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "403": {"description": "The authorized user does not have sufficient permission.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}, "422": {"description": "Validation Error.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProblemDetails"}}}}}, "security": [{"APIKeyQuery": []}, {"APIKeyHeader": []}, {"OAuth2PasswordBearer": []}, {"APIKeyCookie": []}]}}}, "components": {"schemas": {"AccessLevel": {"title": "AccessLevel", "enum": ["read", "write", "admin"], "type": "string", "description": "An enumeration."}, "AccessToken": {"title": "AccessToken", "required": ["token", "token_type", "subject", "scopes"], "type": "object", "properties": {"token": {"title": "Token", "type": "string", "description": "API Token.", "example": "f4528e540a133dd53ba6809e74e16774ebe4777a"}, "token_type": {"allOf": [{"$ref": "#/components/schemas/TokenType"}], "description": "The type of the token.", "example": "api-token"}, "subject": {"title": "Subject", "type": "string", "description": "Identifies the principal that is the subject of the token. Usually refers to the user to which the token is issued to.", "example": "users/dklqmomr2c8dx9cpb202dsqku"}, "scopes": {"title": "Scopes", "type": "array", "items": {"type": "string"}, "description": "List of scopes associated with the token.", "example": ["projects#read"]}, "created_at": {"title": "Created At", "type": "string", "description": "Creation date of the token.", "format": "date-time"}, "expires_at": {"title": "Expires At", "type": "string", "description": "Date at which the token expires and, thereby, gets revoked.", "format": "date-time", "example": "2021-04-25T10:20:30.400+02:30"}}}, "AllowedImageInfo": {"title": "AllowedImageInfo", "required": ["image_name", "image_tags"], "type": "object", "properties": {"image_name": {"title": "Image Name", "type": "string", "description": "Name of the docker image to allow. Do not specify the image tag (the part after the colon)", "example": "my-docker-registry.com/my-image"}, "image_tags": {"title": "Image Tags", "type": "array", "items": {"type": "string"}, "description": "List of tags that are allowed for this image. Can be set to [\"*\"] to allow all tags.", "example": ["0.2.1", "0.3.0"]}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this image that does not need predefined structure.", "example": {"additional-metadata": "value"}}}}, "ApiToken": {"title": "ApiToken", "required": ["token", "token_type", "subject", "scopes"], "type": "object", "properties": {"token": {"title": "Token", "type": "string", "description": "API Token.", "example": "f4528e540a133dd53ba6809e74e16774ebe4777a"}, "token_type": {"allOf": [{"$ref": "#/components/schemas/TokenType"}], "description": "The type of the token.", "example": "api-token"}, "subject": {"title": "Subject", "type": "string", "description": "Identifies the principal that is the subject of the token. Usually refers to the user to which the token is issued to.", "example": "users/dklqmomr2c8dx9cpb202dsqku"}, "scopes": {"title": "Scopes", "type": "array", "items": {"type": "string"}, "description": "List of scopes associated with the token.", "example": ["projects#read"]}, "created_at": {"title": "Created At", "type": "string", "description": "Creation date of the token.", "format": "date-time"}, "expires_at": {"title": "Expires At", "type": "string", "description": "Date at which the token expires and, thereby, gets revoked.", "format": "date-time", "example": "2021-04-25T10:20:30.400+02:30"}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "Short description about the context and usage of the token.", "example": "Token used for accesing project resources on my local machine."}, "created_by": {"title": "Created By", "type": "string", "description": "ID of the user that created this token.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}, "token_purpose": {"title": "Token Purpose", "type": "string", "description": "The purpose of the token.", "example": "login-token"}}}, "AuthorizedAccess": {"title": "AuthorizedAccess", "required": ["authorized_subject"], "type": "object", "properties": {"authorized_subject": {"title": "Authorized Subject", "type": "string"}, "resource_name": {"title": "Resource Name", "type": "string"}, "access_level": {"$ref": "#/components/schemas/AccessLevel"}, "access_token": {"$ref": "#/components/schemas/AccessToken"}}}, "Body_introspect_token": {"title": "Body_introspect_token", "required": ["token"], "type": "object", "properties": {"token": {"title": "Token", "type": "string", "description": "The token that should be instrospected."}, "token_type_hint": {"title": "Token Type Hint", "type": "string", "description": "A hint about the type of the token submitted for introspection (e.g. `access_token`, `id_token` and `refresh_token`)."}}}, "Body_login_user_session": {"title": "Body_login_user_session", "required": ["username", "password"], "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "The user\u2019s username or email used for login."}, "password": {"title": "Password", "type": "string", "description": "The user\u2019s password."}}}, "Body_register_admin_user_system_admin_post": {"title": "Body_register_admin_user_system_admin_post", "required": ["password", "password_confirm"], "type": "object", "properties": {"password": {"title": "Password", "type": "string"}, "password_confirm": {"title": "Password Confirm", "type": "string"}}}, "Body_request_token": {"title": "Body_request_token", "required": ["grant_type"], "type": "object", "properties": {"grant_type": {"title": "Grant Type"}, "username": {"title": "Username"}, "password": {"title": "Password"}, "scope": {"title": "Scope"}, "client_id": {"title": "Client Id"}, "client_secret": {"title": "Client Secret"}, "code": {"title": "Code"}, "redirect_uri": {"title": "Redirect Uri"}, "refresh_token": {"title": "Refresh Token"}, "state": {"title": "State"}, "set_as_cookie": {"title": "Set As Cookie", "default": false}}}, "Body_revoke_token": {"title": "Body_revoke_token", "required": ["token"], "type": "object", "properties": {"token": {"title": "Token", "type": "string", "description": "The token that should be revoked."}, "token_type_hint": {"title": "Token Type Hint", "type": "string", "description": "A hint about the type of the token submitted for revokation."}}}, "DeploymentCompute": {"title": "DeploymentCompute", "type": "object", "properties": {"min_cpus": {"title": "Min Cpus", "minimum": 0.0, "type": "number", "description": "Minimum number of CPU cores required by this deployment. The system will make sure that atleast this amount is available to the deployment.", "default": 1, "example": 2}, "max_cpus": {"title": "Max Cpus", "minimum": 0.0, "type": "number", "description": "Maximum number of CPU cores. Even so the system will try to provide the specified amount, it's only guaranteed that the deployment cannot use more. 0 means unlimited.", "example": 4}, "min_memory": {"title": "Min Memory", "minimum": 4.0, "type": "integer", "description": "Minimum amount of memory in Megabyte required by this deployment. The system will make sure that atleast this amount is available to the deployment.", "default": 1000, "example": 4000}, "max_memory": {"title": "Max Memory", "minimum": 0.0, "type": "integer", "description": "Maximum amount of memory in Megabyte. Even so the system will try to provide the specified amount, it's only guaranteed that the deployment cannot use more. 0 means unlimited.", "example": 8000}, "min_gpus": {"title": "Min Gpus", "minimum": 0.0, "type": "integer", "description": "Minimum number of GPUs required by this deployments. The system will make sure that atleast this amount is available to the deployment.", "example": 1}, "max_gpus": {"title": "Max Gpus", "minimum": 0.0, "type": "integer", "description": "Maximum number of GPUs. Even so the system will try to provide the specified amount, it's only guaranteed that the deployment cannot use more.", "example": 2}, "volume_path": {"title": "Volume Path", "type": "string", "description": "Container internal directory that should mount a volume for data persistence.", "example": "/path/to/data"}, "max_volume_size": {"title": "Max Volume Size", "minimum": 1.0, "type": "integer", "description": "Maximum volume size in Megabyte. This is only applied in combination with volume_path.", "example": 32000}, "max_container_size": {"title": "Max Container Size", "minimum": 1.0, "type": "integer", "description": "Maximum container size in Megabyte. The deployment will be killed if it grows above this limit.", "example": 32000}, "max_replicas": {"title": "Max Replicas", "minimum": 1.0, "type": "integer", "description": "Maximum number of deployment instances. The system will make sure to optimize the deployment based on the available resources and requests. Use 1 if the deployment is not scalable.", "default": 1, "example": 2}, "min_lifetime": {"title": "Min Lifetime", "type": "integer", "description": "Minimum guaranteed lifetime in seconds. Once the lifetime is reached, the system is allowed to kill the deployment in case it requires additional resources.", "default": 0, "example": 86400}}}, "DeploymentStatus": {"title": "DeploymentStatus", "enum": ["pending", "running", "succeeded", "failed", "terminating", "stopped", "unknown"], "type": "string", "description": "An enumeration."}, "DeploymentType": {"title": "DeploymentType", "enum": ["core-backend", "service", "job", "extension", "unknown"], "type": "string", "description": "An enumeration."}, "Extension": {"title": "Extension", "required": ["container_image"], "type": "object", "properties": {"capabilities": {"title": "Capabilities", "type": "array", "items": {"type": "string"}, "description": "List of capabilities implemented by this extension."}, "api_extension_endpoint": {"title": "Api Extension Endpoint", "type": "string", "description": "The endpoint base URL that implements the API operation stated in the capabilities property.", "example": "8080/extension/api"}, "ui_extension_endpoint": {"title": "Ui Extension Endpoint", "type": "string", "description": "The endpoint instruction that provide a Web UI. If this is provided, the extension will be integrated into the UI.", "example": "8080/webapp/ui"}, "extension_type": {"allOf": [{"$ref": "#/components/schemas/ExtensionType"}], "description": "The type of the extension.", "example": "project-extension"}, "container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "started_at": {"title": "Started At", "type": "string", "description": "Timestamp when the deployment was started.", "format": "date-time"}, "stopped_at": {"title": "Stopped At", "type": "string", "description": "Timestamp when the container has stopped.", "format": "date-time"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID in case the deployment is deployed via an extension."}, "deployment_type": {"allOf": [{"$ref": "#/components/schemas/DeploymentType"}], "description": "The type of this deployment.", "default": "unknown"}, "status": {"allOf": [{"$ref": "#/components/schemas/DeploymentStatus"}], "description": "The status of this deployment.", "default": "unknown", "example": "running"}, "internal_id": {"title": "Internal Id", "type": "string", "description": "The ID of the deployment on the orchestration platform.", "example": "73d247087fea5bfb3a67e98da6a07f5bf4e2a90e5b52f3c12875a35600818376"}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "last_access_time": {"title": "Last Access Time", "type": "string", "description": "Timestamp of the last time the service was accessed.", "format": "date-time"}, "last_access_user": {"title": "Last Access User", "type": "string", "description": "Id of the user that last accessed the service."}}}, "ExtensionInput": {"title": "ExtensionInput", "required": ["container_image"], "type": "object", "properties": {"capabilities": {"title": "Capabilities", "type": "array", "items": {"type": "string"}, "description": "List of capabilities implemented by this extension."}, "api_extension_endpoint": {"title": "Api Extension Endpoint", "type": "string", "description": "The endpoint base URL that implements the API operation stated in the capabilities property.", "example": "8080/extension/api"}, "ui_extension_endpoint": {"title": "Ui Extension Endpoint", "type": "string", "description": "The endpoint instruction that provide a Web UI. If this is provided, the extension will be integrated into the UI.", "example": "8080/webapp/ui"}, "extension_type": {"allOf": [{"$ref": "#/components/schemas/ExtensionType"}], "description": "The type of the extension.", "example": "project-extension"}, "container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "is_stopped": {"title": "Is Stopped", "type": "boolean", "description": "If set to true, the service will be created in the DB but not started. The service status will be 'stopped'.", "default": false}}}, "ExtensionType": {"title": "ExtensionType", "enum": ["user-extension", "project-extension"], "type": "string", "description": "An enumeration."}, "File": {"title": "File", "required": ["key", "version", "latest_version"], "type": "object", "properties": {"id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "key": {"title": "Key", "maxLength": 1024, "minLength": 1, "pattern": "^(?!.*(\\r|\\n|\\.\\.)).{1,1024}$", "type": "string", "description": "The (virtual) path of the file. This path might not correspond to the actual path on the file storage.", "example": "datasets/customer-table.csv"}, "content_type": {"title": "Content Type", "type": "string", "description": "A standard MIME type describing the format of the contents. If an file is stored without a Content-Type, it is served as application/octet-stream.", "example": "text/csv"}, "external_id": {"title": "External Id", "type": "string", "description": "The ID (or access instruction) of the file on the file storage provider.", "example": "datasets/customer-table.csv"}, "file_extension": {"title": "File Extension", "type": "string", "description": "The full file extension extracted from the key field. May contain multiple concatenated extensions, such as `tar.gz`.", "default": "", "example": "csv"}, "file_size": {"title": "File Size", "type": "integer", "description": "The file size in bytes.", "default": 0, "example": 1073741824}, "version": {"title": "Version", "type": "string", "description": "Version tag of this file. The version order might not be inferable from the version tag.", "example": "1614204512210009"}, "available_versions": {"title": "Available Versions", "type": "array", "items": {"type": "string"}, "description": "All version tags available for the given file.", "default": [], "example": ["1614204512210009", "23424512210009", "6144204512210009"]}, "latest_version": {"title": "Latest Version", "type": "boolean", "description": "Indicates if this is the latest available version of the file.", "example": true}, "md5_hash": {"title": "Md5 Hash", "type": "string", "description": "The base64-encoded 128-bit MD5 digest of the file. This can be used for checking the file integrity.", "example": "2a53375ff139d9837e93a38a279d63e5"}, "etag": {"title": "Etag", "type": "string", "description": "The etag of the file (mainly used by S3 storage). An entity-tag is an opaque validator for differentiating between multiple representations of the same resource", "example": "57f456164b0e5f365aaf9bb549731f32-95"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID in case the file is provided via an extension."}}}, "FileInput": {"title": "FileInput", "type": "object", "properties": {"display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}}}, "Job": {"title": "Job", "required": ["container_image"], "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "started_at": {"title": "Started At", "type": "string", "description": "Timestamp when the deployment was started.", "format": "date-time"}, "stopped_at": {"title": "Stopped At", "type": "string", "description": "Timestamp when the container has stopped.", "format": "date-time"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID in case the deployment is deployed via an extension."}, "deployment_type": {"allOf": [{"$ref": "#/components/schemas/DeploymentType"}], "description": "The type of this deployment.", "default": "unknown"}, "status": {"allOf": [{"$ref": "#/components/schemas/DeploymentStatus"}], "description": "The status of this deployment.", "default": "unknown", "example": "running"}, "internal_id": {"title": "Internal Id", "type": "string", "description": "The ID of the deployment on the orchestration platform.", "example": "73d247087fea5bfb3a67e98da6a07f5bf4e2a90e5b52f3c12875a35600818376"}}}, "JobInput": {"title": "JobInput", "required": ["container_image"], "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}}}, "JsonDocument": {"title": "JsonDocument", "required": ["key", "json_value"], "type": "object", "properties": {"key": {"title": "Key", "type": "string", "description": "Unique key of the document.", "example": "my-json-document"}, "json_value": {"title": "Json Value", "type": "string", "description": "JSON value of the document.", "example": "{'foo': 'bar'}"}, "created_at": {"title": "Created At", "type": "string", "description": "Creation date of the document.", "format": "date-time", "example": "2021-04-23T10:20:30.400+02:30"}, "created_by": {"title": "Created By", "type": "string", "description": "ID of the user that created this document.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Last date at which the document was updated.", "format": "date-time", "example": "2021-04-23T10:20:30.400+02:30"}, "updated_by": {"title": "Updated By", "type": "string", "description": "ID of the user that has last updated this document.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}}}, "OAuth2ErrorDetails": {"title": "OAuth2ErrorDetails", "required": ["error"], "type": "object", "properties": {"error": {"title": "Error", "type": "string"}}}, "OAuthToken": {"title": "OAuthToken", "required": ["token_type", "access_token"], "type": "object", "properties": {"token_type": {"title": "Token Type", "type": "string", "description": "The type of token this is, typically just the string `bearer`"}, "access_token": {"title": "Access Token", "type": "string", "description": "The access token string."}, "expires_in": {"title": "Expires In", "type": "integer", "description": "The expiration time of the access token in seconds."}, "refresh_token": {"title": "Refresh Token", "type": "string", "description": "API token to refresh the sesion token (if it expires)."}, "scope": {"title": "Scope", "type": "string", "description": "The scopes contained in the access token."}, "id_token": {"title": "Id Token", "type": "string", "description": "OpenID Connect ID Token that encodes the user\u2019s authentication information."}}}, "OAuthTokenIntrospection": {"title": "OAuthTokenIntrospection", "required": ["active"], "type": "object", "properties": {"active": {"title": "Active", "type": "boolean", "description": "Indicator of whether or not the presented token is currently active."}, "scope": {"title": "Scope", "type": "string", "description": "A space-delimited list of scopes."}, "client_id": {"title": "Client Id", "type": "string", "description": "Client identifier for the OAuth 2.0 client that requested this token."}, "username": {"title": "Username", "type": "string", "description": "Human-readable identifier for the resource owner who authorized this token."}, "token_type": {"title": "Token Type", "type": "string", "description": "Type of the token as defined in Section 5.1 of OAuth 2.0 [RFC6749]."}, "exp": {"title": "Exp", "type": "integer", "description": "Timestamp, measured in the number of seconds since January 1 1970 UTC, indicating when this token will expire, as defined in JWT [RFC7519]."}, "iat": {"title": "Iat", "type": "integer", "description": "Timestamp, measured in the number of seconds since January 1 1970 UTC, indicating when this token was originally issued, as defined in JWT [RFC7519]."}, "nbf": {"title": "Nbf", "type": "integer", "description": "Timestamp, measured in the number of seconds since January 1 1970 UTC, indicating when this token is not to be used before, as defined in JWT [RFC7519]."}, "sub": {"title": "Sub", "type": "string", "description": "Subject of the token, as defined in JWT [RFC7519]. Usually a machine-readable identifier of the resource owner who authorized this token."}, "aud": {"title": "Aud", "type": "string", "description": "Service-specific string identifier or list of string identifiers representing the intended audience for this token, as defined in JWT [RFC7519]."}, "iss": {"title": "Iss", "type": "string", "description": "String representing the issuer of this token, as defined in JWT [RFC7519]."}, "jti": {"title": "Jti", "type": "string", "description": "String identifier for the token, as defined in JWT [RFC7519]."}, "uid": {"title": "Uid", "type": "string", "description": "The user ID. This parameter is returned only if the token is an access token and the subject is an end user."}}}, "ProblemDetails": {"title": "ProblemDetails", "type": "object", "properties": {"code": {"title": "Code", "exclusiveMaximum": 600.0, "minimum": 100.0, "type": "integer", "description": "The HTTP status code generated by the origin server for this occurrence of the problem.", "example": 400}, "message": {"title": "Message", "type": "string", "description": "A developer-facing human-readable error message in English."}, "explanation": {"title": "Explanation", "type": "string", "description": "A human readable explanation specific to this error that is helpful to locate the problem and give advice on how to proceed."}, "details": {"title": "Details", "description": "A map of additional problem details."}}}, "Project": {"title": "Project", "type": "object", "properties": {"id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "technical_project": {"title": "Technical Project", "type": "boolean", "description": "Indicates that this is a technical project created by the system.", "default": false}}}, "ProjectCreation": {"title": "ProjectCreation", "required": ["id"], "type": "object", "properties": {"display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "id": {"title": "Id", "maxLength": 25, "minLength": 4, "type": "string", "description": "Project ID used for creating the project.", "example": "my-awesome-project"}}}, "ProjectInput": {"title": "ProjectInput", "type": "object", "properties": {"display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}}}, "ResourceAction": {"title": "ResourceAction", "required": ["action_id"], "type": "object", "properties": {"action_id": {"title": "Action Id", "pattern": "^(?!.*--)[a-zA-Z0-9](?:[a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$", "type": "string", "description": "ID used to identify this action.", "example": "access-8080"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "Display name of this action.", "example": "Access Port 8080"}, "icon": {"title": "Icon", "maxLength": 1000, "type": "string", "description": "Material Design Icon name or image URL used for displaying this action.", "example": "open_in_new"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID associated with this action."}, "extension_name": {"title": "Extension Name", "type": "string", "description": "The extension name associated with this action."}, "instructions": {"title": "Instructions", "type": "array", "items": {}, "description": "A list of instructions for the frontend application.", "example": ["new-tab"]}}}, "ResourceActionExecution": {"title": "ResourceActionExecution", "type": "object", "properties": {"parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters that are passed to the resource action.", "default": {}, "example": {"action-parameter": "parameter-value"}}}}, "Service": {"title": "Service", "required": ["container_image"], "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "id": {"title": "Id", "type": "string", "description": "Resource ID. Identifies a resource in a given context and time, for example, in combination with its type. Used in API operations and/or configuration files.", "default": "default-id", "example": "ac9ldprwdi68oihk34jli3kdp"}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the resource creation. Assigned by the server and read-only.", "format": "date-time"}, "created_by": {"title": "Created By", "type": "string", "description": "Resource name of the entity responsible for the creation of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "updated_at": {"title": "Updated At", "type": "string", "description": "Timestamp of the last resource modification. Is updated when create/patch/delete operation is performed. Assigned by the server and read-only.", "format": "date-time"}, "updated_by": {"title": "Updated By", "type": "string", "description": "Resource name of the entity responsible for the last modification of this resource. Assigned by the server and read-only.", "example": "resources/ac9ldprwdi68oihk34jli3kdp"}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "started_at": {"title": "Started At", "type": "string", "description": "Timestamp when the deployment was started.", "format": "date-time"}, "stopped_at": {"title": "Stopped At", "type": "string", "description": "Timestamp when the container has stopped.", "format": "date-time"}, "extension_id": {"title": "Extension Id", "type": "string", "description": "The extension ID in case the deployment is deployed via an extension."}, "deployment_type": {"allOf": [{"$ref": "#/components/schemas/DeploymentType"}], "description": "The type of this deployment.", "default": "unknown"}, "status": {"allOf": [{"$ref": "#/components/schemas/DeploymentStatus"}], "description": "The status of this deployment.", "default": "unknown", "example": "running"}, "internal_id": {"title": "Internal Id", "type": "string", "description": "The ID of the deployment on the orchestration platform.", "example": "73d247087fea5bfb3a67e98da6a07f5bf4e2a90e5b52f3c12875a35600818376"}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "last_access_time": {"title": "Last Access Time", "type": "string", "description": "Timestamp of the last time the service was accessed.", "format": "date-time"}, "last_access_user": {"title": "Last Access User", "type": "string", "description": "Id of the user that last accessed the service."}}}, "ServiceInput": {"title": "ServiceInput", "required": ["container_image"], "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parameters (environment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "is_stopped": {"title": "Is Stopped", "type": "boolean", "description": "If set to true, the service will be created in the DB but not started. The service status will be 'stopped'.", "default": false}}}, "ServiceUpdate": {"title": "ServiceUpdate", "type": "object", "properties": {"container_image": {"title": "Container Image", "maxLength": 2000, "type": "string", "description": "The container image used for this deployment.", "default": "", "example": "hello-world:latest"}, "parameters": {"title": "Parameters", "type": "object", "additionalProperties": {"type": "string"}, "description": "Parmeters (enviornment variables) for this deployment.", "default": {}, "example": {"TEST_PARAM": "param-value"}}, "compute": {"title": "Compute", "allOf": [{"$ref": "#/components/schemas/DeploymentCompute"}], "description": "Compute instructions and limitations for this deployment.", "default": {"min_cpus": 1, "min_memory": 1000, "max_replicas": 1, "min_lifetime": 0}}, "command": {"title": "Command", "type": "array", "items": {"type": "string"}, "description": "Command to run within the deployment. This overwrites the existing docker ENTRYPOINT."}, "args": {"title": "Args", "type": "array", "items": {"type": "string"}, "description": "Arguments to the command/entrypoint. This overwrites the existing docker CMD."}, "requirements": {"title": "Requirements", "type": "array", "items": {"type": "string"}, "description": "Additional requirements for deployment.", "default": []}, "endpoints": {"title": "Endpoints", "type": "array", "items": {"type": "string"}, "description": "A list of HTTP endpoints that can be accessed. This should always have an internal port and can include additional instructions, such as the URL path.", "default": [], "example": ["8080", "9001/webapp/ui", "9002b"]}, "display_name": {"title": "Display Name", "maxLength": 128, "minLength": 4, "type": "string", "description": "A user-defined human-readable name of the resource. The name can be up to 128 characters long and can consist of any UTF-8 character."}, "description": {"title": "Description", "maxLength": 240, "type": "string", "description": "A user-defined short description about the resource. Can consist of any UTF-8 character.", "default": ""}, "icon": {"title": "Icon", "type": "string", "description": "Identifier or image URL used for displaying this resource."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "A collection of arbitrary key-value pairs associated with this resource that does not need predefined structure. Enable third-party integrations to decorate objects with additional metadata for their own use.", "default": {}, "example": {"additional-metadata": "value"}}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Allows to disable a resource without requiring deletion. A disabled resource is not shown and not accessible.", "default": false}, "graphql_endpoint": {"title": "Graphql Endpoint", "type": "string", "description": "GraphQL endpoint.", "example": "8080/graphql"}, "openapi_endpoint": {"title": "Openapi Endpoint", "type": "string", "description": "Endpoint that prorvides an OpenAPI schema definition..", "example": "8080/openapi.yaml"}, "health_endpoint": {"title": "Health Endpoint", "type": "string", "description": "The endpoint instruction that can be used for checking the deployment health.", "example": "8080/healthz"}, "idle_timeout": {"title": "Idle Timeout", "type": "number", "description": "Time after which the service is considered idling and will be stopped during the next idle check.If set to None, the service will never be considered idling.Can be specified as seconds or ISO 8601 time delta.", "format": "time-delta"}, "clear_volume_on_stop": {"title": "Clear Volume On Stop", "type": "boolean", "description": "If set to true, any volume attached to the service be deleted when the service is stopped.This means all persisted data will be cleared on service stop.", "default": false}, "is_stopped": {"title": "Is Stopped", "type": "boolean", "description": "If set to true, the service will be created in the DB but not started. The service status will be 'stopped'.", "default": false}}}, "SystemInfo": {"title": "SystemInfo", "required": ["version", "namespace", "system_state"], "type": "object", "properties": {"version": {"title": "Version", "type": "string", "description": "Platform version.", "example": "0.1.0"}, "namespace": {"title": "Namespace", "type": "string", "description": "Namespace of this system.", "example": "mlhub"}, "system_state": {"allOf": [{"$ref": "#/components/schemas/SystemState"}], "description": "The state of the system."}, "metadata": {"title": "Metadata", "type": "object", "additionalProperties": {"type": "string"}, "description": "Additional key-value metadata associated with this system.", "example": {"additional-metadata": "value"}}}}, "SystemState": {"title": "SystemState", "enum": ["uninitialized", "running"], "type": "string", "description": "An enumeration."}, "SystemStatistics": {"title": "SystemStatistics", "required": ["project_count", "user_count", "job_count", "service_count", "file_count"], "type": "object", "properties": {"project_count": {"title": "Project Count", "type": "integer"}, "user_count": {"title": "User Count", "type": "integer"}, "job_count": {"title": "Job Count", "type": "integer"}, "service_count": {"title": "Service Count", "type": "integer"}, "file_count": {"title": "File Count", "type": "integer"}}}, "TokenType": {"title": "TokenType", "enum": ["session-token", "api-token"], "type": "string", "description": "An enumeration."}, "User": {"title": "User", "required": ["id"], "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}, "id": {"title": "Id", "type": "string", "description": "Unique ID of the user.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}, "technical_user": {"title": "Technical User", "type": "boolean", "description": "Indicates if the user is a technical user created by the system.", "default": false}, "created_at": {"title": "Created At", "type": "string", "description": "Timestamp of the user creation. Assigned by the server and read-only.", "format": "date-time"}, "last_activity": {"title": "Last Activity", "type": "string", "description": "Last time the user accessed the system. Right now this is only updated when the user calls the /users/me endpoint so that call should always be done when the user loads the UI.", "format": "date-time"}, "has_password": {"title": "Has Password", "type": "boolean", "description": "Indicates if the user log in with password or SSO", "default": true}}}, "UserInput": {"title": "UserInput", "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}}}, "UserPermission": {"title": "UserPermission", "required": ["id"], "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}, "id": {"title": "Id", "type": "string", "description": "Unique ID of the user.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}, "permission": {"allOf": [{"$ref": "#/components/schemas/AccessLevel"}], "description": "Permissions of the user for the particular project", "example": "READ"}}}, "UserRead": {"title": "UserRead", "required": ["id"], "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}, "id": {"title": "Id", "type": "string", "description": "Unique ID of the user.", "example": "16fd2706-8baf-433b-82eb-8c7fada847da"}}}, "UserRegistration": {"title": "UserRegistration", "type": "object", "properties": {"username": {"title": "Username", "type": "string", "description": "A unique username on the system.", "example": "john-doe"}, "email": {"title": "Email", "type": "string", "description": "User email address.", "format": "email", "example": "john.doe@example.com"}, "disabled": {"title": "Disabled", "type": "boolean", "description": "Indicates that user is disabled. Disabling a user will prevent any access to user-accessible resources.", "default": false}, "password": {"title": "Password", "type": "string", "description": "Password for the user. The password will be stored in as a hash."}}}, "Body_upload_file_projects__project_id__files__file_key___post": {"title": "Body_upload_file_projects__project_id__files__file_key___post", "required": ["file"], "type": "object", "properties": {"file": {"title": "File", "type": "string", "format": "binary"}}}}, "securitySchemes": {"APIKeyQuery": {"type": "apiKey", "in": "query", "name": "ct_token"}, "APIKeyHeader": {"type": "apiKey", "in": "header", "name": "ct_token"}, "OAuth2PasswordBearer": {"type": "oauth2", "flows": {"password": {"scopes": {}, "tokenUrl": "auth/oauth/token"}}}, "APIKeyCookie": {"type": "apiKey", "in": "cookie", "name": "ct_token"}}}} \ No newline at end of file diff --git a/backend/src/contaxy/_about.py b/backend/src/contaxy/_about.py index 3ce1870..451d6d4 100644 --- a/backend/src/contaxy/_about.py +++ b/backend/src/contaxy/_about.py @@ -1,5 +1,5 @@ """Information about this library. This file will automatically changed.""" -__version__ = "0.0.21" +__version__ = "0.0.22" # __author__ # __email__ diff --git a/js-client/ApiClient.js b/js-client/ApiClient.js index a405136..9a57cba 100644 --- a/js-client/ApiClient.js +++ b/js-client/ApiClient.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -17,7 +17,7 @@ import querystring from "querystring"; /** * @module ApiClient -* @version 0.0.21 +* @version 0.0.22 */ /** @@ -58,7 +58,7 @@ class ApiClient { * @default {} */ this.defaultHeaders = { - 'User-Agent': 'OpenAPI-Generator/0.0.21/Javascript' + 'User-Agent': 'OpenAPI-Generator/0.0.22/Javascript' }; /** diff --git a/js-client/api/AuthApi.js b/js-client/api/AuthApi.js index 1803708..d680e59 100644 --- a/js-client/api/AuthApi.js +++ b/js-client/api/AuthApi.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -24,7 +24,7 @@ import TokenType from '../model/TokenType'; /** * Auth service. * @module api/AuthApi -* @version 0.0.21 +* @version 0.0.22 */ export default class AuthApi { diff --git a/js-client/api/ExtensionsApi.js b/js-client/api/ExtensionsApi.js index 7a618f0..6a053b4 100644 --- a/js-client/api/ExtensionsApi.js +++ b/js-client/api/ExtensionsApi.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,7 +20,7 @@ import ProblemDetails from '../model/ProblemDetails'; /** * Extensions service. * @module api/ExtensionsApi -* @version 0.0.21 +* @version 0.0.22 */ export default class ExtensionsApi { diff --git a/js-client/api/FilesApi.js b/js-client/api/FilesApi.js index 3d0758d..2eef3b4 100644 --- a/js-client/api/FilesApi.js +++ b/js-client/api/FilesApi.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,7 +20,7 @@ import ResourceAction from '../model/ResourceAction'; /** * Files service. * @module api/FilesApi -* @version 0.0.21 +* @version 0.0.22 */ export default class FilesApi { diff --git a/js-client/api/JobsApi.js b/js-client/api/JobsApi.js index bd5d635..518c512 100644 --- a/js-client/api/JobsApi.js +++ b/js-client/api/JobsApi.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -22,7 +22,7 @@ import ResourceActionExecution from '../model/ResourceActionExecution'; /** * Jobs service. * @module api/JobsApi -* @version 0.0.21 +* @version 0.0.22 */ export default class JobsApi { diff --git a/js-client/api/JsonApi.js b/js-client/api/JsonApi.js index ee08076..618a895 100644 --- a/js-client/api/JsonApi.js +++ b/js-client/api/JsonApi.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -19,7 +19,7 @@ import ProblemDetails from '../model/ProblemDetails'; /** * Json service. * @module api/JsonApi -* @version 0.0.21 +* @version 0.0.22 */ export default class JsonApi { diff --git a/js-client/api/ProjectsApi.js b/js-client/api/ProjectsApi.js index 4293ea9..e31ae5e 100644 --- a/js-client/api/ProjectsApi.js +++ b/js-client/api/ProjectsApi.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -24,7 +24,7 @@ import UserPermission from '../model/UserPermission'; /** * Projects service. * @module api/ProjectsApi -* @version 0.0.21 +* @version 0.0.22 */ export default class ProjectsApi { diff --git a/js-client/api/ServicesApi.js b/js-client/api/ServicesApi.js index dc35542..bec3c82 100644 --- a/js-client/api/ServicesApi.js +++ b/js-client/api/ServicesApi.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -23,7 +23,7 @@ import ServiceUpdate from '../model/ServiceUpdate'; /** * Services service. * @module api/ServicesApi -* @version 0.0.21 +* @version 0.0.22 */ export default class ServicesApi { diff --git a/js-client/api/SystemApi.js b/js-client/api/SystemApi.js index e30c9fc..a588ce7 100644 --- a/js-client/api/SystemApi.js +++ b/js-client/api/SystemApi.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -21,7 +21,7 @@ import SystemStatistics from '../model/SystemStatistics'; /** * System service. * @module api/SystemApi -* @version 0.0.21 +* @version 0.0.22 */ export default class SystemApi { diff --git a/js-client/api/UsersApi.js b/js-client/api/UsersApi.js index 91838fd..9a512f3 100644 --- a/js-client/api/UsersApi.js +++ b/js-client/api/UsersApi.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -23,7 +23,7 @@ import UserRegistration from '../model/UserRegistration'; /** * Users service. * @module api/UsersApi -* @version 0.0.21 +* @version 0.0.22 */ export default class UsersApi { diff --git a/js-client/index.js b/js-client/index.js index ebad46d..24055ba 100644 --- a/js-client/index.js +++ b/js-client/index.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -98,7 +98,7 @@ import UsersApi from './api/UsersApi'; * *

* @module index -* @version 0.0.21 +* @version 0.0.22 */ export { /** diff --git a/js-client/model/AccessLevel.js b/js-client/model/AccessLevel.js index c33ff8a..22076d5 100644 --- a/js-client/model/AccessLevel.js +++ b/js-client/model/AccessLevel.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/js-client/model/AccessToken.js b/js-client/model/AccessToken.js index f3fb7bf..1a4c899 100644 --- a/js-client/model/AccessToken.js +++ b/js-client/model/AccessToken.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -17,7 +17,7 @@ import TokenType from './TokenType'; /** * The AccessToken model module. * @module model/AccessToken - * @version 0.0.21 + * @version 0.0.22 */ class AccessToken { /** diff --git a/js-client/model/AllowedImageInfo.js b/js-client/model/AllowedImageInfo.js index b58e0d9..a2b17cf 100644 --- a/js-client/model/AllowedImageInfo.js +++ b/js-client/model/AllowedImageInfo.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The AllowedImageInfo model module. * @module model/AllowedImageInfo - * @version 0.0.21 + * @version 0.0.22 */ class AllowedImageInfo { /** diff --git a/js-client/model/ApiToken.js b/js-client/model/ApiToken.js index 938a6c3..914465d 100644 --- a/js-client/model/ApiToken.js +++ b/js-client/model/ApiToken.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -17,7 +17,7 @@ import TokenType from './TokenType'; /** * The ApiToken model module. * @module model/ApiToken - * @version 0.0.21 + * @version 0.0.22 */ class ApiToken { /** diff --git a/js-client/model/AuthorizedAccess.js b/js-client/model/AuthorizedAccess.js index b5c8b74..4e361a0 100644 --- a/js-client/model/AuthorizedAccess.js +++ b/js-client/model/AuthorizedAccess.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -18,7 +18,7 @@ import AccessToken from './AccessToken'; /** * The AuthorizedAccess model module. * @module model/AuthorizedAccess - * @version 0.0.21 + * @version 0.0.22 */ class AuthorizedAccess { /** diff --git a/js-client/model/BodyIntrospectToken.js b/js-client/model/BodyIntrospectToken.js index 2c93602..59b9818 100644 --- a/js-client/model/BodyIntrospectToken.js +++ b/js-client/model/BodyIntrospectToken.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The BodyIntrospectToken model module. * @module model/BodyIntrospectToken - * @version 0.0.21 + * @version 0.0.22 */ class BodyIntrospectToken { /** diff --git a/js-client/model/BodyLoginUserSession.js b/js-client/model/BodyLoginUserSession.js index 89e28f4..8bed8f8 100644 --- a/js-client/model/BodyLoginUserSession.js +++ b/js-client/model/BodyLoginUserSession.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The BodyLoginUserSession model module. * @module model/BodyLoginUserSession - * @version 0.0.21 + * @version 0.0.22 */ class BodyLoginUserSession { /** diff --git a/js-client/model/BodyRegisterAdminUserSystemAdminPost.js b/js-client/model/BodyRegisterAdminUserSystemAdminPost.js index 83b7ade..774c7ae 100644 --- a/js-client/model/BodyRegisterAdminUserSystemAdminPost.js +++ b/js-client/model/BodyRegisterAdminUserSystemAdminPost.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The BodyRegisterAdminUserSystemAdminPost model module. * @module model/BodyRegisterAdminUserSystemAdminPost - * @version 0.0.21 + * @version 0.0.22 */ class BodyRegisterAdminUserSystemAdminPost { /** diff --git a/js-client/model/BodyRequestToken.js b/js-client/model/BodyRequestToken.js index 32832d9..09a9230 100644 --- a/js-client/model/BodyRequestToken.js +++ b/js-client/model/BodyRequestToken.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The BodyRequestToken model module. * @module model/BodyRequestToken - * @version 0.0.21 + * @version 0.0.22 */ class BodyRequestToken { /** diff --git a/js-client/model/BodyRevokeToken.js b/js-client/model/BodyRevokeToken.js index 2df6cd0..8648155 100644 --- a/js-client/model/BodyRevokeToken.js +++ b/js-client/model/BodyRevokeToken.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The BodyRevokeToken model module. * @module model/BodyRevokeToken - * @version 0.0.21 + * @version 0.0.22 */ class BodyRevokeToken { /** diff --git a/js-client/model/BodyUploadFileProjectsProjectIdFilesFileKeyPost.js b/js-client/model/BodyUploadFileProjectsProjectIdFilesFileKeyPost.js index 4160ba2..8f58c8a 100644 --- a/js-client/model/BodyUploadFileProjectsProjectIdFilesFileKeyPost.js +++ b/js-client/model/BodyUploadFileProjectsProjectIdFilesFileKeyPost.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The BodyUploadFileProjectsProjectIdFilesFileKeyPost model module. * @module model/BodyUploadFileProjectsProjectIdFilesFileKeyPost - * @version 0.0.21 + * @version 0.0.22 */ class BodyUploadFileProjectsProjectIdFilesFileKeyPost { /** diff --git a/js-client/model/Compute.js b/js-client/model/Compute.js index 8671579..31ec39d 100644 --- a/js-client/model/Compute.js +++ b/js-client/model/Compute.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -17,7 +17,7 @@ import DeploymentCompute from './DeploymentCompute'; /** * The Compute model module. * @module model/Compute - * @version 0.0.21 + * @version 0.0.22 */ class Compute { /** diff --git a/js-client/model/DeploymentCompute.js b/js-client/model/DeploymentCompute.js index 07052ea..9859b8d 100644 --- a/js-client/model/DeploymentCompute.js +++ b/js-client/model/DeploymentCompute.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The DeploymentCompute model module. * @module model/DeploymentCompute - * @version 0.0.21 + * @version 0.0.22 */ class DeploymentCompute { /** diff --git a/js-client/model/DeploymentStatus.js b/js-client/model/DeploymentStatus.js index 533dd3a..923c141 100644 --- a/js-client/model/DeploymentStatus.js +++ b/js-client/model/DeploymentStatus.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/js-client/model/DeploymentType.js b/js-client/model/DeploymentType.js index e0473d0..3ba6964 100644 --- a/js-client/model/DeploymentType.js +++ b/js-client/model/DeploymentType.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/js-client/model/Extension.js b/js-client/model/Extension.js index 556f233..a6cbff0 100644 --- a/js-client/model/Extension.js +++ b/js-client/model/Extension.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,7 +20,7 @@ import ExtensionType from './ExtensionType'; /** * The Extension model module. * @module model/Extension - * @version 0.0.21 + * @version 0.0.22 */ class Extension { /** @@ -89,9 +89,6 @@ class Extension { if (data.hasOwnProperty('id')) { obj['id'] = ApiClient.convertToType(data['id'], 'String'); } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } if (data.hasOwnProperty('created_at')) { obj['created_at'] = ApiClient.convertToType(data['created_at'], 'Date'); } @@ -237,12 +234,6 @@ Extension.prototype['endpoints'] = undefined; */ Extension.prototype['id'] = 'default-id'; -/** - * Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only. - * @member {String} name - */ -Extension.prototype['name'] = undefined; - /** * Timestamp of the resource creation. Assigned by the server and read-only. * @member {Date} created_at diff --git a/js-client/model/ExtensionInput.js b/js-client/model/ExtensionInput.js index 560528f..1be6cdc 100644 --- a/js-client/model/ExtensionInput.js +++ b/js-client/model/ExtensionInput.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -18,7 +18,7 @@ import ExtensionType from './ExtensionType'; /** * The ExtensionInput model module. * @module model/ExtensionInput - * @version 0.0.21 + * @version 0.0.22 */ class ExtensionInput { /** diff --git a/js-client/model/ExtensionType.js b/js-client/model/ExtensionType.js index 14abec9..eae2ba3 100644 --- a/js-client/model/ExtensionType.js +++ b/js-client/model/ExtensionType.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/js-client/model/File.js b/js-client/model/File.js index 42c5aaf..616e2b3 100644 --- a/js-client/model/File.js +++ b/js-client/model/File.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The File model module. * @module model/File - * @version 0.0.21 + * @version 0.0.22 */ class File { /** @@ -56,9 +56,6 @@ class File { if (data.hasOwnProperty('id')) { obj['id'] = ApiClient.convertToType(data['id'], 'String'); } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } if (data.hasOwnProperty('created_at')) { obj['created_at'] = ApiClient.convertToType(data['created_at'], 'Date'); } @@ -133,12 +130,6 @@ class File { */ File.prototype['id'] = 'default-id'; -/** - * Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only. - * @member {String} name - */ -File.prototype['name'] = undefined; - /** * Timestamp of the resource creation. Assigned by the server and read-only. * @member {Date} created_at diff --git a/js-client/model/FileInput.js b/js-client/model/FileInput.js index 5a99939..166153c 100644 --- a/js-client/model/FileInput.js +++ b/js-client/model/FileInput.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The FileInput model module. * @module model/FileInput - * @version 0.0.21 + * @version 0.0.22 */ class FileInput { /** diff --git a/js-client/model/Job.js b/js-client/model/Job.js index 64e3ab6..448521d 100644 --- a/js-client/model/Job.js +++ b/js-client/model/Job.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -19,7 +19,7 @@ import DeploymentType from './DeploymentType'; /** * The Job model module. * @module model/Job - * @version 0.0.21 + * @version 0.0.22 */ class Job { /** @@ -76,9 +76,6 @@ class Job { if (data.hasOwnProperty('id')) { obj['id'] = ApiClient.convertToType(data['id'], 'String'); } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } if (data.hasOwnProperty('created_at')) { obj['created_at'] = ApiClient.convertToType(data['created_at'], 'Date'); } @@ -179,12 +176,6 @@ Job.prototype['endpoints'] = undefined; */ Job.prototype['id'] = 'default-id'; -/** - * Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only. - * @member {String} name - */ -Job.prototype['name'] = undefined; - /** * Timestamp of the resource creation. Assigned by the server and read-only. * @member {Date} created_at diff --git a/js-client/model/JobInput.js b/js-client/model/JobInput.js index 751f18b..0c65bfe 100644 --- a/js-client/model/JobInput.js +++ b/js-client/model/JobInput.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -17,7 +17,7 @@ import Compute from './Compute'; /** * The JobInput model module. * @module model/JobInput - * @version 0.0.21 + * @version 0.0.22 */ class JobInput { /** diff --git a/js-client/model/JsonDocument.js b/js-client/model/JsonDocument.js index 6692737..df9c3bf 100644 --- a/js-client/model/JsonDocument.js +++ b/js-client/model/JsonDocument.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The JsonDocument model module. * @module model/JsonDocument - * @version 0.0.21 + * @version 0.0.22 */ class JsonDocument { /** diff --git a/js-client/model/OAuth2ErrorDetails.js b/js-client/model/OAuth2ErrorDetails.js index 0a9ddf5..d9e4df9 100644 --- a/js-client/model/OAuth2ErrorDetails.js +++ b/js-client/model/OAuth2ErrorDetails.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The OAuth2ErrorDetails model module. * @module model/OAuth2ErrorDetails - * @version 0.0.21 + * @version 0.0.22 */ class OAuth2ErrorDetails { /** diff --git a/js-client/model/OAuthToken.js b/js-client/model/OAuthToken.js index 561288e..a087a73 100644 --- a/js-client/model/OAuthToken.js +++ b/js-client/model/OAuthToken.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The OAuthToken model module. * @module model/OAuthToken - * @version 0.0.21 + * @version 0.0.22 */ class OAuthToken { /** diff --git a/js-client/model/OAuthTokenIntrospection.js b/js-client/model/OAuthTokenIntrospection.js index 2d7450b..e0388e6 100644 --- a/js-client/model/OAuthTokenIntrospection.js +++ b/js-client/model/OAuthTokenIntrospection.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The OAuthTokenIntrospection model module. * @module model/OAuthTokenIntrospection - * @version 0.0.21 + * @version 0.0.22 */ class OAuthTokenIntrospection { /** diff --git a/js-client/model/ProblemDetails.js b/js-client/model/ProblemDetails.js index 21796c0..f5d3987 100644 --- a/js-client/model/ProblemDetails.js +++ b/js-client/model/ProblemDetails.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The ProblemDetails model module. * @module model/ProblemDetails - * @version 0.0.21 + * @version 0.0.22 */ class ProblemDetails { /** diff --git a/js-client/model/Project.js b/js-client/model/Project.js index 52f617d..4a29f13 100644 --- a/js-client/model/Project.js +++ b/js-client/model/Project.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The Project model module. * @module model/Project - * @version 0.0.21 + * @version 0.0.22 */ class Project { /** @@ -50,9 +50,6 @@ class Project { if (data.hasOwnProperty('id')) { obj['id'] = ApiClient.convertToType(data['id'], 'String'); } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } if (data.hasOwnProperty('created_at')) { obj['created_at'] = ApiClient.convertToType(data['created_at'], 'Date'); } @@ -97,12 +94,6 @@ class Project { */ Project.prototype['id'] = 'default-id'; -/** - * Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only. - * @member {String} name - */ -Project.prototype['name'] = undefined; - /** * Timestamp of the resource creation. Assigned by the server and read-only. * @member {Date} created_at diff --git a/js-client/model/ProjectCreation.js b/js-client/model/ProjectCreation.js index aeda6d4..2478004 100644 --- a/js-client/model/ProjectCreation.js +++ b/js-client/model/ProjectCreation.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The ProjectCreation model module. * @module model/ProjectCreation - * @version 0.0.21 + * @version 0.0.22 */ class ProjectCreation { /** diff --git a/js-client/model/ProjectInput.js b/js-client/model/ProjectInput.js index 40a5670..38c1085 100644 --- a/js-client/model/ProjectInput.js +++ b/js-client/model/ProjectInput.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The ProjectInput model module. * @module model/ProjectInput - * @version 0.0.21 + * @version 0.0.22 */ class ProjectInput { /** diff --git a/js-client/model/ResourceAction.js b/js-client/model/ResourceAction.js index bcfbb77..575f673 100644 --- a/js-client/model/ResourceAction.js +++ b/js-client/model/ResourceAction.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The ResourceAction model module. * @module model/ResourceAction - * @version 0.0.21 + * @version 0.0.22 */ class ResourceAction { /** diff --git a/js-client/model/ResourceActionExecution.js b/js-client/model/ResourceActionExecution.js index 074cd61..ef827c0 100644 --- a/js-client/model/ResourceActionExecution.js +++ b/js-client/model/ResourceActionExecution.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The ResourceActionExecution model module. * @module model/ResourceActionExecution - * @version 0.0.21 + * @version 0.0.22 */ class ResourceActionExecution { /** diff --git a/js-client/model/ResponseListUsersInner.js b/js-client/model/ResponseListUsersInner.js index 47be91f..37c293c 100644 --- a/js-client/model/ResponseListUsersInner.js +++ b/js-client/model/ResponseListUsersInner.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -18,7 +18,7 @@ import UserRead from './UserRead'; /** * The ResponseListUsersInner model module. * @module model/ResponseListUsersInner - * @version 0.0.21 + * @version 0.0.22 */ class ResponseListUsersInner { /** diff --git a/js-client/model/Service.js b/js-client/model/Service.js index 5e797bd..ac1d89d 100644 --- a/js-client/model/Service.js +++ b/js-client/model/Service.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -19,7 +19,7 @@ import DeploymentType from './DeploymentType'; /** * The Service model module. * @module model/Service - * @version 0.0.21 + * @version 0.0.22 */ class Service { /** @@ -76,9 +76,6 @@ class Service { if (data.hasOwnProperty('id')) { obj['id'] = ApiClient.convertToType(data['id'], 'String'); } - if (data.hasOwnProperty('name')) { - obj['name'] = ApiClient.convertToType(data['name'], 'String'); - } if (data.hasOwnProperty('created_at')) { obj['created_at'] = ApiClient.convertToType(data['created_at'], 'Date'); } @@ -200,12 +197,6 @@ Service.prototype['endpoints'] = undefined; */ Service.prototype['id'] = 'default-id'; -/** - * Resource Name. A relative URI-path that uniquely identifies a resource within the system. Assigned by the server and read-only. - * @member {String} name - */ -Service.prototype['name'] = undefined; - /** * Timestamp of the resource creation. Assigned by the server and read-only. * @member {Date} created_at diff --git a/js-client/model/ServiceInput.js b/js-client/model/ServiceInput.js index 1b4407b..fad9ccb 100644 --- a/js-client/model/ServiceInput.js +++ b/js-client/model/ServiceInput.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -17,7 +17,7 @@ import Compute from './Compute'; /** * The ServiceInput model module. * @module model/ServiceInput - * @version 0.0.21 + * @version 0.0.22 */ class ServiceInput { /** diff --git a/js-client/model/ServiceUpdate.js b/js-client/model/ServiceUpdate.js index 2082241..d324a8a 100644 --- a/js-client/model/ServiceUpdate.js +++ b/js-client/model/ServiceUpdate.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -17,7 +17,7 @@ import Compute from './Compute'; /** * The ServiceUpdate model module. * @module model/ServiceUpdate - * @version 0.0.21 + * @version 0.0.22 */ class ServiceUpdate { /** diff --git a/js-client/model/SystemInfo.js b/js-client/model/SystemInfo.js index 85276c3..f41e717 100644 --- a/js-client/model/SystemInfo.js +++ b/js-client/model/SystemInfo.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -17,7 +17,7 @@ import SystemState from './SystemState'; /** * The SystemInfo model module. * @module model/SystemInfo - * @version 0.0.21 + * @version 0.0.22 */ class SystemInfo { /** diff --git a/js-client/model/SystemState.js b/js-client/model/SystemState.js index 11e8188..292f7d9 100644 --- a/js-client/model/SystemState.js +++ b/js-client/model/SystemState.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/js-client/model/SystemStatistics.js b/js-client/model/SystemStatistics.js index ca7a013..184909b 100644 --- a/js-client/model/SystemStatistics.js +++ b/js-client/model/SystemStatistics.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The SystemStatistics model module. * @module model/SystemStatistics - * @version 0.0.21 + * @version 0.0.22 */ class SystemStatistics { /** diff --git a/js-client/model/TokenType.js b/js-client/model/TokenType.js index 60c879c..2714c04 100644 --- a/js-client/model/TokenType.js +++ b/js-client/model/TokenType.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/js-client/model/User.js b/js-client/model/User.js index 593c542..80f7cd3 100644 --- a/js-client/model/User.js +++ b/js-client/model/User.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The User model module. * @module model/User - * @version 0.0.21 + * @version 0.0.22 */ class User { /** diff --git a/js-client/model/UserInput.js b/js-client/model/UserInput.js index 044168a..cec4747 100644 --- a/js-client/model/UserInput.js +++ b/js-client/model/UserInput.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The UserInput model module. * @module model/UserInput - * @version 0.0.21 + * @version 0.0.22 */ class UserInput { /** diff --git a/js-client/model/UserPermission.js b/js-client/model/UserPermission.js index c57453f..ddbd906 100644 --- a/js-client/model/UserPermission.js +++ b/js-client/model/UserPermission.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -17,7 +17,7 @@ import AccessLevel from './AccessLevel'; /** * The UserPermission model module. * @module model/UserPermission - * @version 0.0.21 + * @version 0.0.22 */ class UserPermission { /** diff --git a/js-client/model/UserRead.js b/js-client/model/UserRead.js index 5855c8b..de118ca 100644 --- a/js-client/model/UserRead.js +++ b/js-client/model/UserRead.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The UserRead model module. * @module model/UserRead - * @version 0.0.21 + * @version 0.0.22 */ class UserRead { /** diff --git a/js-client/model/UserRegistration.js b/js-client/model/UserRegistration.js index 29029b6..372473f 100644 --- a/js-client/model/UserRegistration.js +++ b/js-client/model/UserRegistration.js @@ -2,7 +2,7 @@ * Contaxy API * Functionality to create and manage projects, services, jobs, and files. * - * The version of the OpenAPI document: 0.0.21 + * The version of the OpenAPI document: 0.0.22 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ import ApiClient from '../ApiClient'; /** * The UserRegistration model module. * @module model/UserRegistration - * @version 0.0.21 + * @version 0.0.22 */ class UserRegistration { /**