diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index eddf469..3e801f2 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,24 +1,24 @@ lockVersion: 2.0.0 id: 5ca2c9b7-aea6-4a23-a631-998fcc6c18a8 management: - docChecksum: 2cef9678551dc29234432a9acdf838a9 - docVersion: 1.0.77 - speakeasyVersion: 1.725.0 - generationVersion: 2.836.5 - releaseVersion: 0.13.0 - configChecksum: 9bf1d94a6d1745e0a5b7f4d8877b2c45 + docChecksum: 05d5a230437f64759921f5cb10a4f01f + docVersion: 1.0.80 + speakeasyVersion: 1.731.2 + generationVersion: 2.845.1 + releaseVersion: 0.13.1 + configChecksum: 184521ead99b27f1c5cbadb035fb07c0 repoURL: https://github.com/censys/censys-sdk-python.git installationURL: https://github.com/censys/censys-sdk-python.git published: true persistentEdits: - generation_id: 2a8a011f-9f8d-47be-a567-e044bcbf0e78 - pristine_commit_hash: 37f1276b5fe2e83f236faaf11948083962948592 - pristine_tree_hash: b58508d253543ec9d099eb3e1f66209639261f99 + generation_id: 07da0367-b215-4c78-83c4-7aca44fe087a + pristine_commit_hash: 57748272adba3e2ed83d0af414d9e12610d9158e + pristine_tree_hash: 8e98a44696f9f0ad9d431b15e285c103ed8c54a7 features: python: acceptHeaders: 3.0.0 additionalDependencies: 1.0.0 - constsAndDefaults: 1.0.6 + constsAndDefaults: 1.0.7 core: 6.0.12 defaultEnabledRetries: 0.2.0 downloadStreams: 1.0.1 @@ -76,6 +76,10 @@ trackedFiles: id: 4f7eb7132d6c last_write_checksum: sha1:6c898a61c2354b947030247d3e06772f1d994f45 pristine_git_object: 210fe83d142fa3850c39dbae824eaa7bd75f6975 + docs/models/anermacfforth.md: + id: 4767c66af5e9 + last_write_checksum: sha1:eff785064bbf23160ba5ddd5e5804bc65c786f53 + pristine_git_object: b7f9d031f52c61c38370764ea5d2c21fa405d3d5 docs/models/anyconnect.md: id: c8995f9f934b last_write_checksum: sha1:b0a9fcc0d2faee6830d3856b119573cfc6bf2f97 @@ -292,6 +296,10 @@ trackedFiles: id: 5c397478f6bf last_write_checksum: sha1:ae26ef481ba297b6bc36e450dd2f7b8a5f0649c2 pristine_git_object: 7c6435a6519c9b9ad3c811b3d7c055f416b7a374 + docs/models/collectionstatuses.md: + id: 1120cccd69c3 + last_write_checksum: sha1:0367a8c2f55d21222079651f61659c2a23338eda + pristine_git_object: b13d6cf2f08017f35f1e90aa95fab41bd3a42aa4 docs/models/confidentiality.md: id: a94d6a60886c last_write_checksum: sha1:1fe0cd4395deda3e5e0a47ad4c7640c4eaa28a16 @@ -364,6 +372,26 @@ trackedFiles: id: fe376f39f147 last_write_checksum: sha1:68752d61fc5f7e7cd2da8e69b12a61ccb059b7f5 pristine_git_object: f1708a5a04bc99ee42322fab3d5e4d90fd68bbd8 + docs/models/cursorontarget.md: + id: 7aea5e593605 + last_write_checksum: sha1:7130a7faf3fde8dc3d8ebafe074ce9bb52378186 + pristine_git_object: 47c17a8daeab0f48e23e3e20aeff53faf853217d + docs/models/cursorontargetevent.md: + id: e8f0df46f02c + last_write_checksum: sha1:e15b9f9c285759db078bdc034e261a99474af945 + pristine_git_object: 5c6c025d0df7d325d901c2383b89e7f56a77f719 + docs/models/cursorontargetpoint.md: + id: ede20c208087 + last_write_checksum: sha1:654ef629ebbc41906c711633126eeb7739984dbd + pristine_git_object: 677e2e6309e8aa00a5fdec2804e371bd3e152fc0 + docs/models/cursorontargetstatus.md: + id: f16830c56659 + last_write_checksum: sha1:6f7b912673106fd1b4990e9da7d3578be7dd8046 + pristine_git_object: 7c1aedc79dcb4125dccfa5425dd6cd974fd21a22 + docs/models/cursorontargettakv.md: + id: 75bc97726598 + last_write_checksum: sha1:195b7db07a9a24f4d12afcd37364cc8bb1074272 + pristine_git_object: 556005b1e24fda13bc57727be5aca8df97df2781 docs/models/cvss.md: id: c5d8bac8e6db last_write_checksum: sha1:573afa5e02ca8ac9466e98932bc65d31397a49b7 @@ -760,6 +788,10 @@ trackedFiles: id: 46840ff2ee2b last_write_checksum: sha1:619d9ff7d56626d7982e64cfaaf312042d90ae27 pristine_git_object: 72fd5b50003762cd2b7803bdea944ae4c150b985 + docs/models/frps.md: + id: a101d8729f42 + last_write_checksum: sha1:fd9c16e35f4cbf1abc14478a69d0ebe2ad495165 + pristine_git_object: 9af7ae1740a1953c553c4903c72bcfd0bd4fd18a docs/models/ftp.md: id: 0a8ac6512cc8 last_write_checksum: sha1:27423a26444fb7ea53161821c99470092664a6eb @@ -892,6 +924,14 @@ trackedFiles: id: a9deee86fc99 last_write_checksum: sha1:fdd2f7a0e49690fad92771163f691a8892caadf3 pristine_git_object: 8afb59dc3b1d728dea996dcdd6060f4ad096ff7d + docs/models/icap.md: + id: b1b89a2dd8c1 + last_write_checksum: sha1:79730000e9b5aeca50ebccbbef6fda0a3e6cedef + pristine_git_object: 57df5de25461b4152225c99fd748c02c7439c2e5 + docs/models/icapoptionsresponse.md: + id: f3f49cd270a6 + last_write_checksum: sha1:b6e19f418242d97a190f0c429c93ddba9b55793a + pristine_git_object: 3e13f7f71f914baa4e58199340edde5beef94b54 docs/models/ike.md: id: ee341ce34dea last_write_checksum: sha1:6aeb01ee047bb147c5d14d5919d3e3879a65e1a0 @@ -1468,6 +1508,10 @@ trackedFiles: id: 15ecbe70667a last_write_checksum: sha1:ee8f10d4cae9f2886ba3de3be562711e98be733e pristine_git_object: cd85efd0d260489c38f3166b478f1fbb7aae57df + docs/models/orderby.md: + id: 9e749ed80f72 + last_write_checksum: sha1:b789e7833553829c0190f676cae91a55dc63cf05 + pristine_git_object: 1292459cb7c66baadbc1b20ba8337a0edbe04cb4 docs/models/organization.md: id: ea9c215ca2eb last_write_checksum: sha1:97c52d6785eecb82d01541219fe9d761683840d1 @@ -1652,6 +1696,10 @@ trackedFiles: id: 772b62ac31ab last_write_checksum: sha1:ab37f3747136d91975b77341d913dce02f7f8fc9 pristine_git_object: 2be092bf14c5a5f1ca646e15d3e67274ed9e638f + docs/models/queryparamtransportprotocol.md: + id: b6531f948a00 + last_write_checksum: sha1:21a3f3287116fc690d388a6f03b5c9aaa8cdacf7 + pristine_git_object: ddb1e565177c1ce18ccd34d5e8538ae612c5a0be docs/models/rawcertificateresponse.md: id: 00e77f0193cd last_write_checksum: sha1:fac061afc8fa18938c314df7da070cd2eeecd744 @@ -1828,6 +1876,10 @@ trackedFiles: id: 5760c5303017 last_write_checksum: sha1:fbe6eac96c420633e50183067b0f7632a8104ec0 pristine_git_object: 5887a61f82cb7d4e36b5b239fac93df4c53d7bca + docs/models/responseenvelopeservicesonhostresponse.md: + id: fbeba677e202 + last_write_checksum: sha1:ba646d7453b56525cb19cce8d3efc3c3aa58be3b + pristine_git_object: dd19e540c5f2254fb78d15b149ff636e269ebe5f docs/models/responseenvelopethreatslistresponse.md: id: a2d609d86cce last_write_checksum: sha1:04eb4eced8c6a8b497a215f796b2fa9765d83aad @@ -2098,8 +2150,8 @@ trackedFiles: pristine_git_object: e6f00cc1cb14bfc9139ac98eae6022b582da1895 docs/models/service.md: id: d38041323049 - last_write_checksum: sha1:ef51aa161a48190ad83ebe8b6d4b720d3b6873da - pristine_git_object: 22ec9f49e4d31fabfc85322b29a1cc1ccf967813 + last_write_checksum: sha1:5d7ebd7682f82f6f585823ef127d61aeff2f530d + pristine_git_object: c6429015a5ea000af1672d6f0b159986973f0df3 docs/models/serviceid.md: id: 78670c733096 last_write_checksum: sha1:4388c75f08f99206fc758d5d47396f1a13fd37e1 @@ -2108,10 +2160,14 @@ trackedFiles: id: e7ec85bebff5 last_write_checksum: sha1:0aad568e023c312573419827261f78cfae9b9374 pristine_git_object: d4efd3a1544fbdb6abab868b5d03cc03deceddb4 + docs/models/serviceonhostrange.md: + id: c61e30936214 + last_write_checksum: sha1:d2871bbaa9489012045e3180bf0cca1b265c4234 + pristine_git_object: bc2f400913efe8d7b2e01c2f6ed70f84b7937915 docs/models/servicescan.md: id: 5079b5eb4109 - last_write_checksum: sha1:b37b3cfcf84829d9f8ba919693e4fbcdfe64fe6c - pristine_git_object: 93687f1364b482f2947e22021919e81ede15c6d1 + last_write_checksum: sha1:b6cea0335eb8b63b2f5430c5fd6a7bdf379e03d7 + pristine_git_object: 782b30861b0b80dff6a4d56637fd8319cafc1cce docs/models/servicescanned.md: id: 8783aac64d52 last_write_checksum: sha1:95fa8c18ec2267c5969827ee2576a45c793fc904 @@ -2120,6 +2176,10 @@ trackedFiles: id: bc723a0b9a6a last_write_checksum: sha1:a600204ea63e538406c8d32077e494bf052e9587 pristine_git_object: ca0692a450b8737575a741c72200ec411a238534 + docs/models/servicesonhostresponse.md: + id: aa8d2f8a60e3 + last_write_checksum: sha1:3ca94d464c97b4ca1854f638d0a62860ed490cf7 + pristine_git_object: 7d604b07cacba292bc6b66657f4f2b8527a824fa docs/models/servicetransportprotocol.md: id: 8c19c9c8fe76 last_write_checksum: sha1:5e4d4a82d4a12a9e468dfe4b736749d5f6824209 @@ -2214,8 +2274,8 @@ trackedFiles: pristine_git_object: 55a63dfde858a88bae6197cd3e4bdc5eb7346c6b docs/models/sourceusagebreakdown.md: id: 6944ff211185 - last_write_checksum: sha1:d4604c5d65573960227e75cc1f6a813c308d0c7d - pristine_git_object: 605d2d2f9481e9f58245091c84d2b99f550619c1 + last_write_checksum: sha1:042658c255f7de871762776ebb1b0f278e03a75f + pristine_git_object: e51a4cffe8c717c89c9b9afef844bcd2bcd6defb docs/models/spice.md: id: 0f3916129cc7 last_write_checksum: sha1:0b4f117d0318e0ed662dfa502c7a5b6c67378063 @@ -2264,6 +2324,34 @@ trackedFiles: id: b2fd394b67f0 last_write_checksum: sha1:ff8046641f808f323eb292aa7a09f8787c4db9b7 pristine_git_object: 18eb818f930e9153009d5858fa61860b5886ee77 + docs/models/stun.md: + id: ba01d3a28259 + last_write_checksum: sha1:a267410a3a8752e8e27ec463b3c4af4d645a6437 + pristine_git_object: 0155396f4be02ae97d7fcd3a7ad7786eb07f4101 + docs/models/stunbindingerrorresponse.md: + id: b9da3f1fdabe + last_write_checksum: sha1:9020796811359c5f19299ddc7711771c5bc2cfda + pristine_git_object: 5526917c581203a2d7399baef03af607e0b27c80 + docs/models/stunbindingsuccessresponse.md: + id: fe0234ab0004 + last_write_checksum: sha1:ede386f0c33578e5aab62e87c93bec1672765966 + pristine_git_object: 3e03f4bda99f5de0c16fcc7c8883e7c69a8827f7 + docs/models/stunmappedaddress.md: + id: 720ee1deeaa4 + last_write_checksum: sha1:0bbbae1ef6da10f3c17130831fb088ea10626ff2 + pristine_git_object: ac006919afab376fe8769ee38e018eabb4c239fe + docs/models/stunturn.md: + id: bb0aa9b5c50e + last_write_checksum: sha1:5f46df9ce5a6f3a192f4cd3a325f35442825023f + pristine_git_object: 03fd2adef421451533108cd5f54abce8d8574857 + docs/models/stunturnallocateerrorresponse.md: + id: ad1473f2983a + last_write_checksum: sha1:e9e81bb721f9ccc20b068890f1219b9dffdd30bc + pristine_git_object: cd7b43d02e5565a201f31a9daa86064c077ae1b8 + docs/models/stunturnallocatesuccessresponse.md: + id: 5f7039ace5ab + last_write_checksum: sha1:efa0c1a2a290eaa8f7d6d33fb461bde314ea28e7 + pristine_git_object: 42ebd9a6ee4c4634381d83a59b82ae28a8a81884 docs/models/subjectkeyinfo.md: id: a1bb299d5525 last_write_checksum: sha1:bdb44a9dd40553e9a66919cac1973d6fa110dae6 @@ -2582,8 +2670,8 @@ trackedFiles: pristine_git_object: 75b27ff5c5006ad04e53a619a8f1026b5c54b347 docs/models/v3collectionscrudlistrequest.md: id: afabf3257bc3 - last_write_checksum: sha1:fec1284f1237e34398e1a0dc7d5a12d0349b8b99 - pristine_git_object: b0a654d1bd7860597c9c7c1829fdb87d15870963 + last_write_checksum: sha1:4b0dc8b578070ade6f77d88061f925e0b61da603 + pristine_git_object: 38b22d19726d4cb53770427102db2da1eb7d2ec5 docs/models/v3collectionscrudlistresponse.md: id: 96bde45e432a last_write_checksum: sha1:7ef092df74f514a3b76d3115c65570042b1f34aa @@ -2804,6 +2892,18 @@ trackedFiles: id: a8709fddaf9c last_write_checksum: sha1:3a3f6b958417b8067dcb7797e084dd31b5f062c7 pristine_git_object: 0512ee72d12de02ae258dec092832606921a673d + docs/models/v3globaldataserviceonhostglobals.md: + id: 06f1e955856f + last_write_checksum: sha1:821d357d5ce2a676480228a244afe3cae572be40 + pristine_git_object: 803cee7783011bf5f8de3a9895306c3ac0d66f4b + docs/models/v3globaldataserviceonhostrequest.md: + id: 0c947d10b9c8 + last_write_checksum: sha1:611b0b395b37621945ceb6adab5e1a040fa383e6 + pristine_git_object: 5d4cadcc3894a12c7a2061f876ac8c6ba88620c1 + docs/models/v3globaldataserviceonhostresponse.md: + id: b6a5eb7e226c + last_write_checksum: sha1:72a5654034175d50addaf67a7c1d163d13f589a1 + pristine_git_object: 394f17d16cd229998c3a31c32ea319dc8896b3d8 docs/models/v3threathuntinggethostobservationswithcertificateglobals.md: id: fa764d3799c6 last_write_checksum: sha1:83ab53ea7a37fce6f5e455899e0e1c9aef1930e0 @@ -2994,12 +3094,12 @@ trackedFiles: pristine_git_object: 7d5aff9b18d011a6e257e53d83c88d8d47a4e4d8 docs/sdks/collections/README.md: id: 7985e64efccf - last_write_checksum: sha1:a48cfce79adcb96db2e4161a5824dc8814e4ff7e - pristine_git_object: 3e61ad2b6d77ddb109bacccd5de70d83e97c8cf0 + last_write_checksum: sha1:1ba3f5a096d125f3ee3d8f9e90b806efd6ee57ae + pristine_git_object: 7c00028bb7ac927b2a2a51c23903759c44d6207c docs/sdks/globaldata/README.md: id: 0c68886632e6 - last_write_checksum: sha1:e306ee2378933f21750975d2d9434ec04e1f5efc - pristine_git_object: 4b35440d500338f47d0640832dd287e1f0f79e7c + last_write_checksum: sha1:b9d2d19c6e1971d147d6fd1587118553feb1f2ac + pristine_git_object: 14eb0315e424fd6316fbaad0d68949d6bbe67ac7 docs/sdks/threathunting/README.md: id: 9d697938ee45 last_write_checksum: sha1:dd67ab8b1f0ec0d2cbd3d9d5f0caeb5765684359 @@ -3014,12 +3114,12 @@ trackedFiles: pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pylintrc: id: 7ce8b9f946e6 - last_write_checksum: sha1:61536c2d1403a4738b52bda4167d4f100a5aa62b - pristine_git_object: e6ed56e03acaeeb18fe569517c72c3429615c191 + last_write_checksum: sha1:8d63e3347b23baa05bd72f6c6c49cd2325f2c91b + pristine_git_object: bfd8691be4b4b5ee9f2c4baf849970d807ade207 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:ef90876976f0833ca32919793dc8a8228b0b8468 - pristine_git_object: 6c35b32b3b4cbcb6fa5f08ffd89b297fcfe956f7 + last_write_checksum: sha1:3537a73122fbfda632c1d7dd828b5d87008067ca + pristine_git_object: 10a815d2906fc8ff0f09f8556bb1f6a0f0324bed scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:10d6ae008b24c68e99d7e8ba9c2e747070685ead @@ -3046,8 +3146,8 @@ trackedFiles: pristine_git_object: 352d3691d91c2d0ba0f05b48b56d4df5ce520098 src/censys_platform/_version.py: id: d2dc39704c23 - last_write_checksum: sha1:229f98f4712ae66a3d691dac3e3ac9a25d23e6f5 - pristine_git_object: 21c2607c269222fae8a5126d8b989ed534612bee + last_write_checksum: sha1:9cd7ee34c9e13374087bac30502ccf2a577e80d4 + pristine_git_object: ef833113b765e40e38ea5212eadcd8da679c9a81 src/censys_platform/account_management.py: id: 09993862b047 last_write_checksum: sha1:8c463369fda5bd1e76e021b26bfb99b492a2db90 @@ -3058,20 +3158,20 @@ trackedFiles: pristine_git_object: aecdb5ca70b7d3674d45c29152c032e5feaf638d src/censys_platform/collections.py: id: e6d640c28668 - last_write_checksum: sha1:dba995a3215148254475870bf51096b5599bfbd8 - pristine_git_object: cb2c83408f1a3ef08325bc7ba7fa4c0011140b1b + last_write_checksum: sha1:7f049199c57677439f37c0c092a45e7e04fa500e + pristine_git_object: ac1eb41c9befd4d6bc6dc1e0a6430025c7f64c9b src/censys_platform/global_data.py: id: 0eedbf9a2038 - last_write_checksum: sha1:3ffd8225ac9b97381af8a1c9c79426fd3450c5bf - pristine_git_object: 6c2b62369021e6f28f8c16060d805942455c666f + last_write_checksum: sha1:2b96180a91703f901f3fc09843536fd1627d5148 + pristine_git_object: 4868065dc5670a3729152df31427c87c5fbe4de8 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:eebd3144ab67a2ea0846e2f0ac851527dadb15d3 - pristine_git_object: 5ba2f0d371cef6181bef5767a29c9257a6ab69af + last_write_checksum: sha1:8932400800d82cfc24ccc5a73a7be76e5ec6330d + pristine_git_object: 20620aa000f1574d6f64dd6916715af263fb2480 src/censys_platform/models/activemq.py: id: c852b87bc559 last_write_checksum: sha1:5d8f5fbd113473e04d2d5824f960aebd03c6e892 @@ -3096,6 +3196,10 @@ trackedFiles: id: 9f0b2d00b124 last_write_checksum: sha1:c9fee42b6d9a66c091b9e55646d58d57a12a26b8 pristine_git_object: 9a46cdeb3d854b2f5a062f17e385463e0e03c743 + src/censys_platform/models/anermacfforth.py: + id: f62df358c83b + last_write_checksum: sha1:e0ffb68eaadc4f5360053fb316608635816467d0 + pristine_git_object: f887b5155c396ef47d707ca20fdea35e056f869a src/censys_platform/models/anyconnect.py: id: c2f70eef6aae last_write_checksum: sha1:9a98fdaf4f8932a60c89d566f5c5fffeb3e29216 @@ -3340,6 +3444,26 @@ trackedFiles: id: eb145bb430b9 last_write_checksum: sha1:4d4a3a92ee941b030021a9ca27099f59f8c0ec41 pristine_git_object: 8682504e1347d560202300dae41f1dc819d502b7 + src/censys_platform/models/cursorontarget.py: + id: 517f1ad66582 + last_write_checksum: sha1:b3513382fb2126c9c485a5f7ce24af9a2c3a7d6c + pristine_git_object: 504b417e91b37c92bdf52fc4b0f20c96af0d1ed7 + src/censys_platform/models/cursorontarget_event.py: + id: 8d51e11a3483 + last_write_checksum: sha1:3d84440cfc321e02812050218537322abc22288c + pristine_git_object: 8442d1e45e9e74fefb6bbb4269044349e7c8a9f4 + src/censys_platform/models/cursorontarget_point.py: + id: 624874b118d6 + last_write_checksum: sha1:944c5209f7b8daeaa04bcbca32ded356d281519e + pristine_git_object: bcf39ce2ea7fa63309e9d809952f72742cfa3b4e + src/censys_platform/models/cursorontarget_status.py: + id: 21076c527ad9 + last_write_checksum: sha1:c137e37721382f74ae6af06611d1fdf1b3488e99 + pristine_git_object: 8f20fb08ea481220dfe92530ad9f9ff0b103f29c + src/censys_platform/models/cursorontarget_takv.py: + id: 79b7249d427b + last_write_checksum: sha1:f69cbf52b1990dad1d863ec326fe11fa780216b2 + pristine_git_object: df4ca6c9ca9b744956076d49743b457e3121abb5 src/censys_platform/models/cvss.py: id: 84fe222e71a9 last_write_checksum: sha1:979b6c427e57853e7d3579015a577b8c705d19ea @@ -3696,6 +3820,10 @@ trackedFiles: id: b78436319b7d last_write_checksum: sha1:3b143c107825fc8333fb3015006a81bcd3ee5fe2 pristine_git_object: d6e7ce21cfd8d52f39cdfae806fba7528f26e87d + src/censys_platform/models/frps.py: + id: 1f573b6997af + last_write_checksum: sha1:3ac47a5ed96be8e6871468c0b7f84123a6915915 + pristine_git_object: f3909f1f9f2751df7db40a5152facf9504b64e2b src/censys_platform/models/ftp.py: id: "5409817615e1" last_write_checksum: sha1:581a3d2faf6e1aba6a2e99280f8d37ae52b2728f @@ -3812,6 +3940,14 @@ trackedFiles: id: a51545001411 last_write_checksum: sha1:33577c78acbb3c27c1983cea12d19cab8441c8f0 pristine_git_object: 85bee3e4dae399332803a6b54394adc6e97f6cf0 + src/censys_platform/models/icap.py: + id: 8d7fb638dacb + last_write_checksum: sha1:57dffde5e1236e39bfb665a4ff1eb0e05d1d467a + pristine_git_object: e02424a28ef857f2d6247ef4094bc9e3f85c885a + src/censys_platform/models/icap_optionsresponse.py: + id: 0e6080b08549 + last_write_checksum: sha1:e365adfbdf80f38825fdc68e00c65aaef650a2f8 + pristine_git_object: be6741e90d4f8135d35a920a5f03fb189917d7a2 src/censys_platform/models/ike.py: id: 148ca9ef74b2 last_write_checksum: sha1:51a95a4c8bcb1a5902edfe87270e0f3b4086e1f8 @@ -4688,6 +4824,10 @@ trackedFiles: id: 865244dc2224 last_write_checksum: sha1:0b35922ca1415acb8ea007e1c4ffc380e4b41ee9 pristine_git_object: 77454f678d4436301cd664a1aa05455ee0c2663b + src/censys_platform/models/responseenvelopeservicesonhostresponse.py: + id: 4b65210f2d35 + last_write_checksum: sha1:7acac19fcce0003690a2521fd4affecf5d090fed + pristine_git_object: f5f44c8851feb1f31ad06914bcd81c07ccc2e8b3 src/censys_platform/models/responseenvelopethreatslistresponse.py: id: c59b87700b19 last_write_checksum: sha1:db717c9345002119538ca8d487d9ac85582e90d6 @@ -4934,20 +5074,28 @@ trackedFiles: pristine_git_object: a7391bbf7b2dc4f949ac86ac6969dd4b84d2ce44 src/censys_platform/models/service.py: id: 25dc1044897b - last_write_checksum: sha1:3895eccac4a1b4081593d02e607a6f915dd4324b - pristine_git_object: 13c6f3742504895249bb4283c539224283b6fc7d + last_write_checksum: sha1:d8e7c29194b7dee04322a83c22b025e073e95306 + pristine_git_object: ef0c1b388fb51bba8339647c353ecf8d618ff85c src/censys_platform/models/serviceid.py: id: 52a5b098ac72 last_write_checksum: sha1:1e7bf71c1365b3f352342f5de05fd85c63345b7a pristine_git_object: fb52b69a02398d69fe680fbbf1f9e131707cfd26 + src/censys_platform/models/serviceonhostrange.py: + id: b169fd48bb8f + last_write_checksum: sha1:d135e35720431651b43530e371293579c01ddf5c + pristine_git_object: ee6e0658c1552e310381fdcdb70cbcc974189e85 src/censys_platform/models/servicescan.py: id: 24c47a42f886 - last_write_checksum: sha1:e960651c4b5b62470a3fbc3afae66c55278e721c - pristine_git_object: d282885d43dc975953bdd579b0cf5149302d5ea1 + last_write_checksum: sha1:45909049cd170c498fe87db7d93f1bfc35954706 + pristine_git_object: e6f2598ae751e49074dbd0ffb3bad22a12b497bc src/censys_platform/models/servicescanned.py: id: 7a118692950e last_write_checksum: sha1:026ccd1b0189bfba2baa9b352deaefb55c4bce36 pristine_git_object: 80ffbce99b246195642c3eec134263e64ba1fbd7 + src/censys_platform/models/servicesonhostresponse.py: + id: a7ebddf1bda0 + last_write_checksum: sha1:735cd6ae3f21d827cbf7db3616fd6e883aa5b521 + pristine_git_object: a37bd732ef233a2675533a81f60c4111384f6465 src/censys_platform/models/sevendaystodie.py: id: 339ea7cd9d32 last_write_checksum: sha1:e03d2f811f7fa6d888c9424486a4baa6c675a9b0 @@ -5030,8 +5178,8 @@ trackedFiles: pristine_git_object: 615e5f90ddf9e03c2cde746f116adedd718d476a src/censys_platform/models/sourceusagebreakdown.py: id: 135e8c6797e6 - last_write_checksum: sha1:24450edc7dc7acbaf46a2e5f03d48eca37ce384e - pristine_git_object: 3d54799a90e394eb8e5f892cf9b742931f01428e + last_write_checksum: sha1:da4f6f85ca94acd874dffa6284278194b5e2d856 + pristine_git_object: b665e5d06e7957f441d0cb29028a98a1dd54acce src/censys_platform/models/spice.py: id: c77b4a307c1d last_write_checksum: sha1:dca4ab08e20e94eea491d7b91d9e0d8b5e865555 @@ -5072,6 +5220,34 @@ trackedFiles: id: 1dfa69ab021e last_write_checksum: sha1:ed34539203f60064aca876f45c05dc0e18d1378d pristine_git_object: 4e348ea14c5f441feda41f41b1e289d476e42226 + src/censys_platform/models/stun.py: + id: 49dfac238ed1 + last_write_checksum: sha1:4bb767dd48400dada168f30826bfe7bbb92da679 + pristine_git_object: af2b2cf6aee68bc3b29260b421c396368bbf5d6a + src/censys_platform/models/stun_bindingerrorresponse.py: + id: 9b084ebe1462 + last_write_checksum: sha1:4973f44e1362030780cf6ebc608b5c0f66a76b2d + pristine_git_object: 41b221b04b38601c2cfc5ad84bd3b397bd2b143b + src/censys_platform/models/stun_bindingsuccessresponse.py: + id: 73bcf975931b + last_write_checksum: sha1:6dfda30d03242d640f1ff7491fa2a2c877e6e5de + pristine_git_object: 0c6d85a50f89fa5c1d980f0585a898ccdf11f8fc + src/censys_platform/models/stun_mappedaddress.py: + id: 15851294cc5f + last_write_checksum: sha1:830ef5c3e27577b379bfab7fa66300975e01f517 + pristine_git_object: e8a87351329ceab588bc91cadaa8bb3d2a78773c + src/censys_platform/models/stun_turn.py: + id: d9c00e46d9ce + last_write_checksum: sha1:0c82be9fecbeb52a75bdae3a08bca3313b2b00dd + pristine_git_object: 7931900cfd0b694716360cf73ae57ba66301ef68 + src/censys_platform/models/stun_turn_allocateerrorresponse.py: + id: 703a5c8c166c + last_write_checksum: sha1:a1e53731b7bd6a7bca887ca08055ccd738de2e53 + pristine_git_object: 0dddd1ddf80375b9aa72908fbb7cc40ef8eeb3e0 + src/censys_platform/models/stun_turn_allocatesuccessresponse.py: + id: 695c2f1aa52b + last_write_checksum: sha1:fc0bb5fcd0d7873664b18500fac902b9936bd735 + pristine_git_object: 0dc043f7a4dcf066c6bae40b90cc265981d2a2c3 src/censys_platform/models/subjectkeyinfo.py: id: 228de191a4ee last_write_checksum: sha1:230fa3bb011af25ce19f0119c3d99dd402b391d6 @@ -5266,8 +5442,8 @@ trackedFiles: pristine_git_object: c18b132981364a2130576221d62f1f7610ffbc64 src/censys_platform/models/v3_collections_crud_listop.py: id: 448a4cdf9d95 - last_write_checksum: sha1:c3add14d34ff3d4330e1894025d0f37b54123840 - pristine_git_object: ae2b5298d2955ee90580885b4a470189b5acb70f + last_write_checksum: sha1:fafdb2c5fd106e2838f083e90c67f00ecf474c7e + pristine_git_object: e4be20f0d53c50a10660633434108924d2946247 src/censys_platform/models/v3_collections_crud_updateop.py: id: 2c6bfa2138db last_write_checksum: sha1:926d989c8a6055829624daf2db10c41131cc0fea @@ -5340,6 +5516,10 @@ trackedFiles: id: 1e0882be1f7b last_write_checksum: sha1:cd829788e75f42c906cb2187223b2eb128db36a4 pristine_git_object: da590844eda8c00bc3a256dcabd1ee559d9912a1 + src/censys_platform/models/v3_globaldata_service_on_hostop.py: + id: 6455783cd2a8 + last_write_checksum: sha1:bab6f797d28d3d7d0ba55c22d5b5d50df44ebbde + pristine_git_object: 71b34abf7c4da811cc33876714ec29c3331a4109 src/censys_platform/models/v3_threathunting_get_host_observations_with_certificateop.py: id: ba9b94957bd2 last_write_checksum: sha1:bccb49afe077b8bc29db316a2bd637594bed3826 @@ -5556,6 +5736,7 @@ examples: organization_id: "" page_token: "" page_size: 1 + collection_statuses: ["populating", "active"] responses: "200": application/json: {} @@ -6153,7 +6334,7 @@ examples: include_consumer_breakdown: false responses: "200": - application/json: {"result": {"credits_consumed_by_source": {"api": 527007, "auto_replenishment": 474430, "other": 439272, "ui": 30140}, "end_time": "2026-02-24T20:39:40.987Z", "granularity": "daily", "periods": [], "start_time": "2026-08-31T05:06:39.123Z", "total_added": 532855, "total_consumed": 794965, "total_expired": 868832, "transaction_count": 833735}} + application/json: {"result": {"credits_consumed_by_source": {"api": 527007, "ui": 30140}, "end_time": "2026-02-24T20:39:40.987Z", "granularity": "daily", "periods": [], "start_time": "2026-08-31T05:06:39.123Z", "total_added": 532855, "total_consumed": 794965, "total_expired": 868832, "transaction_count": 833735}} "401": application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "400": @@ -6231,7 +6412,7 @@ examples: granularity: "daily" responses: "200": - application/json: {"result": {"credits_consumed_by_source": {"api": 135676, "auto_replenishment": 85097, "other": 421973, "ui": 62358}, "end_time": "2025-11-05T11:52:42.728Z", "granularity": "daily", "periods": [], "start_time": "2025-12-18T14:05:05.185Z", "total_added": 853045, "total_consumed": 419835, "total_expired": 916558, "transaction_count": 881742}} + application/json: {"result": {"credits_consumed_by_source": {"api": 135676, "ui": 62358}, "end_time": "2025-11-05T11:52:42.728Z", "granularity": "daily", "periods": [], "start_time": "2025-12-18T14:05:05.185Z", "total_added": 853045, "total_consumed": 419835, "total_expired": 916558, "transaction_count": 881742}} "401": application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "400": @@ -6276,7 +6457,7 @@ examples: granularity: "daily" responses: "200": - application/json: {"result": {"credits_consumed_by_source": {"api": 950767, "auto_replenishment": 578911, "other": 171288, "ui": 255777}, "end_time": "2024-04-27T13:57:59.211Z", "granularity": "daily", "periods": null, "start_time": "2024-12-31T17:45:46.745Z", "total_added": 709804, "total_consumed": 277201, "total_expired": 64971, "transaction_count": 82629}} + application/json: {"result": {"credits_consumed_by_source": {"api": 950767, "ui": 255777}, "end_time": "2024-04-27T13:57:59.211Z", "granularity": "daily", "periods": null, "start_time": "2024-12-31T17:45:46.745Z", "total_added": 709804, "total_consumed": 277201, "total_expired": 64971, "transaction_count": 82629}} "401": application/json: {"error": {"code": 401, "message": "Access credentials are invalid", "reason": "Access token is not active", "status": "Unauthorized"}} "404": @@ -6285,6 +6466,28 @@ 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"} "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-service-on-host: + speakeasy-default-v3-globaldata-service-on-host: + parameters: + path: + host_id: "8.8.8.8" + query: + organization_id: "" + start_time: "2024-01-01T00:00:00Z" + end_time: "2024-01-31T23:59:59Z" + page_size: 50 + port: 443 + protocol: "HTTP" + transport_protocol: "tcp" + responses: + "200": + application/json: {} + "401": + 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"} examplesVersion: 1.0.2 generatedTests: {} generatedFiles: diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 568e81e..39b4ec0 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -29,7 +29,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false python: - version: 0.13.0 + version: 0.13.1 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index c1991e8..01a49bd 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,21 +1,21 @@ -speakeasyVersion: 1.725.0 +speakeasyVersion: 1.731.2 sources: converge-source: sourceNamespace: converge-source - sourceRevisionDigest: sha256:51fafb7dc879583d6a227639dd292844bca57ae5e09ffa40379158293ed9c9e2 - sourceBlobDigest: sha256:f006243191b7ea6561229ecd7e86f68a24b7c2279a30e5be0c6396d0be8be9b4 + sourceRevisionDigest: sha256:48cf182ee10951ce591e9d09c41ff31c245676976837dc8efeeb81de92331450 + sourceBlobDigest: sha256:7de50b965211e15a8a2e0f0aa4bf2e80879f8e95decc394147e411317e37caa0 tags: - latest - - speakeasy-sdk-regen-1770424472 - - 1.0.77 + - speakeasy-sdk-regen-1771979923 + - 1.0.80 targets: censys-sdk-python: source: converge-source sourceNamespace: converge-source - sourceRevisionDigest: sha256:51fafb7dc879583d6a227639dd292844bca57ae5e09ffa40379158293ed9c9e2 - sourceBlobDigest: sha256:f006243191b7ea6561229ecd7e86f68a24b7c2279a30e5be0c6396d0be8be9b4 + sourceRevisionDigest: sha256:48cf182ee10951ce591e9d09c41ff31c245676976837dc8efeeb81de92331450 + sourceBlobDigest: sha256:7de50b965211e15a8a2e0f0aa4bf2e80879f8e95decc394147e411317e37caa0 codeSamplesNamespace: converge-source-python-code-samples - codeSamplesRevisionDigest: sha256:3e5450e8ca337c669472642b6fa6e263f19b0f00381dea7271da177d294f9262 + codeSamplesRevisionDigest: sha256:3888134d241e822364240410bd135065d6da335e32aa1173967eeeb211429867 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README-PYPI.md b/README-PYPI.md index 9969e87..c79c7b5 100644 --- a/README-PYPI.md +++ b/README-PYPI.md @@ -210,6 +210,7 @@ asyncio.run(main()) * [get_certificate_raw](https://github.com/censys/censys-sdk-python/blob/master/docs/sdks/globaldata/README.md#get_certificate_raw) - Get a certificate in PEM format * [get_hosts](https://github.com/censys/censys-sdk-python/blob/master/docs/sdks/globaldata/README.md#get_hosts) - Retrieve multiple hosts * [get_host](https://github.com/censys/censys-sdk-python/blob/master/docs/sdks/globaldata/README.md#get_host) - Get a host +* [list_services_on_host](https://github.com/censys/censys-sdk-python/blob/master/docs/sdks/globaldata/README.md#list_services_on_host) - Get service history for a host * [get_host_timeline](https://github.com/censys/censys-sdk-python/blob/master/docs/sdks/globaldata/README.md#get_host_timeline) - Get host event history * [get_web_properties](https://github.com/censys/censys-sdk-python/blob/master/docs/sdks/globaldata/README.md#get_web_properties) - Retrieve multiple web properties * [get_web_property](https://github.com/censys/censys-sdk-python/blob/master/docs/sdks/globaldata/README.md#get_web_property) - Get a web property diff --git a/README.md b/README.md index 090ba74..68e94cf 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ asyncio.run(main()) * [get_certificate_raw](docs/sdks/globaldata/README.md#get_certificate_raw) - Get a certificate in PEM format * [get_hosts](docs/sdks/globaldata/README.md#get_hosts) - Retrieve multiple hosts * [get_host](docs/sdks/globaldata/README.md#get_host) - Get a host +* [list_services_on_host](docs/sdks/globaldata/README.md#list_services_on_host) - Get service history for a host * [get_host_timeline](docs/sdks/globaldata/README.md#get_host_timeline) - Get host event history * [get_web_properties](docs/sdks/globaldata/README.md#get_web_properties) - Retrieve multiple web properties * [get_web_property](docs/sdks/globaldata/README.md#get_web_property) - Get a web property diff --git a/RELEASES.md b/RELEASES.md index 811b327..266565e 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -206,4 +206,14 @@ Based on: ### 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 +- [PyPI v0.13.0] https://pypi.org/project/censys-platform/0.13.0 - . + +## 2026-02-27 03:34:34 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.731.2 (2.845.1) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.13.1] . +### Releases +- [PyPI v0.13.1] https://pypi.org/project/censys-platform/0.13.1 - . \ No newline at end of file diff --git a/docs/models/anermacfforth.md b/docs/models/anermacfforth.md new file mode 100644 index 0000000..b7f9d03 --- /dev/null +++ b/docs/models/anermacfforth.md @@ -0,0 +1,12 @@ +# AnermaCfForth + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `ip` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `product` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `serial_number` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `unit_name` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `version` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/collectionstatuses.md b/docs/models/collectionstatuses.md new file mode 100644 index 0000000..b13d6cf --- /dev/null +++ b/docs/models/collectionstatuses.md @@ -0,0 +1,11 @@ +# CollectionStatuses + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `POPULATING` | populating | +| `ACTIVE` | active | +| `PAUSED` | paused | +| `ARCHIVED` | archived | \ No newline at end of file diff --git a/docs/models/cursorontarget.md b/docs/models/cursorontarget.md new file mode 100644 index 0000000..47c17a8 --- /dev/null +++ b/docs/models/cursorontarget.md @@ -0,0 +1,8 @@ +# CursorOnTarget + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `events` | List[[models.CursorOnTargetEvent](../models/cursorontargetevent.md)] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/cursorontargetevent.md b/docs/models/cursorontargetevent.md new file mode 100644 index 0000000..5c6c025 --- /dev/null +++ b/docs/models/cursorontargetevent.md @@ -0,0 +1,20 @@ +# CursorOnTargetEvent + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `callsign` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `endpoint` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `how` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `point` | [Optional[models.CursorOnTargetPoint]](../models/cursorontargetpoint.md) | :heavy_minus_sign: | N/A | +| `stale` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `start` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `status` | [Optional[models.CursorOnTargetStatus]](../models/cursorontargetstatus.md) | :heavy_minus_sign: | N/A | +| `takv` | [Optional[models.CursorOnTargetTakv]](../models/cursorontargettakv.md) | :heavy_minus_sign: | N/A | +| `time` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `type` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `uid` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `version` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `video_url` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/cursorontargetpoint.md b/docs/models/cursorontargetpoint.md new file mode 100644 index 0000000..677e2e6 --- /dev/null +++ b/docs/models/cursorontargetpoint.md @@ -0,0 +1,12 @@ +# CursorOnTargetPoint + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `ce` | *Optional[float]* | :heavy_minus_sign: | N/A | +| `hae` | *Optional[float]* | :heavy_minus_sign: | N/A | +| `lat` | *Optional[float]* | :heavy_minus_sign: | N/A | +| `le` | *Optional[float]* | :heavy_minus_sign: | N/A | +| `lon` | *Optional[float]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/cursorontargetstatus.md b/docs/models/cursorontargetstatus.md new file mode 100644 index 0000000..7c1aedc --- /dev/null +++ b/docs/models/cursorontargetstatus.md @@ -0,0 +1,8 @@ +# CursorOnTargetStatus + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `battery` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/cursorontargettakv.md b/docs/models/cursorontargettakv.md new file mode 100644 index 0000000..556005b --- /dev/null +++ b/docs/models/cursorontargettakv.md @@ -0,0 +1,11 @@ +# CursorOnTargetTakv + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `device` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `os` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `platform` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `version` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/frps.md b/docs/models/frps.md new file mode 100644 index 0000000..9af7ae1 --- /dev/null +++ b/docs/models/frps.md @@ -0,0 +1,10 @@ +# Frps + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `error` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `run_id` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `version` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/icap.md b/docs/models/icap.md new file mode 100644 index 0000000..57df5de --- /dev/null +++ b/docs/models/icap.md @@ -0,0 +1,8 @@ +# Icap + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `options_response` | [Optional[models.IcapOptionsResponse]](../models/icapoptionsresponse.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/icapoptionsresponse.md b/docs/models/icapoptionsresponse.md new file mode 100644 index 0000000..3e13f7f --- /dev/null +++ b/docs/models/icapoptionsresponse.md @@ -0,0 +1,19 @@ +# IcapOptionsResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `allow_204` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `icap_version` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `istag` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `max_connections` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `methods` | List[*str*] | :heavy_minus_sign: | N/A | +| `options_ttl` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `preview` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `server_header` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `service` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `service_id` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `status_code` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `status_text` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/orderby.md b/docs/models/orderby.md new file mode 100644 index 0000000..1292459 --- /dev/null +++ b/docs/models/orderby.md @@ -0,0 +1,13 @@ +# OrderBy + + +## Values + +| Name | Value | +| ------------------------- | ------------------------- | +| `PORT_ASC` | port ASC | +| `PORT_DESC` | port DESC | +| `PROTOCOL_ASC` | protocol ASC | +| `PROTOCOL_DESC` | protocol DESC | +| `TRANSPORT_PROTOCOL_ASC` | transport_protocol ASC | +| `TRANSPORT_PROTOCOL_DESC` | transport_protocol DESC | \ No newline at end of file diff --git a/docs/models/queryparamtransportprotocol.md b/docs/models/queryparamtransportprotocol.md new file mode 100644 index 0000000..ddb1e56 --- /dev/null +++ b/docs/models/queryparamtransportprotocol.md @@ -0,0 +1,12 @@ +# QueryParamTransportProtocol + +Filter by transport protocol + + +## Values + +| Name | Value | +| ------ | ------ | +| `TCP` | tcp | +| `UDP` | udp | +| `QUIC` | quic | \ No newline at end of file diff --git a/docs/models/responseenvelopeservicesonhostresponse.md b/docs/models/responseenvelopeservicesonhostresponse.md new file mode 100644 index 0000000..dd19e54 --- /dev/null +++ b/docs/models/responseenvelopeservicesonhostresponse.md @@ -0,0 +1,8 @@ +# ResponseEnvelopeServicesOnHostResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `result` | [Optional[models.ServicesOnHostResponse]](../models/servicesonhostresponse.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/service.md b/docs/models/service.md index 22ec9f4..c642901 100644 --- a/docs/models/service.md +++ b/docs/models/service.md @@ -7,6 +7,7 @@ | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | | `activemq` | [Optional[models.Activemq]](../models/activemq.md) | :heavy_minus_sign: | N/A | | `amqp` | [Optional[models.Amqp]](../models/amqp.md) | :heavy_minus_sign: | N/A | +| `anerma_cf_forth` | [Optional[models.AnermaCfForth]](../models/anermacfforth.md) | :heavy_minus_sign: | N/A | | `any_connect` | [Optional[models.AnyConnect]](../models/anyconnect.md) | :heavy_minus_sign: | N/A | | `asterisk_manager_interface` | [Optional[models.AsteriskManagerInterface]](../models/asteriskmanagerinterface.md) | :heavy_minus_sign: | N/A | | `bacnet` | [Optional[models.Bacnet]](../models/bacnet.md) | :heavy_minus_sign: | N/A | @@ -21,6 +22,7 @@ | `coap` | [Optional[models.Coap]](../models/coap.md) | :heavy_minus_sign: | N/A | | `crestron_cp3` | [Optional[models.CrestronCp3]](../models/crestroncp3.md) | :heavy_minus_sign: | N/A | | `crestron_din_ap2` | [Optional[models.CrestronDinAp2]](../models/crestrondinap2.md) | :heavy_minus_sign: | N/A | +| `cursor_on_target` | [Optional[models.CursorOnTarget]](../models/cursorontarget.md) | :heavy_minus_sign: | N/A | | `cwmp` | [Optional[models.Cwmp]](../models/cwmp.md) | :heavy_minus_sign: | N/A | | `darkcomet` | [Optional[models.Darkcomet]](../models/darkcomet.md) | :heavy_minus_sign: | N/A | | `darkgate` | [Optional[models.Darkgate]](../models/darkgate.md) | :heavy_minus_sign: | N/A | @@ -39,6 +41,7 @@ | `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 | +| `frps` | [Optional[models.Frps]](../models/frps.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 | @@ -47,6 +50,7 @@ | `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 | | `ibmnje` | [Optional[models.Ibmnje]](../models/ibmnje.md) | :heavy_minus_sign: | N/A | +| `icap` | [Optional[models.Icap]](../models/icap.md) | :heavy_minus_sign: | N/A | | `ike` | [Optional[models.Ike]](../models/ike.md) | :heavy_minus_sign: | N/A | | `imap` | [Optional[models.Imap]](../models/imap.md) | :heavy_minus_sign: | N/A | | `iota` | [Optional[models.Iota]](../models/iota.md) | :heavy_minus_sign: | N/A | @@ -133,6 +137,7 @@ | `ssdp` | [Optional[models.Ssdp]](../models/ssdp.md) | :heavy_minus_sign: | N/A | | `ssh` | [Optional[models.SSH]](../models/ssh.md) | :heavy_minus_sign: | N/A | | `steam` | [Optional[models.Steam]](../models/steam.md) | :heavy_minus_sign: | N/A | +| `stun` | [Optional[models.Stun]](../models/stun.md) | :heavy_minus_sign: | N/A | | `tacacs_plus` | [Optional[models.TacacsPlus]](../models/tacacsplus.md) | :heavy_minus_sign: | N/A | | `team_viewer` | [Optional[models.TeamViewer]](../models/teamviewer.md) | :heavy_minus_sign: | N/A | | `telnet` | [Optional[models.Telnet]](../models/telnet.md) | :heavy_minus_sign: | N/A | diff --git a/docs/models/serviceonhostrange.md b/docs/models/serviceonhostrange.md new file mode 100644 index 0000000..bc2f400 --- /dev/null +++ b/docs/models/serviceonhostrange.md @@ -0,0 +1,13 @@ +# ServiceOnHostRange + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `end_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | When the service was last observed | +| `ip` | *str* | :heavy_check_mark: | IP address where the service was observed | +| `port` | *str* | :heavy_check_mark: | Port number where the service was observed | +| `protocol` | *str* | :heavy_check_mark: | Application protocol (e.g., HTTP, HTTPS) | +| `start_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_check_mark: | When the service was first observed | +| `transport_protocol` | *str* | :heavy_check_mark: | Transport protocol (e.g., TCP, UDP, QUIC) | \ No newline at end of file diff --git a/docs/models/servicescan.md b/docs/models/servicescan.md index 93687f1..782b308 100644 --- a/docs/models/servicescan.md +++ b/docs/models/servicescan.md @@ -7,6 +7,7 @@ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | | `activemq` | [Optional[models.Activemq]](../models/activemq.md) | :heavy_minus_sign: | N/A | | `amqp` | [Optional[models.Amqp]](../models/amqp.md) | :heavy_minus_sign: | N/A | +| `anerma_cf_forth` | [Optional[models.AnermaCfForth]](../models/anermacfforth.md) | :heavy_minus_sign: | N/A | | `any_connect` | [Optional[models.AnyConnect]](../models/anyconnect.md) | :heavy_minus_sign: | N/A | | `asterisk_manager_interface` | [Optional[models.AsteriskManagerInterface]](../models/asteriskmanagerinterface.md) | :heavy_minus_sign: | N/A | | `bacnet` | [Optional[models.Bacnet]](../models/bacnet.md) | :heavy_minus_sign: | N/A | @@ -19,6 +20,7 @@ | `coap` | [Optional[models.Coap]](../models/coap.md) | :heavy_minus_sign: | N/A | | `crestron_cp3` | [Optional[models.CrestronCp3]](../models/crestroncp3.md) | :heavy_minus_sign: | N/A | | `crestron_din_ap2` | [Optional[models.CrestronDinAp2]](../models/crestrondinap2.md) | :heavy_minus_sign: | N/A | +| `cursor_on_target` | [Optional[models.CursorOnTarget]](../models/cursorontarget.md) | :heavy_minus_sign: | N/A | | `cwmp` | [Optional[models.Cwmp]](../models/cwmp.md) | :heavy_minus_sign: | N/A | | `darkcomet` | [Optional[models.Darkcomet]](../models/darkcomet.md) | :heavy_minus_sign: | N/A | | `darkgate` | [Optional[models.Darkgate]](../models/darkgate.md) | :heavy_minus_sign: | N/A | @@ -35,6 +37,7 @@ | `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 | +| `frps` | [Optional[models.Frps]](../models/frps.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 | @@ -42,6 +45,7 @@ | `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 | | `ibmnje` | [Optional[models.Ibmnje]](../models/ibmnje.md) | :heavy_minus_sign: | N/A | +| `icap` | [Optional[models.Icap]](../models/icap.md) | :heavy_minus_sign: | N/A | | `ike` | [Optional[models.Ike]](../models/ike.md) | :heavy_minus_sign: | N/A | | `imap` | [Optional[models.Imap]](../models/imap.md) | :heavy_minus_sign: | N/A | | `iota` | [Optional[models.Iota]](../models/iota.md) | :heavy_minus_sign: | N/A | @@ -123,6 +127,7 @@ | `ssdp` | [Optional[models.Ssdp]](../models/ssdp.md) | :heavy_minus_sign: | N/A | | `ssh` | [Optional[models.SSH]](../models/ssh.md) | :heavy_minus_sign: | N/A | | `steam` | [Optional[models.Steam]](../models/steam.md) | :heavy_minus_sign: | N/A | +| `stun` | [Optional[models.Stun]](../models/stun.md) | :heavy_minus_sign: | N/A | | `tacacs_plus` | [Optional[models.TacacsPlus]](../models/tacacsplus.md) | :heavy_minus_sign: | N/A | | `team_viewer` | [Optional[models.TeamViewer]](../models/teamviewer.md) | :heavy_minus_sign: | N/A | | `telnet` | [Optional[models.Telnet]](../models/telnet.md) | :heavy_minus_sign: | N/A | diff --git a/docs/models/servicesonhostresponse.md b/docs/models/servicesonhostresponse.md new file mode 100644 index 0000000..7d604b0 --- /dev/null +++ b/docs/models/servicesonhostresponse.md @@ -0,0 +1,9 @@ +# ServicesOnHostResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `next_page_token` | *str* | :heavy_check_mark: | N/A | +| `ranges` | List[[models.ServiceOnHostRange](../models/serviceonhostrange.md)] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/sourceusagebreakdown.md b/docs/models/sourceusagebreakdown.md index 605d2d2..e51a4cf 100644 --- a/docs/models/sourceusagebreakdown.md +++ b/docs/models/sourceusagebreakdown.md @@ -6,6 +6,6 @@ | Field | Type | Required | Description | | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | | `api` | *int* | :heavy_check_mark: | The amount of credits consumed through the Platform API. | -| `auto_replenishment` | *int* | :heavy_check_mark: | The amount of credits consumed through auto-replenishment. | -| `other` | *int* | :heavy_check_mark: | The amount of credits consumed through other operations. | +| `auto_replenishment` | *Optional[int]* | :heavy_minus_sign: | The amount of credits consumed through auto-replenishment. | +| `other` | *Optional[int]* | :heavy_minus_sign: | The amount of credits consumed through other operations. | | `ui` | *int* | :heavy_check_mark: | The amount of credits consumed through the Platform UI. | \ No newline at end of file diff --git a/docs/models/stun.md b/docs/models/stun.md new file mode 100644 index 0000000..0155396 --- /dev/null +++ b/docs/models/stun.md @@ -0,0 +1,12 @@ +# Stun + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `binding_error_response` | [Optional[models.StunBindingErrorResponse]](../models/stunbindingerrorresponse.md) | :heavy_minus_sign: | N/A | +| `binding_success_response` | [Optional[models.StunBindingSuccessResponse]](../models/stunbindingsuccessresponse.md) | :heavy_minus_sign: | N/A | +| `response_type` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `response_type_name` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `turn` | [Optional[models.StunTurn]](../models/stunturn.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/stunbindingerrorresponse.md b/docs/models/stunbindingerrorresponse.md new file mode 100644 index 0000000..5526917 --- /dev/null +++ b/docs/models/stunbindingerrorresponse.md @@ -0,0 +1,11 @@ +# StunBindingErrorResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `error_code` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `error_reason` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `has_fingerprint` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `software` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/stunbindingsuccessresponse.md b/docs/models/stunbindingsuccessresponse.md new file mode 100644 index 0000000..3e03f4b --- /dev/null +++ b/docs/models/stunbindingsuccessresponse.md @@ -0,0 +1,10 @@ +# StunBindingSuccessResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `has_fingerprint` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `other_address` | [Optional[models.StunMappedAddress]](../models/stunmappedaddress.md) | :heavy_minus_sign: | N/A | +| `software` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/stunmappedaddress.md b/docs/models/stunmappedaddress.md new file mode 100644 index 0000000..ac00691 --- /dev/null +++ b/docs/models/stunmappedaddress.md @@ -0,0 +1,9 @@ +# StunMappedAddress + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `ip` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `port` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/stunturn.md b/docs/models/stunturn.md new file mode 100644 index 0000000..03fd2ad --- /dev/null +++ b/docs/models/stunturn.md @@ -0,0 +1,11 @@ +# StunTurn + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `allocate_error_response` | [Optional[models.StunTurnAllocateErrorResponse]](../models/stunturnallocateerrorresponse.md) | :heavy_minus_sign: | N/A | +| `allocate_success_response` | [Optional[models.StunTurnAllocateSuccessResponse]](../models/stunturnallocatesuccessresponse.md) | :heavy_minus_sign: | N/A | +| `response_type` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `response_type_name` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/stunturnallocateerrorresponse.md b/docs/models/stunturnallocateerrorresponse.md new file mode 100644 index 0000000..cd7b43d --- /dev/null +++ b/docs/models/stunturnallocateerrorresponse.md @@ -0,0 +1,13 @@ +# StunTurnAllocateErrorResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `error_code` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `error_reason` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `has_fingerprint` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `nonce` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `realm` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `software` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/stunturnallocatesuccessresponse.md b/docs/models/stunturnallocatesuccessresponse.md new file mode 100644 index 0000000..42ebd9a --- /dev/null +++ b/docs/models/stunturnallocatesuccessresponse.md @@ -0,0 +1,10 @@ +# StunTurnAllocateSuccessResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `has_fingerprint` | *Optional[bool]* | :heavy_minus_sign: | N/A | +| `relay_address` | [Optional[models.StunMappedAddress]](../models/stunmappedaddress.md) | :heavy_minus_sign: | N/A | +| `software` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/v3collectionscrudlistrequest.md b/docs/models/v3collectionscrudlistrequest.md index b0a654d..38b22d1 100644 --- a/docs/models/v3collectionscrudlistrequest.md +++ b/docs/models/v3collectionscrudlistrequest.md @@ -7,4 +7,5 @@ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `organization_id` | *Optional[str]* | :heavy_minus_sign: | The ID of a Censys organization to associate the request with. See the [Getting Started docs](https://docs.censys.com/reference/get-started#step-3-find-and-use-your-organization-id-optional) for more information. | | | `page_token` | *Optional[str]* | :heavy_minus_sign: | page token for the requested page of collection results | | -| `page_size` | *Optional[int]* | :heavy_minus_sign: | amount of results to return per page | 1 | \ No newline at end of file +| `page_size` | *Optional[int]* | :heavy_minus_sign: | amount of results to return per page | 1 | +| `collection_statuses` | List[[models.CollectionStatuses](../models/collectionstatuses.md)] | :heavy_minus_sign: | statuses of collection for results to be filtered on. | [
"populating",
"active"
] | \ No newline at end of file diff --git a/docs/models/v3globaldataserviceonhostglobals.md b/docs/models/v3globaldataserviceonhostglobals.md new file mode 100644 index 0000000..803cee7 --- /dev/null +++ b/docs/models/v3globaldataserviceonhostglobals.md @@ -0,0 +1,8 @@ +# V3GlobaldataServiceOnHostGlobals + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `organization_id` | *Optional[str]* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/v3globaldataserviceonhostrequest.md b/docs/models/v3globaldataserviceonhostrequest.md new file mode 100644 index 0000000..5d4cadc --- /dev/null +++ b/docs/models/v3globaldataserviceonhostrequest.md @@ -0,0 +1,17 @@ +# V3GlobaldataServiceOnHostRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `organization_id` | *Optional[str]* | :heavy_minus_sign: | The ID of a Censys organization to associate the request with. See the [Getting Started docs](https://docs.censys.com/reference/get-started#step-3-find-and-use-your-organization-id-optional) for more information. | | +| `start_time` | *Optional[str]* | :heavy_minus_sign: | Start of date range (RFC3339 format, e.g., 2024-01-01T00:00:00Z). If not specified, defaults to the maximum query window back from the end time. | 2024-01-01T00:00:00Z | +| `end_time` | *Optional[str]* | :heavy_minus_sign: | End of date range (RFC3339 format, e.g., 2024-01-31T23:59:59Z). If not specified, defaults to now. Cannot be in the future. | 2024-01-31T23:59:59Z | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | Number of results per page (max 100) | 50 | +| `page_token` | *Optional[str]* | :heavy_minus_sign: | Pagination token from previous response | | +| `port` | *Optional[int]* | :heavy_minus_sign: | Filter by port number | 443 | +| `protocol` | *Optional[str]* | :heavy_minus_sign: | Filter by application protocol | HTTP | +| `transport_protocol` | [Optional[models.QueryParamTransportProtocol]](../models/queryparamtransportprotocol.md) | :heavy_minus_sign: | Filter by transport protocol | tcp | +| `host_id` | *str* | :heavy_check_mark: | The IP address of a host. | 8.8.8.8 | +| `order_by` | List[[models.OrderBy](../models/orderby.md)] | :heavy_minus_sign: | Order observations by these fields. Multiple values can be provided to sort by multiple fields (e.g., ['port DESC', 'protocol ASC']). | | \ No newline at end of file diff --git a/docs/models/v3globaldataserviceonhostresponse.md b/docs/models/v3globaldataserviceonhostresponse.md new file mode 100644 index 0000000..394f17d --- /dev/null +++ b/docs/models/v3globaldataserviceonhostresponse.md @@ -0,0 +1,9 @@ +# V3GlobaldataServiceOnHostResponse + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `headers` | Dict[str, List[*str*]] | :heavy_check_mark: | N/A | +| `result` | [models.ResponseEnvelopeServicesOnHostResponse](../models/responseenvelopeservicesonhostresponse.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/sdks/collections/README.md b/docs/sdks/collections/README.md index 3e61ad2..7c00028 100644 --- a/docs/sdks/collections/README.md +++ b/docs/sdks/collections/README.md @@ -23,6 +23,7 @@ List all collections for an organization. Retrieved information includes collect ```python +import censys_platform from censys_platform import SDK @@ -31,7 +32,10 @@ with SDK( personal_access_token="", ) as sdk: - res = sdk.collections.list(page_token="", page_size=1) + res = sdk.collections.list(page_token="", page_size=1, collection_statuses=[ + censys_platform.CollectionStatuses.POPULATING, + censys_platform.CollectionStatuses.ACTIVE, + ]) # Handle response print(res) @@ -45,6 +49,7 @@ with SDK( | `organization_id` | *Optional[str]* | :heavy_minus_sign: | The ID of a Censys organization to associate the request with. See the [Getting Started docs](https://docs.censys.com/reference/get-started#step-3-find-and-use-your-organization-id-optional) for more information. | | | `page_token` | *Optional[str]* | :heavy_minus_sign: | page token for the requested page of collection results | | | `page_size` | *Optional[int]* | :heavy_minus_sign: | amount of results to return per page | 1 | +| `collection_statuses` | List[[models.CollectionStatuses](../../models/collectionstatuses.md)] | :heavy_minus_sign: | statuses of collection for results to be filtered on. | [
"populating",
"active"
] | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response diff --git a/docs/sdks/globaldata/README.md b/docs/sdks/globaldata/README.md index 4b35440..14eb031 100644 --- a/docs/sdks/globaldata/README.md +++ b/docs/sdks/globaldata/README.md @@ -12,6 +12,7 @@ Endpoints related to the Global Data product * [get_certificate_raw](#get_certificate_raw) - Get a certificate in PEM format * [get_hosts](#get_hosts) - Retrieve multiple hosts * [get_host](#get_host) - Get a host +* [list_services_on_host](#list_services_on_host) - Get service history for a host * [get_host_timeline](#get_host_timeline) - Get host event history * [get_web_properties](#get_web_properties) - Retrieve multiple web properties * [get_web_property](#get_web_property) - Get a web property @@ -301,6 +302,58 @@ with SDK( | models.ErrorModel | 500 | application/problem+json | | models.SDKError | 4XX, 5XX | \*/\* | +## list_services_on_host + +Retrieve historical service observations for a host. This endpoint returns time ranges during which services were detected on the host.

You can define a specific time frame of interest. If you do not specify a time frame, this endpoint will search the historical dataset that is available to your account.

You can filter by port number, protocol, and transport protocol. + +### Example Usage + + +```python +import censys_platform +from censys_platform import SDK + + +with SDK( + organization_id="11111111-2222-3333-4444-555555555555", + personal_access_token="", +) as sdk: + + res = sdk.global_data.list_services_on_host(request={ + "start_time": "2024-01-01T00:00:00Z", + "end_time": "2024-01-31T23:59:59Z", + "page_size": 50, + "port": 443, + "protocol": "HTTP", + "transport_protocol": censys_platform.QueryParamTransportProtocol.TCP, + "host_id": "8.8.8.8", + }) + + # Handle response + print(res) + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `request` | [models.V3GlobaldataServiceOnHostRequest](../../models/v3globaldataserviceonhostrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | + +### Response + +**[models.V3GlobaldataServiceOnHostResponse](../../models/v3globaldataserviceonhostresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| -------------------------- | -------------------------- | -------------------------- | +| models.AuthenticationError | 401 | application/json | +| models.ErrorModel | 400, 403, 404, 409 | application/problem+json | +| models.ErrorModel | 500 | application/problem+json | +| models.SDKError | 4XX, 5XX | \*/\* | + ## get_host_timeline Retrieve event history for a host. A host ID is its IP address.

Note that when a service protocol changes after a new scan (for example, from `UNKNOWN` to `NETBIOS`), this information will be reflected in the `scan` object. diff --git a/pylintrc b/pylintrc index e6ed56e..bfd8691 100644 --- a/pylintrc +++ b/pylintrc @@ -190,6 +190,7 @@ good-names=i, e, b, cc, + ce, ct, do, fd, @@ -200,6 +201,7 @@ good-names=i, gy, id, ip, + le, ml, n, nr, diff --git a/pyproject.toml b/pyproject.toml index 6c35b32..10a815d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "censys-platform" -version = "0.13.0" +version = "0.13.1" description = "Python Client SDK Generated by Speakeasy." authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" diff --git a/src/censys_platform/_version.py b/src/censys_platform/_version.py index 21c2607..ef83311 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.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" +__version__: str = "0.13.1" +__openapi_doc_version__: str = "1.0.80" +__gen_version__: str = "2.845.1" +__user_agent__: str = "speakeasy-sdk/python 0.13.1 2.845.1 1.0.80 censys-platform" try: if __package__ is not None: diff --git a/src/censys_platform/collections.py b/src/censys_platform/collections.py index cb2c834..ac1eb41 100644 --- a/src/censys_platform/collections.py +++ b/src/censys_platform/collections.py @@ -6,7 +6,7 @@ from censys_platform.types import BaseModel, OptionalNullable, UNSET from censys_platform.utils.unmarshal_json_response import unmarshal_json_response from enum import Enum -from typing import Any, Mapping, Optional, Union, cast +from typing import Any, List, Mapping, Optional, Union, cast class DeleteAcceptEnum(str, Enum): @@ -23,6 +23,7 @@ def list( organization_id: Optional[str] = None, page_token: Optional[str] = None, page_size: Optional[int] = None, + collection_statuses: OptionalNullable[List[models.CollectionStatuses]] = UNSET, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -35,6 +36,7 @@ def list( :param organization_id: The ID of a Censys organization to associate the request with. See the [Getting Started docs](https://docs.censys.com/reference/get-started#step-3-find-and-use-your-organization-id-optional) for more information. :param page_token: page token for the requested page of collection results :param page_size: amount of results to return per page + :param collection_statuses: statuses of collection for results to be filtered on. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -54,6 +56,7 @@ def list( organization_id=organization_id, page_token=page_token, page_size=page_size, + collection_statuses=collection_statuses, ) req = self._build_request( @@ -131,6 +134,7 @@ async def list_async( organization_id: Optional[str] = None, page_token: Optional[str] = None, page_size: Optional[int] = None, + collection_statuses: OptionalNullable[List[models.CollectionStatuses]] = UNSET, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -143,6 +147,7 @@ async def list_async( :param organization_id: The ID of a Censys organization to associate the request with. See the [Getting Started docs](https://docs.censys.com/reference/get-started#step-3-find-and-use-your-organization-id-optional) for more information. :param page_token: page token for the requested page of collection results :param page_size: amount of results to return per page + :param collection_statuses: statuses of collection for results to be filtered on. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -162,6 +167,7 @@ async def list_async( organization_id=organization_id, page_token=page_token, page_size=page_size, + collection_statuses=collection_statuses, ) req = self._build_request_async( diff --git a/src/censys_platform/global_data.py b/src/censys_platform/global_data.py index 6c2b623..4868065 100644 --- a/src/censys_platform/global_data.py +++ b/src/censys_platform/global_data.py @@ -3,10 +3,10 @@ from .basesdk import BaseSDK from censys_platform import models, utils from censys_platform._hooks import HookContext -from censys_platform.types import OptionalNullable, UNSET +from censys_platform.types import BaseModel, OptionalNullable, UNSET from censys_platform.utils.unmarshal_json_response import unmarshal_json_response from datetime import datetime -from typing import Any, Mapping, Optional, Union +from typing import Any, Mapping, Optional, Union, cast class GlobalData(BaseSDK): @@ -1400,6 +1400,220 @@ async def get_host_async( raise models.SDKError("Unexpected response received", http_res) + def list_services_on_host( + self, + *, + request: Union[ + models.V3GlobaldataServiceOnHostRequest, + models.V3GlobaldataServiceOnHostRequestTypedDict, + ], + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.V3GlobaldataServiceOnHostResponse: + r"""Get service history for a host + + Retrieve historical service observations for a host. This endpoint returns time ranges during which services were detected on the host.

You can define a specific time frame of interest. If you do not specify a time frame, this endpoint will search the historical dataset that is available to your account.

You can filter by port number, protocol, and transport protocol. + + :param request: The request object to send. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + if not isinstance(request, BaseModel): + request = utils.unmarshal(request, models.V3GlobaldataServiceOnHostRequest) + request = cast(models.V3GlobaldataServiceOnHostRequest, request) + + req = self._build_request( + method="GET", + path="/v3/global/asset/host/{host_id}/observations/services", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + _globals=models.V3GlobaldataServiceOnHostGlobals( + organization_id=self.sdk_configuration.globals.organization_id, + ), + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = self.do_request( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="v3-globaldata-service-on-host", + oauth2_scopes=None, + security_source=self.sdk_configuration.security, + ), + request=req, + error_status_codes=["400", "401", "403", "404", "409", "4XX", "500", "5XX"], + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return models.V3GlobaldataServiceOnHostResponse( + result=unmarshal_json_response( + models.ResponseEnvelopeServicesOnHostResponse, http_res + ), + headers=utils.get_response_headers(http_res.headers), + ) + if utils.match_response(http_res, "401", "application/json"): + response_data = unmarshal_json_response( + models.AuthenticationErrorData, http_res + ) + raise models.AuthenticationError(response_data, http_res) + if utils.match_response( + http_res, ["400", "403", "404", "409"], "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) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = utils.stream_to_text(http_res) + raise models.SDKError("API error occurred", http_res, http_res_text) + + raise models.SDKError("Unexpected response received", http_res) + + async def list_services_on_host_async( + self, + *, + request: Union[ + models.V3GlobaldataServiceOnHostRequest, + models.V3GlobaldataServiceOnHostRequestTypedDict, + ], + retries: OptionalNullable[utils.RetryConfig] = UNSET, + server_url: Optional[str] = None, + timeout_ms: Optional[int] = None, + http_headers: Optional[Mapping[str, str]] = None, + ) -> models.V3GlobaldataServiceOnHostResponse: + r"""Get service history for a host + + Retrieve historical service observations for a host. This endpoint returns time ranges during which services were detected on the host.

You can define a specific time frame of interest. If you do not specify a time frame, this endpoint will search the historical dataset that is available to your account.

You can filter by port number, protocol, and transport protocol. + + :param request: The request object to send. + :param retries: Override the default retry configuration for this method + :param server_url: Override the default server URL for this method + :param timeout_ms: Override the default request timeout configuration for this method in milliseconds + :param http_headers: Additional headers to set or replace on requests. + """ + base_url = None + url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.timeout_ms + + if server_url is not None: + base_url = server_url + else: + base_url = self._get_url(base_url, url_variables) + + if not isinstance(request, BaseModel): + request = utils.unmarshal(request, models.V3GlobaldataServiceOnHostRequest) + request = cast(models.V3GlobaldataServiceOnHostRequest, request) + + req = self._build_request_async( + method="GET", + path="/v3/global/asset/host/{host_id}/observations/services", + base_url=base_url, + url_variables=url_variables, + request=request, + request_body_required=False, + request_has_path_params=True, + request_has_query_params=True, + user_agent_header="user-agent", + accept_header_value="application/json", + http_headers=http_headers, + _globals=models.V3GlobaldataServiceOnHostGlobals( + organization_id=self.sdk_configuration.globals.organization_id, + ), + security=self.sdk_configuration.security, + allow_empty_value=None, + timeout_ms=timeout_ms, + ) + + if retries == UNSET: + if self.sdk_configuration.retry_config is not UNSET: + retries = self.sdk_configuration.retry_config + + retry_config = None + if isinstance(retries, utils.RetryConfig): + retry_config = (retries, ["429", "500", "502", "503", "504"]) + + http_res = await self.do_request_async( + hook_ctx=HookContext( + config=self.sdk_configuration, + base_url=base_url or "", + operation_id="v3-globaldata-service-on-host", + oauth2_scopes=None, + security_source=self.sdk_configuration.security, + ), + request=req, + error_status_codes=["400", "401", "403", "404", "409", "4XX", "500", "5XX"], + retry_config=retry_config, + ) + + response_data: Any = None + if utils.match_response(http_res, "200", "application/json"): + return models.V3GlobaldataServiceOnHostResponse( + result=unmarshal_json_response( + models.ResponseEnvelopeServicesOnHostResponse, http_res + ), + headers=utils.get_response_headers(http_res.headers), + ) + if utils.match_response(http_res, "401", "application/json"): + response_data = unmarshal_json_response( + models.AuthenticationErrorData, http_res + ) + raise models.AuthenticationError(response_data, http_res) + if utils.match_response( + http_res, ["400", "403", "404", "409"], "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) + if utils.match_response(http_res, "5XX", "*"): + http_res_text = await utils.stream_to_text_async(http_res) + raise models.SDKError("API error occurred", http_res, http_res_text) + + raise models.SDKError("Unexpected response received", http_res) + def get_host_timeline( self, *, diff --git a/src/censys_platform/models/__init__.py b/src/censys_platform/models/__init__.py index 5ba2f0d..20620aa 100644 --- a/src/censys_platform/models/__init__.py +++ b/src/censys_platform/models/__init__.py @@ -15,6 +15,7 @@ AnalyticsCapabilities, AnalyticsCapabilitiesTypedDict, ) + from .anermacfforth import AnermaCfForth, AnermaCfForthTypedDict from .anyconnect import AnyConnect, AnyConnectTypedDict from .assetcertificatelistinputbody import ( AssetCertificateListInputBody, @@ -139,6 +140,14 @@ from .cryptsetup import CryptSetup, CryptSetupTypedDict from .ct import Ct, CtTypedDict from .ct_record import CtRecord, CtRecordTypedDict + from .cursorontarget import CursorOnTarget, CursorOnTargetTypedDict + from .cursorontarget_event import CursorOnTargetEvent, CursorOnTargetEventTypedDict + from .cursorontarget_point import CursorOnTargetPoint, CursorOnTargetPointTypedDict + from .cursorontarget_status import ( + CursorOnTargetStatus, + CursorOnTargetStatusTypedDict, + ) + from .cursorontarget_takv import CursorOnTargetTakv, CursorOnTargetTakvTypedDict from .cvss import Cvss, CvssTypedDict from .cvss_components import ( AttackComplexity, @@ -367,6 +376,7 @@ from .fortigate import Fortigate, FortigateTypedDict from .forwarddnsresolved import ForwardDNSResolved, ForwardDNSResolvedTypedDict from .fox import Fox, FoxTypedDict + from .frps import Frps, FrpsTypedDict from .ftp import Ftp, FtpTypedDict from .gearman import Gearman, GearmanTypedDict from .gemini import Gemini, GeminiTypedDict @@ -422,6 +432,8 @@ ) from .http_repeatedheaders import HTTPRepeatedHeaders, HTTPRepeatedHeadersTypedDict from .ibmnje import Ibmnje, IbmnjeTypedDict + from .icap import Icap, IcapTypedDict + from .icap_optionsresponse import IcapOptionsResponse, IcapOptionsResponseTypedDict from .ike import Ike, IkeTypedDict from .ike_v1 import IkeV1, IkeV1TypedDict from .ike_v2 import IkeV2, IkeV2TypedDict @@ -838,6 +850,10 @@ ResponseEnvelopeSearchQueryResponse, ResponseEnvelopeSearchQueryResponseTypedDict, ) + from .responseenvelopeservicesonhostresponse import ( + ResponseEnvelopeServicesOnHostResponse, + ResponseEnvelopeServicesOnHostResponseTypedDict, + ) from .responseenvelopethreatslistresponse import ( ResponseEnvelopeThreatsListResponse, ResponseEnvelopeThreatsListResponseTypedDict, @@ -991,12 +1007,17 @@ from .serversync import ServerSync, ServerSyncTypedDict from .service import Service, ServiceTransportProtocol, ServiceTypedDict from .serviceid import ServiceID, ServiceIDTransportProtocol, ServiceIDTypedDict + from .serviceonhostrange import ServiceOnHostRange, ServiceOnHostRangeTypedDict from .servicescan import ( ServiceScan, ServiceScanTransportProtocol, ServiceScanTypedDict, ) from .servicescanned import ServiceScanned, ServiceScannedTypedDict + from .servicesonhostresponse import ( + ServicesOnHostResponse, + ServicesOnHostResponseTypedDict, + ) from .sevendaystodie import SevenDaysToDie, SevenDaysToDieTypedDict from .signature import Signature, SignatureTypedDict from .signedcertificatetimestamp import ( @@ -1043,6 +1064,25 @@ from .ssh_serverhostkey import SSHServerHostKey, SSHServerHostKeyTypedDict from .status import Status, StatusTypedDict from .steam import Steam, SteamTypedDict + from .stun import Stun, StunTypedDict + from .stun_bindingerrorresponse import ( + StunBindingErrorResponse, + StunBindingErrorResponseTypedDict, + ) + from .stun_bindingsuccessresponse import ( + StunBindingSuccessResponse, + StunBindingSuccessResponseTypedDict, + ) + from .stun_mappedaddress import StunMappedAddress, StunMappedAddressTypedDict + from .stun_turn import StunTurn, StunTurnTypedDict + from .stun_turn_allocateerrorresponse import ( + StunTurnAllocateErrorResponse, + StunTurnAllocateErrorResponseTypedDict, + ) + from .stun_turn_allocatesuccessresponse import ( + StunTurnAllocateSuccessResponse, + StunTurnAllocateSuccessResponseTypedDict, + ) from .subjectkeyinfo import SubjectKeyInfo, SubjectKeyInfoTypedDict from .systemcapabilities import SystemCapabilities, SystemCapabilitiesTypedDict from .tacacsplus import TacacsPlus, TacacsPlusTypedDict @@ -1187,6 +1227,7 @@ V3CollectionsCrudGetResponseTypedDict, ) from .v3_collections_crud_listop import ( + CollectionStatuses, V3CollectionsCrudListGlobals, V3CollectionsCrudListGlobalsTypedDict, V3CollectionsCrudListRequest, @@ -1341,6 +1382,16 @@ V3GlobaldataSearchQueryResponse, V3GlobaldataSearchQueryResponseTypedDict, ) + from .v3_globaldata_service_on_hostop import ( + OrderBy, + QueryParamTransportProtocol, + V3GlobaldataServiceOnHostGlobals, + V3GlobaldataServiceOnHostGlobalsTypedDict, + V3GlobaldataServiceOnHostRequest, + V3GlobaldataServiceOnHostRequestTypedDict, + V3GlobaldataServiceOnHostResponse, + V3GlobaldataServiceOnHostResponseTypedDict, + ) from .v3_threathunting_get_host_observations_with_certificateop import ( V3ThreathuntingGetHostObservationsWithCertificateGlobals, V3ThreathuntingGetHostObservationsWithCertificateGlobalsTypedDict, @@ -1419,6 +1470,8 @@ "AmqpVersionTypedDict", "AnalyticsCapabilities", "AnalyticsCapabilitiesTypedDict", + "AnermaCfForth", + "AnermaCfForthTypedDict", "AnyConnect", "AnyConnectTypedDict", "AssetCertificateListInputBody", @@ -1532,6 +1585,7 @@ "CollectionEventsResponse", "CollectionEventsResponseTypedDict", "CollectionStatus", + "CollectionStatuses", "CollectionTypedDict", "Confidentiality", "Connection", @@ -1566,6 +1620,16 @@ "CtRecord", "CtRecordTypedDict", "CtTypedDict", + "CursorOnTarget", + "CursorOnTargetEvent", + "CursorOnTargetEventTypedDict", + "CursorOnTargetPoint", + "CursorOnTargetPointTypedDict", + "CursorOnTargetStatus", + "CursorOnTargetStatusTypedDict", + "CursorOnTargetTakv", + "CursorOnTargetTakvTypedDict", + "CursorOnTargetTypedDict", "Cvss", "CvssTypedDict", "Cwe", @@ -1741,6 +1805,8 @@ "ForwardDNSResolvedTypedDict", "Fox", "FoxTypedDict", + "Frps", + "FrpsTypedDict", "Ftp", "FtpTypedDict", "Gearman", @@ -1805,6 +1871,10 @@ "HostnamePortTypedDict", "Ibmnje", "IbmnjeTypedDict", + "Icap", + "IcapOptionsResponse", + "IcapOptionsResponseTypedDict", + "IcapTypedDict", "Ike", "IkeTypedDict", "IkeV1", @@ -2086,6 +2156,7 @@ "OracleDescriptor", "OracleDescriptorTypedDict", "OracleTypedDict", + "OrderBy", "Organization", "OrganizationCredits", "OrganizationCreditsTypedDict", @@ -2174,6 +2245,7 @@ "QcStatementsQcTypeTypedDict", "QcStatementsTypedDict", "QueryParamGranularity", + "QueryParamTransportProtocol", "RCode", "RSACryptographicKey", "RSACryptographicKeyTypedDict", @@ -2258,6 +2330,8 @@ "ResponseEnvelopeSearchAggregateResponseTypedDict", "ResponseEnvelopeSearchQueryResponse", "ResponseEnvelopeSearchQueryResponseTypedDict", + "ResponseEnvelopeServicesOnHostResponse", + "ResponseEnvelopeServicesOnHostResponseTypedDict", "ResponseEnvelopeThreatsListResponse", "ResponseEnvelopeThreatsListResponseTypedDict", "ResponseEnvelopeTrackedScan", @@ -2404,6 +2478,8 @@ "ServiceID", "ServiceIDTransportProtocol", "ServiceIDTypedDict", + "ServiceOnHostRange", + "ServiceOnHostRangeTypedDict", "ServiceScan", "ServiceScanTransportProtocol", "ServiceScanTypedDict", @@ -2411,6 +2487,8 @@ "ServiceScannedTypedDict", "ServiceTransportProtocol", "ServiceTypedDict", + "ServicesOnHostResponse", + "ServicesOnHostResponseTypedDict", "SevenDaysToDie", "SevenDaysToDieTypedDict", "Severity", @@ -2463,6 +2541,20 @@ "StatusTypedDict", "Steam", "SteamTypedDict", + "Stun", + "StunBindingErrorResponse", + "StunBindingErrorResponseTypedDict", + "StunBindingSuccessResponse", + "StunBindingSuccessResponseTypedDict", + "StunMappedAddress", + "StunMappedAddressTypedDict", + "StunTurn", + "StunTurnAllocateErrorResponse", + "StunTurnAllocateErrorResponseTypedDict", + "StunTurnAllocateSuccessResponse", + "StunTurnAllocateSuccessResponseTypedDict", + "StunTurnTypedDict", + "StunTypedDict", "SubjectKeyInfo", "SubjectKeyInfoTypedDict", "SystemCapabilities", @@ -2722,6 +2814,12 @@ "V3GlobaldataSearchQueryRequestTypedDict", "V3GlobaldataSearchQueryResponse", "V3GlobaldataSearchQueryResponseTypedDict", + "V3GlobaldataServiceOnHostGlobals", + "V3GlobaldataServiceOnHostGlobalsTypedDict", + "V3GlobaldataServiceOnHostRequest", + "V3GlobaldataServiceOnHostRequestTypedDict", + "V3GlobaldataServiceOnHostResponse", + "V3GlobaldataServiceOnHostResponseTypedDict", "V3ThreathuntingGetHostObservationsWithCertificateGlobals", "V3ThreathuntingGetHostObservationsWithCertificateGlobalsTypedDict", "V3ThreathuntingGetHostObservationsWithCertificateRequest", @@ -2822,6 +2920,8 @@ "AmqpVersionTypedDict": ".amqp_version", "AnalyticsCapabilities": ".analyticscapabilities", "AnalyticsCapabilitiesTypedDict": ".analyticscapabilities", + "AnermaCfForth": ".anermacfforth", + "AnermaCfForthTypedDict": ".anermacfforth", "AnyConnect": ".anyconnect", "AnyConnectTypedDict": ".anyconnect", "AssetCertificateListInputBody": ".assetcertificatelistinputbody", @@ -2951,6 +3051,16 @@ "CtTypedDict": ".ct", "CtRecord": ".ct_record", "CtRecordTypedDict": ".ct_record", + "CursorOnTarget": ".cursorontarget", + "CursorOnTargetTypedDict": ".cursorontarget", + "CursorOnTargetEvent": ".cursorontarget_event", + "CursorOnTargetEventTypedDict": ".cursorontarget_event", + "CursorOnTargetPoint": ".cursorontarget_point", + "CursorOnTargetPointTypedDict": ".cursorontarget_point", + "CursorOnTargetStatus": ".cursorontarget_status", + "CursorOnTargetStatusTypedDict": ".cursorontarget_status", + "CursorOnTargetTakv": ".cursorontarget_takv", + "CursorOnTargetTakvTypedDict": ".cursorontarget_takv", "Cvss": ".cvss", "CvssTypedDict": ".cvss", "AttackComplexity": ".cvss_components", @@ -3159,6 +3269,8 @@ "ForwardDNSResolvedTypedDict": ".forwarddnsresolved", "Fox": ".fox", "FoxTypedDict": ".fox", + "Frps": ".frps", + "FrpsTypedDict": ".frps", "Ftp": ".ftp", "FtpTypedDict": ".ftp", "Gearman": ".gearman", @@ -3219,6 +3331,10 @@ "HTTPRepeatedHeadersTypedDict": ".http_repeatedheaders", "Ibmnje": ".ibmnje", "IbmnjeTypedDict": ".ibmnje", + "Icap": ".icap", + "IcapTypedDict": ".icap", + "IcapOptionsResponse": ".icap_optionsresponse", + "IcapOptionsResponseTypedDict": ".icap_optionsresponse", "Ike": ".ike", "IkeTypedDict": ".ike", "IkeV1": ".ike_v1", @@ -3660,6 +3776,8 @@ "ResponseEnvelopeSearchAggregateResponseTypedDict": ".responseenvelopesearchaggregateresponse", "ResponseEnvelopeSearchQueryResponse": ".responseenvelopesearchqueryresponse", "ResponseEnvelopeSearchQueryResponseTypedDict": ".responseenvelopesearchqueryresponse", + "ResponseEnvelopeServicesOnHostResponse": ".responseenvelopeservicesonhostresponse", + "ResponseEnvelopeServicesOnHostResponseTypedDict": ".responseenvelopeservicesonhostresponse", "ResponseEnvelopeThreatsListResponse": ".responseenvelopethreatslistresponse", "ResponseEnvelopeThreatsListResponseTypedDict": ".responseenvelopethreatslistresponse", "ResponseEnvelopeTrackedScan": ".responseenvelopetrackedscan", @@ -3810,11 +3928,15 @@ "ServiceID": ".serviceid", "ServiceIDTransportProtocol": ".serviceid", "ServiceIDTypedDict": ".serviceid", + "ServiceOnHostRange": ".serviceonhostrange", + "ServiceOnHostRangeTypedDict": ".serviceonhostrange", "ServiceScan": ".servicescan", "ServiceScanTransportProtocol": ".servicescan", "ServiceScanTypedDict": ".servicescan", "ServiceScanned": ".servicescanned", "ServiceScannedTypedDict": ".servicescanned", + "ServicesOnHostResponse": ".servicesonhostresponse", + "ServicesOnHostResponseTypedDict": ".servicesonhostresponse", "SevenDaysToDie": ".sevendaystodie", "SevenDaysToDieTypedDict": ".sevendaystodie", "Signature": ".signature", @@ -3877,6 +3999,20 @@ "StatusTypedDict": ".status", "Steam": ".steam", "SteamTypedDict": ".steam", + "Stun": ".stun", + "StunTypedDict": ".stun", + "StunBindingErrorResponse": ".stun_bindingerrorresponse", + "StunBindingErrorResponseTypedDict": ".stun_bindingerrorresponse", + "StunBindingSuccessResponse": ".stun_bindingsuccessresponse", + "StunBindingSuccessResponseTypedDict": ".stun_bindingsuccessresponse", + "StunMappedAddress": ".stun_mappedaddress", + "StunMappedAddressTypedDict": ".stun_mappedaddress", + "StunTurn": ".stun_turn", + "StunTurnTypedDict": ".stun_turn", + "StunTurnAllocateErrorResponse": ".stun_turn_allocateerrorresponse", + "StunTurnAllocateErrorResponseTypedDict": ".stun_turn_allocateerrorresponse", + "StunTurnAllocateSuccessResponse": ".stun_turn_allocatesuccessresponse", + "StunTurnAllocateSuccessResponseTypedDict": ".stun_turn_allocatesuccessresponse", "SubjectKeyInfo": ".subjectkeyinfo", "SubjectKeyInfoTypedDict": ".subjectkeyinfo", "SystemCapabilities": ".systemcapabilities", @@ -4011,6 +4147,7 @@ "V3CollectionsCrudGetRequestTypedDict": ".v3_collections_crud_getop", "V3CollectionsCrudGetResponse": ".v3_collections_crud_getop", "V3CollectionsCrudGetResponseTypedDict": ".v3_collections_crud_getop", + "CollectionStatuses": ".v3_collections_crud_listop", "V3CollectionsCrudListGlobals": ".v3_collections_crud_listop", "V3CollectionsCrudListGlobalsTypedDict": ".v3_collections_crud_listop", "V3CollectionsCrudListRequest": ".v3_collections_crud_listop", @@ -4128,6 +4265,14 @@ "V3GlobaldataSearchQueryRequestTypedDict": ".v3_globaldata_search_queryop", "V3GlobaldataSearchQueryResponse": ".v3_globaldata_search_queryop", "V3GlobaldataSearchQueryResponseTypedDict": ".v3_globaldata_search_queryop", + "OrderBy": ".v3_globaldata_service_on_hostop", + "QueryParamTransportProtocol": ".v3_globaldata_service_on_hostop", + "V3GlobaldataServiceOnHostGlobals": ".v3_globaldata_service_on_hostop", + "V3GlobaldataServiceOnHostGlobalsTypedDict": ".v3_globaldata_service_on_hostop", + "V3GlobaldataServiceOnHostRequest": ".v3_globaldata_service_on_hostop", + "V3GlobaldataServiceOnHostRequestTypedDict": ".v3_globaldata_service_on_hostop", + "V3GlobaldataServiceOnHostResponse": ".v3_globaldata_service_on_hostop", + "V3GlobaldataServiceOnHostResponseTypedDict": ".v3_globaldata_service_on_hostop", "V3ThreathuntingGetHostObservationsWithCertificateGlobals": ".v3_threathunting_get_host_observations_with_certificateop", "V3ThreathuntingGetHostObservationsWithCertificateGlobalsTypedDict": ".v3_threathunting_get_host_observations_with_certificateop", "V3ThreathuntingGetHostObservationsWithCertificateRequest": ".v3_threathunting_get_host_observations_with_certificateop", diff --git a/src/censys_platform/models/anermacfforth.py b/src/censys_platform/models/anermacfforth.py new file mode 100644 index 0000000..f887b51 --- /dev/null +++ b/src/censys_platform/models/anermacfforth.py @@ -0,0 +1,45 @@ +"""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 AnermaCfForthTypedDict(TypedDict): + ip: NotRequired[str] + product: NotRequired[str] + serial_number: NotRequired[str] + unit_name: NotRequired[str] + version: NotRequired[str] + + +class AnermaCfForth(BaseModel): + ip: Optional[str] = None + + product: Optional[str] = None + + serial_number: Optional[str] = None + + unit_name: Optional[str] = None + + version: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["ip", "product", "serial_number", "unit_name", "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/cursorontarget.py b/src/censys_platform/models/cursorontarget.py new file mode 100644 index 0000000..504b417 --- /dev/null +++ b/src/censys_platform/models/cursorontarget.py @@ -0,0 +1,47 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .cursorontarget_event import CursorOnTargetEvent, CursorOnTargetEventTypedDict +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 CursorOnTargetTypedDict(TypedDict): + events: NotRequired[Nullable[List[CursorOnTargetEventTypedDict]]] + + +class CursorOnTarget(BaseModel): + events: OptionalNullable[List[CursorOnTargetEvent]] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["events"]) + nullable_fields = set(["events"]) + 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/cursorontarget_event.py b/src/censys_platform/models/cursorontarget_event.py new file mode 100644 index 0000000..8442d1e --- /dev/null +++ b/src/censys_platform/models/cursorontarget_event.py @@ -0,0 +1,86 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .cursorontarget_point import CursorOnTargetPoint, CursorOnTargetPointTypedDict +from .cursorontarget_status import CursorOnTargetStatus, CursorOnTargetStatusTypedDict +from .cursorontarget_takv import CursorOnTargetTakv, CursorOnTargetTakvTypedDict +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class CursorOnTargetEventTypedDict(TypedDict): + callsign: NotRequired[str] + endpoint: NotRequired[str] + how: NotRequired[str] + point: NotRequired[CursorOnTargetPointTypedDict] + stale: NotRequired[str] + start: NotRequired[str] + status: NotRequired[CursorOnTargetStatusTypedDict] + takv: NotRequired[CursorOnTargetTakvTypedDict] + time: NotRequired[str] + type: NotRequired[str] + uid: NotRequired[str] + version: NotRequired[str] + video_url: NotRequired[str] + + +class CursorOnTargetEvent(BaseModel): + callsign: Optional[str] = None + + endpoint: Optional[str] = None + + how: Optional[str] = None + + point: Optional[CursorOnTargetPoint] = None + + stale: Optional[str] = None + + start: Optional[str] = None + + status: Optional[CursorOnTargetStatus] = None + + takv: Optional[CursorOnTargetTakv] = None + + time: Optional[str] = None + + type: Optional[str] = None + + uid: Optional[str] = None + + version: Optional[str] = None + + video_url: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "callsign", + "endpoint", + "how", + "point", + "stale", + "start", + "status", + "takv", + "time", + "type", + "uid", + "version", + "video_url", + ] + ) + 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/cursorontarget_point.py b/src/censys_platform/models/cursorontarget_point.py new file mode 100644 index 0000000..bcf39ce --- /dev/null +++ b/src/censys_platform/models/cursorontarget_point.py @@ -0,0 +1,43 @@ +"""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 CursorOnTargetPointTypedDict(TypedDict): + ce: NotRequired[float] + hae: NotRequired[float] + lat: NotRequired[float] + le: NotRequired[float] + lon: NotRequired[float] + + +class CursorOnTargetPoint(BaseModel): + ce: Optional[float] = None + + hae: Optional[float] = None + + lat: Optional[float] = None + + le: Optional[float] = None + + lon: Optional[float] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["ce", "hae", "lat", "le", "lon"]) + 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/cursorontarget_status.py b/src/censys_platform/models/cursorontarget_status.py new file mode 100644 index 0000000..8f20fb0 --- /dev/null +++ b/src/censys_platform/models/cursorontarget_status.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 CursorOnTargetStatusTypedDict(TypedDict): + battery: NotRequired[str] + + +class CursorOnTargetStatus(BaseModel): + battery: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["battery"]) + 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/cursorontarget_takv.py b/src/censys_platform/models/cursorontarget_takv.py new file mode 100644 index 0000000..df4ca6c --- /dev/null +++ b/src/censys_platform/models/cursorontarget_takv.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 CursorOnTargetTakvTypedDict(TypedDict): + device: NotRequired[str] + os: NotRequired[str] + platform: NotRequired[str] + version: NotRequired[str] + + +class CursorOnTargetTakv(BaseModel): + device: Optional[str] = None + + os: Optional[str] = None + + platform: Optional[str] = None + + version: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["device", "os", "platform", "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/frps.py b/src/censys_platform/models/frps.py new file mode 100644 index 0000000..f3909f1 --- /dev/null +++ b/src/censys_platform/models/frps.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 FrpsTypedDict(TypedDict): + error: NotRequired[str] + run_id: NotRequired[str] + version: NotRequired[str] + + +class Frps(BaseModel): + error: Optional[str] = None + + run_id: Optional[str] = None + + version: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["error", "run_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/icap.py b/src/censys_platform/models/icap.py new file mode 100644 index 0000000..e02424a --- /dev/null +++ b/src/censys_platform/models/icap.py @@ -0,0 +1,32 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .icap_optionsresponse import IcapOptionsResponse, IcapOptionsResponseTypedDict +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class IcapTypedDict(TypedDict): + options_response: NotRequired[IcapOptionsResponseTypedDict] + + +class Icap(BaseModel): + options_response: Optional[IcapOptionsResponse] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["options_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/icap_optionsresponse.py b/src/censys_platform/models/icap_optionsresponse.py new file mode 100644 index 0000000..be6741e --- /dev/null +++ b/src/censys_platform/models/icap_optionsresponse.py @@ -0,0 +1,94 @@ +"""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 IcapOptionsResponseTypedDict(TypedDict): + allow_204: NotRequired[bool] + icap_version: NotRequired[str] + istag: NotRequired[str] + max_connections: NotRequired[int] + methods: NotRequired[Nullable[List[str]]] + options_ttl: NotRequired[int] + preview: NotRequired[int] + server_header: NotRequired[str] + service: NotRequired[str] + service_id: NotRequired[str] + status_code: NotRequired[int] + status_text: NotRequired[str] + + +class IcapOptionsResponse(BaseModel): + allow_204: Optional[bool] = None + + icap_version: Optional[str] = None + + istag: Optional[str] = None + + max_connections: Optional[int] = None + + methods: OptionalNullable[List[str]] = UNSET + + options_ttl: Optional[int] = None + + preview: Optional[int] = None + + server_header: Optional[str] = None + + service: Optional[str] = None + + service_id: Optional[str] = None + + status_code: Optional[int] = None + + status_text: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "allow_204", + "icap_version", + "istag", + "max_connections", + "methods", + "options_ttl", + "preview", + "server_header", + "service", + "service_id", + "status_code", + "status_text", + ] + ) + nullable_fields = set(["methods"]) + 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/responseenvelopeservicesonhostresponse.py b/src/censys_platform/models/responseenvelopeservicesonhostresponse.py new file mode 100644 index 0000000..f5f44c8 --- /dev/null +++ b/src/censys_platform/models/responseenvelopeservicesonhostresponse.py @@ -0,0 +1,35 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .servicesonhostresponse import ( + ServicesOnHostResponse, + ServicesOnHostResponseTypedDict, +) +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class ResponseEnvelopeServicesOnHostResponseTypedDict(TypedDict): + result: NotRequired[ServicesOnHostResponseTypedDict] + + +class ResponseEnvelopeServicesOnHostResponse(BaseModel): + result: Optional[ServicesOnHostResponse] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["result"]) + 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/service.py b/src/censys_platform/models/service.py index 13c6f37..ef0c1b3 100644 --- a/src/censys_platform/models/service.py +++ b/src/censys_platform/models/service.py @@ -3,6 +3,7 @@ from __future__ import annotations from .activemq import Activemq, ActivemqTypedDict from .amqp import Amqp, AmqpTypedDict +from .anermacfforth import AnermaCfForth, AnermaCfForthTypedDict from .anyconnect import AnyConnect, AnyConnectTypedDict from .asteriskmanagerinterface import ( AsteriskManagerInterface, @@ -18,6 +19,7 @@ from .coap import Coap, CoapTypedDict from .crestroncp3 import CrestronCp3, CrestronCp3TypedDict from .crestrondinap2 import CrestronDinAp2, CrestronDinAp2TypedDict +from .cursorontarget import CursorOnTarget, CursorOnTargetTypedDict from .cwmp import Cwmp, CwmpTypedDict from .darkcomet import Darkcomet, DarkcometTypedDict from .darkgate import Darkgate, DarkgateTypedDict @@ -35,6 +37,7 @@ from .ethereum import Ethereum, EthereumTypedDict from .flashsocketpolicy import FlashSocketPolicy, FlashSocketPolicyTypedDict from .fox import Fox, FoxTypedDict +from .frps import Frps, FrpsTypedDict from .ftp import Ftp, FtpTypedDict from .gearman import Gearman, GearmanTypedDict from .gemini import Gemini, GeminiTypedDict @@ -42,6 +45,7 @@ from .hidvertx import HidVertx, HidVertxTypedDict from .hikvision import Hikvision, HikvisionTypedDict from .ibmnje import Ibmnje, IbmnjeTypedDict +from .icap import Icap, IcapTypedDict from .ike import Ike, IkeTypedDict from .imap import Imap, ImapTypedDict from .iota import Iota, IotaTypedDict @@ -122,6 +126,7 @@ from .ssdp import Ssdp, SsdpTypedDict from .ssh import SSH, SSHTypedDict from .steam import Steam, SteamTypedDict +from .stun import Stun, StunTypedDict from .tacacsplus import TacacsPlus, TacacsPlusTypedDict from .teamviewer import TeamViewer, TeamViewerTypedDict from .telnet import Telnet, TelnetTypedDict @@ -164,6 +169,7 @@ class ServiceTransportProtocol(str, Enum, metaclass=utils.OpenEnumMeta): class ServiceTypedDict(TypedDict): activemq: NotRequired[ActivemqTypedDict] amqp: NotRequired[AmqpTypedDict] + anerma_cf_forth: NotRequired[AnermaCfForthTypedDict] any_connect: NotRequired[AnyConnectTypedDict] asterisk_manager_interface: NotRequired[AsteriskManagerInterfaceTypedDict] bacnet: NotRequired[BacnetTypedDict] @@ -178,6 +184,7 @@ class ServiceTypedDict(TypedDict): coap: NotRequired[CoapTypedDict] crestron_cp3: NotRequired[CrestronCp3TypedDict] crestron_din_ap2: NotRequired[CrestronDinAp2TypedDict] + cursor_on_target: NotRequired[CursorOnTargetTypedDict] cwmp: NotRequired[CwmpTypedDict] darkcomet: NotRequired[DarkcometTypedDict] darkgate: NotRequired[DarkgateTypedDict] @@ -196,6 +203,7 @@ class ServiceTypedDict(TypedDict): exposures: NotRequired[Nullable[List[RiskTypedDict]]] flash_socket_policy: NotRequired[FlashSocketPolicyTypedDict] fox: NotRequired[FoxTypedDict] + frps: NotRequired[FrpsTypedDict] ftp: NotRequired[FtpTypedDict] gearman: NotRequired[GearmanTypedDict] gemini: NotRequired[GeminiTypedDict] @@ -204,6 +212,7 @@ class ServiceTypedDict(TypedDict): hid_vertx: NotRequired[HidVertxTypedDict] hikvision: NotRequired[HikvisionTypedDict] ibmnje: NotRequired[IbmnjeTypedDict] + icap: NotRequired[IcapTypedDict] ike: NotRequired[IkeTypedDict] imap: NotRequired[ImapTypedDict] iota: NotRequired[IotaTypedDict] @@ -290,6 +299,7 @@ class ServiceTypedDict(TypedDict): ssdp: NotRequired[SsdpTypedDict] ssh: NotRequired[SSHTypedDict] steam: NotRequired[SteamTypedDict] + stun: NotRequired[StunTypedDict] tacacs_plus: NotRequired[TacacsPlusTypedDict] team_viewer: NotRequired[TeamViewerTypedDict] telnet: NotRequired[TelnetTypedDict] @@ -315,6 +325,8 @@ class Service(BaseModel): amqp: Optional[Amqp] = None + anerma_cf_forth: Optional[AnermaCfForth] = None + any_connect: Optional[AnyConnect] = None asterisk_manager_interface: Optional[AsteriskManagerInterface] = None @@ -343,6 +355,8 @@ class Service(BaseModel): crestron_din_ap2: Optional[CrestronDinAp2] = None + cursor_on_target: Optional[CursorOnTarget] = None + cwmp: Optional[Cwmp] = None darkcomet: Optional[Darkcomet] = None @@ -379,6 +393,8 @@ class Service(BaseModel): fox: Optional[Fox] = None + frps: Optional[Frps] = None + ftp: Optional[Ftp] = None gearman: Optional[Gearman] = None @@ -395,6 +411,8 @@ class Service(BaseModel): ibmnje: Optional[Ibmnje] = None + icap: Optional[Icap] = None + ike: Optional[Ike] = None imap: Optional[Imap] = None @@ -567,6 +585,8 @@ class Service(BaseModel): steam: Optional[Steam] = None + stun: Optional[Stun] = None + tacacs_plus: Optional[TacacsPlus] = None team_viewer: Optional[TeamViewer] = None @@ -618,6 +638,7 @@ def serialize_model(self, handler): [ "activemq", "amqp", + "anerma_cf_forth", "any_connect", "asterisk_manager_interface", "bacnet", @@ -632,6 +653,7 @@ def serialize_model(self, handler): "coap", "crestron_cp3", "crestron_din_ap2", + "cursor_on_target", "cwmp", "darkcomet", "darkgate", @@ -650,6 +672,7 @@ def serialize_model(self, handler): "exposures", "flash_socket_policy", "fox", + "frps", "ftp", "gearman", "gemini", @@ -658,6 +681,7 @@ def serialize_model(self, handler): "hid_vertx", "hikvision", "ibmnje", + "icap", "ike", "imap", "iota", @@ -744,6 +768,7 @@ def serialize_model(self, handler): "ssdp", "ssh", "steam", + "stun", "tacacs_plus", "team_viewer", "telnet", diff --git a/src/censys_platform/models/serviceonhostrange.py b/src/censys_platform/models/serviceonhostrange.py new file mode 100644 index 0000000..ee6e065 --- /dev/null +++ b/src/censys_platform/models/serviceonhostrange.py @@ -0,0 +1,41 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from censys_platform.types import BaseModel +from datetime import datetime +from typing_extensions import TypedDict + + +class ServiceOnHostRangeTypedDict(TypedDict): + end_time: datetime + r"""When the service was last observed""" + ip: str + r"""IP address where the service was observed""" + port: str + r"""Port number where the service was observed""" + protocol: str + r"""Application protocol (e.g., HTTP, HTTPS)""" + start_time: datetime + r"""When the service was first observed""" + transport_protocol: str + r"""Transport protocol (e.g., TCP, UDP, QUIC)""" + + +class ServiceOnHostRange(BaseModel): + end_time: datetime + r"""When the service was last observed""" + + ip: str + r"""IP address where the service was observed""" + + port: str + r"""Port number where the service was observed""" + + protocol: str + r"""Application protocol (e.g., HTTP, HTTPS)""" + + start_time: datetime + r"""When the service was first observed""" + + transport_protocol: str + r"""Transport protocol (e.g., TCP, UDP, QUIC)""" diff --git a/src/censys_platform/models/servicescan.py b/src/censys_platform/models/servicescan.py index d282885..e6f2598 100644 --- a/src/censys_platform/models/servicescan.py +++ b/src/censys_platform/models/servicescan.py @@ -3,6 +3,7 @@ from __future__ import annotations from .activemq import Activemq, ActivemqTypedDict from .amqp import Amqp, AmqpTypedDict +from .anermacfforth import AnermaCfForth, AnermaCfForthTypedDict from .anyconnect import AnyConnect, AnyConnectTypedDict from .asteriskmanagerinterface import ( AsteriskManagerInterface, @@ -16,6 +17,7 @@ from .coap import Coap, CoapTypedDict from .crestroncp3 import CrestronCp3, CrestronCp3TypedDict from .crestrondinap2 import CrestronDinAp2, CrestronDinAp2TypedDict +from .cursorontarget import CursorOnTarget, CursorOnTargetTypedDict from .cwmp import Cwmp, CwmpTypedDict from .darkcomet import Darkcomet, DarkcometTypedDict from .darkgate import Darkgate, DarkgateTypedDict @@ -32,6 +34,7 @@ from .ethereum import Ethereum, EthereumTypedDict from .flashsocketpolicy import FlashSocketPolicy, FlashSocketPolicyTypedDict from .fox import Fox, FoxTypedDict +from .frps import Frps, FrpsTypedDict from .ftp import Ftp, FtpTypedDict from .gearman import Gearman, GearmanTypedDict from .gemini import Gemini, GeminiTypedDict @@ -39,6 +42,7 @@ from .hidvertx import HidVertx, HidVertxTypedDict from .hikvision import Hikvision, HikvisionTypedDict from .ibmnje import Ibmnje, IbmnjeTypedDict +from .icap import Icap, IcapTypedDict from .ike import Ike, IkeTypedDict from .imap import Imap, ImapTypedDict from .iota import Iota, IotaTypedDict @@ -115,6 +119,7 @@ from .ssdp import Ssdp, SsdpTypedDict from .ssh import SSH, SSHTypedDict from .steam import Steam, SteamTypedDict +from .stun import Stun, StunTypedDict from .tacacsplus import TacacsPlus, TacacsPlusTypedDict from .teamviewer import TeamViewer, TeamViewerTypedDict from .telnet import Telnet, TelnetTypedDict @@ -155,6 +160,7 @@ class ServiceScanTransportProtocol(str, Enum, metaclass=utils.OpenEnumMeta): class ServiceScanTypedDict(TypedDict): activemq: NotRequired[ActivemqTypedDict] amqp: NotRequired[AmqpTypedDict] + anerma_cf_forth: NotRequired[AnermaCfForthTypedDict] any_connect: NotRequired[AnyConnectTypedDict] asterisk_manager_interface: NotRequired[AsteriskManagerInterfaceTypedDict] bacnet: NotRequired[BacnetTypedDict] @@ -167,6 +173,7 @@ class ServiceScanTypedDict(TypedDict): coap: NotRequired[CoapTypedDict] crestron_cp3: NotRequired[CrestronCp3TypedDict] crestron_din_ap2: NotRequired[CrestronDinAp2TypedDict] + cursor_on_target: NotRequired[CursorOnTargetTypedDict] cwmp: NotRequired[CwmpTypedDict] darkcomet: NotRequired[DarkcometTypedDict] darkgate: NotRequired[DarkgateTypedDict] @@ -183,6 +190,7 @@ class ServiceScanTypedDict(TypedDict): ethereum: NotRequired[EthereumTypedDict] flash_socket_policy: NotRequired[FlashSocketPolicyTypedDict] fox: NotRequired[FoxTypedDict] + frps: NotRequired[FrpsTypedDict] ftp: NotRequired[FtpTypedDict] gearman: NotRequired[GearmanTypedDict] gemini: NotRequired[GeminiTypedDict] @@ -190,6 +198,7 @@ class ServiceScanTypedDict(TypedDict): hid_vertx: NotRequired[HidVertxTypedDict] hikvision: NotRequired[HikvisionTypedDict] ibmnje: NotRequired[IbmnjeTypedDict] + icap: NotRequired[IcapTypedDict] ike: NotRequired[IkeTypedDict] imap: NotRequired[ImapTypedDict] iota: NotRequired[IotaTypedDict] @@ -271,6 +280,7 @@ class ServiceScanTypedDict(TypedDict): ssdp: NotRequired[SsdpTypedDict] ssh: NotRequired[SSHTypedDict] steam: NotRequired[SteamTypedDict] + stun: NotRequired[StunTypedDict] tacacs_plus: NotRequired[TacacsPlusTypedDict] team_viewer: NotRequired[TeamViewerTypedDict] telnet: NotRequired[TelnetTypedDict] @@ -294,6 +304,8 @@ class ServiceScan(BaseModel): amqp: Optional[Amqp] = None + anerma_cf_forth: Optional[AnermaCfForth] = None + any_connect: Optional[AnyConnect] = None asterisk_manager_interface: Optional[AsteriskManagerInterface] = None @@ -318,6 +330,8 @@ class ServiceScan(BaseModel): crestron_din_ap2: Optional[CrestronDinAp2] = None + cursor_on_target: Optional[CursorOnTarget] = None + cwmp: Optional[Cwmp] = None darkcomet: Optional[Darkcomet] = None @@ -350,6 +364,8 @@ class ServiceScan(BaseModel): fox: Optional[Fox] = None + frps: Optional[Frps] = None + ftp: Optional[Ftp] = None gearman: Optional[Gearman] = None @@ -364,6 +380,8 @@ class ServiceScan(BaseModel): ibmnje: Optional[Ibmnje] = None + icap: Optional[Icap] = None + ike: Optional[Ike] = None imap: Optional[Imap] = None @@ -526,6 +544,8 @@ class ServiceScan(BaseModel): steam: Optional[Steam] = None + stun: Optional[Stun] = None + tacacs_plus: Optional[TacacsPlus] = None team_viewer: Optional[TeamViewer] = None @@ -573,6 +593,7 @@ def serialize_model(self, handler): [ "activemq", "amqp", + "anerma_cf_forth", "any_connect", "asterisk_manager_interface", "bacnet", @@ -585,6 +606,7 @@ def serialize_model(self, handler): "coap", "crestron_cp3", "crestron_din_ap2", + "cursor_on_target", "cwmp", "darkcomet", "darkgate", @@ -601,6 +623,7 @@ def serialize_model(self, handler): "ethereum", "flash_socket_policy", "fox", + "frps", "ftp", "gearman", "gemini", @@ -608,6 +631,7 @@ def serialize_model(self, handler): "hid_vertx", "hikvision", "ibmnje", + "icap", "ike", "imap", "iota", @@ -689,6 +713,7 @@ def serialize_model(self, handler): "ssdp", "ssh", "steam", + "stun", "tacacs_plus", "team_viewer", "telnet", diff --git a/src/censys_platform/models/servicesonhostresponse.py b/src/censys_platform/models/servicesonhostresponse.py new file mode 100644 index 0000000..a37bd73 --- /dev/null +++ b/src/censys_platform/models/servicesonhostresponse.py @@ -0,0 +1,42 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .serviceonhostrange import ServiceOnHostRange, ServiceOnHostRangeTypedDict +from censys_platform.types import BaseModel, Nullable, UNSET_SENTINEL +import pydantic +from pydantic import model_serializer +from typing import List +from typing_extensions import Annotated, TypedDict + + +class ServicesOnHostResponseTypedDict(TypedDict): + next_page_token: str + ranges: Nullable[List[ServiceOnHostRangeTypedDict]] + + +class ServicesOnHostResponse(BaseModel): + next_page_token: Annotated[str, pydantic.Field(alias="NextPageToken")] + + ranges: Annotated[ + Nullable[List[ServiceOnHostRange]], pydantic.Field(alias="Ranges") + ] + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + 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: + m[k] = val + + return m + + +try: + ServicesOnHostResponse.model_rebuild() +except NameError: + pass diff --git a/src/censys_platform/models/sourceusagebreakdown.py b/src/censys_platform/models/sourceusagebreakdown.py index 3d54799..b665e5d 100644 --- a/src/censys_platform/models/sourceusagebreakdown.py +++ b/src/censys_platform/models/sourceusagebreakdown.py @@ -1,30 +1,48 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from censys_platform.types import BaseModel -from typing_extensions import TypedDict +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict class SourceUsageBreakdownTypedDict(TypedDict): api: int r"""The amount of credits consumed through the Platform API.""" - auto_replenishment: int - r"""The amount of credits consumed through auto-replenishment.""" - other: int - r"""The amount of credits consumed through other operations.""" ui: int r"""The amount of credits consumed through the Platform UI.""" + auto_replenishment: NotRequired[int] + r"""The amount of credits consumed through auto-replenishment.""" + other: NotRequired[int] + r"""The amount of credits consumed through other operations.""" class SourceUsageBreakdown(BaseModel): api: int r"""The amount of credits consumed through the Platform API.""" - auto_replenishment: int + ui: int + r"""The amount of credits consumed through the Platform UI.""" + + auto_replenishment: Optional[int] = None r"""The amount of credits consumed through auto-replenishment.""" - other: int + other: Optional[int] = None r"""The amount of credits consumed through other operations.""" - ui: int - r"""The amount of credits consumed through the Platform UI.""" + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["auto_replenishment", "other"]) + 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/stun.py b/src/censys_platform/models/stun.py new file mode 100644 index 0000000..af2b2cf --- /dev/null +++ b/src/censys_platform/models/stun.py @@ -0,0 +1,60 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .stun_bindingerrorresponse import ( + StunBindingErrorResponse, + StunBindingErrorResponseTypedDict, +) +from .stun_bindingsuccessresponse import ( + StunBindingSuccessResponse, + StunBindingSuccessResponseTypedDict, +) +from .stun_turn import StunTurn, StunTurnTypedDict +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class StunTypedDict(TypedDict): + binding_error_response: NotRequired[StunBindingErrorResponseTypedDict] + binding_success_response: NotRequired[StunBindingSuccessResponseTypedDict] + response_type: NotRequired[int] + response_type_name: NotRequired[str] + turn: NotRequired[StunTurnTypedDict] + + +class Stun(BaseModel): + binding_error_response: Optional[StunBindingErrorResponse] = None + + binding_success_response: Optional[StunBindingSuccessResponse] = None + + response_type: Optional[int] = None + + response_type_name: Optional[str] = None + + turn: Optional[StunTurn] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "binding_error_response", + "binding_success_response", + "response_type", + "response_type_name", + "turn", + ] + ) + 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/stun_bindingerrorresponse.py b/src/censys_platform/models/stun_bindingerrorresponse.py new file mode 100644 index 0000000..41b221b --- /dev/null +++ b/src/censys_platform/models/stun_bindingerrorresponse.py @@ -0,0 +1,42 @@ +"""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 StunBindingErrorResponseTypedDict(TypedDict): + error_code: NotRequired[int] + error_reason: NotRequired[str] + has_fingerprint: NotRequired[bool] + software: NotRequired[str] + + +class StunBindingErrorResponse(BaseModel): + error_code: Optional[int] = None + + error_reason: Optional[str] = None + + has_fingerprint: Optional[bool] = None + + software: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["error_code", "error_reason", "has_fingerprint", "software"] + ) + 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/stun_bindingsuccessresponse.py b/src/censys_platform/models/stun_bindingsuccessresponse.py new file mode 100644 index 0000000..0c6d85a --- /dev/null +++ b/src/censys_platform/models/stun_bindingsuccessresponse.py @@ -0,0 +1,38 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .stun_mappedaddress import StunMappedAddress, StunMappedAddressTypedDict +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class StunBindingSuccessResponseTypedDict(TypedDict): + has_fingerprint: NotRequired[bool] + other_address: NotRequired[StunMappedAddressTypedDict] + software: NotRequired[str] + + +class StunBindingSuccessResponse(BaseModel): + has_fingerprint: Optional[bool] = None + + other_address: Optional[StunMappedAddress] = None + + software: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["has_fingerprint", "other_address", "software"]) + 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/stun_mappedaddress.py b/src/censys_platform/models/stun_mappedaddress.py new file mode 100644 index 0000000..e8a8735 --- /dev/null +++ b/src/censys_platform/models/stun_mappedaddress.py @@ -0,0 +1,34 @@ +"""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 StunMappedAddressTypedDict(TypedDict): + ip: NotRequired[str] + port: NotRequired[int] + + +class StunMappedAddress(BaseModel): + ip: Optional[str] = None + + port: Optional[int] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["ip", "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/stun_turn.py b/src/censys_platform/models/stun_turn.py new file mode 100644 index 0000000..7931900 --- /dev/null +++ b/src/censys_platform/models/stun_turn.py @@ -0,0 +1,55 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .stun_turn_allocateerrorresponse import ( + StunTurnAllocateErrorResponse, + StunTurnAllocateErrorResponseTypedDict, +) +from .stun_turn_allocatesuccessresponse import ( + StunTurnAllocateSuccessResponse, + StunTurnAllocateSuccessResponseTypedDict, +) +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class StunTurnTypedDict(TypedDict): + allocate_error_response: NotRequired[StunTurnAllocateErrorResponseTypedDict] + allocate_success_response: NotRequired[StunTurnAllocateSuccessResponseTypedDict] + response_type: NotRequired[int] + response_type_name: NotRequired[str] + + +class StunTurn(BaseModel): + allocate_error_response: Optional[StunTurnAllocateErrorResponse] = None + + allocate_success_response: Optional[StunTurnAllocateSuccessResponse] = None + + response_type: Optional[int] = None + + response_type_name: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "allocate_error_response", + "allocate_success_response", + "response_type", + "response_type_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/stun_turn_allocateerrorresponse.py b/src/censys_platform/models/stun_turn_allocateerrorresponse.py new file mode 100644 index 0000000..0dddd1d --- /dev/null +++ b/src/censys_platform/models/stun_turn_allocateerrorresponse.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 StunTurnAllocateErrorResponseTypedDict(TypedDict): + error_code: NotRequired[int] + error_reason: NotRequired[str] + has_fingerprint: NotRequired[bool] + nonce: NotRequired[str] + realm: NotRequired[str] + software: NotRequired[str] + + +class StunTurnAllocateErrorResponse(BaseModel): + error_code: Optional[int] = None + + error_reason: Optional[str] = None + + has_fingerprint: Optional[bool] = None + + nonce: Optional[str] = None + + realm: Optional[str] = None + + software: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "error_code", + "error_reason", + "has_fingerprint", + "nonce", + "realm", + "software", + ] + ) + 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/stun_turn_allocatesuccessresponse.py b/src/censys_platform/models/stun_turn_allocatesuccessresponse.py new file mode 100644 index 0000000..0dc043f --- /dev/null +++ b/src/censys_platform/models/stun_turn_allocatesuccessresponse.py @@ -0,0 +1,38 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .stun_mappedaddress import StunMappedAddress, StunMappedAddressTypedDict +from censys_platform.types import BaseModel, UNSET_SENTINEL +from pydantic import model_serializer +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class StunTurnAllocateSuccessResponseTypedDict(TypedDict): + has_fingerprint: NotRequired[bool] + relay_address: NotRequired[StunMappedAddressTypedDict] + software: NotRequired[str] + + +class StunTurnAllocateSuccessResponse(BaseModel): + has_fingerprint: Optional[bool] = None + + relay_address: Optional[StunMappedAddress] = None + + software: Optional[str] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["has_fingerprint", "relay_address", "software"]) + 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/v3_collections_crud_listop.py b/src/censys_platform/models/v3_collections_crud_listop.py index ae2b529..e4be20f 100644 --- a/src/censys_platform/models/v3_collections_crud_listop.py +++ b/src/censys_platform/models/v3_collections_crud_listop.py @@ -5,8 +5,15 @@ ResponseEnvelopeListCollectionsResponseV1, ResponseEnvelopeListCollectionsResponseV1TypedDict, ) -from censys_platform.types import BaseModel, UNSET_SENTINEL +from censys_platform.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from censys_platform.utils import FieldMetadata, QueryParamMetadata +from enum import Enum from pydantic import model_serializer from typing import Dict, List, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -39,6 +46,13 @@ def serialize_model(self, handler): return m +class CollectionStatuses(str, Enum): + POPULATING = "populating" + ACTIVE = "active" + PAUSED = "paused" + ARCHIVED = "archived" + + class V3CollectionsCrudListRequestTypedDict(TypedDict): organization_id: NotRequired[str] r"""The ID of a Censys organization to associate the request with. See the [Getting Started docs](https://docs.censys.com/reference/get-started#step-3-find-and-use-your-organization-id-optional) for more information.""" @@ -46,6 +60,8 @@ class V3CollectionsCrudListRequestTypedDict(TypedDict): r"""page token for the requested page of collection results""" page_size: NotRequired[int] r"""amount of results to return per page""" + collection_statuses: NotRequired[Nullable[List[CollectionStatuses]]] + r"""statuses of collection for results to be filtered on.""" class V3CollectionsCrudListRequest(BaseModel): @@ -67,18 +83,35 @@ class V3CollectionsCrudListRequest(BaseModel): ] = None r"""amount of results to return per page""" + collection_statuses: Annotated[ + OptionalNullable[List[CollectionStatuses]], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = UNSET + r"""statuses of collection for results to be filtered on.""" + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["organization_id", "page_token", "page_size"]) + optional_fields = set( + ["organization_id", "page_token", "page_size", "collection_statuses"] + ) + nullable_fields = set(["collection_statuses"]) 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: + 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/v3_globaldata_service_on_hostop.py b/src/censys_platform/models/v3_globaldata_service_on_hostop.py new file mode 100644 index 0000000..71b34ab --- /dev/null +++ b/src/censys_platform/models/v3_globaldata_service_on_hostop.py @@ -0,0 +1,195 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .responseenvelopeservicesonhostresponse import ( + ResponseEnvelopeServicesOnHostResponse, + ResponseEnvelopeServicesOnHostResponseTypedDict, +) +from censys_platform.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) +from censys_platform.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata +from enum import Enum +from pydantic import model_serializer +from typing import Dict, List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class V3GlobaldataServiceOnHostGlobalsTypedDict(TypedDict): + organization_id: NotRequired[str] + + +class V3GlobaldataServiceOnHostGlobals(BaseModel): + organization_id: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["organization_id"]) + 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 + + +class QueryParamTransportProtocol(str, Enum): + r"""Filter by transport protocol""" + + TCP = "tcp" + UDP = "udp" + QUIC = "quic" + + +class OrderBy(str, Enum): + PORT_ASC = "port ASC" + PORT_DESC = "port DESC" + PROTOCOL_ASC = "protocol ASC" + PROTOCOL_DESC = "protocol DESC" + TRANSPORT_PROTOCOL_ASC = "transport_protocol ASC" + TRANSPORT_PROTOCOL_DESC = "transport_protocol DESC" + + +class V3GlobaldataServiceOnHostRequestTypedDict(TypedDict): + host_id: str + r"""The IP address of a host.""" + organization_id: NotRequired[str] + r"""The ID of a Censys organization to associate the request with. See the [Getting Started docs](https://docs.censys.com/reference/get-started#step-3-find-and-use-your-organization-id-optional) for more information.""" + start_time: NotRequired[str] + r"""Start of date range (RFC3339 format, e.g., 2024-01-01T00:00:00Z). If not specified, defaults to the maximum query window back from the end time.""" + end_time: NotRequired[str] + r"""End of date range (RFC3339 format, e.g., 2024-01-31T23:59:59Z). If not specified, defaults to now. Cannot be in the future.""" + page_size: NotRequired[int] + r"""Number of results per page (max 100)""" + page_token: NotRequired[str] + r"""Pagination token from previous response""" + port: NotRequired[int] + r"""Filter by port number""" + protocol: NotRequired[str] + r"""Filter by application protocol""" + transport_protocol: NotRequired[QueryParamTransportProtocol] + r"""Filter by transport protocol""" + order_by: NotRequired[Nullable[List[OrderBy]]] + r"""Order observations by these fields. Multiple values can be provided to sort by multiple fields (e.g., ['port DESC', 'protocol ASC']).""" + + +class V3GlobaldataServiceOnHostRequest(BaseModel): + host_id: Annotated[ + str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False)) + ] + r"""The IP address of a host.""" + + organization_id: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = None + r"""The ID of a Censys organization to associate the request with. See the [Getting Started docs](https://docs.censys.com/reference/get-started#step-3-find-and-use-your-organization-id-optional) for more information.""" + + start_time: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = None + r"""Start of date range (RFC3339 format, e.g., 2024-01-01T00:00:00Z). If not specified, defaults to the maximum query window back from the end time.""" + + end_time: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = None + r"""End of date range (RFC3339 format, e.g., 2024-01-31T23:59:59Z). If not specified, defaults to now. Cannot be in the future.""" + + page_size: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = 100 + r"""Number of results per page (max 100)""" + + page_token: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = None + r"""Pagination token from previous response""" + + port: Annotated[ + Optional[int], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = None + r"""Filter by port number""" + + protocol: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = None + r"""Filter by application protocol""" + + transport_protocol: Annotated[ + Optional[QueryParamTransportProtocol], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = None + r"""Filter by transport protocol""" + + order_by: Annotated[ + OptionalNullable[List[OrderBy]], + FieldMetadata(query=QueryParamMetadata(style="form", explode=False)), + ] = UNSET + r"""Order observations by these fields. Multiple values can be provided to sort by multiple fields (e.g., ['port DESC', 'protocol ASC']).""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "organization_id", + "start_time", + "end_time", + "page_size", + "page_token", + "port", + "protocol", + "transport_protocol", + "order_by", + ] + ) + nullable_fields = set(["order_by"]) + 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 + + +class V3GlobaldataServiceOnHostResponseTypedDict(TypedDict): + headers: Dict[str, List[str]] + result: ResponseEnvelopeServicesOnHostResponseTypedDict + + +class V3GlobaldataServiceOnHostResponse(BaseModel): + headers: Dict[str, List[str]] + + result: ResponseEnvelopeServicesOnHostResponse