From 69cd175908a51b131bb6dfec5e7a613ed5448968 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Tue, 24 Feb 2026 00:36:27 +0000 Subject: [PATCH 1/2] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.725.0 --- .speakeasy/gen.lock | 440 ++++++++++++++---- .speakeasy/gen.yaml | 7 +- .speakeasy/workflow.lock | 16 +- README-PYPI.md | 2 +- README.md | 2 +- RELEASES.md | 12 +- docs/models/flashsocketpolicy.md | 10 + .../flashsocketpolicyallowaccessfrom.md | 10 + docs/models/gemini.md | 11 + docs/models/greynoise.md | 10 + docs/models/greynoisetag.md | 8 + docs/models/host.md | 1 + docs/models/httpredirectchainlink.md | 1 + docs/models/mavlink.md | 9 + docs/models/mavlinkframe.md | 13 + docs/models/melsec.md | 8 + docs/models/memberlist.md | 12 + docs/models/memberlistnodeinfo.md | 14 + docs/models/routerosapi.md | 10 + docs/models/rustdeskheartbeat.md | 9 + .../rustdeskheartbeatregisterpeerresponse.md | 8 + docs/models/rustdeskrelay.md | 8 + docs/models/rustdeskrendezvous.md | 10 + docs/models/rustdeskrendezvousconfigupdate.md | 9 + docs/models/rustdeskrendezvouskeyexchange.md | 8 + .../rustdeskrendezvoustestnatresponse.md | 9 + docs/models/screenshot.md | 1 + docs/models/searchqueryinputbody.md | 2 +- docs/models/service.md | 9 + docs/models/servicescan.md | 9 + docs/sdks/accountmanagement/README.md | 18 +- docs/sdks/collections/README.md | 24 +- docs/sdks/globaldata/README.md | 41 +- docs/sdks/threathunting/README.md | 15 +- poetry.lock | 11 +- pylintrc | 5 +- pyproject.toml | 4 +- src/censys_platform/_version.py | 8 +- src/censys_platform/account_management.py | 140 ++++-- src/censys_platform/collections.py | 164 +++++-- src/censys_platform/global_data.py | 248 +++++++--- src/censys_platform/models/__init__.py | 154 ++++-- src/censys_platform/models/elffile.py | 6 + .../models/flashsocketpolicy.py | 58 +++ .../flashsocketpolicy_allowaccessfrom.py | 37 ++ src/censys_platform/models/gemini.py | 40 ++ src/censys_platform/models/greynoise.py | 59 +++ src/censys_platform/models/greynoise_tag.py | 33 ++ src/censys_platform/models/host.py | 5 + .../models/http_redirectchainlink.py | 5 +- .../models/internal/__init__.py | 45 +- .../models/ipmi_rmcpheader_messageclass.py | 6 + src/censys_platform/models/mavlink.py | 50 ++ src/censys_platform/models/mavlink_frame.py | 55 +++ src/censys_platform/models/melsec.py | 31 ++ src/censys_platform/models/memberlist.py | 52 +++ .../models/memberlist_nodeinfo.py | 74 +++ src/censys_platform/models/rdate.py | 6 + src/censys_platform/models/routerosapi.py | 37 ++ .../models/rustdeskheartbeat.py | 38 ++ .../rustdeskheartbeat_registerpeerresponse.py | 31 ++ src/censys_platform/models/rustdeskrelay.py | 31 ++ .../models/rustdeskrendezvous.py | 45 ++ .../models/rustdeskrendezvous_configupdate.py | 49 ++ .../models/rustdeskrendezvous_keyexchange.py | 46 ++ .../rustdeskrendezvous_testnatresponse.py | 38 ++ src/censys_platform/models/screenshot.py | 5 +- .../models/searchqueryinputbody.py | 4 +- src/censys_platform/models/service.py | 45 ++ src/censys_platform/models/servicescan.py | 45 ++ src/censys_platform/models/snmp_engine.py | 6 + src/censys_platform/threat_hunting.py | 90 +++- src/censys_platform/utils/__init__.py | 49 +- src/censys_platform/utils/dynamic_imports.py | 54 +++ src/censys_platform/utils/eventstreaming.py | 126 +++-- src/censys_platform/utils/retries.py | 14 +- src/censys_platform/utils/security.py | 2 + 77 files changed, 2371 insertions(+), 456 deletions(-) create mode 100644 docs/models/flashsocketpolicy.md create mode 100644 docs/models/flashsocketpolicyallowaccessfrom.md create mode 100644 docs/models/gemini.md create mode 100644 docs/models/greynoise.md create mode 100644 docs/models/greynoisetag.md create mode 100644 docs/models/mavlink.md create mode 100644 docs/models/mavlinkframe.md create mode 100644 docs/models/melsec.md create mode 100644 docs/models/memberlist.md create mode 100644 docs/models/memberlistnodeinfo.md create mode 100644 docs/models/routerosapi.md create mode 100644 docs/models/rustdeskheartbeat.md create mode 100644 docs/models/rustdeskheartbeatregisterpeerresponse.md create mode 100644 docs/models/rustdeskrelay.md create mode 100644 docs/models/rustdeskrendezvous.md create mode 100644 docs/models/rustdeskrendezvousconfigupdate.md create mode 100644 docs/models/rustdeskrendezvouskeyexchange.md create mode 100644 docs/models/rustdeskrendezvoustestnatresponse.md create mode 100644 src/censys_platform/models/flashsocketpolicy.py create mode 100644 src/censys_platform/models/flashsocketpolicy_allowaccessfrom.py create mode 100644 src/censys_platform/models/gemini.py create mode 100644 src/censys_platform/models/greynoise.py create mode 100644 src/censys_platform/models/greynoise_tag.py create mode 100644 src/censys_platform/models/mavlink.py create mode 100644 src/censys_platform/models/mavlink_frame.py create mode 100644 src/censys_platform/models/melsec.py create mode 100644 src/censys_platform/models/memberlist.py create mode 100644 src/censys_platform/models/memberlist_nodeinfo.py create mode 100644 src/censys_platform/models/routerosapi.py create mode 100644 src/censys_platform/models/rustdeskheartbeat.py create mode 100644 src/censys_platform/models/rustdeskheartbeat_registerpeerresponse.py create mode 100644 src/censys_platform/models/rustdeskrelay.py create mode 100644 src/censys_platform/models/rustdeskrendezvous.py create mode 100644 src/censys_platform/models/rustdeskrendezvous_configupdate.py create mode 100644 src/censys_platform/models/rustdeskrendezvous_keyexchange.py create mode 100644 src/censys_platform/models/rustdeskrendezvous_testnatresponse.py create mode 100644 src/censys_platform/utils/dynamic_imports.py diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 0ca0f01..eddf469 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,44 +1,44 @@ lockVersion: 2.0.0 id: 5ca2c9b7-aea6-4a23-a631-998fcc6c18a8 management: - docChecksum: 133adc6bd5fd663ffb80f3e0b4509d77 - docVersion: 1.0.71 - speakeasyVersion: 1.700.2 - generationVersion: 2.801.2 - releaseVersion: 0.12.4 - configChecksum: a3186fbd4582b8547c35695d3eb76735 + docChecksum: 2cef9678551dc29234432a9acdf838a9 + docVersion: 1.0.77 + speakeasyVersion: 1.725.0 + generationVersion: 2.836.5 + releaseVersion: 0.13.0 + configChecksum: 9bf1d94a6d1745e0a5b7f4d8877b2c45 repoURL: https://github.com/censys/censys-sdk-python.git installationURL: https://github.com/censys/censys-sdk-python.git published: true persistentEdits: - generation_id: cc48e3b5-1c6f-42ab-b2c5-5cf2bdd54ab3 - pristine_commit_hash: 15c77a369b5f26ce5f4069e4f7ebfb0dc79b0d63 - pristine_tree_hash: b37aa486ed21a24c4554c2300476d02d80a34e19 + generation_id: 2a8a011f-9f8d-47be-a567-e044bcbf0e78 + pristine_commit_hash: 37f1276b5fe2e83f236faaf11948083962948592 + pristine_tree_hash: b58508d253543ec9d099eb3e1f66209639261f99 features: python: acceptHeaders: 3.0.0 additionalDependencies: 1.0.0 - constsAndDefaults: 1.0.5 - core: 5.23.18 + constsAndDefaults: 1.0.6 + core: 6.0.12 defaultEnabledRetries: 0.2.0 downloadStreams: 1.0.1 enumUnions: 0.1.0 envVarSecurityUsage: 0.3.2 examples: 3.0.2 flattening: 3.1.1 - globalSecurity: 3.0.4 + globalSecurity: 3.0.5 globalSecurityCallbacks: 1.0.0 globalSecurityFlattening: 1.0.0 globalServerURLs: 3.2.0 globals: 3.0.0 ignores: 3.0.1 methodArguments: 1.0.2 - nameOverrides: 3.0.1 + nameOverrides: 3.0.3 nullables: 1.0.2 - responseFormat: 1.0.1 - retries: 3.0.3 + responseFormat: 1.1.0 + retries: 3.0.4 sdkHooks: 1.2.1 - unions: 3.1.2 + unions: 3.1.4 trackedFiles: .gitattributes: id: 24139dae6567 @@ -736,6 +736,14 @@ trackedFiles: id: 5931cb4896c1 last_write_checksum: sha1:4d5ad4a39f006c3eb2b312f848973b126d58a787 pristine_git_object: caad5e498f6fabb1cb14346463e53e1b80fa52b1 + docs/models/flashsocketpolicy.md: + id: c59a67dcb20d + last_write_checksum: sha1:1466581057023611aa2c9d024b077a8b3b923d81 + pristine_git_object: 293abb671012a039f8984c505f9f2acdb957ec85 + docs/models/flashsocketpolicyallowaccessfrom.md: + id: df1510f10ff1 + last_write_checksum: sha1:7ad49150b2351a37cc090f1936d8419068c069bb + pristine_git_object: 87bb7d3333f13aaf5c20871c157c01125657e52b docs/models/floatvalue.md: id: ccd13dd334eb last_write_checksum: sha1:3f556df2f987dca463d2bf0e2e35ce0c0bdd5a7d @@ -760,6 +768,10 @@ trackedFiles: id: 3cc4a188873c last_write_checksum: sha1:1f03d551fe4405702dfbd485b4073c31157f7277 pristine_git_object: c2bcf7cc6b2f4fb31163485acee3d18c25956b4d + docs/models/gemini.md: + id: cfd11344966a + last_write_checksum: sha1:df74c05fe48183e0d4de88780bbae072734a9d8f + pristine_git_object: 5eb1a3ebe7986fca01926dfd6da9caa6601ebc41 docs/models/generalnames.md: id: 88cde77f8ce5 last_write_checksum: sha1:83f6dd6f786652498fd42a522abcb9504fe9fbf4 @@ -776,6 +788,14 @@ trackedFiles: id: f5f6f14c319d last_write_checksum: sha1:db73108b963d7eeb39716c45dddf8caaefc77212 pristine_git_object: 8b789973738d3a19b2dac344572cd2a59facd0d5 + docs/models/greynoise.md: + id: 05b5c2c444cd + last_write_checksum: sha1:eed550aca7660aabbb18b5be7cbac77e2661b8b4 + pristine_git_object: 40127f5459fad0ea12c8901341b15a6457acbc07 + docs/models/greynoisetag.md: + id: 378e0d490fab + last_write_checksum: sha1:53800a2d43d8c0ec6c6b53f850978e643b28f422 + pristine_git_object: b3a34fbf544d547f1f566ccd74e49f22ef2bd6f9 docs/models/hajime.md: id: 9fa4f21e634d last_write_checksum: sha1:1e5645a99d860bf8dfe115214c5f00412437985c @@ -798,8 +818,8 @@ trackedFiles: pristine_git_object: 79714ab8ee9939e65f5c17a34a487f876cc4dd9c docs/models/host.md: id: 367b20a15480 - last_write_checksum: sha1:8d397e0955b6dc91c88aafd6f915ac2d4e0c6d9e - pristine_git_object: 3d6f8205f9f158e2fbafcc64828884d13a657a0c + last_write_checksum: sha1:4e6ece7677845d6fde66ee220af79588991d921a + pristine_git_object: d2533d3c24adb768f019caf8f28b48266cd05e73 docs/models/hostasset.md: id: 190aa05f4e16 last_write_checksum: sha1:a491b23dd492b42b65aa4e389323dc136eab8c63 @@ -858,8 +878,8 @@ trackedFiles: pristine_git_object: 6a9461229a2b87161635b073e6007d66044070d6 docs/models/httpredirectchainlink.md: id: 181e28b37e66 - last_write_checksum: sha1:5effe255f64eb7bc761b3bc792e9d58d45f35aef - pristine_git_object: d9e696f278db9c4cf537024c6d66ce0589913f99 + last_write_checksum: sha1:fb05819db5df942382f0fd1ae54e686b0a087435 + pristine_git_object: a4f6ac2e17331d3c8fa2c2a4d99c9fbe3d9127b6 docs/models/httpredirectchainlinktransportprotocol.md: id: 49a3925246e8 last_write_checksum: sha1:404fbd830807b808d459d1a678198639a4a5216d @@ -1132,6 +1152,14 @@ trackedFiles: id: d4515aa8453a last_write_checksum: sha1:06d4d27dd8a8678723dd7114e015f624ca754fa1 pristine_git_object: 591d50f3876b1073ea7b85fdfdb64dad1e92f32b + docs/models/mavlink.md: + id: bca55986e653 + last_write_checksum: sha1:57fd3675f6ef4ad7505dec3ae281a7f38d672428 + pristine_git_object: 9f336047362e06528a3639cd8b11d690e1e0e004 + docs/models/mavlinkframe.md: + id: f7e9dcf86cd9 + last_write_checksum: sha1:d66515b7d01bac233ea34ddac170c7fbb75121db + pristine_git_object: 7b7c1e734e5a6898db00023118ed67c856f41266 docs/models/mdns.md: id: 1bb52ed0b212 last_write_checksum: sha1:1e77d1e7d85e1fc269701003a9e6111835b78825 @@ -1152,10 +1180,22 @@ trackedFiles: id: 6856dda74bc4 last_write_checksum: sha1:7dd1bc3206bfc5a8c311f4e6c0a70310f223747d pristine_git_object: 0670b86690ed4396b7ac66887f5ca60f3502bbd2 + docs/models/melsec.md: + id: d80ce6c3f108 + last_write_checksum: sha1:9970350ce7b81668b8a7e83ea1d91fad8b2a9135 + pristine_git_object: 12eb86c9d88c5d66a07d9f6fc3047ca12a10b03c docs/models/membercounts.md: id: 5ec71168d650 last_write_checksum: sha1:b85e28e71420b8ea3238dd3c10a3f494e7f9d3ba pristine_git_object: 51b5fb7f06caf47e9667a9501b245e1ba3396d9b + docs/models/memberlist.md: + id: ca0e4e461d67 + last_write_checksum: sha1:c038c53f5dc5143f32de3f5f994b46983c430a07 + pristine_git_object: 5dcd63d7735c51806447a905cef83a1416615c54 + docs/models/memberlistnodeinfo.md: + id: 23ef6051eff2 + last_write_checksum: sha1:f045dd9057016029a4443c15b3a1d9ac20144c5c + pristine_git_object: 8315796b6b0fd36e8fd02cd196bd5d42f6701d29 docs/models/members.md: id: d835bf11e016 last_write_checksum: sha1:7ad739c81a6f13d39a27098950106e3187ca92cd @@ -1876,6 +1916,10 @@ trackedFiles: id: b0d14fab66f9 last_write_checksum: sha1:7fdf2f3db729f64f73ff46d60d0dd21a247dec0e pristine_git_object: ef932478c92ea6920763d36e8ffe1e5ef8d2e5e5 + docs/models/routerosapi.md: + id: 5ad5964160e1 + last_write_checksum: sha1:d2801bfab752f9178b49fe3e5b551e58a585e733 + pristine_git_object: d728ee86406a01b2c6220f663b7aa2399b8ae9b7 docs/models/routeupdated.md: id: dabaa4298d07 last_write_checksum: sha1:d321bebe43ca51fdd0083a9c57cd553c669f450a @@ -1896,6 +1940,34 @@ trackedFiles: id: 54f0194570d7 last_write_checksum: sha1:4f9ed5f792358ccafbcfb6707026adf3e0acdb15 pristine_git_object: 18d6c5f8fc01fd4effc9015e9d44b760449e5857 + docs/models/rustdeskheartbeat.md: + id: 892992c2e435 + last_write_checksum: sha1:9c44872f393779123afdf123358eb5243677af03 + pristine_git_object: 980d42a26e59322c70e995c6206137f810507d1e + docs/models/rustdeskheartbeatregisterpeerresponse.md: + id: b546caceb6ac + last_write_checksum: sha1:d9dfb07a1e75c340ca498dbefbaaadb3be7e12ee + pristine_git_object: cd38ae913787fafc4637a7d64337d57f127a8ec4 + docs/models/rustdeskrelay.md: + id: 96a26920ba1f + last_write_checksum: sha1:882543e3afcf1c3960f0682e233adef225a3b8a2 + pristine_git_object: c033980765fe0961cfde6cf398ecc63cd4a5b087 + docs/models/rustdeskrendezvous.md: + id: c2e6ade251ce + last_write_checksum: sha1:306c365d1165669b1fe4c30a1e5dea29f4047fcc + pristine_git_object: d1e51d11b4194941a8b9939be914ef5e161ae25c + docs/models/rustdeskrendezvousconfigupdate.md: + id: dcfa8aeef26f + last_write_checksum: sha1:e8571129cc2a1fad73e76e269e36f845afd1f9e3 + pristine_git_object: 23af7de3021943d40fafc51377192f1d80978154 + docs/models/rustdeskrendezvouskeyexchange.md: + id: 6f38ad7544be + last_write_checksum: sha1:708b484bbe9c49b1c15279d8121899605fc0bd50 + pristine_git_object: fdb6772a0bfe03a8a21fe92793fa1a284364142d + docs/models/rustdeskrendezvoustestnatresponse.md: + id: 2def9ed47046 + last_write_checksum: sha1:0323db651dd7e5e944116380b9b1558704967330 + pristine_git_object: 83ca91bc7e96abf418de4391b18535c1f58871bd docs/models/s7.md: id: 257d9ae4ccbf last_write_checksum: sha1:a3b4e2571ada0d8169b06462a14980338eac4976 @@ -1950,8 +2022,8 @@ trackedFiles: pristine_git_object: 01116b510f9212ec61784b96517b5ea914b0819c docs/models/screenshot.md: id: 87af18a0a2fd - last_write_checksum: sha1:55e4d6528c74de9eb7e5223e5ddcc53cc11a4634 - pristine_git_object: 97adf0dee1dc2f5cf41404540625c355940a080b + last_write_checksum: sha1:85f27ae6c4e3d513b456371a8ebe36e5f421a7ac + pristine_git_object: b083481c250aec767051856b0448bc8ddde827b5 docs/models/searchaggregateinputbody.md: id: 2034edf6e8b7 last_write_checksum: sha1:072dfe4467e166ef2b75d4e3c97a18231370d446 @@ -1986,8 +2058,8 @@ trackedFiles: pristine_git_object: 9421fc6fd561aa8aa2d8c07145ea4745d5f7798b docs/models/searchqueryinputbody.md: id: 02f08f37bdf6 - last_write_checksum: sha1:63e373e16c49fec7bd16035ecf10adc002353a99 - pristine_git_object: f0c20567ac23cfc421edd1bcad74bdd9f23624b2 + last_write_checksum: sha1:2835a13e90cc08bd789e69a4f6038248336166b6 + pristine_git_object: 743a7731e0952d0430ef6408d558d6c472ea7a38 docs/models/searchqueryresponse.md: id: fb6b0986ba66 last_write_checksum: sha1:b7bff8da06f733cd442d415ff08f4312aeb3eb51 @@ -2026,8 +2098,8 @@ trackedFiles: pristine_git_object: e6f00cc1cb14bfc9139ac98eae6022b582da1895 docs/models/service.md: id: d38041323049 - last_write_checksum: sha1:2a1b04d9cdcc175313a7b2e9262ab66678ed6cc2 - pristine_git_object: 9416ec5689555eca9b14d7e8e46e665f4b96467a + last_write_checksum: sha1:ef51aa161a48190ad83ebe8b6d4b720d3b6873da + pristine_git_object: 22ec9f49e4d31fabfc85322b29a1cc1ccf967813 docs/models/serviceid.md: id: 78670c733096 last_write_checksum: sha1:4388c75f08f99206fc758d5d47396f1a13fd37e1 @@ -2038,8 +2110,8 @@ trackedFiles: pristine_git_object: d4efd3a1544fbdb6abab868b5d03cc03deceddb4 docs/models/servicescan.md: id: 5079b5eb4109 - last_write_checksum: sha1:63b174aea6f7c4a35acf1370eae405b31821567b - pristine_git_object: 0c000a9bdcb278e44e348ecc6e19b18ff3ff1efb + last_write_checksum: sha1:b37b3cfcf84829d9f8ba919693e4fbcdfe64fe6c + pristine_git_object: 93687f1364b482f2947e22021919e81ede15c6d1 docs/models/servicescanned.md: id: 8783aac64d52 last_write_checksum: sha1:95fa8c18ec2267c5969827ee2576a45c793fc904 @@ -2918,20 +2990,20 @@ trackedFiles: pristine_git_object: 924281f1d76d2c334d0d8c8329b518fef8f41798 docs/sdks/accountmanagement/README.md: id: 5ecc19ffd434 - last_write_checksum: sha1:9bbfbab1c604d80c3549ab501899e427861f8407 - pristine_git_object: 6125e5c643e2c7ec8c9f582251355db9d6aaf27f + last_write_checksum: sha1:6158ea9897139b88623065a82f3f426686039674 + pristine_git_object: 7d5aff9b18d011a6e257e53d83c88d8d47a4e4d8 docs/sdks/collections/README.md: id: 7985e64efccf - last_write_checksum: sha1:a475df9b5d470aa83fe95a7c2edd37a309ca5005 - pristine_git_object: f620a9fb9e9b80c94a76ddeade7fcce27964ba53 + last_write_checksum: sha1:a48cfce79adcb96db2e4161a5824dc8814e4ff7e + pristine_git_object: 3e61ad2b6d77ddb109bacccd5de70d83e97c8cf0 docs/sdks/globaldata/README.md: id: 0c68886632e6 - last_write_checksum: sha1:c8f777dc327fd79a72022cd627f5314e59f31e5c - pristine_git_object: b2ef5cc921ea4f2c406809dce4743a9211ae0fde + last_write_checksum: sha1:e306ee2378933f21750975d2d9434ec04e1f5efc + pristine_git_object: 4b35440d500338f47d0640832dd287e1f0f79e7c docs/sdks/threathunting/README.md: id: 9d697938ee45 - last_write_checksum: sha1:a691e078e534286de3ed1955554e6e00d8a8cda2 - pristine_git_object: 4d1b4e7b731d408808c7f86e2725d0ed9919adaa + last_write_checksum: sha1:dd67ab8b1f0ec0d2cbd3d9d5f0caeb5765684359 + pristine_git_object: b700bf4182e900d4ed68587286cde63c70da7882 poetry.toml: id: a81ade82122a last_write_checksum: sha1:2242305e29dc6921bdf5b200aea5d4bf67830230 @@ -2942,12 +3014,12 @@ trackedFiles: pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pylintrc: id: 7ce8b9f946e6 - last_write_checksum: sha1:021d728ef83b3b03a2cfdd33725924f7862ec67d - pristine_git_object: 451f601a6382e06ed064d9e37bb0d2581bd472e9 + last_write_checksum: sha1:61536c2d1403a4738b52bda4167d4f100a5aa62b + pristine_git_object: e6ed56e03acaeeb18fe569517c72c3429615c191 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:64a5ae4c2766e77363d0cb14ed045d12c9c2d33f - pristine_git_object: a39f186e9f8aad4837ff70cd97e156debe578463 + last_write_checksum: sha1:ef90876976f0833ca32919793dc8a8228b0b8468 + pristine_git_object: 6c35b32b3b4cbcb6fa5f08ffd89b297fcfe956f7 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:10d6ae008b24c68e99d7e8ba9c2e747070685ead @@ -2974,32 +3046,32 @@ trackedFiles: pristine_git_object: 352d3691d91c2d0ba0f05b48b56d4df5ce520098 src/censys_platform/_version.py: id: d2dc39704c23 - last_write_checksum: sha1:f58d46d54b73a8008ec34d95c377d58b423821f2 - pristine_git_object: 3b6b423d575a0988f0234a6d6d190149c4e65d73 + last_write_checksum: sha1:229f98f4712ae66a3d691dac3e3ac9a25d23e6f5 + pristine_git_object: 21c2607c269222fae8a5126d8b989ed534612bee src/censys_platform/account_management.py: id: 09993862b047 - last_write_checksum: sha1:c635ab159be95add3d429513fb91143876bfc731 - pristine_git_object: 97bdf5cfc697a5b3b9f9b5c0d400f87a0eba22b5 + last_write_checksum: sha1:8c463369fda5bd1e76e021b26bfb99b492a2db90 + pristine_git_object: f75ccc66c32ada0b45237f70e890ea34d2ba9537 src/censys_platform/basesdk.py: id: a49fe6a31a15 last_write_checksum: sha1:04e5f0a1e4b6a7db86eec781a31edb2dc9a61ba5 pristine_git_object: aecdb5ca70b7d3674d45c29152c032e5feaf638d src/censys_platform/collections.py: id: e6d640c28668 - last_write_checksum: sha1:a7086e51da9b5565c486d9397ed5c57ab364dd53 - pristine_git_object: 23beebdc9f77f5117316ee6e58376851aac943c1 + last_write_checksum: sha1:dba995a3215148254475870bf51096b5599bfbd8 + pristine_git_object: cb2c83408f1a3ef08325bc7ba7fa4c0011140b1b src/censys_platform/global_data.py: id: 0eedbf9a2038 - last_write_checksum: sha1:3b8c58bd5d8d1cf50b1d4d6054efe28816408832 - pristine_git_object: 80b1dda7736b46a3bcf42ecef6a6dd632513d1a6 + last_write_checksum: sha1:3ffd8225ac9b97381af8a1c9c79426fd3450c5bf + pristine_git_object: 6c2b62369021e6f28f8c16060d805942455c666f src/censys_platform/httpclient.py: id: 9378a19c2de6 last_write_checksum: sha1:5e55338d6ee9f01ab648cad4380201a8a3da7dd7 pristine_git_object: 89560b566073785535643e694c112bedbd3db13d src/censys_platform/models/__init__.py: id: 4c65ae1e4fed - last_write_checksum: sha1:aaecea428250a85d3c1a2fc7109faf64226db1d6 - pristine_git_object: ab90863cfc3e68ee2fa20b333b10c317d4455f85 + last_write_checksum: sha1:eebd3144ab67a2ea0846e2f0ac851527dadb15d3 + pristine_git_object: 5ba2f0d371cef6181bef5767a29c9257a6ab69af src/censys_platform/models/activemq.py: id: c852b87bc559 last_write_checksum: sha1:5d8f5fbd113473e04d2d5824f960aebd03c6e892 @@ -3494,8 +3566,8 @@ trackedFiles: pristine_git_object: ed0ccf8ef10e812aed2b976b4d6ad2efedfbfbfc src/censys_platform/models/elffile.py: id: d1dd279522b2 - last_write_checksum: sha1:1e8c411d892bc5f3359f853ed2fe332ed8899fff - pristine_git_object: 0d436b8ee5214537a9c96f6ae6b8a656e9844731 + last_write_checksum: sha1:5e6b2e074c3a5fb7a7e7da89120ff7bbf901cbe3 + pristine_git_object: 9af18c6682675bdacffa5501885a5bd82bcc27c2 src/censys_platform/models/endpointscan.py: id: e9034f3e14f9 last_write_checksum: sha1:64dbbf1e463ad72d63c777519383425b858ea997 @@ -3600,6 +3672,14 @@ trackedFiles: id: 08d3cf003555 last_write_checksum: sha1:1c63c2c370a4a228fc061988e73518245933ca9e pristine_git_object: 84a0136d69f4a5c1c06cc8c90b620ae6df7b1dd1 + src/censys_platform/models/flashsocketpolicy.py: + id: 91b7edb2d936 + last_write_checksum: sha1:557042d685da9ac3fd7678c9653701338ac72149 + pristine_git_object: 0e0b93771854545ce8c13488dea8b02f8cca87b9 + src/censys_platform/models/flashsocketpolicy_allowaccessfrom.py: + id: 4f6cf293dbcc + last_write_checksum: sha1:593e58d3c8e62d66a810154b8f17fe668a254dc0 + pristine_git_object: 914c4dbf19e9965c20bdc73c21e60f29259be287 src/censys_platform/models/floatvalue.py: id: 6560ee1eedb2 last_write_checksum: sha1:809ae911b75c34abb2a9935ca53e35b00a393285 @@ -3624,6 +3704,10 @@ trackedFiles: id: 807b66e46ece last_write_checksum: sha1:d45183e562bc54c261c46378f640d4d5a9cd33bf pristine_git_object: 6860c6c85550bc3f2706c000aee5ef1e50859f60 + src/censys_platform/models/gemini.py: + id: 8639712c02a4 + last_write_checksum: sha1:a9331d0efc394f7b386d9ee689e975cba5f66ddc + pristine_git_object: 4819249d36154c75f28c73d5368c9d89eabc87b6 src/censys_platform/models/generalnames.py: id: e1539bc45d09 last_write_checksum: sha1:fbd893e4e7841d9033ee6c885451794d1f41a48c @@ -3636,6 +3720,14 @@ trackedFiles: id: e91c41786b5a last_write_checksum: sha1:4bedf4f9df33ec3a8039bd6c24ad23e1900892f4 pristine_git_object: 18b9a74ab5370ef2ab214c27343bbcb9de1f7099 + src/censys_platform/models/greynoise.py: + id: fa0944ca7351 + last_write_checksum: sha1:ef66b547c75ee4256e3d299882eb9b663b0686f0 + pristine_git_object: 67f3afb99ed6320e7f38ad3d7c0ba38b63e4d879 + src/censys_platform/models/greynoise_tag.py: + id: abc0daa9a41f + last_write_checksum: sha1:85a14b565938d796f5a4f45ca588715e35c3b084 + pristine_git_object: c783f3271e5923e0d287eeb0c8a15e9b16890b40 src/censys_platform/models/hajime.py: id: d87f2eaa6762 last_write_checksum: sha1:2972d1dd45e18747ad34179a9da2e270771483db @@ -3658,8 +3750,8 @@ trackedFiles: pristine_git_object: de8ef55df137f6791c10e9c75cd76d67c95f8ccc src/censys_platform/models/host.py: id: da29e37823ba - last_write_checksum: sha1:a727926b5b67e894b5c7d534bf9df036246965c0 - pristine_git_object: c2fb6cf2e6805efbbec888417fa0e4ab174b915c + last_write_checksum: sha1:7ded862050ca0555f9867ce3d25b5d4a45cba7ae + pristine_git_object: 3cccb2d553cd8dbe1dab67c89a4a53cbd26d6bba src/censys_platform/models/hostasset.py: id: 0baafdd12d30 last_write_checksum: sha1:77a79e251143f03d5b776ac3f621938a4d075a68 @@ -3710,8 +3802,8 @@ trackedFiles: pristine_git_object: cb8d1cb08d2ddd69c2caa6ad370ba233463f92b3 src/censys_platform/models/http_redirectchainlink.py: id: f3cdca0b5525 - last_write_checksum: sha1:17d6bbab2a897f94ea760e241e5bd7728a40a0b5 - pristine_git_object: 8eccbf1dc79d999a0c0be4db96b5768bbb7c883f + last_write_checksum: sha1:e2a0959ec52569b89185cfe22cb50319c479d097 + pristine_git_object: 9cb66d9f886ea1f27154c259fe042a6d63642293 src/censys_platform/models/http_repeatedheaders.py: id: ab701e3cdc54 last_write_checksum: sha1:23e848090ce9699d2e3123764c36aeaa6223abb7 @@ -3742,8 +3834,8 @@ trackedFiles: pristine_git_object: e8ae804d689cfd88eeb64d39d8c51fc55adb6c7f src/censys_platform/models/internal/__init__.py: id: cc54b3ba71dd - last_write_checksum: sha1:5beaf7e5a713d3eead465c6edcfdeb7f8076175c - pristine_git_object: e7070a1222c2ed3fa3f6f54e6f122cae7ff9a449 + last_write_checksum: sha1:edd632cce10e07e4a1d336991fcb9c2efb21d55b + pristine_git_object: f4e9a8bf0f2f4f33c6814436a7be4f12ac8a5f26 src/censys_platform/models/internal/globals.py: id: 15bfb7e58e84 last_write_checksum: sha1:4456fa9b402718c2d833441354fce68efec9868a @@ -3806,8 +3898,8 @@ trackedFiles: pristine_git_object: 5025efd1808ab603dc0f695cbfd34d087dd2e17d src/censys_platform/models/ipmi_rmcpheader_messageclass.py: id: 6ce098f00464 - last_write_checksum: sha1:ca16d2e1f788cb735016f9c43cf74c64898732c2 - pristine_git_object: 1eaf0131dd3eea99ad9d442dd3dd84b499dad548 + last_write_checksum: sha1:df598356146fc75a5c8154e6591abfd4d73cb4f9 + pristine_git_object: e619e9ab8ad609f678305a9f3bb2726a22aff5a0 src/censys_platform/models/ipmi_sessionheader.py: id: 3981a0ef137f last_write_checksum: sha1:d7c309e98f21cf699f537fc2b953ddb0362492f4 @@ -3968,6 +4060,14 @@ trackedFiles: id: 8ac9ef9d68c0 last_write_checksum: sha1:24637e6d3001d6232cb8f3991bcbef31b9bd875e pristine_git_object: 51da195281cb537be5851ebac308e83c944ebc0d + src/censys_platform/models/mavlink.py: + id: b3ca52b4c5af + last_write_checksum: sha1:483f581e87830b4acc56f4ab26a307d0934dcd61 + pristine_git_object: e5b473a39089530e9053ee4375cad7049f1812b5 + src/censys_platform/models/mavlink_frame.py: + id: f4cc87232917 + last_write_checksum: sha1:2fff7c385e32a16d47855a60e803ac41b6fdd7de + pristine_git_object: 26c2669f4320a07f98308893dd8e0d8e7130351f src/censys_platform/models/mdns.py: id: 892cdc4aec3c last_write_checksum: sha1:c89153cb82c589d39dc84e121ed6b61c9cde5fff @@ -3988,10 +4088,22 @@ trackedFiles: id: 72fc46d8eab3 last_write_checksum: sha1:23771279638d6aa223e0d210a62ec47cb75a43db pristine_git_object: b2da5517d4f55e7f297e4467f1942d149f719680 + src/censys_platform/models/melsec.py: + id: 101eb0d991c1 + last_write_checksum: sha1:0b12e08e75014f6c2dae97fb504d276e54b032ef + pristine_git_object: 39617f8697881c6d9dfc70cab4e12257e9eebc09 src/censys_platform/models/membercounts.py: id: 335b636f5618 last_write_checksum: sha1:1187a80dc052cbf6a851d3bd08f1161f417c11f2 pristine_git_object: d7122f2fe964927f9da4d2632cd4270ef7352206 + src/censys_platform/models/memberlist.py: + id: 639063c698de + last_write_checksum: sha1:a578dda4acfddd1f409a535eebfefe3f8dca09fc + pristine_git_object: fa8666b4ea7af59118ba198270067b0cc9b5dc11 + src/censys_platform/models/memberlist_nodeinfo.py: + id: 304da851ddce + last_write_checksum: sha1:bd4a5816ee6c9eed94b7950910246bc9967118d7 + pristine_git_object: 3ece4556fe309ebaa489d13bcfd79f3268aa2253 src/censys_platform/models/members.py: id: 891e74951b6e last_write_checksum: sha1:22686d494c9eff37c30ef3ab49dbb938a0d18d4f @@ -4430,8 +4542,8 @@ trackedFiles: pristine_git_object: 676be7f1775133cda359da52dbda588edeffdd14 src/censys_platform/models/rdate.py: id: 93c562f8ee31 - last_write_checksum: sha1:b682bc31d73a82fccc614e96cbdf0b6455c3b92d - pristine_git_object: c3c69790ce4c49ba7bb94b6e00739990499bbb52 + last_write_checksum: sha1:2fce36c9b7995a077fa05596c1ce7ebea91d8943 + pristine_git_object: 2a4667682436cadce18a7eada417c9c75e7721e3 src/censys_platform/models/rdp.py: id: 1ba23ccc8bc8 last_write_checksum: sha1:bd680689ee8b5174e0c55463152825c67a26360b @@ -4656,6 +4768,10 @@ trackedFiles: id: 223e62e08979 last_write_checksum: sha1:922218816340f096ccd0bcb94e809fd662a710d8 pristine_git_object: 81e1a95fa78dcecbf074c30d7378e2f3031a41f0 + src/censys_platform/models/routerosapi.py: + id: 937d7a4c3c5f + last_write_checksum: sha1:130a4580146b366fde8b198c7194d71b7ed00dbd + pristine_git_object: 24cb36e9d0c3558893360d04da085729e6296b4d src/censys_platform/models/routeupdated.py: id: 8ab05bb6c682 last_write_checksum: sha1:0101637328adaf67a058dd807448fba6a3a3eb98 @@ -4676,6 +4792,34 @@ trackedFiles: id: ef3576bdc22f last_write_checksum: sha1:a122ae0f14fe7683ba1fd8cb74557b4caae8b998 pristine_git_object: a5ecbabb195c2c05a0325cf6b5ed554031006983 + src/censys_platform/models/rustdeskheartbeat.py: + id: 7691d26367dd + last_write_checksum: sha1:6f0dd127710014f1085952b7c9166f66c5cc14cf + pristine_git_object: 53216beb420eca62c40d701df91632aa17c202be + src/censys_platform/models/rustdeskheartbeat_registerpeerresponse.py: + id: 62a0baee5060 + last_write_checksum: sha1:8cefecf7474de599ad8804c8a20a2ed2aa7608aa + pristine_git_object: bd04e38ddf102acd077154e31c613362272dc3bf + src/censys_platform/models/rustdeskrelay.py: + id: 3c3a2303538c + last_write_checksum: sha1:5c2fd6ea7379aa5f832192d9a6c7f0f1b2f80a61 + pristine_git_object: 7685cf6d962aae418ccbd627549956c850adb7e0 + src/censys_platform/models/rustdeskrendezvous.py: + id: c34c9fb3e748 + last_write_checksum: sha1:46d6084c4f7adb04b44790628d8ddfc602ea70e5 + pristine_git_object: a09b306c6a06b8f0f03644986cea05afd0e249c2 + src/censys_platform/models/rustdeskrendezvous_configupdate.py: + id: 938ff93c6526 + last_write_checksum: sha1:103107b22982ec52174270f9f5c18d8be61c9a85 + pristine_git_object: 5acd2cbc4e4f7177af42a7e0b7896872c36ca1e8 + src/censys_platform/models/rustdeskrendezvous_keyexchange.py: + id: 18be645679c4 + last_write_checksum: sha1:172c498e4f48cd67bbce16ad993bf6309eeeff6c + pristine_git_object: 6af5bfe5c0b4085fd2efb43428940e6c3621e922 + src/censys_platform/models/rustdeskrendezvous_testnatresponse.py: + id: 1bd2271ebbcd + last_write_checksum: sha1:571dde709e6c30b0312cbb995f97d125cc8d73e2 + pristine_git_object: f83d4277ab2f04a508fce576b9a488328b57a7eb src/censys_platform/models/s7.py: id: c92951a6fc78 last_write_checksum: sha1:0684c47616d46ac9e42b55f632825a89236d1545 @@ -4714,8 +4858,8 @@ trackedFiles: pristine_git_object: 2719a197e9c3c1f7da286663865f77e770e3c6c0 src/censys_platform/models/screenshot.py: id: 4a9a9422cbf2 - last_write_checksum: sha1:f89249c1ab364a6582ec1d9fe2720bd05566cf78 - pristine_git_object: e6331d3afe679006c2377003cffe98a4dc35032c + last_write_checksum: sha1:6ccb6b6b63963a94c6a0bc15d61ff29adb12cdb9 + pristine_git_object: 03c73c28932321dfd587774cf221f1b5ca1cb757 src/censys_platform/models/sdkbaseerror.py: id: 141f1bfca946 last_write_checksum: sha1:a10977aed9914acfe6f63d2afbf4db656fc449d9 @@ -4754,8 +4898,8 @@ trackedFiles: pristine_git_object: 3732d3e1741a4ff8dd4e56cdd03c2b538d398f35 src/censys_platform/models/searchqueryinputbody.py: id: 5a19fe64c4c3 - last_write_checksum: sha1:2b0d648953845774d69e816b64d88857a56114eb - pristine_git_object: c9986a459389f2091a5026d4b7a65f261247e335 + last_write_checksum: sha1:488d7574bf24d8a7ef4bbda2c0de6a1ce562a96b + pristine_git_object: ad572c5922b3f18294d96ec95381775a7f312411 src/censys_platform/models/searchqueryresponse.py: id: a67e92fb07de last_write_checksum: sha1:ef529456c9318b0862ffdab6cbbd465aedd70ed7 @@ -4790,16 +4934,16 @@ trackedFiles: pristine_git_object: a7391bbf7b2dc4f949ac86ac6969dd4b84d2ce44 src/censys_platform/models/service.py: id: 25dc1044897b - last_write_checksum: sha1:b6d433fc7b07070012711ab4cc81b0029362319e - pristine_git_object: 92db92f9511d251187e973f9b500d3ff72f6246e + last_write_checksum: sha1:3895eccac4a1b4081593d02e607a6f915dd4324b + pristine_git_object: 13c6f3742504895249bb4283c539224283b6fc7d src/censys_platform/models/serviceid.py: id: 52a5b098ac72 last_write_checksum: sha1:1e7bf71c1365b3f352342f5de05fd85c63345b7a pristine_git_object: fb52b69a02398d69fe680fbbf1f9e131707cfd26 src/censys_platform/models/servicescan.py: id: 24c47a42f886 - last_write_checksum: sha1:c8c79161d1fb321a6251f001a9d14ead697cc025 - pristine_git_object: 4de276e5b6983f15805d43b7ef69ff30f3195e74 + last_write_checksum: sha1:e960651c4b5b62470a3fbc3afae66c55278e721c + pristine_git_object: d282885d43dc975953bdd579b0cf5149302d5ea1 src/censys_platform/models/servicescanned.py: id: 7a118692950e last_write_checksum: sha1:026ccd1b0189bfba2baa9b352deaefb55c4bce36 @@ -4862,8 +5006,8 @@ trackedFiles: pristine_git_object: b67e4cef99edfb29221441fe4950c4440fe7dc26 src/censys_platform/models/snmp_engine.py: id: 00b89f797e90 - last_write_checksum: sha1:44e028898365c866e93aebaddea943408a1342ab - pristine_git_object: 53e78ba9b100e18c69306335574627dad33a501e + last_write_checksum: sha1:f9bfbd7bb8ea947178782d98e4a039115ffd9a9b + pristine_git_object: 7977e44a760cff72cd5ad959f3395abf582f6f01 src/censys_platform/models/snmp_interfaces.py: id: 2d639901b28b last_write_checksum: sha1:b6fe501512d2832b69370a74fc8d7dc2e5287b21 @@ -5322,8 +5466,8 @@ trackedFiles: pristine_git_object: 5db48844a430af6402eb7ffaba0d9fcd30cf0724 src/censys_platform/threat_hunting.py: id: 970de984d111 - last_write_checksum: sha1:b0115f835efac61827a5c737ea11110d739571af - pristine_git_object: 510c0e4fb757bed2a3170e666b504554af6c3dae + last_write_checksum: sha1:172973ba567603208025764e1826027047fa84a4 + pristine_git_object: ea0e874df851bfd11d283d58e45e32039bab47ca src/censys_platform/types/__init__.py: id: 40a6abbc737a last_write_checksum: sha1:140ebdd01a46f92ffc710c52c958c4eba3cf68ed @@ -5334,8 +5478,8 @@ trackedFiles: pristine_git_object: a9a640a1a7048736383f96c67c6290c86bf536ee src/censys_platform/utils/__init__.py: id: 76ac94c422c2 - last_write_checksum: sha1:398211d49b762a067ec6d10197a4b11dfd258ff5 - pristine_git_object: c906e1e0192e9017fc13851eb23fc0c2753429c8 + last_write_checksum: sha1:1970816f2234ecb8785798240b0edced961de971 + pristine_git_object: 0498cb8dabf249b39609f81fb10cddc30f1b78b5 src/censys_platform/utils/annotations.py: id: 259f8dfc4b83 last_write_checksum: sha1:a4824ad65f730303e4e1e3ec1febf87b4eb46dbc @@ -5344,14 +5488,18 @@ trackedFiles: id: 45311463dfef last_write_checksum: sha1:c721e4123000e7dc61ec52b28a739439d9e17341 pristine_git_object: a6c52cd61bbe2d459046c940ce5e8c469f2f0664 + src/censys_platform/utils/dynamic_imports.py: + id: 01ddee0f294a + last_write_checksum: sha1:a1940c63feb8eddfd8026de53384baf5056d5dcc + pristine_git_object: 673edf82a97d0fea7295625d3e092ea369a36b79 src/censys_platform/utils/enums.py: id: bd73b82ea938 last_write_checksum: sha1:bc8c3c1285ae09ba8a094ee5c3d9c7f41fa1284d pristine_git_object: 3324e1bc2668c54c4d5f5a1a845675319757a828 src/censys_platform/utils/eventstreaming.py: id: 79888c9b9f71 - last_write_checksum: sha1:bababae5d54b7efc360db701daa49e18a92c2f3b - pristine_git_object: 0969899bfc491e5e408d05643525f347ea95e4fc + last_write_checksum: sha1:ffa870a25a7e4e2015bfd7a467ccd3aa1de97f0e + pristine_git_object: f2052fc22d9fd6c663ba3dce019fe234ca37108b src/censys_platform/utils/forms.py: id: e6173af8260d last_write_checksum: sha1:15fa7e9ab1611e062a9984cf06cb20969713d295 @@ -5378,12 +5526,12 @@ trackedFiles: pristine_git_object: 1de32b6d26f46590232f398fdba6ce0072f1659c src/censys_platform/utils/retries.py: id: d5aceef1f0a1 - last_write_checksum: sha1:5b97ac4f59357d70c2529975d50364c88bcad607 - pristine_git_object: 88a91b10cd2076b4a2c6cff2ac6bfaa5e3c5ad13 + last_write_checksum: sha1:471372f5c5d1dd5583239c9cf3c75f1b636e5d87 + pristine_git_object: af07d4e941007af4213c5ec9047ef8a2fca04e5e src/censys_platform/utils/security.py: id: 1559cefe0793 - last_write_checksum: sha1:a17130ace2c0db6394f38dd941ad2b700cc755c8 - pristine_git_object: 295a3f40031dbb40073ad227fd4a355660f97ab2 + last_write_checksum: sha1:435dd8b180cefcd733e635b9fa45512da091d9c0 + pristine_git_object: 17996bd54b8624009802fbbdf30bcb4225b8dfed src/censys_platform/utils/serializers.py: id: a3afe58d4a90 last_write_checksum: sha1:ce1d8d7f500a9ccba0aeca5057cee9c271f4dfd7 @@ -5416,6 +5564,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-collections-crud-create: speakeasy-default-v3-collections-crud-create: parameters: @@ -5431,6 +5583,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-collections-crud-delete: speakeasy-default-v3-collections-crud-delete: parameters: @@ -5444,6 +5600,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-collections-crud-get: speakeasy-default-v3-collections-crud-get: parameters: @@ -5459,6 +5619,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-collections-crud-update: speakeasy-default-v3-collections-crud-update: parameters: @@ -5476,6 +5640,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-collections-list-events: speakeasy-default-v3-collections-list-events: parameters: @@ -5495,6 +5663,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-collections-search-aggregate: speakeasy-default-v3-collections-search-aggregate: parameters: @@ -5512,6 +5684,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-collections-search-query: speakeasy-default-v3-collections-search-query: parameters: @@ -5529,6 +5705,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-asset-certificate-list: speakeasy-default-v3-globaldata-asset-certificate-list: parameters: @@ -5555,6 +5735,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-asset-host-list: speakeasy-default-v3-globaldata-asset-host-list: parameters: @@ -5582,6 +5766,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-asset-host-timeline: speakeasy-default-v3-globaldata-asset-host-timeline: parameters: @@ -5599,6 +5787,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-asset-webproperty-list: speakeasy-default-v3-globaldata-asset-webproperty-list: parameters: @@ -5626,6 +5818,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-search-aggregate: speakeasy-default-v3-globaldata-search-aggregate: parameters: @@ -5641,6 +5837,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-search-query: speakeasy-default-v3-globaldata-search-query: parameters: @@ -5656,6 +5856,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-threathunting-value-counts: speakeasy-default-v3-threathunting-value-counts: parameters: @@ -5671,6 +5875,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-get-host-observations-with-certificate: speakeasy-default-v3-globaldata-get-host-observations-with-certificate: parameters: @@ -5703,6 +5911,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-scans-get: speakeasy-default-v3-globaldata-scans-get: parameters: @@ -5718,6 +5930,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-threathunting-scans-get: speakeasy-default-v3-threathunting-scans-get: parameters: @@ -5733,6 +5949,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-threathunting-scans-discovery: speakeasy-default-v3-threathunting-scans-discovery: parameters: @@ -5748,6 +5968,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-threathunting-get-host-observations-with-certificate: speakeasy-default-v3-threathunting-get-host-observations-with-certificate: parameters: @@ -5768,6 +5992,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-asset-certificate-list-post: speakeasy-default-v3-globaldata-asset-certificate-list-post: parameters: @@ -5783,6 +6011,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-asset-certificate-list-raw-post: speakeasy-default-v3-globaldata-asset-certificate-list-raw-post: parameters: @@ -5798,6 +6030,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-asset-certificate-raw: speakeasy-default-v3-globaldata-asset-certificate-raw: parameters: @@ -5813,6 +6049,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-asset-host-list-post: speakeasy-default-v3-globaldata-asset-host-list-post: parameters: @@ -5828,6 +6068,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-asset-webproperty-list-post: speakeasy-default-v3-globaldata-asset-webproperty-list-post: parameters: @@ -5843,6 +6087,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-globaldata-search-convert: speakeasy-default-v3-globaldata-search-convert: parameters: @@ -5860,6 +6108,8 @@ examples: application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-org-details: speakeasy-default-v3-accountmanagement-org-details: parameters: @@ -5874,6 +6124,8 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-org-credits: speakeasy-default-v3-accountmanagement-org-credits: parameters: @@ -5886,6 +6138,8 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-org-credits-usage: speakeasy-default-v3-accountmanagement-org-credits-usage: parameters: @@ -5904,6 +6158,8 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "400": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-invite-user-to-org: speakeasy-default-v3-accountmanagement-invite-user-to-org: parameters: @@ -5916,6 +6172,8 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-list-org-members: speakeasy-default-v3-accountmanagement-list-org-members: parameters: @@ -5930,6 +6188,8 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-remove-org-member: speakeasy-default-v3-accountmanagement-remove-org-member: parameters: @@ -5941,6 +6201,8 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-update-org-member: speakeasy-default-v3-accountmanagement-update-org-member: parameters: @@ -5954,6 +6216,8 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "400": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-member-credits-usage: speakeasy-default-v3-accountmanagement-member-credits-usage: parameters: @@ -5972,6 +6236,8 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "400": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-user-credits: speakeasy-default-v3-accountmanagement-user-credits: responses: @@ -5981,6 +6247,8 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "404": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-threathunting-threats-list: speakeasy-default-v3-threathunting-threats-list: parameters: @@ -5994,6 +6262,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "403": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} v3-accountmanagement-user-credits-usage: speakeasy-default-v3-accountmanagement-user-credits-usage: parameters: @@ -6009,6 +6281,10 @@ examples: application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "404": application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "400": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} + "500": + application/problem+json: {"detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "https://example.com/errors/example"} examplesVersion: 1.0.2 generatedTests: {} generatedFiles: diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index b675ecc..568e81e 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -14,6 +14,7 @@ generation: securityFeb2025: false sharedErrorComponentsApr2025: false sharedNestedComponentsJan2026: false + nameOverrideFeb2026: false auth: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false @@ -21,13 +22,14 @@ generation: schemas: allOfMergeStrategy: shallowMerge requestBodyFieldName: "" + versioningStrategy: automatic persistentEdits: {} tests: generateTests: true generateNewTests: false skipResponseBodyAssertions: false python: - version: 0.12.4 + version: 0.13.0 additionalDependencies: dev: {} main: {} @@ -45,11 +47,14 @@ python: enableCustomCodeRegions: false enumFormat: enum fixFlags: + asyncPaginationSep2025: false + conflictResistantModelImportsFeb2026: false responseRequiredSep2024: true flattenGlobalSecurity: true flattenRequests: false flatteningOrder: parameters-first forwardCompatibleEnumsByDefault: true + forwardCompatibleUnionsByDefault: "false" imports: option: openapi paths: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index a3ce8fc..c1991e8 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,21 +1,21 @@ -speakeasyVersion: 1.700.2 +speakeasyVersion: 1.725.0 sources: converge-source: sourceNamespace: converge-source - sourceRevisionDigest: sha256:7b3f780b817d3434a2d2aeb310cf8987d91c3d3a493f1b73bcf32ec3e877d56a - sourceBlobDigest: sha256:c82ea45eb541f2b2bd01aea26cd7a561098f9326ed7163df172c5ead3787bf44 + sourceRevisionDigest: sha256:51fafb7dc879583d6a227639dd292844bca57ae5e09ffa40379158293ed9c9e2 + sourceBlobDigest: sha256:f006243191b7ea6561229ecd7e86f68a24b7c2279a30e5be0c6396d0be8be9b4 tags: - latest - - speakeasy-sdk-regen-1769214570 - - 1.0.71 + - speakeasy-sdk-regen-1770424472 + - 1.0.77 targets: censys-sdk-python: source: converge-source sourceNamespace: converge-source - sourceRevisionDigest: sha256:7b3f780b817d3434a2d2aeb310cf8987d91c3d3a493f1b73bcf32ec3e877d56a - sourceBlobDigest: sha256:c82ea45eb541f2b2bd01aea26cd7a561098f9326ed7163df172c5ead3787bf44 + sourceRevisionDigest: sha256:51fafb7dc879583d6a227639dd292844bca57ae5e09ffa40379158293ed9c9e2 + sourceBlobDigest: sha256:f006243191b7ea6561229ecd7e86f68a24b7c2279a30e5be0c6396d0be8be9b4 codeSamplesNamespace: converge-source-python-code-samples - codeSamplesRevisionDigest: sha256:46f0471c3f518d7e1db3d3de0440503636ca49c3fa2d444e8e82b9a532835db1 + codeSamplesRevisionDigest: sha256:3e5450e8ca337c669472642b6fa6e263f19b0f00381dea7271da177d294f9262 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README-PYPI.md b/README-PYPI.md index 1d5aaba..9969e87 100644 --- a/README-PYPI.md +++ b/README-PYPI.md @@ -85,7 +85,7 @@ It's also possible to write a standalone Python script without needing to set up ```python #!/usr/bin/env -S uv run --script # /// script -# requires-python = ">=3.9" +# requires-python = ">=3.10" # dependencies = [ # "censys-platform", # ] diff --git a/README.md b/README.md index a39446a..090ba74 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ It's also possible to write a standalone Python script without needing to set up ```python #!/usr/bin/env -S uv run --script # /// script -# requires-python = ">=3.9" +# requires-python = ">=3.10" # dependencies = [ # "censys-platform", # ] diff --git a/RELEASES.md b/RELEASES.md index c47cfe8..811b327 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -196,4 +196,14 @@ Based on: ### Generated - [python v0.12.4] . ### Releases -- [PyPI v0.12.4] https://pypi.org/project/censys-platform/0.12.4 - . \ No newline at end of file +- [PyPI v0.12.4] https://pypi.org/project/censys-platform/0.12.4 - . + +## 2026-02-24 00:34:45 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.725.0 (2.836.5) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.13.0] . +### Releases +- [PyPI v0.13.0] https://pypi.org/project/censys-platform/0.13.0 - . \ No newline at end of file diff --git a/docs/models/flashsocketpolicy.md b/docs/models/flashsocketpolicy.md new file mode 100644 index 0000000..293abb6 --- /dev/null +++ b/docs/models/flashsocketpolicy.md @@ -0,0 +1,10 @@ +# FlashSocketPolicy + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `allow_access_from` | List[[models.FlashSocketPolicyAllowAccessFrom](../models/flashsocketpolicyallowaccessfrom.md)] | :heavy_minus_sign: | N/A | +| `policy` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `site_control` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/flashsocketpolicyallowaccessfrom.md b/docs/models/flashsocketpolicyallowaccessfrom.md new file mode 100644 index 0000000..87bb7d3 --- /dev/null +++ b/docs/models/flashsocketpolicyallowaccessfrom.md @@ -0,0 +1,10 @@ +# FlashSocketPolicyAllowAccessFrom + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `domain` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `secure` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `to_ports` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/gemini.md b/docs/models/gemini.md new file mode 100644 index 0000000..5eb1a3e --- /dev/null +++ b/docs/models/gemini.md @@ -0,0 +1,11 @@ +# Gemini + + +## Fields + +| Field | Type | Required | Description | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `body` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `client_cert_required` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `meta` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `status_code` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/greynoise.md b/docs/models/greynoise.md new file mode 100644 index 0000000..40127f5 --- /dev/null +++ b/docs/models/greynoise.md @@ -0,0 +1,10 @@ +# Greynoise + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `actor` | *Optional[str]* | :heavy_minus_sign: | The actor that was observed. | +| `classification` | *Optional[str]* | :heavy_minus_sign: | The classification of the IP address. | +| `tags` | List[[models.GreynoiseTag](../models/greynoisetag.md)] | :heavy_minus_sign: | The tags associated with the IP address. | \ No newline at end of file diff --git a/docs/models/greynoisetag.md b/docs/models/greynoisetag.md new file mode 100644 index 0000000..b3a34fb --- /dev/null +++ b/docs/models/greynoisetag.md @@ -0,0 +1,8 @@ +# GreynoiseTag + + +## Fields + +| Field | Type | Required | Description | +| -------------------- | -------------------- | -------------------- | -------------------- | +| `name` | *Optional[str]* | :heavy_minus_sign: | The name of the tag. | \ No newline at end of file diff --git a/docs/models/host.md b/docs/models/host.md index 3d6f820..d2533d3 100644 --- a/docs/models/host.md +++ b/docs/models/host.md @@ -7,6 +7,7 @@ | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | | `autonomous_system` | [Optional[models.Routing]](../models/routing.md) | :heavy_minus_sign: | N/A | | `dns` | [Optional[models.HostDNS]](../models/hostdns.md) | :heavy_minus_sign: | N/A | +| `greynoise` | [Optional[models.Greynoise]](../models/greynoise.md) | :heavy_minus_sign: | N/A | | `hardware` | [Optional[models.Attribute]](../models/attribute.md) | :heavy_minus_sign: | N/A | | `ip` | *Optional[str]* | :heavy_minus_sign: | N/A | | `labels` | List[[models.Label](../models/label.md)] | :heavy_minus_sign: | N/A | diff --git a/docs/models/httpredirectchainlink.md b/docs/models/httpredirectchainlink.md index d9e696f..a4f6ac2 100644 --- a/docs/models/httpredirectchainlink.md +++ b/docs/models/httpredirectchainlink.md @@ -9,4 +9,5 @@ | `path` | *Optional[str]* | :heavy_minus_sign: | N/A | | `port` | *Optional[int]* | :heavy_minus_sign: | N/A | | `reason` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `scheme` | *Optional[str]* | :heavy_minus_sign: | N/A | | `transport_protocol` | [Optional[models.HTTPRedirectChainLinkTransportProtocol]](../models/httpredirectchainlinktransportprotocol.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/mavlink.md b/docs/models/mavlink.md new file mode 100644 index 0000000..9f33604 --- /dev/null +++ b/docs/models/mavlink.md @@ -0,0 +1,9 @@ +# Mavlink + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `frames` | List[[models.MavlinkFrame](../models/mavlinkframe.md)] | :heavy_minus_sign: | N/A | +| `saw_pong` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/mavlinkframe.md b/docs/models/mavlinkframe.md new file mode 100644 index 0000000..7b7c1e7 --- /dev/null +++ b/docs/models/mavlinkframe.md @@ -0,0 +1,13 @@ +# MavlinkFrame + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component_id` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `message_id` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `message_type` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `payload` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `system_id` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `version` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/melsec.md b/docs/models/melsec.md new file mode 100644 index 0000000..12eb86c --- /dev/null +++ b/docs/models/melsec.md @@ -0,0 +1,8 @@ +# Melsec + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `cpu_info` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/memberlist.md b/docs/models/memberlist.md new file mode 100644 index 0000000..5dcd63d --- /dev/null +++ b/docs/models/memberlist.md @@ -0,0 +1,12 @@ +# Memberlist + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `encrypted` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `encrypted_len` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `encryption_version` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `error_message` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `node` | [Optional[models.MemberlistNodeInfo]](../models/memberlistnodeinfo.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/memberlistnodeinfo.md b/docs/models/memberlistnodeinfo.md new file mode 100644 index 0000000..8315796 --- /dev/null +++ b/docs/models/memberlistnodeinfo.md @@ -0,0 +1,14 @@ +# MemberlistNodeInfo + + +## Fields + +| Field | Type | Required | Description | +| ------------------- | ------------------- | ------------------- | ------------------- | +| `delegate_versions` | List[*int*] | :heavy_minus_sign: | N/A | +| `incarnation` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `ip` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `meta` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `name` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `port` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `protocol_version` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/routerosapi.md b/docs/models/routerosapi.md new file mode 100644 index 0000000..d728ee8 --- /dev/null +++ b/docs/models/routerosapi.md @@ -0,0 +1,10 @@ +# RouterosAPI + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `message` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `raw_response` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `reply_word` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/rustdeskheartbeat.md b/docs/models/rustdeskheartbeat.md new file mode 100644 index 0000000..980d42a --- /dev/null +++ b/docs/models/rustdeskheartbeat.md @@ -0,0 +1,9 @@ +# RustdeskHeartbeat + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `message_type` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `register_peer_response` | [Optional[models.RustdeskHeartbeatRegisterPeerResponse]](../models/rustdeskheartbeatregisterpeerresponse.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/rustdeskheartbeatregisterpeerresponse.md b/docs/models/rustdeskheartbeatregisterpeerresponse.md new file mode 100644 index 0000000..cd38ae9 --- /dev/null +++ b/docs/models/rustdeskheartbeatregisterpeerresponse.md @@ -0,0 +1,8 @@ +# RustdeskHeartbeatRegisterPeerResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------- | -------------------- | -------------------- | -------------------- | +| `request_public_key` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/rustdeskrelay.md b/docs/models/rustdeskrelay.md new file mode 100644 index 0000000..c033980 --- /dev/null +++ b/docs/models/rustdeskrelay.md @@ -0,0 +1,8 @@ +# RustdeskRelay + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `open_relay` | *Optional[bool]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/rustdeskrendezvous.md b/docs/models/rustdeskrendezvous.md new file mode 100644 index 0000000..d1e51d1 --- /dev/null +++ b/docs/models/rustdeskrendezvous.md @@ -0,0 +1,10 @@ +# RustdeskRendezvous + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `key_exchange` | [Optional[models.RustdeskRendezvousKeyExchange]](../models/rustdeskrendezvouskeyexchange.md) | :heavy_minus_sign: | N/A | +| `message_type` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `test_nat_response` | [Optional[models.RustdeskRendezvousTestNatResponse]](../models/rustdeskrendezvoustestnatresponse.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/rustdeskrendezvousconfigupdate.md b/docs/models/rustdeskrendezvousconfigupdate.md new file mode 100644 index 0000000..23af7de --- /dev/null +++ b/docs/models/rustdeskrendezvousconfigupdate.md @@ -0,0 +1,9 @@ +# RustdeskRendezvousConfigUpdate + + +## Fields + +| Field | Type | Required | Description | +| -------------------- | -------------------- | -------------------- | -------------------- | +| `rendezvous_servers` | List[*str*] | :heavy_minus_sign: | N/A | +| `serial` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/rustdeskrendezvouskeyexchange.md b/docs/models/rustdeskrendezvouskeyexchange.md new file mode 100644 index 0000000..fdb6772 --- /dev/null +++ b/docs/models/rustdeskrendezvouskeyexchange.md @@ -0,0 +1,8 @@ +# RustdeskRendezvousKeyExchange + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `keys` | List[*str*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/rustdeskrendezvoustestnatresponse.md b/docs/models/rustdeskrendezvoustestnatresponse.md new file mode 100644 index 0000000..83ca91b --- /dev/null +++ b/docs/models/rustdeskrendezvoustestnatresponse.md @@ -0,0 +1,9 @@ +# RustdeskRendezvousTestNatResponse + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `config_update` | [Optional[models.RustdeskRendezvousConfigUpdate]](../models/rustdeskrendezvousconfigupdate.md) | :heavy_minus_sign: | N/A | +| `port` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/screenshot.md b/docs/models/screenshot.md index 97adf0d..b083481 100644 --- a/docs/models/screenshot.md +++ b/docs/models/screenshot.md @@ -7,4 +7,5 @@ | ------------------ | ------------------ | ------------------ | ------------------ | | `extracted_text` | *Optional[str]* | :heavy_minus_sign: | N/A | | `handle` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `palsimhash` | *Optional[str]* | :heavy_minus_sign: | N/A | | `phash` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/searchqueryinputbody.md b/docs/models/searchqueryinputbody.md index f0c2056..743a773 100644 --- a/docs/models/searchqueryinputbody.md +++ b/docs/models/searchqueryinputbody.md @@ -6,6 +6,6 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `fields` | List[*str*] | :heavy_minus_sign: | Specify fields to only return in the response. If you provide fields and omit `host.services.port`, `host.services.transport_protocol`, and `host.services.protocol`, then `matched_services` will not be returned in the response. | host.ip | -| `page_size` | *OptionalNullable[int]* | :heavy_minus_sign: | amount of results to return per page | 1 | +| `page_size` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of results to return to per page. The default and maximum is 100. | 1 | | `page_token` | *Optional[str]* | :heavy_minus_sign: | page token for the requested page of search results | | | `query` | *str* | :heavy_check_mark: | CenQL query string to search upon | host.services: (protocol=SSH and not port: 22) | \ No newline at end of file diff --git a/docs/models/service.md b/docs/models/service.md index 9416ec5..22ec9f4 100644 --- a/docs/models/service.md +++ b/docs/models/service.md @@ -37,9 +37,11 @@ | `etcd` | [Optional[models.Etcd]](../models/etcd.md) | :heavy_minus_sign: | N/A | | `ethereum` | [Optional[models.Ethereum]](../models/ethereum.md) | :heavy_minus_sign: | N/A | | `exposures` | List[[models.Risk](../models/risk.md)] | :heavy_minus_sign: | N/A | +| `flash_socket_policy` | [Optional[models.FlashSocketPolicy]](../models/flashsocketpolicy.md) | :heavy_minus_sign: | N/A | | `fox` | [Optional[models.Fox]](../models/fox.md) | :heavy_minus_sign: | N/A | | `ftp` | [Optional[models.Ftp]](../models/ftp.md) | :heavy_minus_sign: | N/A | | `gearman` | [Optional[models.Gearman]](../models/gearman.md) | :heavy_minus_sign: | N/A | +| `gemini` | [Optional[models.Gemini]](../models/gemini.md) | :heavy_minus_sign: | N/A | | `hajime` | [Optional[models.Hajime]](../models/hajime.md) | :heavy_minus_sign: | N/A | | `hardware` | List[[models.Attribute](../models/attribute.md)] | :heavy_minus_sign: | N/A | | `hid_vertx` | [Optional[models.HidVertx]](../models/hidvertx.md) | :heavy_minus_sign: | N/A | @@ -59,7 +61,10 @@ | `labels` | List[[models.Label](../models/label.md)] | :heavy_minus_sign: | N/A | | `ldap` | [Optional[models.Ldap]](../models/ldap.md) | :heavy_minus_sign: | N/A | | `lpd` | [Optional[models.Lpd]](../models/lpd.md) | :heavy_minus_sign: | N/A | +| `mavlink` | [Optional[models.Mavlink]](../models/mavlink.md) | :heavy_minus_sign: | N/A | | `mdns` | [Optional[models.Mdns]](../models/mdns.md) | :heavy_minus_sign: | N/A | +| `melsec` | [Optional[models.Melsec]](../models/melsec.md) | :heavy_minus_sign: | N/A | +| `memberlist` | [Optional[models.Memberlist]](../models/memberlist.md) | :heavy_minus_sign: | N/A | | `memcached` | [Optional[models.Memcached]](../models/memcached.md) | :heavy_minus_sign: | N/A | | `mikrotik_winbox` | [Optional[models.MikrotikWinbox]](../models/mikrotikwinbox.md) | :heavy_minus_sign: | N/A | | `minecraft` | [Optional[models.Minecraft]](../models/minecraft.md) | :heavy_minus_sign: | N/A | @@ -105,7 +110,11 @@ | `ripple` | [Optional[models.Ripple]](../models/ripple.md) | :heavy_minus_sign: | N/A | | `rlogin` | [Optional[models.Rlogin]](../models/rlogin.md) | :heavy_minus_sign: | N/A | | `rocketmq` | [Optional[models.Rocketmq]](../models/rocketmq.md) | :heavy_minus_sign: | N/A | +| `routeros_api` | [Optional[models.RouterosAPI]](../models/routerosapi.md) | :heavy_minus_sign: | N/A | | `rtsp` | [Optional[models.Rtsp]](../models/rtsp.md) | :heavy_minus_sign: | N/A | +| `rustdesk_heartbeat` | [Optional[models.RustdeskHeartbeat]](../models/rustdeskheartbeat.md) | :heavy_minus_sign: | N/A | +| `rustdesk_relay` | [Optional[models.RustdeskRelay]](../models/rustdeskrelay.md) | :heavy_minus_sign: | N/A | +| `rustdesk_rendezvous` | [Optional[models.RustdeskRendezvous]](../models/rustdeskrendezvous.md) | :heavy_minus_sign: | N/A | | `s7` | [Optional[models.S7]](../models/s7.md) | :heavy_minus_sign: | N/A | | `sap_router` | [Optional[models.SapRouter]](../models/saprouter.md) | :heavy_minus_sign: | N/A | | `scan_time` | *Optional[str]* | :heavy_minus_sign: | N/A | diff --git a/docs/models/servicescan.md b/docs/models/servicescan.md index 0c000a9..93687f1 100644 --- a/docs/models/servicescan.md +++ b/docs/models/servicescan.md @@ -33,9 +33,11 @@ | `epmd` | [Optional[models.Epmd]](../models/epmd.md) | :heavy_minus_sign: | N/A | | `etcd` | [Optional[models.Etcd]](../models/etcd.md) | :heavy_minus_sign: | N/A | | `ethereum` | [Optional[models.Ethereum]](../models/ethereum.md) | :heavy_minus_sign: | N/A | +| `flash_socket_policy` | [Optional[models.FlashSocketPolicy]](../models/flashsocketpolicy.md) | :heavy_minus_sign: | N/A | | `fox` | [Optional[models.Fox]](../models/fox.md) | :heavy_minus_sign: | N/A | | `ftp` | [Optional[models.Ftp]](../models/ftp.md) | :heavy_minus_sign: | N/A | | `gearman` | [Optional[models.Gearman]](../models/gearman.md) | :heavy_minus_sign: | N/A | +| `gemini` | [Optional[models.Gemini]](../models/gemini.md) | :heavy_minus_sign: | N/A | | `hajime` | [Optional[models.Hajime]](../models/hajime.md) | :heavy_minus_sign: | N/A | | `hid_vertx` | [Optional[models.HidVertx]](../models/hidvertx.md) | :heavy_minus_sign: | N/A | | `hikvision` | [Optional[models.Hikvision]](../models/hikvision.md) | :heavy_minus_sign: | N/A | @@ -52,7 +54,10 @@ | `l2tp` | [Optional[models.L2Tp]](../models/l2tp.md) | :heavy_minus_sign: | N/A | | `ldap` | [Optional[models.Ldap]](../models/ldap.md) | :heavy_minus_sign: | N/A | | `lpd` | [Optional[models.Lpd]](../models/lpd.md) | :heavy_minus_sign: | N/A | +| `mavlink` | [Optional[models.Mavlink]](../models/mavlink.md) | :heavy_minus_sign: | N/A | | `mdns` | [Optional[models.Mdns]](../models/mdns.md) | :heavy_minus_sign: | N/A | +| `melsec` | [Optional[models.Melsec]](../models/melsec.md) | :heavy_minus_sign: | N/A | +| `memberlist` | [Optional[models.Memberlist]](../models/memberlist.md) | :heavy_minus_sign: | N/A | | `memcached` | [Optional[models.Memcached]](../models/memcached.md) | :heavy_minus_sign: | N/A | | `mikrotik_winbox` | [Optional[models.MikrotikWinbox]](../models/mikrotikwinbox.md) | :heavy_minus_sign: | N/A | | `minecraft` | [Optional[models.Minecraft]](../models/minecraft.md) | :heavy_minus_sign: | N/A | @@ -96,7 +101,11 @@ | `ripple` | [Optional[models.Ripple]](../models/ripple.md) | :heavy_minus_sign: | N/A | | `rlogin` | [Optional[models.Rlogin]](../models/rlogin.md) | :heavy_minus_sign: | N/A | | `rocketmq` | [Optional[models.Rocketmq]](../models/rocketmq.md) | :heavy_minus_sign: | N/A | +| `routeros_api` | [Optional[models.RouterosAPI]](../models/routerosapi.md) | :heavy_minus_sign: | N/A | | `rtsp` | [Optional[models.Rtsp]](../models/rtsp.md) | :heavy_minus_sign: | N/A | +| `rustdesk_heartbeat` | [Optional[models.RustdeskHeartbeat]](../models/rustdeskheartbeat.md) | :heavy_minus_sign: | N/A | +| `rustdesk_relay` | [Optional[models.RustdeskRelay]](../models/rustdeskrelay.md) | :heavy_minus_sign: | N/A | +| `rustdesk_rendezvous` | [Optional[models.RustdeskRendezvous]](../models/rustdeskrendezvous.md) | :heavy_minus_sign: | N/A | | `s7` | [Optional[models.S7]](../models/s7.md) | :heavy_minus_sign: | N/A | | `sap_router` | [Optional[models.SapRouter]](../models/saprouter.md) | :heavy_minus_sign: | N/A | | `scan_time` | *Optional[str]* | :heavy_minus_sign: | N/A | diff --git a/docs/sdks/accountmanagement/README.md b/docs/sdks/accountmanagement/README.md index 6125e5c..7d5aff9 100644 --- a/docs/sdks/accountmanagement/README.md +++ b/docs/sdks/accountmanagement/README.md @@ -57,6 +57,7 @@ with SDK( | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | | models.ErrorModel | 403, 404, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_organization_credits @@ -98,6 +99,7 @@ with SDK( | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | | models.ErrorModel | 403, 404, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_organization_credit_usage @@ -145,6 +147,7 @@ with SDK( | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | | models.ErrorModel | 400, 403, 404, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## invite_user_to_organization @@ -188,7 +191,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404, 422 | application/problem+json | +| models.ErrorModel | 403, 404, 409, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## list_organization_members @@ -231,7 +235,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 403, 404, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## remove_organization_member @@ -274,6 +279,7 @@ with SDK( | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | | models.ErrorModel | 403, 404, 409, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## update_organization_member @@ -318,7 +324,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 400, 403, 404, 422 | application/problem+json | +| models.ErrorModel | 400, 403, 404, 409, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_member_credit_usage @@ -367,6 +374,7 @@ with SDK( | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | | models.ErrorModel | 400, 403, 404, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_user_credits @@ -407,6 +415,7 @@ with SDK( | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | | models.ErrorModel | 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_user_credits_usage @@ -452,5 +461,6 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 404 | application/problem+json | +| models.ErrorModel | 400, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/collections/README.md b/docs/sdks/collections/README.md index f620a9f..3e61ad2 100644 --- a/docs/sdks/collections/README.md +++ b/docs/sdks/collections/README.md @@ -56,7 +56,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## create @@ -103,7 +104,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403, 409, 412, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## delete @@ -146,7 +148,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get @@ -189,7 +192,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## update @@ -237,7 +241,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404, 412 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## list_events @@ -286,7 +291,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## aggregate @@ -334,7 +340,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404, 422 | application/problem+json | +| models.ErrorModel | 400, 403, 404, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## search @@ -384,5 +391,6 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/globaldata/README.md b/docs/sdks/globaldata/README.md index b2ef5cc..4b35440 100644 --- a/docs/sdks/globaldata/README.md +++ b/docs/sdks/globaldata/README.md @@ -65,7 +65,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_certificates_raw @@ -112,7 +113,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_certificate @@ -155,7 +157,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_certificate_raw @@ -198,7 +201,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_hosts @@ -247,7 +251,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_host @@ -292,7 +297,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_host_timeline @@ -338,7 +344,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_web_properties @@ -387,7 +394,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_web_property @@ -432,7 +440,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 422 | application/problem+json | +| models.ErrorModel | 400, 403, 404, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## create_tracked_scan @@ -482,7 +491,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_tracked_scan @@ -525,7 +535,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## aggregate @@ -572,7 +583,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 422 | application/problem+json | +| models.ErrorModel | 400, 403, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## convert_legacy_search_queries @@ -621,7 +633,7 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403 | application/problem+json | | models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | @@ -671,5 +683,6 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/threathunting/README.md b/docs/sdks/threathunting/README.md index 4d1b4e7..b700bf4 100644 --- a/docs/sdks/threathunting/README.md +++ b/docs/sdks/threathunting/README.md @@ -58,7 +58,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## create_tracked_scan @@ -108,7 +109,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## get_tracked_scan_threat_hunting @@ -151,7 +153,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 404 | application/problem+json | +| models.ErrorModel | 400, 403, 404 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## list_threats @@ -194,7 +197,8 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403, 422 | application/problem+json | +| models.ErrorModel | 400, 403, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | ## value_counts @@ -251,5 +255,6 @@ with SDK( | Error Type | Status Code | Content Type | | -------------------------- | -------------------------- | -------------------------- | | models.AuthenticationError | 401 | application/json | -| models.ErrorModel | 403 | application/problem+json | +| models.ErrorModel | 400, 403, 422 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 881b6f5..26973bd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.3.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.3.2 and should not be changed by hand. [[package]] name = "annotated-types" @@ -98,7 +98,7 @@ description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" groups = ["main"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -462,7 +462,6 @@ mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} tomlkit = ">=0.10.1" -typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [package.extras] spelling = ["pyenchant (>=3.2,<4.0)"] @@ -508,7 +507,7 @@ description = "A lil' TOML parser" optional = false python-versions = ">=3.8" groups = ["dev"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -585,5 +584,5 @@ typing-extensions = ">=4.12.0" [metadata] lock-version = "2.1" -python-versions = ">=3.9.2" -content-hash = "c0dd101f07fb15e54d4562dfdf249e128fb9507759d84012283e316c226a3b8c" +python-versions = ">=3.10" +content-hash = "f6a8355b7012376d6650030a1b23aaf67653ed8ccc9eae2880ccb8d9a23e3d6b" diff --git a/pylintrc b/pylintrc index 451f601..e6ed56e 100644 --- a/pylintrc +++ b/pylintrc @@ -89,7 +89,7 @@ persistent=yes # Minimum Python version to use for version dependent checks. Will default to # the version used to run pylint. -py-version=3.9 +py-version=3.10 # Discover python modules and packages in the file system subtree. recursive=no @@ -483,7 +483,8 @@ disable=raw-checker-failed, consider-using-with, wildcard-import, unused-wildcard-import, - too-many-return-statements + too-many-return-statements, + redefined-builtin # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option diff --git a/pyproject.toml b/pyproject.toml index a39f186..6c35b32 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,11 @@ [project] name = "censys-platform" -version = "0.12.4" +version = "0.13.0" description = "Python Client SDK Generated by Speakeasy." authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" -requires-python = ">=3.9.2" +requires-python = ">=3.10" dependencies = [ "httpcore >=1.0.9", "httpx >=0.28.1", diff --git a/src/censys_platform/_version.py b/src/censys_platform/_version.py index 3b6b423..21c2607 100644 --- a/src/censys_platform/_version.py +++ b/src/censys_platform/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "censys-platform" -__version__: str = "0.12.4" -__openapi_doc_version__: str = "1.0.71" -__gen_version__: str = "2.801.2" -__user_agent__: str = "speakeasy-sdk/python 0.12.4 2.801.2 1.0.71 censys-platform" +__version__: str = "0.13.0" +__openapi_doc_version__: str = "1.0.77" +__gen_version__: str = "2.836.5" +__user_agent__: str = "speakeasy-sdk/python 0.13.0 2.836.5 1.0.77 censys-platform" try: if __package__ is not None: diff --git a/src/censys_platform/account_management.py b/src/censys_platform/account_management.py index 97bdf5c..f75ccc6 100644 --- a/src/censys_platform/account_management.py +++ b/src/censys_platform/account_management.py @@ -98,7 +98,7 @@ def get_organization_details( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -120,6 +120,9 @@ def get_organization_details( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -199,7 +202,7 @@ async def get_organization_details_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -221,6 +224,9 @@ async def get_organization_details_async( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -297,7 +303,7 @@ def get_organization_credits( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -319,6 +325,9 @@ def get_organization_credits( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -395,7 +404,7 @@ async def get_organization_credits_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -417,6 +426,9 @@ async def get_organization_credits_async( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -498,7 +510,7 @@ def get_organization_credit_usage( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["400", "401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -520,6 +532,9 @@ def get_organization_credit_usage( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -601,7 +616,7 @@ async def get_organization_credit_usage_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["400", "401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -623,6 +638,9 @@ async def get_organization_credit_usage_async( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -717,7 +735,7 @@ def invite_user_to_organization( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "409", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -732,10 +750,13 @@ def invite_user_to_organization( ) raise models.AuthenticationError(response_data, http_res) if utils.match_response( - http_res, ["403", "404", "422"], "application/problem+json" + http_res, ["403", "404", "409", "422"], "application/problem+json" ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -830,7 +851,7 @@ async def invite_user_to_organization_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "409", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -845,10 +866,13 @@ async def invite_user_to_organization_async( ) raise models.AuthenticationError(response_data, http_res) if utils.match_response( - http_res, ["403", "404", "422"], "application/problem+json" + http_res, ["403", "404", "409", "422"], "application/problem+json" ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -931,7 +955,7 @@ def list_organization_members( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -948,7 +972,12 @@ def list_organization_members( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["403", "404", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1033,7 +1062,7 @@ async def list_organization_members_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1050,7 +1079,12 @@ async def list_organization_members_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["403", "404", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1136,7 +1170,7 @@ def remove_organization_member( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "409", "422", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "409", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1155,6 +1189,9 @@ def remove_organization_member( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1238,7 +1275,7 @@ async def remove_organization_member_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "409", "422", "4XX", "5XX"], + error_status_codes=["401", "403", "404", "409", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1257,6 +1294,9 @@ async def remove_organization_member_async( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1354,7 +1394,17 @@ def update_organization_member( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["400", "401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=[ + "400", + "401", + "403", + "404", + "409", + "422", + "4XX", + "500", + "5XX", + ], retry_config=retry_config, ) @@ -1369,10 +1419,13 @@ def update_organization_member( ) raise models.AuthenticationError(response_data, http_res) if utils.match_response( - http_res, ["400", "403", "404", "422"], "application/problem+json" + http_res, ["400", "403", "404", "409", "422"], "application/problem+json" ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1470,7 +1523,17 @@ async def update_organization_member_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["400", "401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=[ + "400", + "401", + "403", + "404", + "409", + "422", + "4XX", + "500", + "5XX", + ], retry_config=retry_config, ) @@ -1485,10 +1548,13 @@ async def update_organization_member_async( ) raise models.AuthenticationError(response_data, http_res) if utils.match_response( - http_res, ["400", "403", "404", "422"], "application/problem+json" + http_res, ["400", "403", "404", "409", "422"], "application/problem+json" ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1570,7 +1636,7 @@ def get_member_credit_usage( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["400", "401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1592,6 +1658,9 @@ def get_member_credit_usage( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1673,7 +1742,7 @@ async def get_member_credit_usage_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["400", "401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1695,6 +1764,9 @@ async def get_member_credit_usage_async( ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1764,7 +1836,7 @@ def get_user_credits( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "404", "4XX", "5XX"], + error_status_codes=["401", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1784,6 +1856,9 @@ def get_user_credits( if utils.match_response(http_res, "404", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1853,7 +1928,7 @@ async def get_user_credits_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "404", "4XX", "5XX"], + error_status_codes=["401", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1873,6 +1948,9 @@ async def get_user_credits_async( if utils.match_response(http_res, "404", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1958,7 +2036,7 @@ def get_user_credits_usage( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1975,7 +2053,10 @@ def get_user_credits_usage( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "404", "application/problem+json"): + if utils.match_response(http_res, ["400", "404"], "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -2063,7 +2144,7 @@ async def get_user_credits_usage_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2080,7 +2161,10 @@ async def get_user_credits_usage_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "404", "application/problem+json"): + if utils.match_response(http_res, ["400", "404"], "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): diff --git a/src/censys_platform/collections.py b/src/censys_platform/collections.py index 23beebd..cb2c834 100644 --- a/src/censys_platform/collections.py +++ b/src/censys_platform/collections.py @@ -93,7 +93,7 @@ def list( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -110,7 +110,10 @@ def list( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response(http_res, ["400", "403"], "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -198,7 +201,7 @@ async def list_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -215,7 +218,10 @@ async def list_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response(http_res, ["400", "403"], "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -284,7 +290,7 @@ def create( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.crud_create_input_body, + request.crud_create_input_body if request is not None else None, False, True, "json", @@ -311,7 +317,17 @@ def create( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=[ + "400", + "401", + "403", + "409", + "412", + "422", + "4XX", + "500", + "5XX", + ], retry_config=retry_config, ) @@ -328,7 +344,12 @@ def create( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "409", "412", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -397,7 +418,7 @@ async def create_async( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.crud_create_input_body, + request.crud_create_input_body if request is not None else None, False, True, "json", @@ -424,7 +445,17 @@ async def create_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=[ + "400", + "401", + "403", + "409", + "412", + "422", + "4XX", + "500", + "5XX", + ], retry_config=retry_config, ) @@ -441,7 +472,12 @@ async def create_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "409", "412", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -530,7 +566,7 @@ def delete( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -544,7 +580,12 @@ def delete( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -633,7 +674,7 @@ async def delete_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -647,7 +688,12 @@ async def delete_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -732,7 +778,7 @@ def get( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -749,7 +795,12 @@ def get( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -834,7 +885,7 @@ async def get_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -851,7 +902,12 @@ async def get_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -923,7 +979,7 @@ def update( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.crud_update_input_body, + request.crud_update_input_body if request is not None else None, False, True, "json", @@ -950,7 +1006,7 @@ def update( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "412", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -967,7 +1023,12 @@ def update( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404", "412"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1039,7 +1100,7 @@ async def update_async( ), security=self.sdk_configuration.security, get_serialized_body=lambda: utils.serialize_request_body( - request.crud_update_input_body, + request.crud_update_input_body if request is not None else None, False, True, "json", @@ -1066,7 +1127,7 @@ async def update_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "412", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1083,7 +1144,12 @@ async def update_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404", "412"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1168,7 +1234,7 @@ def list_events( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1185,7 +1251,12 @@ def list_events( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1270,7 +1341,7 @@ async def list_events_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1287,7 +1358,12 @@ async def list_events_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1386,7 +1462,7 @@ def aggregate( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1404,10 +1480,13 @@ def aggregate( ) raise models.AuthenticationError(response_data, http_res) if utils.match_response( - http_res, ["403", "404", "422"], "application/problem+json" + http_res, ["400", "403", "404", "422"], "application/problem+json" ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1504,7 +1583,7 @@ async def aggregate_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1522,10 +1601,13 @@ async def aggregate_async( ) raise models.AuthenticationError(response_data, http_res) if utils.match_response( - http_res, ["403", "404", "422"], "application/problem+json" + http_res, ["400", "403", "404", "422"], "application/problem+json" ): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise models.SDKError("API error occurred", http_res, http_res_text) @@ -1622,7 +1704,7 @@ def search( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1639,7 +1721,12 @@ def search( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1738,7 +1825,7 @@ async def search_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1755,7 +1842,12 @@ async def search_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): diff --git a/src/censys_platform/global_data.py b/src/censys_platform/global_data.py index 80b1dda..6c2b623 100644 --- a/src/censys_platform/global_data.py +++ b/src/censys_platform/global_data.py @@ -97,7 +97,7 @@ def get_certificates( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -116,7 +116,12 @@ def get_certificates( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -213,7 +218,7 @@ async def get_certificates_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -232,7 +237,12 @@ async def get_certificates_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -329,7 +339,7 @@ def get_certificates_raw( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -346,7 +356,12 @@ def get_certificates_raw( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -443,7 +458,7 @@ async def get_certificates_raw_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -460,7 +475,12 @@ async def get_certificates_raw_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -545,7 +565,7 @@ def get_certificate( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -564,7 +584,12 @@ def get_certificate( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -649,7 +674,7 @@ async def get_certificate_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -668,7 +693,12 @@ async def get_certificate_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -753,7 +783,7 @@ def get_certificate_raw( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], stream=True, retry_config=retry_config, ) @@ -769,7 +799,15 @@ def get_certificate_raw( models.AuthenticationErrorData, http_res, http_res_text ) raise models.AuthenticationError(response_data, http_res, http_res_text) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + http_res_text = utils.stream_to_text(http_res) + response_data = unmarshal_json_response( + models.ErrorModelData, http_res, http_res_text + ) + raise models.ErrorModel(response_data, http_res, http_res_text) + if utils.match_response(http_res, "500", "application/problem+json"): http_res_text = utils.stream_to_text(http_res) response_data = unmarshal_json_response( models.ErrorModelData, http_res, http_res_text @@ -858,7 +896,7 @@ async def get_certificate_raw_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], stream=True, retry_config=retry_config, ) @@ -874,7 +912,15 @@ async def get_certificate_raw_async( models.AuthenticationErrorData, http_res, http_res_text ) raise models.AuthenticationError(response_data, http_res, http_res_text) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + http_res_text = await utils.stream_to_text_async(http_res) + response_data = unmarshal_json_response( + models.ErrorModelData, http_res, http_res_text + ) + raise models.ErrorModel(response_data, http_res, http_res_text) + if utils.match_response(http_res, "500", "application/problem+json"): http_res_text = await utils.stream_to_text_async(http_res) response_data = unmarshal_json_response( models.ErrorModelData, http_res, http_res_text @@ -974,7 +1020,7 @@ def get_hosts( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -993,7 +1039,12 @@ def get_hosts( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1089,7 +1140,7 @@ async def get_hosts_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1108,7 +1159,12 @@ async def get_hosts_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1196,7 +1252,7 @@ def get_host( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1215,7 +1271,12 @@ def get_host( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1303,7 +1364,7 @@ async def get_host_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1322,7 +1383,12 @@ async def get_host_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1413,7 +1479,7 @@ def get_host_timeline( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1432,7 +1498,12 @@ def get_host_timeline( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1523,7 +1594,7 @@ async def get_host_timeline_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1542,7 +1613,12 @@ async def get_host_timeline_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1639,7 +1715,7 @@ def get_web_properties( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1658,7 +1734,12 @@ def get_web_properties( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1755,7 +1836,7 @@ async def get_web_properties_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1774,7 +1855,12 @@ async def get_web_properties_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1862,7 +1948,7 @@ def get_web_property( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1881,7 +1967,12 @@ def get_web_property( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "422"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1969,7 +2060,7 @@ async def get_web_property_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1988,7 +2079,12 @@ async def get_web_property_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "422"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -2084,7 +2180,7 @@ def create_tracked_scan( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2101,7 +2197,12 @@ def create_tracked_scan( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -2197,7 +2298,7 @@ async def create_tracked_scan_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2214,7 +2315,12 @@ async def create_tracked_scan_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -2299,7 +2405,7 @@ def get_tracked_scan( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2318,7 +2424,12 @@ def get_tracked_scan( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -2403,7 +2514,7 @@ async def get_tracked_scan_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2422,7 +2533,12 @@ async def get_tracked_scan_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -2518,7 +2634,7 @@ def aggregate( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2535,7 +2651,12 @@ def aggregate( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "422"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -2631,7 +2752,7 @@ async def aggregate_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2648,7 +2769,12 @@ async def aggregate_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "422"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -2745,7 +2871,7 @@ def convert_legacy_search_queries( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "500", "5XX"], + error_status_codes=["400", "401", "403", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2762,7 +2888,7 @@ def convert_legacy_search_queries( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response(http_res, ["400", "403"], "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "500", "application/problem+json"): @@ -2862,7 +2988,7 @@ async def convert_legacy_search_queries_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "500", "5XX"], + error_status_codes=["400", "401", "403", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2879,7 +3005,7 @@ async def convert_legacy_search_queries_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response(http_res, ["400", "403"], "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "500", "application/problem+json"): @@ -2978,7 +3104,7 @@ def search( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -2995,7 +3121,12 @@ def search( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -3091,7 +3222,7 @@ async def search_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -3108,7 +3239,12 @@ async def search_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): diff --git a/src/censys_platform/models/__init__.py b/src/censys_platform/models/__init__.py index ab90863..5ba2f0d 100644 --- a/src/censys_platform/models/__init__.py +++ b/src/censys_platform/models/__init__.py @@ -1,10 +1,9 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from .sdkbaseerror import SDKBaseError -from typing import TYPE_CHECKING -from importlib import import_module -import builtins -import sys +from typing import Any, TYPE_CHECKING + +from censys_platform.utils.dynamic_imports import lazy_getattr, lazy_dir if TYPE_CHECKING: from .activemq import Activemq, ActivemqTypedDict @@ -359,15 +358,23 @@ ) from .fielddiff import FieldDiff, FieldDiffTypedDict from .fieldvaluepair import FieldValuePair, FieldValuePairTypedDict + from .flashsocketpolicy import FlashSocketPolicy, FlashSocketPolicyTypedDict + from .flashsocketpolicy_allowaccessfrom import ( + FlashSocketPolicyAllowAccessFrom, + FlashSocketPolicyAllowAccessFromTypedDict, + ) from .floatvalue import FloatValue, FloatValueTypedDict from .fortigate import Fortigate, FortigateTypedDict from .forwarddnsresolved import ForwardDNSResolved, ForwardDNSResolvedTypedDict from .fox import Fox, FoxTypedDict from .ftp import Ftp, FtpTypedDict from .gearman import Gearman, GearmanTypedDict + from .gemini import Gemini, GeminiTypedDict from .generalnames import GeneralNames, GeneralNamesTypedDict from .generalsubtreeip import GeneralSubtreeIP, GeneralSubtreeIPTypedDict from .graphql import Graphql, GraphqlTypedDict + from .greynoise import Greynoise, GreynoiseTypedDict + from .greynoise_tag import GreynoiseTag, GreynoiseTagTypedDict from .hajime import Hajime, HajimeTypedDict from .hidvertx import HidVertx, HidVertxTypedDict from .hikvision import Hikvision, HikvisionTypedDict @@ -530,17 +537,22 @@ MatchedServiceTypedDict, TransportProtocol, ) + from .mavlink import Mavlink, MavlinkTypedDict + from .mavlink_frame import MavlinkFrame, MavlinkFrameTypedDict from .mdns import Mdns, MdnsTypedDict from .mdnsresult import MdnsResult, MdnsResultTypedDict from .mediacapabilities import MediaCapabilities, MediaCapabilitiesTypedDict from .mediaprofile import MediaProfile, MediaProfileTypedDict from .mediastreaming import MediaStreaming, MediaStreamingTypedDict + from .melsec import Melsec, MelsecTypedDict from .membercounts import ( ByRole, ByRoleTypedDict, MemberCounts, MemberCountsTypedDict, ) + from .memberlist import Memberlist, MemberlistTypedDict + from .memberlist_nodeinfo import MemberlistNodeInfo, MemberlistNodeInfoTypedDict from .members import Members, MembersTypedDict from .memcached import Memcached, MemcachedTypedDict from .metrics import Metrics, MetricsTypedDict @@ -867,11 +879,31 @@ from .rocketmq_topiclist import RocketmqTopicList, RocketmqTopicListTypedDict from .rootstore import RootStore, RootStoreTypedDict, Type from .rootstore_chain import RootStoreChain, RootStoreChainTypedDict + from .routerosapi import RouterosAPI, RouterosAPITypedDict from .routeupdated import RouteUpdated, RouteUpdatedTypedDict from .routing import Routing, RoutingTypedDict from .rsacryptographickey import RSACryptographicKey, RSACryptographicKeyTypedDict from .rsapublickey import RsaPublicKey, RsaPublicKeyTypedDict from .rtsp import Rtsp, RtspTypedDict + from .rustdeskheartbeat import RustdeskHeartbeat, RustdeskHeartbeatTypedDict + from .rustdeskheartbeat_registerpeerresponse import ( + RustdeskHeartbeatRegisterPeerResponse, + RustdeskHeartbeatRegisterPeerResponseTypedDict, + ) + from .rustdeskrelay import RustdeskRelay, RustdeskRelayTypedDict + from .rustdeskrendezvous import RustdeskRendezvous, RustdeskRendezvousTypedDict + from .rustdeskrendezvous_configupdate import ( + RustdeskRendezvousConfigUpdate, + RustdeskRendezvousConfigUpdateTypedDict, + ) + from .rustdeskrendezvous_keyexchange import ( + RustdeskRendezvousKeyExchange, + RustdeskRendezvousKeyExchangeTypedDict, + ) + from .rustdeskrendezvous_testnatresponse import ( + RustdeskRendezvousTestNatResponse, + RustdeskRendezvousTestNatResponseTypedDict, + ) from .s7 import S7, S7TypedDict from .saprouter import SapRouter, SapRouterTypedDict from .saprouter_clientinfo import SapRouterClientInfo, SapRouterClientInfoTypedDict @@ -1372,6 +1404,7 @@ from .zeromq_greeting import ZeromqGreeting, ZeromqGreetingTypedDict from .zeromq_handshake import ZeromqHandshake, ZeromqHandshakeTypedDict from .zlint import ZLint, ZLintTypedDict + from . import internal __all__ = [ "Activemq", @@ -1696,6 +1729,10 @@ "FieldDiffTypedDict", "FieldValuePair", "FieldValuePairTypedDict", + "FlashSocketPolicy", + "FlashSocketPolicyAllowAccessFrom", + "FlashSocketPolicyAllowAccessFromTypedDict", + "FlashSocketPolicyTypedDict", "FloatValue", "FloatValueTypedDict", "Fortigate", @@ -1708,6 +1745,8 @@ "FtpTypedDict", "Gearman", "GearmanTypedDict", + "Gemini", + "GeminiTypedDict", "GeneralNames", "GeneralNamesTypedDict", "GeneralSubtreeIP", @@ -1715,6 +1754,10 @@ "Granularity", "Graphql", "GraphqlTypedDict", + "Greynoise", + "GreynoiseTag", + "GreynoiseTagTypedDict", + "GreynoiseTypedDict", "HTTP", "HTTPFavicon", "HTTPFaviconTypedDict", @@ -1886,6 +1929,10 @@ "LpdTypedDict", "MatchedService", "MatchedServiceTypedDict", + "Mavlink", + "MavlinkFrame", + "MavlinkFrameTypedDict", + "MavlinkTypedDict", "Mdns", "MdnsResult", "MdnsResultTypedDict", @@ -1896,8 +1943,14 @@ "MediaProfileTypedDict", "MediaStreaming", "MediaStreamingTypedDict", + "Melsec", + "MelsecTypedDict", "MemberCounts", "MemberCountsTypedDict", + "Memberlist", + "MemberlistNodeInfo", + "MemberlistNodeInfoTypedDict", + "MemberlistTypedDict", "Members", "MembersTypedDict", "Memcached", @@ -2249,12 +2302,28 @@ "RootStoreTypedDict", "RouteUpdated", "RouteUpdatedTypedDict", + "RouterosAPI", + "RouterosAPITypedDict", "Routing", "RoutingTypedDict", "RsaPublicKey", "RsaPublicKeyTypedDict", "Rtsp", "RtspTypedDict", + "RustdeskHeartbeat", + "RustdeskHeartbeatRegisterPeerResponse", + "RustdeskHeartbeatRegisterPeerResponseTypedDict", + "RustdeskHeartbeatTypedDict", + "RustdeskRelay", + "RustdeskRelayTypedDict", + "RustdeskRendezvous", + "RustdeskRendezvousConfigUpdate", + "RustdeskRendezvousConfigUpdateTypedDict", + "RustdeskRendezvousKeyExchange", + "RustdeskRendezvousKeyExchangeTypedDict", + "RustdeskRendezvousTestNatResponse", + "RustdeskRendezvousTestNatResponseTypedDict", + "RustdeskRendezvousTypedDict", "S7", "S7TypedDict", "SDKBaseError", @@ -3078,6 +3147,10 @@ "FieldDiffTypedDict": ".fielddiff", "FieldValuePair": ".fieldvaluepair", "FieldValuePairTypedDict": ".fieldvaluepair", + "FlashSocketPolicy": ".flashsocketpolicy", + "FlashSocketPolicyTypedDict": ".flashsocketpolicy", + "FlashSocketPolicyAllowAccessFrom": ".flashsocketpolicy_allowaccessfrom", + "FlashSocketPolicyAllowAccessFromTypedDict": ".flashsocketpolicy_allowaccessfrom", "FloatValue": ".floatvalue", "FloatValueTypedDict": ".floatvalue", "Fortigate": ".fortigate", @@ -3090,12 +3163,18 @@ "FtpTypedDict": ".ftp", "Gearman": ".gearman", "GearmanTypedDict": ".gearman", + "Gemini": ".gemini", + "GeminiTypedDict": ".gemini", "GeneralNames": ".generalnames", "GeneralNamesTypedDict": ".generalnames", "GeneralSubtreeIP": ".generalsubtreeip", "GeneralSubtreeIPTypedDict": ".generalsubtreeip", "Graphql": ".graphql", "GraphqlTypedDict": ".graphql", + "Greynoise": ".greynoise", + "GreynoiseTypedDict": ".greynoise", + "GreynoiseTag": ".greynoise_tag", + "GreynoiseTagTypedDict": ".greynoise_tag", "Hajime": ".hajime", "HajimeTypedDict": ".hajime", "HidVertx": ".hidvertx", @@ -3264,6 +3343,10 @@ "MatchedService": ".matchedservice", "MatchedServiceTypedDict": ".matchedservice", "TransportProtocol": ".matchedservice", + "Mavlink": ".mavlink", + "MavlinkTypedDict": ".mavlink", + "MavlinkFrame": ".mavlink_frame", + "MavlinkFrameTypedDict": ".mavlink_frame", "Mdns": ".mdns", "MdnsTypedDict": ".mdns", "MdnsResult": ".mdnsresult", @@ -3274,10 +3357,16 @@ "MediaProfileTypedDict": ".mediaprofile", "MediaStreaming": ".mediastreaming", "MediaStreamingTypedDict": ".mediastreaming", + "Melsec": ".melsec", + "MelsecTypedDict": ".melsec", "ByRole": ".membercounts", "ByRoleTypedDict": ".membercounts", "MemberCounts": ".membercounts", "MemberCountsTypedDict": ".membercounts", + "Memberlist": ".memberlist", + "MemberlistTypedDict": ".memberlist", + "MemberlistNodeInfo": ".memberlist_nodeinfo", + "MemberlistNodeInfoTypedDict": ".memberlist_nodeinfo", "Members": ".members", "MembersTypedDict": ".members", "Memcached": ".memcached", @@ -3614,6 +3703,8 @@ "Type": ".rootstore", "RootStoreChain": ".rootstore_chain", "RootStoreChainTypedDict": ".rootstore_chain", + "RouterosAPI": ".routerosapi", + "RouterosAPITypedDict": ".routerosapi", "RouteUpdated": ".routeupdated", "RouteUpdatedTypedDict": ".routeupdated", "Routing": ".routing", @@ -3624,6 +3715,20 @@ "RsaPublicKeyTypedDict": ".rsapublickey", "Rtsp": ".rtsp", "RtspTypedDict": ".rtsp", + "RustdeskHeartbeat": ".rustdeskheartbeat", + "RustdeskHeartbeatTypedDict": ".rustdeskheartbeat", + "RustdeskHeartbeatRegisterPeerResponse": ".rustdeskheartbeat_registerpeerresponse", + "RustdeskHeartbeatRegisterPeerResponseTypedDict": ".rustdeskheartbeat_registerpeerresponse", + "RustdeskRelay": ".rustdeskrelay", + "RustdeskRelayTypedDict": ".rustdeskrelay", + "RustdeskRendezvous": ".rustdeskrendezvous", + "RustdeskRendezvousTypedDict": ".rustdeskrendezvous", + "RustdeskRendezvousConfigUpdate": ".rustdeskrendezvous_configupdate", + "RustdeskRendezvousConfigUpdateTypedDict": ".rustdeskrendezvous_configupdate", + "RustdeskRendezvousKeyExchange": ".rustdeskrendezvous_keyexchange", + "RustdeskRendezvousKeyExchangeTypedDict": ".rustdeskrendezvous_keyexchange", + "RustdeskRendezvousTestNatResponse": ".rustdeskrendezvous_testnatresponse", + "RustdeskRendezvousTestNatResponseTypedDict": ".rustdeskrendezvous_testnatresponse", "S7": ".s7", "S7TypedDict": ".s7", "SapRouter": ".saprouter", @@ -4104,40 +4209,17 @@ "ZLintTypedDict": ".zlint", } - -def dynamic_import(modname, retries=3): - for attempt in range(retries): - try: - return import_module(modname, __package__) - except KeyError: - # Clear any half-initialized module and retry - sys.modules.pop(modname, None) - if attempt == retries - 1: - break - raise KeyError(f"Failed to import module '{modname}' after {retries} attempts") +_sub_packages = ["internal"] -def __getattr__(attr_name: str) -> object: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError( - f"No {attr_name} found in _dynamic_imports for module name -> {__name__} " - ) - - try: - module = dynamic_import(module_name) - result = getattr(module, attr_name) - return result - except ImportError as e: - raise ImportError( - f"Failed to import {attr_name} from {module_name}: {e}" - ) from e - except AttributeError as e: - raise AttributeError( - f"Failed to get {attr_name} from {module_name}: {e}" - ) from e +def __getattr__(attr_name: str) -> Any: + return lazy_getattr( + attr_name, + package=__package__, + dynamic_imports=_dynamic_imports, + sub_packages=_sub_packages, + ) def __dir__(): - lazy_attrs = builtins.list(_dynamic_imports.keys()) - return builtins.sorted(lazy_attrs) + return lazy_dir(dynamic_imports=_dynamic_imports, sub_packages=_sub_packages) diff --git a/src/censys_platform/models/elffile.py b/src/censys_platform/models/elffile.py index 0d436b8..9af18c6 100644 --- a/src/censys_platform/models/elffile.py +++ b/src/censys_platform/models/elffile.py @@ -42,3 +42,9 @@ def serialize_model(self, handler): m[k] = val return m + + +try: + ElfFile.model_rebuild() +except NameError: + pass diff --git a/src/censys_platform/models/flashsocketpolicy.py b/src/censys_platform/models/flashsocketpolicy.py new file mode 100644 index 0000000..0e0b937 --- /dev/null +++ b/src/censys_platform/models/flashsocketpolicy.py @@ -0,0 +1,58 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .flashsocketpolicy_allowaccessfrom import ( + FlashSocketPolicyAllowAccessFrom, + FlashSocketPolicyAllowAccessFromTypedDict, +) +from censys_platform.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class FlashSocketPolicyTypedDict(TypedDict): + allow_access_from: NotRequired[ + Nullable[List[FlashSocketPolicyAllowAccessFromTypedDict]] + ] + policy: NotRequired[str] + site_control: NotRequired[str] + + +class FlashSocketPolicy(BaseModel): + allow_access_from: OptionalNullable[List[FlashSocketPolicyAllowAccessFrom]] = UNSET + + policy: Optional[str] = None + + site_control: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["allow_access_from", "policy", "site_control"]) + nullable_fields = set(["allow_access_from"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/censys_platform/models/flashsocketpolicy_allowaccessfrom.py b/src/censys_platform/models/flashsocketpolicy_allowaccessfrom.py new file mode 100644 index 0000000..914c4db --- /dev/null +++ b/src/censys_platform/models/flashsocketpolicy_allowaccessfrom.py @@ -0,0 +1,37 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class FlashSocketPolicyAllowAccessFromTypedDict(TypedDict): + domain: NotRequired[str] + secure: NotRequired[bool] + to_ports: NotRequired[str] + + +class FlashSocketPolicyAllowAccessFrom(BaseModel): + domain: Optional[str] = None + + secure: Optional[bool] = None + + to_ports: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["domain", "secure", "to_ports"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/gemini.py b/src/censys_platform/models/gemini.py new file mode 100644 index 0000000..4819249 --- /dev/null +++ b/src/censys_platform/models/gemini.py @@ -0,0 +1,40 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class GeminiTypedDict(TypedDict): + body: NotRequired[str] + client_cert_required: NotRequired[bool] + meta: NotRequired[str] + status_code: NotRequired[int] + + +class Gemini(BaseModel): + body: Optional[str] = None + + client_cert_required: Optional[bool] = None + + meta: Optional[str] = None + + status_code: Optional[int] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["body", "client_cert_required", "meta", "status_code"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/greynoise.py b/src/censys_platform/models/greynoise.py new file mode 100644 index 0000000..67f3afb --- /dev/null +++ b/src/censys_platform/models/greynoise.py @@ -0,0 +1,59 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .greynoise_tag import GreynoiseTag, GreynoiseTagTypedDict +from censys_platform.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class GreynoiseTypedDict(TypedDict): + actor: NotRequired[str] + r"""The actor that was observed.""" + classification: NotRequired[str] + r"""The classification of the IP address.""" + tags: NotRequired[Nullable[List[GreynoiseTagTypedDict]]] + r"""The tags associated with the IP address.""" + + +class Greynoise(BaseModel): + actor: Optional[str] = None + r"""The actor that was observed.""" + + classification: Optional[str] = None + r"""The classification of the IP address.""" + + tags: OptionalNullable[List[GreynoiseTag]] = UNSET + r"""The tags associated with the IP address.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["actor", "classification", "tags"]) + nullable_fields = set(["tags"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/censys_platform/models/greynoise_tag.py b/src/censys_platform/models/greynoise_tag.py new file mode 100644 index 0000000..c783f32 --- /dev/null +++ b/src/censys_platform/models/greynoise_tag.py @@ -0,0 +1,33 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class GreynoiseTagTypedDict(TypedDict): + name: NotRequired[str] + r"""The name of the tag.""" + + +class GreynoiseTag(BaseModel): + name: Optional[str] = None + r"""The name of the tag.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["name"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/host.py b/src/censys_platform/models/host.py index c2fb6cf..3cccb2d 100644 --- a/src/censys_platform/models/host.py +++ b/src/censys_platform/models/host.py @@ -2,6 +2,7 @@ from __future__ import annotations from .attribute import Attribute, AttributeTypedDict +from .greynoise import Greynoise, GreynoiseTypedDict from .hostdns import HostDNS, HostDNSTypedDict from .label import Label, LabelTypedDict from .location import Location, LocationTypedDict @@ -23,6 +24,7 @@ class HostTypedDict(TypedDict): autonomous_system: NotRequired[RoutingTypedDict] dns: NotRequired[HostDNSTypedDict] + greynoise: NotRequired[GreynoiseTypedDict] hardware: NotRequired[AttributeTypedDict] ip: NotRequired[str] labels: NotRequired[Nullable[List[LabelTypedDict]]] @@ -38,6 +40,8 @@ class Host(BaseModel): dns: Optional[HostDNS] = None + greynoise: Optional[Greynoise] = None + hardware: Optional[Attribute] = None ip: Optional[str] = None @@ -60,6 +64,7 @@ def serialize_model(self, handler): [ "autonomous_system", "dns", + "greynoise", "hardware", "ip", "labels", diff --git a/src/censys_platform/models/http_redirectchainlink.py b/src/censys_platform/models/http_redirectchainlink.py index 8eccbf1..9cb66d9 100644 --- a/src/censys_platform/models/http_redirectchainlink.py +++ b/src/censys_platform/models/http_redirectchainlink.py @@ -22,6 +22,7 @@ class HTTPRedirectChainLinkTypedDict(TypedDict): path: NotRequired[str] port: NotRequired[int] reason: NotRequired[str] + scheme: NotRequired[str] transport_protocol: NotRequired[HTTPRedirectChainLinkTransportProtocol] @@ -34,6 +35,8 @@ class HTTPRedirectChainLink(BaseModel): reason: Optional[str] = None + scheme: Optional[str] = None + transport_protocol: Optional[HTTPRedirectChainLinkTransportProtocol] = None @field_serializer("transport_protocol") @@ -48,7 +51,7 @@ def serialize_transport_protocol(self, value): @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( - ["hostname", "path", "port", "reason", "transport_protocol"] + ["hostname", "path", "port", "reason", "scheme", "transport_protocol"] ) serialized = handler(self) m = {} diff --git a/src/censys_platform/models/internal/__init__.py b/src/censys_platform/models/internal/__init__.py index e7070a1..f4e9a8b 100644 --- a/src/censys_platform/models/internal/__init__.py +++ b/src/censys_platform/models/internal/__init__.py @@ -1,9 +1,8 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from typing import TYPE_CHECKING -from importlib import import_module -import builtins -import sys +from typing import Any, TYPE_CHECKING + +from censys_platform.utils.dynamic_imports import lazy_getattr, lazy_dir if TYPE_CHECKING: from .globals import Globals, GlobalsTypedDict @@ -16,39 +15,11 @@ } -def dynamic_import(modname, retries=3): - for attempt in range(retries): - try: - return import_module(modname, __package__) - except KeyError: - # Clear any half-initialized module and retry - sys.modules.pop(modname, None) - if attempt == retries - 1: - break - raise KeyError(f"Failed to import module '{modname}' after {retries} attempts") - - -def __getattr__(attr_name: str) -> object: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError( - f"No {attr_name} found in _dynamic_imports for module name -> {__name__} " - ) - - try: - module = dynamic_import(module_name) - result = getattr(module, attr_name) - return result - except ImportError as e: - raise ImportError( - f"Failed to import {attr_name} from {module_name}: {e}" - ) from e - except AttributeError as e: - raise AttributeError( - f"Failed to get {attr_name} from {module_name}: {e}" - ) from e +def __getattr__(attr_name: str) -> Any: + return lazy_getattr( + attr_name, package=__package__, dynamic_imports=_dynamic_imports + ) def __dir__(): - lazy_attrs = builtins.list(_dynamic_imports.keys()) - return builtins.sorted(lazy_attrs) + return lazy_dir(dynamic_imports=_dynamic_imports) diff --git a/src/censys_platform/models/ipmi_rmcpheader_messageclass.py b/src/censys_platform/models/ipmi_rmcpheader_messageclass.py index 1eaf013..e619e9a 100644 --- a/src/censys_platform/models/ipmi_rmcpheader_messageclass.py +++ b/src/censys_platform/models/ipmi_rmcpheader_messageclass.py @@ -47,3 +47,9 @@ def serialize_model(self, handler): m[k] = val return m + + +try: + IpmiRMCPHeaderMessageClass.model_rebuild() +except NameError: + pass diff --git a/src/censys_platform/models/mavlink.py b/src/censys_platform/models/mavlink.py new file mode 100644 index 0000000..e5b473a --- /dev/null +++ b/src/censys_platform/models/mavlink.py @@ -0,0 +1,50 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .mavlink_frame import MavlinkFrame, MavlinkFrameTypedDict +from censys_platform.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class MavlinkTypedDict(TypedDict): + frames: NotRequired[Nullable[List[MavlinkFrameTypedDict]]] + saw_pong: NotRequired[bool] + + +class Mavlink(BaseModel): + frames: OptionalNullable[List[MavlinkFrame]] = UNSET + + saw_pong: Optional[bool] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["frames", "saw_pong"]) + nullable_fields = set(["frames"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/censys_platform/models/mavlink_frame.py b/src/censys_platform/models/mavlink_frame.py new file mode 100644 index 0000000..26c2669 --- /dev/null +++ b/src/censys_platform/models/mavlink_frame.py @@ -0,0 +1,55 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class MavlinkFrameTypedDict(TypedDict): + component_id: NotRequired[int] + message_id: NotRequired[int] + message_type: NotRequired[str] + payload: NotRequired[str] + system_id: NotRequired[int] + version: NotRequired[int] + + +class MavlinkFrame(BaseModel): + component_id: Optional[int] = None + + message_id: Optional[int] = None + + message_type: Optional[str] = None + + payload: Optional[str] = None + + system_id: Optional[int] = None + + version: Optional[int] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "component_id", + "message_id", + "message_type", + "payload", + "system_id", + "version", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/melsec.py b/src/censys_platform/models/melsec.py new file mode 100644 index 0000000..39617f8 --- /dev/null +++ b/src/censys_platform/models/melsec.py @@ -0,0 +1,31 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class MelsecTypedDict(TypedDict): + cpu_info: NotRequired[str] + + +class Melsec(BaseModel): + cpu_info: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["cpu_info"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/memberlist.py b/src/censys_platform/models/memberlist.py new file mode 100644 index 0000000..fa8666b --- /dev/null +++ b/src/censys_platform/models/memberlist.py @@ -0,0 +1,52 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .memberlist_nodeinfo import MemberlistNodeInfo, MemberlistNodeInfoTypedDict +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class MemberlistTypedDict(TypedDict): + encrypted: NotRequired[bool] + encrypted_len: NotRequired[int] + encryption_version: NotRequired[int] + error_message: NotRequired[str] + node: NotRequired[MemberlistNodeInfoTypedDict] + + +class Memberlist(BaseModel): + encrypted: Optional[bool] = None + + encrypted_len: Optional[int] = None + + encryption_version: Optional[int] = None + + error_message: Optional[str] = None + + node: Optional[MemberlistNodeInfo] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "encrypted", + "encrypted_len", + "encryption_version", + "error_message", + "node", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/memberlist_nodeinfo.py b/src/censys_platform/models/memberlist_nodeinfo.py new file mode 100644 index 0000000..3ece455 --- /dev/null +++ b/src/censys_platform/models/memberlist_nodeinfo.py @@ -0,0 +1,74 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class MemberlistNodeInfoTypedDict(TypedDict): + delegate_versions: NotRequired[Nullable[List[int]]] + incarnation: NotRequired[int] + ip: NotRequired[str] + meta: NotRequired[str] + name: NotRequired[str] + port: NotRequired[int] + protocol_version: NotRequired[int] + + +class MemberlistNodeInfo(BaseModel): + delegate_versions: OptionalNullable[List[int]] = UNSET + + incarnation: Optional[int] = None + + ip: Optional[str] = None + + meta: Optional[str] = None + + name: Optional[str] = None + + port: Optional[int] = None + + protocol_version: Optional[int] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "delegate_versions", + "incarnation", + "ip", + "meta", + "name", + "port", + "protocol_version", + ] + ) + nullable_fields = set(["delegate_versions"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/censys_platform/models/rdate.py b/src/censys_platform/models/rdate.py index c3c6979..2a46676 100644 --- a/src/censys_platform/models/rdate.py +++ b/src/censys_platform/models/rdate.py @@ -30,3 +30,9 @@ def serialize_model(self, handler): m[k] = val return m + + +try: + Rdate.model_rebuild() +except NameError: + pass diff --git a/src/censys_platform/models/routerosapi.py b/src/censys_platform/models/routerosapi.py new file mode 100644 index 0000000..24cb36e --- /dev/null +++ b/src/censys_platform/models/routerosapi.py @@ -0,0 +1,37 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class RouterosAPITypedDict(TypedDict): + message: NotRequired[str] + raw_response: NotRequired[str] + reply_word: NotRequired[str] + + +class RouterosAPI(BaseModel): + message: Optional[str] = None + + raw_response: Optional[str] = None + + reply_word: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["message", "raw_response", "reply_word"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/rustdeskheartbeat.py b/src/censys_platform/models/rustdeskheartbeat.py new file mode 100644 index 0000000..53216be --- /dev/null +++ b/src/censys_platform/models/rustdeskheartbeat.py @@ -0,0 +1,38 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .rustdeskheartbeat_registerpeerresponse import ( + RustdeskHeartbeatRegisterPeerResponse, + RustdeskHeartbeatRegisterPeerResponseTypedDict, +) +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class RustdeskHeartbeatTypedDict(TypedDict): + message_type: NotRequired[str] + register_peer_response: NotRequired[RustdeskHeartbeatRegisterPeerResponseTypedDict] + + +class RustdeskHeartbeat(BaseModel): + message_type: Optional[str] = None + + register_peer_response: Optional[RustdeskHeartbeatRegisterPeerResponse] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["message_type", "register_peer_response"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/rustdeskheartbeat_registerpeerresponse.py b/src/censys_platform/models/rustdeskheartbeat_registerpeerresponse.py new file mode 100644 index 0000000..bd04e38 --- /dev/null +++ b/src/censys_platform/models/rustdeskheartbeat_registerpeerresponse.py @@ -0,0 +1,31 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class RustdeskHeartbeatRegisterPeerResponseTypedDict(TypedDict): + request_public_key: NotRequired[bool] + + +class RustdeskHeartbeatRegisterPeerResponse(BaseModel): + request_public_key: Optional[bool] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["request_public_key"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/rustdeskrelay.py b/src/censys_platform/models/rustdeskrelay.py new file mode 100644 index 0000000..7685cf6 --- /dev/null +++ b/src/censys_platform/models/rustdeskrelay.py @@ -0,0 +1,31 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class RustdeskRelayTypedDict(TypedDict): + open_relay: NotRequired[bool] + + +class RustdeskRelay(BaseModel): + open_relay: Optional[bool] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["open_relay"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/rustdeskrendezvous.py b/src/censys_platform/models/rustdeskrendezvous.py new file mode 100644 index 0000000..a09b306 --- /dev/null +++ b/src/censys_platform/models/rustdeskrendezvous.py @@ -0,0 +1,45 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .rustdeskrendezvous_keyexchange import ( + RustdeskRendezvousKeyExchange, + RustdeskRendezvousKeyExchangeTypedDict, +) +from .rustdeskrendezvous_testnatresponse import ( + RustdeskRendezvousTestNatResponse, + RustdeskRendezvousTestNatResponseTypedDict, +) +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class RustdeskRendezvousTypedDict(TypedDict): + key_exchange: NotRequired[RustdeskRendezvousKeyExchangeTypedDict] + message_type: NotRequired[str] + test_nat_response: NotRequired[RustdeskRendezvousTestNatResponseTypedDict] + + +class RustdeskRendezvous(BaseModel): + key_exchange: Optional[RustdeskRendezvousKeyExchange] = None + + message_type: Optional[str] = None + + test_nat_response: Optional[RustdeskRendezvousTestNatResponse] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["key_exchange", "message_type", "test_nat_response"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/rustdeskrendezvous_configupdate.py b/src/censys_platform/models/rustdeskrendezvous_configupdate.py new file mode 100644 index 0000000..5acd2cb --- /dev/null +++ b/src/censys_platform/models/rustdeskrendezvous_configupdate.py @@ -0,0 +1,49 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import NotRequired, TypedDict + + +class RustdeskRendezvousConfigUpdateTypedDict(TypedDict): + rendezvous_servers: NotRequired[Nullable[List[str]]] + serial: NotRequired[int] + + +class RustdeskRendezvousConfigUpdate(BaseModel): + rendezvous_servers: OptionalNullable[List[str]] = UNSET + + serial: Optional[int] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["rendezvous_servers", "serial"]) + nullable_fields = set(["rendezvous_servers"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/censys_platform/models/rustdeskrendezvous_keyexchange.py b/src/censys_platform/models/rustdeskrendezvous_keyexchange.py new file mode 100644 index 0000000..6af5bfe --- /dev/null +++ b/src/censys_platform/models/rustdeskrendezvous_keyexchange.py @@ -0,0 +1,46 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from pydantic import model_serializer +from typing import List +from typing_extensions import NotRequired, TypedDict + + +class RustdeskRendezvousKeyExchangeTypedDict(TypedDict): + keys: NotRequired[Nullable[List[str]]] + + +class RustdeskRendezvousKeyExchange(BaseModel): + keys: OptionalNullable[List[str]] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["keys"]) + nullable_fields = set(["keys"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m diff --git a/src/censys_platform/models/rustdeskrendezvous_testnatresponse.py b/src/censys_platform/models/rustdeskrendezvous_testnatresponse.py new file mode 100644 index 0000000..f83d427 --- /dev/null +++ b/src/censys_platform/models/rustdeskrendezvous_testnatresponse.py @@ -0,0 +1,38 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .rustdeskrendezvous_configupdate import ( + RustdeskRendezvousConfigUpdate, + RustdeskRendezvousConfigUpdateTypedDict, +) +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class RustdeskRendezvousTestNatResponseTypedDict(TypedDict): + config_update: NotRequired[RustdeskRendezvousConfigUpdateTypedDict] + port: NotRequired[int] + + +class RustdeskRendezvousTestNatResponse(BaseModel): + config_update: Optional[RustdeskRendezvousConfigUpdate] = None + + port: Optional[int] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["config_update", "port"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m diff --git a/src/censys_platform/models/screenshot.py b/src/censys_platform/models/screenshot.py index e6331d3..03c73c2 100644 --- a/src/censys_platform/models/screenshot.py +++ b/src/censys_platform/models/screenshot.py @@ -10,6 +10,7 @@ class ScreenshotTypedDict(TypedDict): extracted_text: NotRequired[str] handle: NotRequired[str] + palsimhash: NotRequired[str] phash: NotRequired[str] @@ -18,11 +19,13 @@ class Screenshot(BaseModel): handle: Optional[str] = None + palsimhash: Optional[str] = None + phash: Optional[str] = None @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["extracted_text", "handle", "phash"]) + optional_fields = set(["extracted_text", "handle", "palsimhash", "phash"]) serialized = handler(self) m = {} diff --git a/src/censys_platform/models/searchqueryinputbody.py b/src/censys_platform/models/searchqueryinputbody.py index c9986a4..ad572c5 100644 --- a/src/censys_platform/models/searchqueryinputbody.py +++ b/src/censys_platform/models/searchqueryinputbody.py @@ -19,7 +19,7 @@ class SearchQueryInputBodyTypedDict(TypedDict): fields: NotRequired[Nullable[List[str]]] r"""Specify fields to only return in the response. If you provide fields and omit `host.services.port`, `host.services.transport_protocol`, and `host.services.protocol`, then `matched_services` will not be returned in the response.""" page_size: NotRequired[Nullable[int]] - r"""amount of results to return per page""" + r"""Number of results to return to per page. The default and maximum is 100.""" page_token: NotRequired[str] r"""page token for the requested page of search results""" @@ -32,7 +32,7 @@ class SearchQueryInputBody(BaseModel): r"""Specify fields to only return in the response. If you provide fields and omit `host.services.port`, `host.services.transport_protocol`, and `host.services.protocol`, then `matched_services` will not be returned in the response.""" page_size: OptionalNullable[int] = UNSET - r"""amount of results to return per page""" + r"""Number of results to return to per page. The default and maximum is 100.""" page_token: Optional[str] = None r"""page token for the requested page of search results""" diff --git a/src/censys_platform/models/service.py b/src/censys_platform/models/service.py index 92db92f..13c6f37 100644 --- a/src/censys_platform/models/service.py +++ b/src/censys_platform/models/service.py @@ -33,9 +33,11 @@ from .epmd import Epmd, EpmdTypedDict from .etcd import Etcd, EtcdTypedDict from .ethereum import Ethereum, EthereumTypedDict +from .flashsocketpolicy import FlashSocketPolicy, FlashSocketPolicyTypedDict from .fox import Fox, FoxTypedDict from .ftp import Ftp, FtpTypedDict from .gearman import Gearman, GearmanTypedDict +from .gemini import Gemini, GeminiTypedDict from .hajime import Hajime, HajimeTypedDict from .hidvertx import HidVertx, HidVertxTypedDict from .hikvision import Hikvision, HikvisionTypedDict @@ -53,7 +55,10 @@ from .label import Label, LabelTypedDict from .ldap import Ldap, LdapTypedDict from .lpd import Lpd, LpdTypedDict +from .mavlink import Mavlink, MavlinkTypedDict from .mdns import Mdns, MdnsTypedDict +from .melsec import Melsec, MelsecTypedDict +from .memberlist import Memberlist, MemberlistTypedDict from .memcached import Memcached, MemcachedTypedDict from .mikrotikwinbox import MikrotikWinbox, MikrotikWinboxTypedDict from .minecraft import Minecraft, MinecraftTypedDict @@ -96,7 +101,11 @@ from .risk import Risk, RiskTypedDict from .rlogin import Rlogin, RloginTypedDict from .rocketmq import Rocketmq, RocketmqTypedDict +from .routerosapi import RouterosAPI, RouterosAPITypedDict from .rtsp import Rtsp, RtspTypedDict +from .rustdeskheartbeat import RustdeskHeartbeat, RustdeskHeartbeatTypedDict +from .rustdeskrelay import RustdeskRelay, RustdeskRelayTypedDict +from .rustdeskrendezvous import RustdeskRendezvous, RustdeskRendezvousTypedDict from .s7 import S7, S7TypedDict from .saprouter import SapRouter, SapRouterTypedDict from .scpi import Scpi, ScpiTypedDict @@ -185,9 +194,11 @@ class ServiceTypedDict(TypedDict): etcd: NotRequired[EtcdTypedDict] ethereum: NotRequired[EthereumTypedDict] exposures: NotRequired[Nullable[List[RiskTypedDict]]] + flash_socket_policy: NotRequired[FlashSocketPolicyTypedDict] fox: NotRequired[FoxTypedDict] ftp: NotRequired[FtpTypedDict] gearman: NotRequired[GearmanTypedDict] + gemini: NotRequired[GeminiTypedDict] hajime: NotRequired[HajimeTypedDict] hardware: NotRequired[Nullable[List[AttributeTypedDict]]] hid_vertx: NotRequired[HidVertxTypedDict] @@ -207,7 +218,10 @@ class ServiceTypedDict(TypedDict): labels: NotRequired[Nullable[List[LabelTypedDict]]] ldap: NotRequired[LdapTypedDict] lpd: NotRequired[LpdTypedDict] + mavlink: NotRequired[MavlinkTypedDict] mdns: NotRequired[MdnsTypedDict] + melsec: NotRequired[MelsecTypedDict] + memberlist: NotRequired[MemberlistTypedDict] memcached: NotRequired[MemcachedTypedDict] mikrotik_winbox: NotRequired[MikrotikWinboxTypedDict] minecraft: NotRequired[MinecraftTypedDict] @@ -253,7 +267,11 @@ class ServiceTypedDict(TypedDict): ripple: NotRequired[RippleTypedDict] rlogin: NotRequired[RloginTypedDict] rocketmq: NotRequired[RocketmqTypedDict] + routeros_api: NotRequired[RouterosAPITypedDict] rtsp: NotRequired[RtspTypedDict] + rustdesk_heartbeat: NotRequired[RustdeskHeartbeatTypedDict] + rustdesk_relay: NotRequired[RustdeskRelayTypedDict] + rustdesk_rendezvous: NotRequired[RustdeskRendezvousTypedDict] s7: NotRequired[S7TypedDict] sap_router: NotRequired[SapRouterTypedDict] scan_time: NotRequired[str] @@ -357,12 +375,16 @@ class Service(BaseModel): exposures: OptionalNullable[List[Risk]] = UNSET + flash_socket_policy: Optional[FlashSocketPolicy] = None + fox: Optional[Fox] = None ftp: Optional[Ftp] = None gearman: Optional[Gearman] = None + gemini: Optional[Gemini] = None + hajime: Optional[Hajime] = None hardware: OptionalNullable[List[Attribute]] = UNSET @@ -401,8 +423,14 @@ class Service(BaseModel): lpd: Optional[Lpd] = None + mavlink: Optional[Mavlink] = None + mdns: Optional[Mdns] = None + melsec: Optional[Melsec] = None + + memberlist: Optional[Memberlist] = None + memcached: Optional[Memcached] = None mikrotik_winbox: Optional[MikrotikWinbox] = None @@ -493,8 +521,16 @@ class Service(BaseModel): rocketmq: Optional[Rocketmq] = None + routeros_api: Optional[RouterosAPI] = None + rtsp: Optional[Rtsp] = None + rustdesk_heartbeat: Optional[RustdeskHeartbeat] = None + + rustdesk_relay: Optional[RustdeskRelay] = None + + rustdesk_rendezvous: Optional[RustdeskRendezvous] = None + s7: Optional[S7] = None sap_router: Optional[SapRouter] = None @@ -612,9 +648,11 @@ def serialize_model(self, handler): "etcd", "ethereum", "exposures", + "flash_socket_policy", "fox", "ftp", "gearman", + "gemini", "hajime", "hardware", "hid_vertx", @@ -634,7 +672,10 @@ def serialize_model(self, handler): "labels", "ldap", "lpd", + "mavlink", "mdns", + "melsec", + "memberlist", "memcached", "mikrotik_winbox", "minecraft", @@ -680,7 +721,11 @@ def serialize_model(self, handler): "ripple", "rlogin", "rocketmq", + "routeros_api", "rtsp", + "rustdesk_heartbeat", + "rustdesk_relay", + "rustdesk_rendezvous", "s7", "sap_router", "scan_time", diff --git a/src/censys_platform/models/servicescan.py b/src/censys_platform/models/servicescan.py index 4de276e..d282885 100644 --- a/src/censys_platform/models/servicescan.py +++ b/src/censys_platform/models/servicescan.py @@ -30,9 +30,11 @@ from .epmd import Epmd, EpmdTypedDict from .etcd import Etcd, EtcdTypedDict from .ethereum import Ethereum, EthereumTypedDict +from .flashsocketpolicy import FlashSocketPolicy, FlashSocketPolicyTypedDict from .fox import Fox, FoxTypedDict from .ftp import Ftp, FtpTypedDict from .gearman import Gearman, GearmanTypedDict +from .gemini import Gemini, GeminiTypedDict from .hajime import Hajime, HajimeTypedDict from .hidvertx import HidVertx, HidVertxTypedDict from .hikvision import Hikvision, HikvisionTypedDict @@ -47,7 +49,10 @@ from .l2tp import L2Tp, L2TpTypedDict from .ldap import Ldap, LdapTypedDict from .lpd import Lpd, LpdTypedDict +from .mavlink import Mavlink, MavlinkTypedDict from .mdns import Mdns, MdnsTypedDict +from .melsec import Melsec, MelsecTypedDict +from .memberlist import Memberlist, MemberlistTypedDict from .memcached import Memcached, MemcachedTypedDict from .mikrotikwinbox import MikrotikWinbox, MikrotikWinboxTypedDict from .minecraft import Minecraft, MinecraftTypedDict @@ -89,7 +94,11 @@ from .ripple import Ripple, RippleTypedDict from .rlogin import Rlogin, RloginTypedDict from .rocketmq import Rocketmq, RocketmqTypedDict +from .routerosapi import RouterosAPI, RouterosAPITypedDict from .rtsp import Rtsp, RtspTypedDict +from .rustdeskheartbeat import RustdeskHeartbeat, RustdeskHeartbeatTypedDict +from .rustdeskrelay import RustdeskRelay, RustdeskRelayTypedDict +from .rustdeskrendezvous import RustdeskRendezvous, RustdeskRendezvousTypedDict from .s7 import S7, S7TypedDict from .saprouter import SapRouter, SapRouterTypedDict from .scpi import Scpi, ScpiTypedDict @@ -172,9 +181,11 @@ class ServiceScanTypedDict(TypedDict): epmd: NotRequired[EpmdTypedDict] etcd: NotRequired[EtcdTypedDict] ethereum: NotRequired[EthereumTypedDict] + flash_socket_policy: NotRequired[FlashSocketPolicyTypedDict] fox: NotRequired[FoxTypedDict] ftp: NotRequired[FtpTypedDict] gearman: NotRequired[GearmanTypedDict] + gemini: NotRequired[GeminiTypedDict] hajime: NotRequired[HajimeTypedDict] hid_vertx: NotRequired[HidVertxTypedDict] hikvision: NotRequired[HikvisionTypedDict] @@ -191,7 +202,10 @@ class ServiceScanTypedDict(TypedDict): l2tp: NotRequired[L2TpTypedDict] ldap: NotRequired[LdapTypedDict] lpd: NotRequired[LpdTypedDict] + mavlink: NotRequired[MavlinkTypedDict] mdns: NotRequired[MdnsTypedDict] + melsec: NotRequired[MelsecTypedDict] + memberlist: NotRequired[MemberlistTypedDict] memcached: NotRequired[MemcachedTypedDict] mikrotik_winbox: NotRequired[MikrotikWinboxTypedDict] minecraft: NotRequired[MinecraftTypedDict] @@ -235,7 +249,11 @@ class ServiceScanTypedDict(TypedDict): ripple: NotRequired[RippleTypedDict] rlogin: NotRequired[RloginTypedDict] rocketmq: NotRequired[RocketmqTypedDict] + routeros_api: NotRequired[RouterosAPITypedDict] rtsp: NotRequired[RtspTypedDict] + rustdesk_heartbeat: NotRequired[RustdeskHeartbeatTypedDict] + rustdesk_relay: NotRequired[RustdeskRelayTypedDict] + rustdesk_rendezvous: NotRequired[RustdeskRendezvousTypedDict] s7: NotRequired[S7TypedDict] sap_router: NotRequired[SapRouterTypedDict] scan_time: NotRequired[str] @@ -328,12 +346,16 @@ class ServiceScan(BaseModel): ethereum: Optional[Ethereum] = None + flash_socket_policy: Optional[FlashSocketPolicy] = None + fox: Optional[Fox] = None ftp: Optional[Ftp] = None gearman: Optional[Gearman] = None + gemini: Optional[Gemini] = None + hajime: Optional[Hajime] = None hid_vertx: Optional[HidVertx] = None @@ -366,8 +388,14 @@ class ServiceScan(BaseModel): lpd: Optional[Lpd] = None + mavlink: Optional[Mavlink] = None + mdns: Optional[Mdns] = None + melsec: Optional[Melsec] = None + + memberlist: Optional[Memberlist] = None + memcached: Optional[Memcached] = None mikrotik_winbox: Optional[MikrotikWinbox] = None @@ -454,8 +482,16 @@ class ServiceScan(BaseModel): rocketmq: Optional[Rocketmq] = None + routeros_api: Optional[RouterosAPI] = None + rtsp: Optional[Rtsp] = None + rustdesk_heartbeat: Optional[RustdeskHeartbeat] = None + + rustdesk_relay: Optional[RustdeskRelay] = None + + rustdesk_rendezvous: Optional[RustdeskRendezvous] = None + s7: Optional[S7] = None sap_router: Optional[SapRouter] = None @@ -563,9 +599,11 @@ def serialize_model(self, handler): "epmd", "etcd", "ethereum", + "flash_socket_policy", "fox", "ftp", "gearman", + "gemini", "hajime", "hid_vertx", "hikvision", @@ -582,7 +620,10 @@ def serialize_model(self, handler): "l2tp", "ldap", "lpd", + "mavlink", "mdns", + "melsec", + "memberlist", "memcached", "mikrotik_winbox", "minecraft", @@ -626,7 +667,11 @@ def serialize_model(self, handler): "ripple", "rlogin", "rocketmq", + "routeros_api", "rtsp", + "rustdesk_heartbeat", + "rustdesk_relay", + "rustdesk_rendezvous", "s7", "sap_router", "scan_time", diff --git a/src/censys_platform/models/snmp_engine.py b/src/censys_platform/models/snmp_engine.py index 53e78ba..7977e44 100644 --- a/src/censys_platform/models/snmp_engine.py +++ b/src/censys_platform/models/snmp_engine.py @@ -66,3 +66,9 @@ def serialize_model(self, handler): m[k] = val return m + + +try: + SnmpEngine.model_rebuild() +except NameError: + pass diff --git a/src/censys_platform/threat_hunting.py b/src/censys_platform/threat_hunting.py index 510c0e4..ea0e874 100644 --- a/src/censys_platform/threat_hunting.py +++ b/src/censys_platform/threat_hunting.py @@ -88,7 +88,7 @@ def get_host_observations_with_certificate( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -105,7 +105,12 @@ def get_host_observations_with_certificate( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -194,7 +199,7 @@ async def get_host_observations_with_certificate_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -211,7 +216,12 @@ async def get_host_observations_with_certificate_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -307,7 +317,7 @@ def create_tracked_scan( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -324,7 +334,12 @@ def create_tracked_scan( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -420,7 +435,7 @@ async def create_tracked_scan_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -437,7 +452,12 @@ async def create_tracked_scan_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -522,7 +542,7 @@ def get_tracked_scan_threat_hunting( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -541,7 +561,12 @@ def get_tracked_scan_threat_hunting( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -626,7 +651,7 @@ async def get_tracked_scan_threat_hunting_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "404", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -645,7 +670,12 @@ async def get_tracked_scan_threat_hunting_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "404"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "404"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -730,7 +760,7 @@ def list_threats( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -747,7 +777,12 @@ def list_threats( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "422"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -832,7 +867,7 @@ async def list_threats_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "422", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -849,7 +884,12 @@ async def list_threats_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, ["403", "422"], "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -946,7 +986,7 @@ def value_counts( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -963,7 +1003,12 @@ def value_counts( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): @@ -1060,7 +1105,7 @@ async def value_counts_async( security_source=self.sdk_configuration.security, ), request=req, - error_status_codes=["401", "403", "4XX", "5XX"], + error_status_codes=["400", "401", "403", "422", "4XX", "500", "5XX"], retry_config=retry_config, ) @@ -1077,7 +1122,12 @@ async def value_counts_async( models.AuthenticationErrorData, http_res ) raise models.AuthenticationError(response_data, http_res) - if utils.match_response(http_res, "403", "application/problem+json"): + if utils.match_response( + http_res, ["400", "403", "422"], "application/problem+json" + ): + response_data = unmarshal_json_response(models.ErrorModelData, http_res) + raise models.ErrorModel(response_data, http_res) + if utils.match_response(http_res, "500", "application/problem+json"): response_data = unmarshal_json_response(models.ErrorModelData, http_res) raise models.ErrorModel(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): diff --git a/src/censys_platform/utils/__init__.py b/src/censys_platform/utils/__init__.py index c906e1e..0498cb8 100644 --- a/src/censys_platform/utils/__init__.py +++ b/src/censys_platform/utils/__init__.py @@ -1,20 +1,16 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from typing import TYPE_CHECKING, Callable, TypeVar -from importlib import import_module +from typing import Any, TYPE_CHECKING, Callable, TypeVar import asyncio -import builtins -import sys + +from .dynamic_imports import lazy_getattr, lazy_dir _T = TypeVar("_T") async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: """Run a synchronous function in a thread pool to avoid blocking the event loop.""" - if sys.version_info >= (3, 9): - return await asyncio.to_thread(func, *args) - loop = asyncio.get_event_loop() - return await loop.run_in_executor(None, func, *args) + return await asyncio.to_thread(func, *args) if TYPE_CHECKING: @@ -169,38 +165,11 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: } -def dynamic_import(modname, retries=3): - for attempt in range(retries): - try: - return import_module(modname, __package__) - except KeyError: - # Clear any half-initialized module and retry - sys.modules.pop(modname, None) - if attempt == retries - 1: - break - raise KeyError(f"Failed to import module '{modname}' after {retries} attempts") - - -def __getattr__(attr_name: str) -> object: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError( - f"no {attr_name} found in _dynamic_imports, module name -> {__name__} " - ) - - try: - module = dynamic_import(module_name) - return getattr(module, attr_name) - except ImportError as e: - raise ImportError( - f"Failed to import {attr_name} from {module_name}: {e}" - ) from e - except AttributeError as e: - raise AttributeError( - f"Failed to get {attr_name} from {module_name}: {e}" - ) from e +def __getattr__(attr_name: str) -> Any: + return lazy_getattr( + attr_name, package=__package__, dynamic_imports=_dynamic_imports + ) def __dir__(): - lazy_attrs = builtins.list(_dynamic_imports.keys()) - return builtins.sorted(lazy_attrs) + return lazy_dir(dynamic_imports=_dynamic_imports) diff --git a/src/censys_platform/utils/dynamic_imports.py b/src/censys_platform/utils/dynamic_imports.py new file mode 100644 index 0000000..673edf8 --- /dev/null +++ b/src/censys_platform/utils/dynamic_imports.py @@ -0,0 +1,54 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from importlib import import_module +import builtins +import sys + + +def dynamic_import(package, modname, retries=3): + """Import a module relative to package, retrying on KeyError from half-initialized modules.""" + for attempt in range(retries): + try: + return import_module(modname, package) + except KeyError: + sys.modules.pop(modname, None) + if attempt == retries - 1: + break + raise KeyError(f"Failed to import module '{modname}' after {retries} attempts") + + +def lazy_getattr(attr_name, *, package, dynamic_imports, sub_packages=None): + """Module-level __getattr__ that lazily loads from a dynamic_imports mapping. + + Args: + attr_name: The attribute being looked up. + package: The caller's __package__ (for relative imports). + dynamic_imports: Dict mapping attribute names to relative module paths. + sub_packages: Optional list of subpackage names to lazy-load. + """ + module_name = dynamic_imports.get(attr_name) + if module_name is not None: + try: + module = dynamic_import(package, module_name) + return getattr(module, attr_name) + except ImportError as e: + raise ImportError( + f"Failed to import {attr_name} from {module_name}: {e}" + ) from e + except AttributeError as e: + raise AttributeError( + f"Failed to get {attr_name} from {module_name}: {e}" + ) from e + + if sub_packages and attr_name in sub_packages: + return import_module(f".{attr_name}", package) + + raise AttributeError(f"module '{package}' has no attribute '{attr_name}'") + + +def lazy_dir(*, dynamic_imports, sub_packages=None): + """Module-level __dir__ that lists lazily-loadable attributes.""" + lazy_attrs = builtins.list(dynamic_imports.keys()) + if sub_packages: + lazy_attrs.extend(sub_packages) + return builtins.sorted(lazy_attrs) diff --git a/src/censys_platform/utils/eventstreaming.py b/src/censys_platform/utils/eventstreaming.py index 0969899..f2052fc 100644 --- a/src/censys_platform/utils/eventstreaming.py +++ b/src/censys_platform/utils/eventstreaming.py @@ -2,7 +2,9 @@ import re import json +from dataclasses import dataclass, asdict from typing import ( + Any, Callable, Generic, TypeVar, @@ -22,6 +24,7 @@ class EventStream(Generic[T]): client_ref: Optional[object] response: httpx.Response generator: Generator[T, None, None] + _closed: bool def __init__( self, @@ -33,17 +36,21 @@ def __init__( self.response = response self.generator = stream_events(response, decoder, sentinel) self.client_ref = client_ref + self._closed = False def __iter__(self): return self def __next__(self): + if self._closed: + raise StopIteration return next(self.generator) def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): + self._closed = True self.response.close() @@ -53,6 +60,7 @@ class EventStreamAsync(Generic[T]): client_ref: Optional[object] response: httpx.Response generator: AsyncGenerator[T, None] + _closed: bool def __init__( self, @@ -64,33 +72,45 @@ def __init__( self.response = response self.generator = stream_events_async(response, decoder, sentinel) self.client_ref = client_ref + self._closed = False def __aiter__(self): return self async def __anext__(self): + if self._closed: + raise StopAsyncIteration return await self.generator.__anext__() async def __aenter__(self): return self async def __aexit__(self, exc_type, exc_val, exc_tb): + self._closed = True await self.response.aclose() +@dataclass class ServerEvent: id: Optional[str] = None event: Optional[str] = None - data: Optional[str] = None + data: Any = None retry: Optional[int] = None MESSAGE_BOUNDARIES = [ b"\r\n\r\n", - b"\n\n", + b"\r\n\r", + b"\r\n\n", + b"\r\r\n", + b"\n\r\n", b"\r\r", + b"\n\r", + b"\n\n", ] +UTF8_BOM = b"\xef\xbb\xbf" + async def stream_events_async( response: httpx.Response, @@ -99,14 +119,10 @@ async def stream_events_async( ) -> AsyncGenerator[T, None]: buffer = bytearray() position = 0 - discard = False + event_id: Optional[str] = None async for chunk in response.aiter_bytes(): - # We've encountered the sentinel value and should no longer process - # incoming data. Instead we throw new data away until the server closes - # the connection. - if discard: - continue - + if len(buffer) == 0 and chunk.startswith(UTF8_BOM): + chunk = chunk[len(UTF8_BOM) :] buffer += chunk for i in range(position, len(buffer)): char = buffer[i : i + 1] @@ -121,15 +137,22 @@ async def stream_events_async( block = buffer[position:i] position = i + len(seq) - event, discard = _parse_event(block, decoder, sentinel) + event, discard, event_id = _parse_event( + raw=block, decoder=decoder, sentinel=sentinel, event_id=event_id + ) if event is not None: yield event + if discard: + await response.aclose() + return if position > 0: buffer = buffer[position:] position = 0 - event, discard = _parse_event(buffer, decoder, sentinel) + event, discard, _ = _parse_event( + raw=buffer, decoder=decoder, sentinel=sentinel, event_id=event_id + ) if event is not None: yield event @@ -141,14 +164,10 @@ def stream_events( ) -> Generator[T, None, None]: buffer = bytearray() position = 0 - discard = False + event_id: Optional[str] = None for chunk in response.iter_bytes(): - # We've encountered the sentinel value and should no longer process - # incoming data. Instead we throw new data away until the server closes - # the connection. - if discard: - continue - + if len(buffer) == 0 and chunk.startswith(UTF8_BOM): + chunk = chunk[len(UTF8_BOM) :] buffer += chunk for i in range(position, len(buffer)): char = buffer[i : i + 1] @@ -163,22 +182,33 @@ def stream_events( block = buffer[position:i] position = i + len(seq) - event, discard = _parse_event(block, decoder, sentinel) + event, discard, event_id = _parse_event( + raw=block, decoder=decoder, sentinel=sentinel, event_id=event_id + ) if event is not None: yield event + if discard: + response.close() + return if position > 0: buffer = buffer[position:] position = 0 - event, discard = _parse_event(buffer, decoder, sentinel) + event, discard, _ = _parse_event( + raw=buffer, decoder=decoder, sentinel=sentinel, event_id=event_id + ) if event is not None: yield event def _parse_event( - raw: bytearray, decoder: Callable[[str], T], sentinel: Optional[str] = None -) -> Tuple[Optional[T], bool]: + *, + raw: bytearray, + decoder: Callable[[str], T], + sentinel: Optional[str] = None, + event_id: Optional[str] = None, +) -> Tuple[Optional[T], bool, Optional[str]]: block = raw.decode() lines = re.split(r"\r?\n|\r", block) publish = False @@ -189,13 +219,16 @@ def _parse_event( continue delim = line.find(":") - if delim <= 0: + if delim == 0: continue - field = line[0:delim] - value = line[delim + 1 :] if delim < len(line) - 1 else "" - if len(value) and value[0] == " ": - value = value[1:] + field = line + value = "" + if delim > 0: + field = line[0:delim] + value = line[delim + 1 :] if delim < len(line) - 1 else "" + if len(value) and value[0] == " ": + value = value[1:] if field == "event": event.event = value @@ -204,37 +237,36 @@ def _parse_event( data += value + "\n" publish = True elif field == "id": - event.id = value publish = True + if "\x00" not in value: + event_id = value elif field == "retry": - event.retry = int(value) if value.isdigit() else None + if value.isdigit(): + event.retry = int(value) publish = True + event.id = event_id + if sentinel and data == f"{sentinel}\n": - return None, True + return None, True, event_id if data: data = data[:-1] - event.data = data - - data_is_primitive = ( - data.isnumeric() or data == "true" or data == "false" or data == "null" - ) - data_is_json = ( - data.startswith("{") or data.startswith("[") or data.startswith('"') - ) - - if data_is_primitive or data_is_json: - try: - event.data = json.loads(data) - except Exception: - pass + try: + event.data = json.loads(data) + except json.JSONDecodeError: + event.data = data out = None if publish: - out = decoder(json.dumps(event.__dict__)) - - return out, False + out_dict = { + k: v + for k, v in asdict(event).items() + if v is not None or (k == "data" and data) + } + out = decoder(json.dumps(out_dict)) + + return out, False, event_id def _peek_sequence(position: int, buffer: bytearray, sequence: bytes): diff --git a/src/censys_platform/utils/retries.py b/src/censys_platform/utils/retries.py index 88a91b1..af07d4e 100644 --- a/src/censys_platform/utils/retries.py +++ b/src/censys_platform/utils/retries.py @@ -144,12 +144,7 @@ def do_request() -> httpx.Response: if res.status_code == parsed_code: raise TemporaryError(res) - except httpx.ConnectError as exception: - if retries.config.retry_connection_errors: - raise - - raise PermanentError(exception) from exception - except httpx.TimeoutException as exception: + except (httpx.NetworkError, httpx.TimeoutException) as exception: if retries.config.retry_connection_errors: raise @@ -193,12 +188,7 @@ async def do_request() -> httpx.Response: if res.status_code == parsed_code: raise TemporaryError(res) - except httpx.ConnectError as exception: - if retries.config.retry_connection_errors: - raise - - raise PermanentError(exception) from exception - except httpx.TimeoutException as exception: + except (httpx.NetworkError, httpx.TimeoutException) as exception: if retries.config.retry_connection_errors: raise diff --git a/src/censys_platform/utils/security.py b/src/censys_platform/utils/security.py index 295a3f4..17996bd 100644 --- a/src/censys_platform/utils/security.py +++ b/src/censys_platform/utils/security.py @@ -135,6 +135,8 @@ def _parse_security_scheme_value( elif scheme_type == "http": if sub_type == "bearer": headers[header_name] = _apply_bearer(value) + elif sub_type == "basic": + headers[header_name] = value elif sub_type == "custom": return else: From 6b180a3e9d62aaa1401bd2a02020075d85522625 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 00:36:41 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow