diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 354ab74..5f20f12 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,24 +1,24 @@ lockVersion: 2.0.0 id: f42d74f5-5725-46fa-b13c-649b7ef895c3 management: - docChecksum: 561b223f973a0da0eb74dbadeb1a6991 + docChecksum: 95fa42ae6c6c855e16874ae16eda8060 docVersion: 1.0.0 - speakeasyVersion: 1.791.4 - generationVersion: 2.926.8 - releaseVersion: 0.6.5 - configChecksum: 391a51b81fe5edeb6ebb64224f291310 + speakeasyVersion: 1.796.2 + generationVersion: 2.933.0 + releaseVersion: 0.7.0 + configChecksum: c3b94d0b617ce2ce4383876f2e37925e repoURL: https://github.com/VantaInc/vanta-auditor-api-sdk-java.git installationURL: https://github.com/VantaInc/vanta-auditor-api-sdk-java published: true persistentEdits: - generation_id: d1a54db1-4d01-4688-adab-9667a75f0162 - pristine_commit_hash: 318d369cc212ef27e1fed78bf77b6b9539e178a9 - pristine_tree_hash: 6a5aad1cb89ea966eba45aa75d1b441f41e09aaa + generation_id: 645c92ea-89c5-4f28-8895-51180b24eb65 + pristine_commit_hash: 87d01d7a58981c34bfa1d5aaa496b523874c35fd + pristine_tree_hash: bcc12d8733a10842846d4ccfb2e1724fec3c6645 features: java: additionalDependencies: 0.1.0 constsAndDefaults: 0.1.3 - core: 3.56.1 + core: 3.57.2 deprecations: 2.81.2 flattening: 2.81.1 globalSecurity: 2.83.4 @@ -28,7 +28,7 @@ features: nameOverrides: 2.81.5 nullables: 0.1.1 sdkHooks: 1.2.0 - unions: 0.3.6 + unions: 0.3.8 trackedFiles: .gitattributes: id: 24139dae6567 @@ -94,14 +94,18 @@ trackedFiles: id: b7ae4165e19f last_write_checksum: sha1:fd662a745be2276a9c87cc2833e357b9ad6a8a65 pristine_git_object: e15233ea31b913bcdb3d70b3bbd6c7e4e373000a + docs/models/components/ApprovalProgress.md: + id: 8dd3243c9b53 + last_write_checksum: sha1:f70cc90260a2c8ef7df850d19f422ad0b7ab5081 + pristine_git_object: 37adc35fae5e6b36a4495d0cf0260b2195b69ae5 docs/models/components/Audit.md: id: e4a55898fa16 - last_write_checksum: sha1:7060a839b146ee1a5326792363b1cc8fe07bcf6d - pristine_git_object: dddc02efbea453f3ca06bdc4fc2eabff0f535edd + last_write_checksum: sha1:3edb467619f745eb79b54d48b76d4a50a61b55f2 + pristine_git_object: f56469986b91f75e95f694950d0bf596418af42e docs/models/components/AuditControlAssessment.md: id: 912f37d45d66 - last_write_checksum: sha1:55d7dbb7f7fa9ff70eadfe9d94967fb3b1441fb3 - pristine_git_object: 3de568c4f9013538e40fbeb343e56715cd4a3463 + last_write_checksum: sha1:400f9eb6db331443a1ba46cd209e8f6623b690cc + pristine_git_object: 373d08619ba259637dfd59174b5199c8e11dfeea docs/models/components/AuditControlAssessmentState.md: id: 155069c4e5e3 last_write_checksum: sha1:47393404414a82b7bf9a487d3b11b9d6290f498d @@ -162,6 +166,26 @@ trackedFiles: id: d0de09b75aa6 last_write_checksum: sha1:69102f4d225ccce1bc9f9696a60db31db4f79b3a pristine_git_object: 5f34594955e094c06537ecf2bedd2cece208cd87 + docs/models/components/AuditSegment.md: + id: 2ec5e0fc5495 + last_write_checksum: sha1:55ad414d312eba8dd42589f547c75a92ee5a0a7f + pristine_git_object: 45a75abe67659f8c4ce07bfeb816736877a840fc + docs/models/components/AuditSegmentFramework.md: + id: 7d6e4ca56896 + last_write_checksum: sha1:5b2b565a8efcc896de1e21f25275b6239c83fa78 + pristine_git_object: e7531e008a16d9b7c7f418fb36ab11eae0bc18ca + docs/models/components/AuditSegmentKind.md: + id: fa89e8965792 + last_write_checksum: sha1:53486d7e6dcda6fb121159fadda60e6e45d04075 + pristine_git_object: 0d195ef5a129e949bf5e9c3390ad0d1c940b5320 + docs/models/components/AuditSoc2ReportType.md: + id: 98edf4deef5f + last_write_checksum: sha1:07da48add348516f6a4e12e1c61cd19ab5c4db86 + pristine_git_object: 324150a47df4de0df6ceb4950eee8dc0bc50bfdf + docs/models/components/AuditSoc2Tsc.md: + id: 17ab44e19cbd + last_write_checksum: sha1:ea24ce383c3b53439002ccbe4834a606c2c3bf20 + pristine_git_object: 2b439eedc63d48985b4cd31917be6a2bed8042fe docs/models/components/AuditVendor.md: id: 8cb5fd130140 last_write_checksum: sha1:169f6ee52ca4dac9c91a78c30c1be33a929492e6 @@ -184,12 +208,12 @@ trackedFiles: pristine_git_object: fa74cf198651b8faefed7b0d4670d234bded1476 docs/models/components/AuditorControl.md: id: 28ba4b612cb0 - last_write_checksum: sha1:cdf53b47255df5aab3d4ae051e6027b58f6129cf - pristine_git_object: 93ddf09420c4541c788b0f59f77eb8679d8f6b86 + last_write_checksum: sha1:5af2958c8a14e6208a675ddc39ce35c909f20b21 + pristine_git_object: 61dbb95a9ea5c846307e9a161c2955ae2fb12046 docs/models/components/AuditorControlAssessment.md: id: 597259043f22 - last_write_checksum: sha1:d55d19402f9cd8ce6c3a8b6ca765e0d95da918b8 - pristine_git_object: 8f00b02dcdfee1bd390704a533ac748afa3aa2e4 + last_write_checksum: sha1:608808ccc90997a94dec3e490ea4f0ef8d31d44d + pristine_git_object: 958b91a2f39bf1700d19db4d7d532b503b2f08d7 docs/models/components/AuditorEnabledStateTransition.md: id: 0ee04f1039c0 last_write_checksum: sha1:8283764946df2d86877432cd820b3be482b7f794 @@ -206,6 +230,10 @@ trackedFiles: id: 76ee9211da83 last_write_checksum: sha1:41957d12ec9ff289ea074a6906acfb0d68e96ada pristine_git_object: 3d83a83c0d6d36a17a6f053b79b53f4827df21e8 + docs/models/components/BusinessUnit.md: + id: 4c4434844f8e + last_write_checksum: sha1:1d2f51f96f1094c1905e1d4b30562bc39dddb490 + pristine_git_object: 78258ea1b1c1ba8e11255e98bda5c84793cc449c docs/models/components/Cadence.md: id: 37cf09feac1c last_write_checksum: sha1:002195cac46a44f50fd86c645f79b2a7306260e1 @@ -476,8 +504,8 @@ trackedFiles: pristine_git_object: 745a1e5a4a997948a7eb4c6102126c8235584a73 docs/models/components/IssueSnapshotItem.md: id: 32e706e025a0 - last_write_checksum: sha1:8541fb3134a7ca9aaa0202c69b9436e359a0eb00 - pristine_git_object: 0408087c85096ed7a8c5f2e0acdfd4f674a3acbb + last_write_checksum: sha1:b342257e09c9e72d5b373a5c35fe7779fc88a8df + pristine_git_object: 9a8f54d17b881ae76ab912488b2870438911a355 docs/models/components/IssueSnapshotItemOrderBy.md: id: 9413f6b22cfe last_write_checksum: sha1:4d134a5f58b97eb6d851fa6f0606b48963162148 @@ -488,8 +516,8 @@ trackedFiles: pristine_git_object: dea82105eb64a7f5f9bbd6a749ca475ad8155326 docs/models/components/IssueStatusTypeForSnapshot.md: id: a106310611ce - last_write_checksum: sha1:99978e5688301453ca5e6b1282839ebd19ac6864 - pristine_git_object: ce6649af89abc1c2eecb372151add6a2580efc4b + last_write_checksum: sha1:562c5404df47235daf0bd3491809e4768a620b24 + pristine_git_object: 408673dbb9ce98f4302afe40c92e77d7821a26cc docs/models/components/KeyValuePair.md: id: 6a9fca4ff9c8 last_write_checksum: sha1:48ff0d2ccb95c256a965ad4279e504f3b5c7fae7 @@ -910,6 +938,10 @@ trackedFiles: id: e3df20e11c70 last_write_checksum: sha1:88d16bb808c4cb827b73195ea167641b030bf90b pristine_git_object: 71ef91180f24723b2a0dd07909f56490aaa9881b + docs/models/components/Soc2Deliverable.md: + id: ae246c30c731 + last_write_checksum: sha1:ac3f5f5bb0730dcd326925f55290b20897514614 + pristine_git_object: b4892b5e9452ee41950dd72ab2d07dff35e69e7f docs/models/components/Source.md: id: 851a72141717 last_write_checksum: sha1:6d95c6afa87dd8e55f5ee510cc71abf347d7a66f @@ -922,6 +954,10 @@ trackedFiles: id: b67cb98dcbf0 last_write_checksum: sha1:c9366350bd4bc57e4d4dcdce02a29b30a4f2c411 pristine_git_object: ac224ae2023f84f071fd051eb6614f2f0fe0d42c + docs/models/components/System.md: + id: b1315f6d4925 + last_write_checksum: sha1:b52c807191a9abf3ce82542cd499cc6076aa6c2b + pristine_git_object: 5073c011e53b4a8f3050593aa3d318f1b048f53d docs/models/components/TaskStatus.md: id: 8267c2c59753 last_write_checksum: sha1:a86884e159df73d14a923eb51516f6a05f9855a2 @@ -1012,8 +1048,8 @@ trackedFiles: pristine_git_object: f54107b563504d086ed07cc1333ad97303c72c51 docs/models/components/UpsertAuditControlAssessmentInput.md: id: 90bb10ef6465 - last_write_checksum: sha1:6dcc52be1b90a290591e297b442a5433ea28fb46 - pristine_git_object: e1b601d20f9e0cfb425d14d9415a18f656d45400 + last_write_checksum: sha1:2862cee6097dcbf07b335cb9f8ac4eadb1789461 + pristine_git_object: 8ff57e7380e6753d5ecee1bee9e687428d604504 docs/models/components/Value.md: id: 298b43471825 last_write_checksum: sha1:87605c18b03f67c35594b0cfad2862164f17a0d6 @@ -1278,6 +1314,14 @@ trackedFiles: id: 00e78d56ac2d last_write_checksum: sha1:6aac61a7a8ae3fc8f9c567016be3c117290166c7 pristine_git_object: f4c42369a4c3b87e032d5b0c8d1f6a778a39c392 + docs/models/operations/GetInformationRequestEvidenceRequest.md: + id: 6443ffc63ec7 + last_write_checksum: sha1:358e7e79115a281a317a03c1492322a674e2f75c + pristine_git_object: abae1fcf42096f79ab3973a1af1ad8200cda7ace + docs/models/operations/GetInformationRequestEvidenceResponse.md: + id: 593ddcf55683 + last_write_checksum: sha1:43775603919c00f05fbff03eaa819ecd223c6e79 + pristine_git_object: e9ddcc9b8c7607923f2ab8658f7193c44624747e docs/models/operations/GetInformationRequestRequest.md: id: dd3caf42fbed last_write_checksum: sha1:1ff60dc30ec35a323de2f06668ee2d665a8465c2 @@ -1588,16 +1632,16 @@ trackedFiles: pristine_git_object: 0808108fb53faaa59313b7f3a8cb82e6a32884ad docs/sdks/audits/README.md: id: b976aa226e19 - last_write_checksum: sha1:f1a3b06452f5994e3422766c86f02d4d88ec2a63 - pristine_git_object: 326398058cb5b91c5c04608ba96670e60c742aec + last_write_checksum: sha1:53ba62446a6cdaf69507568220e8457f991cdcee + pristine_git_object: ab017e64809f39e2ce202cb726c31d76395e21d8 docs/utils/Blob.md: id: 3d9a7c4ad67a last_write_checksum: sha1:46ba9a381c8983c4a89c495fbca109cc66851754 pristine_git_object: de7d1b163d5926363b94e775645373b750f65b30 gradle.properties: id: 2afbb999f001 - last_write_checksum: sha1:718cd32051a639a4eb26d4e552162b80201da867 - pristine_git_object: 950a9c02066240ee3cb753e2f01b0e145a3bc095 + last_write_checksum: sha1:f060b5077cb94271f18c39685a02d54983097078 + pristine_git_object: 833cd0de5a73fe3cdcd94ed0fa8e51189b03c9ee gradle/wrapper/gradle-wrapper.jar: id: ec27dae6e852 last_write_checksum: sha1:f725fb1467084142d74fd7cd8eab691ab3442611 @@ -1628,8 +1672,8 @@ trackedFiles: pristine_git_object: 8ce3f1ca13fe3131d31dd8f7d40fdab23067fc82 src/main/java/com/vanta/vanta_auditor_api/AsyncAudits.java: id: 2d0875e33c27 - last_write_checksum: sha1:c6fdc95d07d268be357cc7f840ba5f770af0f281 - pristine_git_object: ec674a87ab08dc675659d4a9a758c0e639744697 + last_write_checksum: sha1:80803aeae64ad254db1c7cbc90e8a62a905fda5a + pristine_git_object: 154117c7df97535c236c548ad1b2759fa1b27c29 src/main/java/com/vanta/vanta_auditor_api/AsyncVanta.java: id: b47385b1c356 last_write_checksum: sha1:883518392f570199c37a5f9005cddce689f136ce @@ -1640,12 +1684,12 @@ trackedFiles: pristine_git_object: a412b060afc9232b17567b476a1d1a1f776618f1 src/main/java/com/vanta/vanta_auditor_api/Audits.java: id: 0ee418adaca4 - last_write_checksum: sha1:ccfaab2056b8121080a3f34ee0bff39546f3ad7c - pristine_git_object: f8531b226aa23e29b1de2c43a3bdd14857efc3bb + last_write_checksum: sha1:ecfdfa90dd2a56e35a12e73eb87a0cefa275603a + pristine_git_object: 0cdd2b7e7c71a464d49a4dd8b9920fc879561617 src/main/java/com/vanta/vanta_auditor_api/SDKConfiguration.java: id: ce55360c720c - last_write_checksum: sha1:65cda456608b3dcd92f390338ea8d3b43fb8ca1b - pristine_git_object: 64f0980e0d152eac2556c2d0fb6658c8b92bc16f + last_write_checksum: sha1:f984db4f5329aaeaf7d4bff1265c8a0952376a26 + pristine_git_object: 98bd209a90128d621cbca057a7405d79720af1d0 src/main/java/com/vanta/vanta_auditor_api/SecuritySource.java: id: 18c0da44b51f last_write_checksum: sha1:55dc5f4240c7317c9a5a4080b6e17dc1b6fdd403 @@ -1706,14 +1750,18 @@ trackedFiles: id: d13eab3e3c77 last_write_checksum: sha1:22e93c7e8c2d941bbd8ee09907e86f60c946a68c pristine_git_object: 356dc34ed2be41d2a906fb41155e9941f56a72a9 + src/main/java/com/vanta/vanta_auditor_api/models/components/ApprovalProgress.java: + id: b5219c1cc418 + last_write_checksum: sha1:2fe68ce92cc93c1db312183f6a2bd292cc646a7f + pristine_git_object: 3a4fdac4fc082d27feb5e8b3735b3ec7581f11f4 src/main/java/com/vanta/vanta_auditor_api/models/components/Audit.java: id: 1a12e3b13579 - last_write_checksum: sha1:7c2d9de8862317abdbd6cedebd7746b4b4f378b9 - pristine_git_object: 182b2ecb1f4baba9af194be4340939253a2278a3 + last_write_checksum: sha1:7acb4d600e460e619a6dcd3205fe0b10f4a2db0d + pristine_git_object: 8d65e09fa30f470f626ebfb488d189fe1e952bba src/main/java/com/vanta/vanta_auditor_api/models/components/AuditControlAssessment.java: id: c2f1a0337769 - last_write_checksum: sha1:200f9b34435ee47715564dcf198b3d156221b575 - pristine_git_object: df00f4d6d03e8b9870c35ca8bfce3bc110be39ad + last_write_checksum: sha1:e048eff160ec5174412f14d9274154e656e92cb5 + pristine_git_object: f5c79ae48fe4d64473f2767a07bd76d659f2d9c8 src/main/java/com/vanta/vanta_auditor_api/models/components/AuditControlAssessmentState.java: id: 4831bc14d0a3 last_write_checksum: sha1:7cf879273a3f9e6f8e714ab9ec5831b17d0ce9c5 @@ -1774,6 +1822,26 @@ trackedFiles: id: 710be2b3f189 last_write_checksum: sha1:ab0b9b8977aaff4f30b80d7f86e006728c75d08c pristine_git_object: c67ecc16985baf5c0a4319fe6cf634aed262eb93 + src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegment.java: + id: 5631c07fa915 + last_write_checksum: sha1:023b9edab11ffe0e3d9078936a5eb53dd0f8bf72 + pristine_git_object: 18aea97c3b0bfe865be17db6390ec75261459e62 + src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegmentFramework.java: + id: 5a8fc21d4fc8 + last_write_checksum: sha1:52b612225c9f181fccf5dcb0cfadc030dbbad4a9 + pristine_git_object: faa38200422de5ff8b7eab6d4867667a5bb279ca + src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegmentKind.java: + id: aa52f0330e69 + last_write_checksum: sha1:ff72bd6191961b86540665d99a0c29aff66c42a9 + pristine_git_object: bc2beef5bf763926e3488b9815085b476c66f696 + src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSoc2ReportType.java: + id: cbe35b758f4d + last_write_checksum: sha1:d1dca9635aeaca16a275b43e37c8ae03cc856a37 + pristine_git_object: 182d3af6779fba8752f3d6998995a0ce4ed3ba6a + src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSoc2Tsc.java: + id: e5fe5aa17cb8 + last_write_checksum: sha1:5e5e44a2d1441a4b2ab8e13800cef78406542ea4 + pristine_git_object: 9bb6034022ed8de1d3d0a1da1e507dad812b448b src/main/java/com/vanta/vanta_auditor_api/models/components/AuditVendor.java: id: 76c14206c671 last_write_checksum: sha1:ef0fbba271d53ef2f6294963a7fd3e305c539a0e @@ -1796,12 +1864,12 @@ trackedFiles: pristine_git_object: e271e26d81a1b91553342174971c8ecc388d9932 src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControl.java: id: 48b76875945a - last_write_checksum: sha1:7a7320f5f582831b74c0787ee29df3dedc91e98f - pristine_git_object: 979d61e7f4cf8ae04e36f2d5a7408eeaa09dd314 + last_write_checksum: sha1:f02636f2c90d1e4307e4da0dd87c13e059e2de03 + pristine_git_object: 519fbf4d311235ee84f8b8ffcad1c9cb007c8276 src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControlAssessment.java: id: e19bbd7d9e13 - last_write_checksum: sha1:737f760adf5d6590540d17a76b1262998e2ea7a3 - pristine_git_object: a09570681ed1f4ade3c332c6d9965188aaeff412 + last_write_checksum: sha1:226d9d0374431fd3c44b4309f84b63e0eaa2a3cd + pristine_git_object: bd41227b68b091a7a6773c9eac54a0505f9f523e src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorEnabledStateTransition.java: id: f78fb7fe7738 last_write_checksum: sha1:c283617e0fbf1c665f765c0f53aed60904f54ee4 @@ -1818,6 +1886,10 @@ trackedFiles: id: 55326ce05a7f last_write_checksum: sha1:206793c500ad8017232c91ffd34391b375e35ffa pristine_git_object: 5defcc5dd42fca3a43fc7029308290a5dc7d0c99 + src/main/java/com/vanta/vanta_auditor_api/models/components/BusinessUnit.java: + id: df3038ccb71e + last_write_checksum: sha1:2840a7aee66e0afb2a7e003324a19ae3155e83a3 + pristine_git_object: 9a4825a6d12f85e534d5cd87aa69466aebf27576 src/main/java/com/vanta/vanta_auditor_api/models/components/Cadence.java: id: 912091e65009 last_write_checksum: sha1:8da5969763acc533fd8166bf74667607ae852d9c @@ -2088,8 +2160,8 @@ trackedFiles: pristine_git_object: e4ee418f7899114b313edb2cc2aed721f2bb665f src/main/java/com/vanta/vanta_auditor_api/models/components/IssueSnapshotItem.java: id: 6e6ea8619347 - last_write_checksum: sha1:7acd965abd6def92d043d770cbd50f534242d51a - pristine_git_object: c7e99cb75076b7201247c112650b1ea94d3c5135 + last_write_checksum: sha1:7906bb5cae2b7cf8c2f1cce71c46f4022ab427b3 + pristine_git_object: 5b35973f677f4c60b0b48941f1c90d185238b907 src/main/java/com/vanta/vanta_auditor_api/models/components/IssueSnapshotItemOrderBy.java: id: 7c05ef6d21fd last_write_checksum: sha1:c4b79064c04c611cbba3586a0c71db203ae37015 @@ -2100,8 +2172,8 @@ trackedFiles: pristine_git_object: 8eed9adec392be560f78edc1139442ab37a5a072 src/main/java/com/vanta/vanta_auditor_api/models/components/IssueStatusTypeForSnapshot.java: id: c13c6e6d7ff9 - last_write_checksum: sha1:e1569fa68439f9fc0b282cd57847c19b9ddcd3bb - pristine_git_object: 89ade8f49f05fc2b49c07d52d9a69e90b1d60f79 + last_write_checksum: sha1:455c2ee26e7cbb923ebfed25cfe14b8c86c09fb9 + pristine_git_object: 2d333dffd614fe0c85a3238348a039b8d90e8eeb src/main/java/com/vanta/vanta_auditor_api/models/components/KeyValuePair.java: id: 2babbd653c98 last_write_checksum: sha1:c2e8c0353080d75c4e8f320e1e7b52fd496d593e @@ -2522,6 +2594,10 @@ trackedFiles: id: 2fcfe386a740 last_write_checksum: sha1:60d8eca5cf140c9204ea48a897ffb3e481ecf14b pristine_git_object: 901b30ad2c5d9ce21f444e934bf161fe8232f698 + src/main/java/com/vanta/vanta_auditor_api/models/components/Soc2Deliverable.java: + id: 1ba1bb89445c + last_write_checksum: sha1:7fba4caa59ec0c80c5668f8a5ca85b1648a0d087 + pristine_git_object: 818d9e83f2921288e4e71618d5031280183ead7d src/main/java/com/vanta/vanta_auditor_api/models/components/Source.java: id: 26b50d49605a last_write_checksum: sha1:38b4f5569755e04c694f6e29fc7adea710de9f0a @@ -2534,6 +2610,10 @@ trackedFiles: id: 9c6c71fa24e6 last_write_checksum: sha1:df838bca4546ef48b0530136598d19c090be03bb pristine_git_object: f3c249aabe2cd232efee460e4587b7ebb7becf62 + src/main/java/com/vanta/vanta_auditor_api/models/components/System.java: + id: 94e774b419d2 + last_write_checksum: sha1:c80a095e85fa9ef578c1a6b2dd836d759892a966 + pristine_git_object: 2167c32eb47f81b2f0e763644567e5681935d5f2 src/main/java/com/vanta/vanta_auditor_api/models/components/TaskStatus.java: id: 1c5f8bd4942a last_write_checksum: sha1:c7fb8740a4543be13c64df5fe2938a310c073383 @@ -2624,8 +2704,8 @@ trackedFiles: pristine_git_object: ec6d4c999a90f6b4f97a750dd389b21b4880e0be src/main/java/com/vanta/vanta_auditor_api/models/components/UpsertAuditControlAssessmentInput.java: id: 895c9800291f - last_write_checksum: sha1:e852489f3a0eb740ca49ccc24086267dc5683899 - pristine_git_object: 8b56b2cbb088a5abb7c12102b0f888a113c31025 + last_write_checksum: sha1:30881a02d11979ae27c6000addd81312c6444238 + pristine_git_object: e111c3123a6379b3f913e847c410454fd79dd919 src/main/java/com/vanta/vanta_auditor_api/models/components/Value.java: id: 5d65550f465b last_write_checksum: sha1:ff9d0209e288953088f5b6d5c5a610688ec83e88 @@ -2842,6 +2922,10 @@ trackedFiles: id: 77a0a3049ba9 last_write_checksum: sha1:00666f89b39e056d7a53f7bd94a008eda5d07dc4 pristine_git_object: 3e37af6acd6d4c02124d39a76ae88935c6b4e6a7 + src/main/java/com/vanta/vanta_auditor_api/models/operations//async/GetInformationRequestEvidenceRequestBuilder.java: + id: c641f01aca99 + last_write_checksum: sha1:f69edf7a6da53f5fe197a9bf19e58048d93569a0 + pristine_git_object: f6fb17ac1c4961c8a279cc99926bedb272c22c7e src/main/java/com/vanta/vanta_auditor_api/models/operations//async/GetInformationRequestRequestBuilder.java: id: b654743af6c3 last_write_checksum: sha1:0954b76c80d0da8b2b87f32bec04fc5b5a753a42 @@ -3202,6 +3286,18 @@ trackedFiles: id: 477411ff3b4a last_write_checksum: sha1:4190d7b2570c83382c01591f7a023a649bf07b6a pristine_git_object: c601f857144d46e49f8557053dc723415ea95cb9 + src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceRequest.java: + id: 3489a9163315 + last_write_checksum: sha1:6a70239deb0b8c8956a2d5107b412993c85715ea + pristine_git_object: 068ee6cd175bafad007fabe43244e54a789bbc30 + src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceRequestBuilder.java: + id: 1d94989f38af + last_write_checksum: sha1:9f5a1bb527065acff699f3b96313e916479c766f + pristine_git_object: c181e3fed439bf27c766511c39231ff663d3b59d + src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceResponse.java: + id: 78b84f2b09fd + last_write_checksum: sha1:500c8283a8e732a0ad03d35955af8f7fb219bfc2 + pristine_git_object: 383169876c47f16dffb796da1d45ad3a95e84aea src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestRequest.java: id: ef00465a04d8 last_write_checksum: sha1:ffecba0284d72aeb2df0507536542e927e6de600 @@ -3730,6 +3826,10 @@ trackedFiles: id: bdc04c7edd8f last_write_checksum: sha1:2d225970ea0346178849c5d110710da9b01068b3 pristine_git_object: 1aa57986cd754cd1f26f5ca486e50b7a191c0848 + src/main/java/com/vanta/vanta_auditor_api/models/operations/async/GetInformationRequestEvidenceResponse.java: + id: 37903c174eb0 + last_write_checksum: sha1:8f4dba3272197c343ad3734bd292ddbc9a299642 + pristine_git_object: 8266d05b460afbaa0e27aed8c91102ff01202f69 src/main/java/com/vanta/vanta_auditor_api/models/operations/async/GetInformationRequestResponse.java: id: 14bf53a7e996 last_write_checksum: sha1:ee34121a0f05ff183a627c2891fd6c9d97fa1bbe @@ -3958,6 +4058,10 @@ trackedFiles: id: 5b8e7a91bf60 last_write_checksum: sha1:6216578cbccb6e0d0a1dffc6be2019639e4d1146 pristine_git_object: 7a95e0a0b62fd22eb7cd48925407dd90b2f25454 + src/main/java/com/vanta/vanta_auditor_api/operations/GetInformationRequestEvidence.java: + id: 0815b3752013 + last_write_checksum: sha1:3329c47a9a8c4dea7a2cfa7a3bf95a2d261ea6bf + pristine_git_object: 937848c0ef5705c19dd91c41fd74195291a2d06b src/main/java/com/vanta/vanta_auditor_api/operations/GetInformationRequestTestSnapshotEvidenceDetail.java: id: daee43a58943 last_write_checksum: sha1:a68f6008357ddb1518221daca0d71a45e1d1c67a @@ -4386,7 +4490,7 @@ examples: pageSize: 10 responses: "200": - application/json: {"results": {"data": [{"id": "65fc81a3359c8508c9af880f", "customerOrganizationName": "corporation.com", "customerDisplayName": "Corporation Company", "customerOrganizationId": "65fc81a3359c8508c9af880f", "auditStartDate": "2024-03-07T21:25:56.000Z", "auditEndDate": "2024-03-14T21:25:56.000Z", "earlyAccessStartsAt": "2024-03-07T21:25:56.000Z", "framework": "SOC 2 Type II", "displayName": "Q1 2024 SOC 2 Audit", "allowAuditorEmails": ["sam@auditor.com"], "allowAllAuditors": true, "deletionDate": "2024-03-07T21:25:56.000Z", "creationDate": "2024-03-07T21:25:56.000Z", "modificationDate": "2024-03-07T21:25:56.000Z", "completionDate": "2024-03-07T21:25:56.000Z", "auditFocus": "EXTERNAL", "auditorRequestListMetadata": {"requestsSharedWithCustomer": "2024-03-07T21:25:56.000Z"}}], "pageInfo": {"endCursor": "YXJyYXljb25uZWN0aW9uOjE=", "hasNextPage": false, "hasPreviousPage": false, "startCursor": "YXJyYXljb25uZWN0aW9uOjA="}}} + application/json: {"results": {"data": [{"id": "65fc81a3359c8508c9af880f", "customerOrganizationName": "corporation.com", "customerDisplayName": "Corporation Company", "customerOrganizationId": "65fc81a3359c8508c9af880f", "auditStartDate": "2024-03-07T21:25:56.000Z", "auditEndDate": "2024-03-14T21:25:56.000Z", "earlyAccessStartsAt": "2024-03-07T21:25:56.000Z", "framework": "SOC 2 Type II", "displayName": "Q1 2024 SOC 2 Audit", "allowAuditorEmails": ["sam@auditor.com"], "allowAllAuditors": true, "deletionDate": null, "creationDate": "2024-03-07T21:25:56.000Z", "modificationDate": "2024-03-07T21:25:56.000Z", "completionDate": "2024-03-07T21:25:56.000Z", "auditFocus": "EXTERNAL", "auditorRequestListMetadata": {"requestsSharedWithCustomer": "2024-03-07T21:25:56.000Z"}, "segments": [{"id": "65fc81a3359c8508c9af8810", "kind": "PROGRAM", "displayName": "SOC 2 Type II", "framework": {"id": "soc2", "displayName": "SOC 2 Type II", "shortName": "SOC 2"}, "businessUnit": null, "system": null, "soc2Deliverable": {"reportType": "soc2type2", "tscs": ["SECURITY", "AVAILABILITY"]}}]}], "pageInfo": {"endCursor": "YXJyYXljb25uZWN0aW9uOjE=", "hasNextPage": false, "hasPreviousPage": false, "startCursor": "YXJyYXljb25uZWN0aW9uOjA="}}} ListAuditEvidenceUrls: Example 1: parameters: @@ -4427,7 +4531,7 @@ examples: pageSize: 10 responses: "200": - application/json: {"results": {"data": [{"id": "a2f7e1b9d0c3f4e5a6c7b8d9", "externalId": "CRY-104", "name": "Data encryption utilized", "description": "Access reviews are performed to ensure that access is appropriate for the user's role and responsibilities.", "source": "Vanta", "domains": ["CRYPTOGRAPHIC_PROTECTIONS"], "owner": {"id": "65e1efde08e8478f143a8ff9", "displayName": "Example Owner", "emailAddress": "example-person@email.com"}, "role": null, "customFields": [], "creationDate": null, "modificationDate": null, "framework": "soc2", "sections": [{"name": "CC 1.1", "framework": "SOC 2", "principle": {"id": "CC 1.0", "name": "Control Environment"}}], "assessments": [{"assessmentState": "IN_PLACE", "justification": "Encryption at rest and in transit verified via cloud configuration evidence."}]}], "pageInfo": {"endCursor": "YXJyYXljb25uZWN0aW9uOjE=", "hasNextPage": false, "hasPreviousPage": false, "startCursor": "YXJyYXljb25uZWN0aW9uOjA="}}} + application/json: {"results": {"data": [{"id": "a2f7e1b9d0c3f4e5a6c7b8d9", "externalId": "CRY-104", "name": "Data encryption utilized", "description": "Access reviews are performed to ensure that access is appropriate for the user's role and responsibilities.", "source": "Vanta", "domains": ["CRYPTOGRAPHIC_PROTECTIONS"], "owner": {"id": "65e1efde08e8478f143a8ff9", "displayName": "Example Owner", "emailAddress": "example-person@email.com"}, "role": null, "customFields": [], "creationDate": null, "modificationDate": null, "framework": "soc2", "sections": [{"name": "CC 1.1", "framework": "SOC 2", "principle": {"id": "CC 1.0", "name": "Control Environment"}}], "inScopeSegmentIds": ["65fc81a3359c8508c9af880f"], "assessments": [{"segmentId": "65fc81a3359c8508c9af880f", "assessmentState": "IN_PLACE", "justification": "Encryption at rest and in transit verified via cloud configuration evidence."}]}], "pageInfo": {"endCursor": "YXJyYXljb25uZWN0aW9uOjE=", "hasNextPage": false, "hasPreviousPage": false, "startCursor": "YXJyYXljb25uZWN0aW9uOjA="}}} CreateCommentForAuditEvidence: Example 1: parameters: @@ -4484,7 +4588,7 @@ examples: auditId: "" responses: "200": - application/json: {"id": "65fc81a3359c8508c9af880f", "customerOrganizationName": "corporation.com", "customerDisplayName": "Corporation Company", "customerOrganizationId": "65fc81a3359c8508c9af880f", "auditStartDate": "2024-03-07T21:25:56.000Z", "auditEndDate": "2024-03-14T21:25:56.000Z", "earlyAccessStartsAt": "2024-03-07T21:25:56.000Z", "framework": "SOC 2 Type II", "displayName": "Q1 2024 SOC 2 Audit", "allowAuditorEmails": ["sam@auditor.com"], "allowAllAuditors": true, "deletionDate": "2024-03-07T21:25:56.000Z", "creationDate": "2024-03-07T21:25:56.000Z", "modificationDate": "2024-03-07T21:25:56.000Z", "completionDate": "2024-03-07T21:25:56.000Z", "auditFocus": "EXTERNAL", "auditorRequestListMetadata": {"requestsSharedWithCustomer": "2024-03-07T21:25:56.000Z"}} + application/json: {"id": "65fc81a3359c8508c9af880f", "customerOrganizationName": "corporation.com", "customerDisplayName": "Corporation Company", "customerOrganizationId": "65fc81a3359c8508c9af880f", "auditStartDate": "2024-03-07T21:25:56.000Z", "auditEndDate": "2024-03-14T21:25:56.000Z", "earlyAccessStartsAt": "2024-03-07T21:25:56.000Z", "framework": "SOC 2 Type II", "displayName": "Q1 2024 SOC 2 Audit", "allowAuditorEmails": ["sam@auditor.com"], "allowAllAuditors": true, "deletionDate": null, "creationDate": "2024-03-07T21:25:56.000Z", "modificationDate": "2024-03-07T21:25:56.000Z", "completionDate": "2024-03-07T21:25:56.000Z", "auditFocus": "EXTERNAL", "auditorRequestListMetadata": {"requestsSharedWithCustomer": "2024-03-07T21:25:56.000Z"}, "segments": [{"id": "65fc81a3359c8508c9af8810", "kind": "PROGRAM", "displayName": "SOC 2 Type II", "framework": {"id": "soc2", "displayName": "SOC 2 Type II", "shortName": "SOC 2"}, "businessUnit": null, "system": null, "soc2Deliverable": {"reportType": "soc2type2", "tscs": ["SECURITY", "AVAILABILITY"]}}]} ListInformationRequestsForControl: Example 1: parameters: @@ -4656,7 +4760,7 @@ examples: pageSize: 10 responses: "200": - application/json: {"results": {"data": [{"id": "5f2c939a52855e725c8d5824", "title": "User accounts with weak passwords", "description": "The following user accounts have passwords that do not meet the company's password policy: [list of accounts]. Weak passwords increase the risk of unauthorized access to systems and data.", "readableIssueId": "ISS-1234", "issueId": "5f2c939a52855e725c8d5825", "snapshotId": "5f2c939a52855e725c8d5823", "dueDate": "2023-12-31T23:59:59.000Z", "status": "CLOSED", "lastModifiedAt": "2024-06-15T10:30:00.000Z", "createdAt": "2024-06-01T09:00:00.000Z", "detectedAt": "2024-05-30T14:45:00.000Z"}], "pageInfo": {"endCursor": null, "hasNextPage": false, "hasPreviousPage": false, "startCursor": null}}} + application/json: {"results": {"data": [{"id": "5f2c939a52855e725c8d5824", "title": "User accounts with weak passwords", "description": "The following user accounts have passwords that do not meet the company's password policy: [list of accounts]. Weak passwords increase the risk of unauthorized access to systems and data.", "readableIssueId": "ISS-1234", "issueId": "5f2c939a52855e725c8d5825", "snapshotId": "5f2c939a52855e725c8d5823", "dueDate": "2023-12-31T23:59:59.000Z", "status": "CLOSED", "approvalProgress": {"approvedCount": 1, "totalApprovers": 2}, "lastModifiedAt": "2024-06-15T10:30:00.000Z", "createdAt": "2024-06-01T09:00:00.000Z", "detectedAt": "2024-05-30T14:45:00.000Z"}], "pageInfo": {"endCursor": null, "hasNextPage": false, "hasPreviousPage": false, "startCursor": null}}} ListAuditSnapshots: Example 1: parameters: @@ -4674,7 +4778,7 @@ examples: auditId: "" responses: "200": - application/json: {"id": "65fc81a3359c8508c9af880f", "customerOrganizationName": "corporation.com", "customerDisplayName": "Corporation Company", "customerOrganizationId": "65fc81a3359c8508c9af880f", "auditStartDate": "2024-03-07T21:25:56.000Z", "auditEndDate": "2024-03-14T21:25:56.000Z", "earlyAccessStartsAt": "2024-03-07T21:25:56.000Z", "framework": "SOC 2 Type II", "displayName": "Q1 2024 SOC 2 Audit", "allowAuditorEmails": ["sam@auditor.com"], "allowAllAuditors": true, "deletionDate": "2024-03-07T21:25:56.000Z", "creationDate": "2024-03-07T21:25:56.000Z", "modificationDate": "2024-03-07T21:25:56.000Z", "completionDate": "2024-03-07T21:25:56.000Z", "auditFocus": "EXTERNAL", "auditorRequestListMetadata": {"requestsSharedWithCustomer": "2024-03-07T21:25:56.000Z"}} + application/json: {"id": "65fc81a3359c8508c9af880f", "customerOrganizationName": "corporation.com", "customerDisplayName": "Corporation Company", "customerOrganizationId": "65fc81a3359c8508c9af880f", "auditStartDate": "2024-03-07T21:25:56.000Z", "auditEndDate": "2024-03-14T21:25:56.000Z", "earlyAccessStartsAt": "2024-03-07T21:25:56.000Z", "framework": "SOC 2 Type II", "displayName": "Q1 2024 SOC 2 Audit", "allowAuditorEmails": ["sam@auditor.com"], "allowAllAuditors": true, "deletionDate": null, "creationDate": "2024-03-07T21:25:56.000Z", "modificationDate": "2024-03-07T21:25:56.000Z", "completionDate": "2024-03-07T21:25:56.000Z", "auditFocus": "EXTERNAL", "auditorRequestListMetadata": {"requestsSharedWithCustomer": "2024-03-07T21:25:56.000Z"}, "segments": [{"id": "65fc81a3359c8508c9af8810", "kind": "PROGRAM", "displayName": "SOC 2 Type II", "framework": {"id": "soc2", "displayName": "SOC 2 Type II", "shortName": "SOC 2"}, "businessUnit": null, "system": null, "soc2Deliverable": {"reportType": "soc2type2", "tscs": ["SECURITY", "AVAILABILITY"]}}]} ListCodeChanges: Example 1: parameters: @@ -4892,7 +4996,7 @@ examples: application/json: {"sourceAuditId": "", "displayName": "Orpha.Schoen", "auditStartDate": "2024-01-02T08:34:53.150Z", "auditEndDate": "2024-10-06T07:06:05.931Z", "earlyAccessStartsAt": "2025-05-31T02:08:59.254Z", "allowAuditorEmails": ["", "", ""]} responses: "200": - application/json: {"id": "65fc81a3359c8508c9af880f", "customerOrganizationName": "corporation.com", "customerDisplayName": "Corporation Company", "customerOrganizationId": "65fc81a3359c8508c9af880f", "auditStartDate": "2024-03-07T21:25:56.000Z", "auditEndDate": "2024-03-14T21:25:56.000Z", "earlyAccessStartsAt": "2024-03-07T21:25:56.000Z", "framework": "SOC 2 Type II", "displayName": "Q1 2024 SOC 2 Audit", "allowAuditorEmails": ["sam@auditor.com"], "allowAllAuditors": true, "deletionDate": "2024-03-07T21:25:56.000Z", "creationDate": "2024-03-07T21:25:56.000Z", "modificationDate": "2024-03-07T21:25:56.000Z", "completionDate": "2024-03-07T21:25:56.000Z", "auditFocus": "EXTERNAL", "auditorRequestListMetadata": {"requestsSharedWithCustomer": "2024-03-07T21:25:56.000Z"}} + application/json: {"id": "65fc81a3359c8508c9af880f", "customerOrganizationName": "corporation.com", "customerDisplayName": "Corporation Company", "customerOrganizationId": "65fc81a3359c8508c9af880f", "auditStartDate": "2024-03-07T21:25:56.000Z", "auditEndDate": "2024-03-14T21:25:56.000Z", "earlyAccessStartsAt": "2024-03-07T21:25:56.000Z", "framework": "SOC 2 Type II", "displayName": "Q1 2024 SOC 2 Audit", "allowAuditorEmails": ["sam@auditor.com"], "allowAllAuditors": true, "deletionDate": null, "creationDate": "2024-03-07T21:25:56.000Z", "modificationDate": "2024-03-07T21:25:56.000Z", "completionDate": "2024-03-07T21:25:56.000Z", "auditFocus": "EXTERNAL", "auditorRequestListMetadata": {"requestsSharedWithCustomer": "2024-03-07T21:25:56.000Z"}, "segments": [{"id": "65fc81a3359c8508c9af8810", "kind": "PROGRAM", "displayName": "SOC 2 Type II", "framework": {"id": "soc2", "displayName": "SOC 2 Type II", "shortName": "SOC 2"}, "businessUnit": null, "system": null, "soc2Deliverable": {"reportType": "soc2type2", "tscs": ["SECURITY", "AVAILABILITY"]}}]} UpsertAssessmentForControl: Example 1: parameters: @@ -4903,7 +5007,7 @@ examples: application/json: {"assessmentState": "TRUE", "justification": "", "auditorEmail": ""} responses: "200": - application/json: {"controlId": "a2f7e1b9d0c3f4e5a6c7b8d9", "assessmentState": "IN_PLACE", "justification": "Encryption at rest and in transit verified via cloud configuration evidence."} + application/json: {"controlId": "a2f7e1b9d0c3f4e5a6c7b8d9", "segmentId": "65fc81a3359c8508c9af880f", "assessmentState": "IN_PLACE", "justification": "Encryption at rest and in transit verified via cloud configuration evidence."} GetAuditEvidenceComment: Example 1: parameters: @@ -4933,6 +5037,16 @@ examples: responses: "200": application/json: {"id": "65fc81a3359c8508c9af880f", "text": "Some comment", "creationDate": "2024-03-07T21:25:56.000Z", "modificationDate": "2024-03-07T21:25:56.000Z", "deletionDate": "2024-03-07T21:25:56.000Z", "email": "vlad@vantaroo.com", "authorName": "Vlad Vantaroo"} + GetInformationRequestEvidence: + Example 1: + parameters: + path: + auditId: "" + requestId: "" + evidenceId: "" + responses: + "200": + application/json: {"id": "6890e473dce1da5d8406f5e8", "evidenceType": "UPLOADED_DOCUMENT", "visibleToAuditorDate": "2025-10-16T12:00:00.000Z", "creationDate": "2025-10-15T10:30:00.000Z", "modificationDate": "2025-10-16T12:00:00.000Z", "deletionDate": null, "evidence": {"id": "6890e473dce1da5d8406f5ea", "filename": "security-policy.pdf", "mimeType": "application/pdf", "url": "https://example.com/presigned-url"}} examplesVersion: 1.0.2 generatedTests: {} generatedFiles: diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index bc207c5..2a4ebdb 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -29,7 +29,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false java: - version: 0.6.5 + version: 0.7.0 additionalDependencies: [] additionalPlugins: [] artifactID: vanta-auditor-api @@ -47,7 +47,7 @@ java: explicitDocImports: false flattenGlobalSecurity: true forwardCompatibleEnumsByDefault: false - forwardCompatibleUnionsByDefault: "false" + forwardCompatibleUnionsByDefault: true generateOptionalUnionAccessors: false generateSpringBootStarter: true generateUnionDocs: false diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 909a4d3..a813e2d 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.791.4 +speakeasyVersion: 1.796.2 sources: Conduct an audit: sourceNamespace: conduct-an-audit - sourceRevisionDigest: sha256:8d625fddb96cd0f0993249aae4cda7e86bc6b682960cc547dfe22a312de14f61 - sourceBlobDigest: sha256:ac98465bed24218c3704b8c9ea738b4afd03086abcda0979c8ac3dff1103b872 + sourceRevisionDigest: sha256:1f3418472b4832b538c2c2d0545120e3a8de0b0df30106b2b7ba21638c72ef81 + sourceBlobDigest: sha256:24286b3b53c96822c21d124adf7cd49f8a765b5d32f6a851d90e3653edb93dd9 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: vanta: source: Conduct an audit sourceNamespace: conduct-an-audit - sourceRevisionDigest: sha256:8d625fddb96cd0f0993249aae4cda7e86bc6b682960cc547dfe22a312de14f61 - sourceBlobDigest: sha256:ac98465bed24218c3704b8c9ea738b4afd03086abcda0979c8ac3dff1103b872 + sourceRevisionDigest: sha256:1f3418472b4832b538c2c2d0545120e3a8de0b0df30106b2b7ba21638c72ef81 + sourceBlobDigest: sha256:24286b3b53c96822c21d124adf7cd49f8a765b5d32f6a851d90e3653edb93dd9 codeSamplesNamespace: conduct-an-audit-java-code-samples - codeSamplesRevisionDigest: sha256:583c36171f39a19ecea8b5d7383de36a2f4b085198b336b181a493c333459e8d + codeSamplesRevisionDigest: sha256:790eb680bca74ffeb9eb3acf885467fcf7358fca81af6a419792f04d53acbf7d workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 6c659a4..f541e21 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ The samples below show how a published SDK artifact is used: Gradle: ```groovy -implementation 'com.vanta:vanta-auditor-api:0.6.5' +implementation 'com.vanta:vanta-auditor-api:0.7.0' ``` Maven: @@ -57,7 +57,7 @@ Maven: com.vanta vanta-auditor-api - 0.6.5 + 0.7.0 ``` @@ -322,6 +322,7 @@ public class Application { * [updateCommentForInformationRequest](docs/sdks/audits/README.md#updatecommentforinformationrequest) - Update a comment for an information request * [deleteCommentForInformationRequest](docs/sdks/audits/README.md#deletecommentforinformationrequest) - Delete a comment for an information request * [listInformationRequestEvidence](docs/sdks/audits/README.md#listinformationrequestevidence) - List evidence for an information request +* [getInformationRequestEvidence](docs/sdks/audits/README.md#getinformationrequestevidence) - Get information request evidence by ID * [getInformationRequestTestSnapshotEvidenceDetail](docs/sdks/audits/README.md#getinformationrequesttestsnapshotevidencedetail) - Get test snapshot detail for an evidence row * [flagInformationRequestEvidence](docs/sdks/audits/README.md#flaginformationrequestevidence) - Flag evidence for an information request * [listIntegrations](docs/sdks/audits/README.md#listintegrations) - List integrations for an audit diff --git a/RELEASES.md b/RELEASES.md index 29a8d24..10b32eb 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -328,4 +328,14 @@ Based on: ### Generated - [java v0.6.5] . ### Releases -- [Maven Central v0.6.5] https://central.sonatype.com/artifact/com.vanta/vanta-auditor-api/0.6.5 - . \ No newline at end of file +- [Maven Central v0.6.5] https://central.sonatype.com/artifact/com.vanta/vanta-auditor-api/0.6.5 - . + +## 2026-08-29 00:03:00 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.796.2 (2.933.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [java v0.7.0] . +### Releases +- [Maven Central v0.7.0] https://central.sonatype.com/artifact/com.vanta/vanta-auditor-api/0.7.0 - . \ No newline at end of file diff --git a/docs/models/components/ApprovalProgress.md b/docs/models/components/ApprovalProgress.md new file mode 100644 index 0000000..37adc35 --- /dev/null +++ b/docs/models/components/ApprovalProgress.md @@ -0,0 +1,12 @@ +# ApprovalProgress + +The issue's approval progress at the time the snapshot was captured, +or null if no approval was in progress or issue approvals are not enabled. + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `approvedCount` | *double* | :heavy_check_mark: | The number of approvers who have approved the issue. | 1 | +| `totalApprovers` | *double* | :heavy_check_mark: | The total number of approvers in the issue's approval chain. | 2 | \ No newline at end of file diff --git a/docs/models/components/Audit.md b/docs/models/components/Audit.md index dddc02e..f564699 100644 --- a/docs/models/components/Audit.md +++ b/docs/models/components/Audit.md @@ -3,22 +3,23 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | *String* | :heavy_check_mark: | The unique identifier for the audit. | -| `customerOrganizationName` | *String* | :heavy_check_mark: | The domain name of the customer organization being audited (e.g. vanta.com) | -| `customerDisplayName` | *Optional\* | :heavy_check_mark: | The human readable name of the customer organization being audited (e.g. Vanta) | -| `customerOrganizationId` | *String* | :heavy_check_mark: | The uuid of the customer organization being audited | -| `auditStartDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | The start of the audit window. This is also when data collection for audit starts. | -| `auditEndDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | The end of the audit window. | -| `earlyAccessStartsAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp at which auditors gain access to the audit. Occurs before the audit window begins | -| `framework` | *String* | :heavy_check_mark: | The name of the framework for the audit | -| `displayName` | *String* | :heavy_check_mark: | The display name for the audit. Returns the custom audit name if set,
otherwise returns the framework name. | -| `allowAuditorEmails` | List\<*String*> | :heavy_check_mark: | Emails of auditors with access to audit | -| `allowAllAuditors` | *boolean* | :heavy_check_mark: | Set to true if all auditors in audit firm have access | -| `deletionDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp when the audit was deleted | -| `creationDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp when the audit was created | -| `modificationDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp when the audit was updated | -| `completionDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp when the audit was marked completed, and report was uploaded | -| `auditFocus` | [AuditFocus](../../models/components/AuditFocus.md) | :heavy_check_mark: | N/A | -| `auditorRequestListMetadata` | [Optional\](../../models/components/AuditorRequestListMetadata.md) | :heavy_minus_sign: | Metadata about the auditor request list. This field is only present for IRL (Information
Request List) based audits and will be undefined for standard audits. Use the presence
of this field to differentiate between IRL and non-IRL audits. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *String* | :heavy_check_mark: | The unique identifier for the audit. | +| `customerOrganizationName` | *String* | :heavy_check_mark: | The domain name of the customer organization being audited (e.g. vanta.com) | +| `customerDisplayName` | *Optional\* | :heavy_check_mark: | The human readable name of the customer organization being audited (e.g. Vanta) | +| `customerOrganizationId` | *String* | :heavy_check_mark: | The uuid of the customer organization being audited | +| `auditStartDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | The start of the audit window. This is also when data collection for audit starts. | +| `auditEndDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | The end of the audit window. | +| `earlyAccessStartsAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp at which auditors gain access to the audit. Occurs before the audit window begins | +| ~~`framework`~~ | *String* | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Legacy singular framework display name from the audit type. Incomplete for
a multi-framework audit — use `segments` for framework identity. | +| `displayName` | *String* | :heavy_check_mark: | The display name for the audit. Returns the custom audit name if set,
otherwise returns the framework name. | +| `allowAuditorEmails` | List\<*String*> | :heavy_check_mark: | Emails of auditors with access to audit | +| `allowAllAuditors` | *boolean* | :heavy_check_mark: | Set to true if all auditors in audit firm have access | +| `deletionDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp when the audit was deleted | +| `creationDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp when the audit was created | +| `modificationDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp when the audit was updated | +| `completionDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | Timestamp when the audit was marked completed, and report was uploaded | +| `auditFocus` | [AuditFocus](../../models/components/AuditFocus.md) | :heavy_check_mark: | N/A | +| `auditorRequestListMetadata` | [Optional\](../../models/components/AuditorRequestListMetadata.md) | :heavy_minus_sign: | Metadata about the auditor request list. This field is only present for IRL (Information
Request List) based audits and will be undefined for standard audits. Use the presence
of this field to differentiate between IRL and non-IRL audits. | +| `segments` | List\<[AuditSegment](../../models/components/AuditSegment.md)> | :heavy_check_mark: | The audit's scope as a list of segments. Always present. A live
single-framework audit has one entry; a multi-framework audit has one
entry per in-scope framework (and business unit or system, when applicable).
Soft-deleted audits return an empty list. Prefer this over the deprecated
top-level `framework` field. | \ No newline at end of file diff --git a/docs/models/components/AuditControlAssessment.md b/docs/models/components/AuditControlAssessment.md index 3de568c..373d086 100644 --- a/docs/models/components/AuditControlAssessment.md +++ b/docs/models/components/AuditControlAssessment.md @@ -11,5 +11,6 @@ a `null` justification. | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `segmentId` | *String* | :heavy_check_mark: | The audit program segment this assessment belongs to. | | `assessmentState` | [AuditControlAssessmentState](../../models/components/AuditControlAssessmentState.md) | :heavy_check_mark: | An auditor's assessment of a control within an audit. This is the full flat
union of every framework's assessment states (the superset); a given audit's
framework only uses its own subset. `NOT_ASSESSED` is shared by all
frameworks and is the default for a control that has not yet been assessed.

Which states apply to which framework:
- Most frameworks (e.g. SOC 2): `IN_PLACE`, `NOT_IN_PLACE`, `PARTIAL`, `NOT_ASSESSED`
- ISO 27001: `CONFORMING`, `MINOR_NON_CONFORMITY`, `MAJOR_NON_CONFORMITY`, `NOT_ASSESSED`
- FedRAMP: `SATISFIED`, `NOT_SATISFIED`, `OTHER_THAN_SATISFIED`, `NOT_ASSESSED`
- FedRAMP Key Security Indicators (KSI): `TRUE`, `FALSE`, `PARTIAL`, `NOT_ASSESSED`

Distinct from `ControlStatus`, which is the computed tests/documents-passing
status — a different concept. | | `justification` | *Optional\* | :heavy_check_mark: | Free-text reasoning for the assessment; `null` when none has been recorded. | \ No newline at end of file diff --git a/docs/models/components/AuditSegment.md b/docs/models/components/AuditSegment.md new file mode 100644 index 0000000..45a75ab --- /dev/null +++ b/docs/models/components/AuditSegment.md @@ -0,0 +1,23 @@ +# AuditSegment + +One segment of an audit's scope. A live single-framework audit has exactly +one entry; a live multi-framework audit has one per in-scope framework +(and business unit or system, when applicable). Soft-deleted audits return +an empty list. `displayName` is the segment label owned by audit scope +(for example "{Framework}" or "{Framework} — {Business Unit}"). +`soc2Deliverable` is the per-segment SOC 2 config, or null. `businessUnit` +is set for program segments that are BU-scoped and null otherwise. `system` +is set for system segments and null otherwise. + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `id` | *String* | :heavy_check_mark: | The unique identifier for the segment. | +| `kind` | [AuditSegmentKind](../../models/components/AuditSegmentKind.md) | :heavy_check_mark: | N/A | +| `displayName` | *String* | :heavy_check_mark: | The segment's display label. Do not reconstruct this from framework + BU. | +| `framework` | [AuditSegmentFramework](../../models/components/AuditSegmentFramework.md) | :heavy_check_mark: | The framework reached through a segment. | +| `businessUnit` | [Optional\](../../models/components/BusinessUnit.md) | :heavy_check_mark: | The business unit this program segment is scoped to, or null when the
segment is not BU-scoped or the BU cannot be resolved. | +| `system` | [Optional\](../../models/components/System.md) | :heavy_check_mark: | The information system this system segment is scoped to, or null on
program segments. | +| `soc2Deliverable` | [Optional\](../../models/components/Soc2Deliverable.md) | :heavy_check_mark: | SOC 2 report type and Trust Services Criteria for this segment, or null. | \ No newline at end of file diff --git a/docs/models/components/AuditSegmentFramework.md b/docs/models/components/AuditSegmentFramework.md new file mode 100644 index 0000000..e7531e0 --- /dev/null +++ b/docs/models/components/AuditSegmentFramework.md @@ -0,0 +1,12 @@ +# AuditSegmentFramework + +The framework reached through a segment. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `id` | *String* | :heavy_check_mark: | The stable identifier of the framework (for example `soc2`). | +| `displayName` | *String* | :heavy_check_mark: | The human-readable framework name. | +| `shortName` | *String* | :heavy_check_mark: | The short framework name used in compact UI. | \ No newline at end of file diff --git a/docs/models/components/AuditSegmentKind.md b/docs/models/components/AuditSegmentKind.md new file mode 100644 index 0000000..0d195ef --- /dev/null +++ b/docs/models/components/AuditSegmentKind.md @@ -0,0 +1,17 @@ +# AuditSegmentKind + +## Example Usage + +```java +import com.vanta.vanta_auditor_api.models.components.AuditSegmentKind; + +AuditSegmentKind value = AuditSegmentKind.PROGRAM; +``` + + +## Values + +| Name | Value | +| --------- | --------- | +| `PROGRAM` | PROGRAM | +| `SYSTEM` | SYSTEM | \ No newline at end of file diff --git a/docs/models/components/AuditSoc2ReportType.md b/docs/models/components/AuditSoc2ReportType.md new file mode 100644 index 0000000..324150a --- /dev/null +++ b/docs/models/components/AuditSoc2ReportType.md @@ -0,0 +1,17 @@ +# AuditSoc2ReportType + +## Example Usage + +```java +import com.vanta.vanta_auditor_api.models.components.AuditSoc2ReportType; + +AuditSoc2ReportType value = AuditSoc2ReportType.SOC2TYPE1; +``` + + +## Values + +| Name | Value | +| ----------- | ----------- | +| `SOC2TYPE1` | soc2type1 | +| `SOC2TYPE2` | soc2type2 | \ No newline at end of file diff --git a/docs/models/components/AuditSoc2Tsc.md b/docs/models/components/AuditSoc2Tsc.md new file mode 100644 index 0000000..2b439ee --- /dev/null +++ b/docs/models/components/AuditSoc2Tsc.md @@ -0,0 +1,20 @@ +# AuditSoc2Tsc + +## Example Usage + +```java +import com.vanta.vanta_auditor_api.models.components.AuditSoc2Tsc; + +AuditSoc2Tsc value = AuditSoc2Tsc.SECURITY; +``` + + +## Values + +| Name | Value | +| ---------------------- | ---------------------- | +| `SECURITY` | SECURITY | +| `AVAILABILITY` | AVAILABILITY | +| `CONFIDENTIALITY` | CONFIDENTIALITY | +| `PRIVACY` | PRIVACY | +| `PROCESSING_INTEGRITY` | PROCESSING_INTEGRITY | \ No newline at end of file diff --git a/docs/models/components/AuditorControl.md b/docs/models/components/AuditorControl.md index 93ddf09..61dbb95 100644 --- a/docs/models/components/AuditorControl.md +++ b/docs/models/components/AuditorControl.md @@ -16,6 +16,7 @@ | `customFields` | List\<[CustomField](../../models/components/CustomField.md)> | :heavy_check_mark: | The control's custom field values, if control custom fields is included in your Vanta instance. | | `creationDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | When the control was created. Returns null for Vanta library controls. | | `modificationDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_check_mark: | When the control was last modified. Returns null for Vanta library controls. | -| `framework` | *String* | :heavy_check_mark: | The report standard framework fulfilled by the control. | +| ~~`framework`~~ | *String* | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The report standard framework fulfilled by the control.
Incomplete once a control is in scope for more than one framework. | | `sections` | List\<[Section](../../models/components/Section.md)> | :heavy_check_mark: | Sections of a framework that this control satisfies | +| `inScopeSegmentIds` | List\<*String*> | :heavy_check_mark: | Audit segments this control is in scope for. Empty when the control is
attached only by a direct link and has no catalog mapping on a
multi-program audit. | | `assessments` | List\<[AuditControlAssessment](../../models/components/AuditControlAssessment.md)> | :heavy_check_mark: | The auditor's assessments of this control, one per audit program segment the
control is in scope for (a multi-framework audit can have more than one).
Populated only for IRL audits when the assessment feature is enabled; empty
otherwise. Within an in-scope segment a control with no recorded assessment
coerces to `NOT_ASSESSED`; a segment the control is not in scope for
contributes no entry. | \ No newline at end of file diff --git a/docs/models/components/AuditorControlAssessment.md b/docs/models/components/AuditorControlAssessment.md index 8f00b02..958b91a 100644 --- a/docs/models/components/AuditorControlAssessment.md +++ b/docs/models/components/AuditorControlAssessment.md @@ -9,5 +9,6 @@ write endpoint so the caller sees exactly what was recorded. | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `controlId` | *String* | :heavy_check_mark: | The control this assessment belongs to. | +| `segmentId` | *String* | :heavy_check_mark: | The program segment this assessment was written to. | | `assessmentState` | [AuditControlAssessmentState](../../models/components/AuditControlAssessmentState.md) | :heavy_check_mark: | An auditor's assessment of a control within an audit. This is the full flat
union of every framework's assessment states (the superset); a given audit's
framework only uses its own subset. `NOT_ASSESSED` is shared by all
frameworks and is the default for a control that has not yet been assessed.

Which states apply to which framework:
- Most frameworks (e.g. SOC 2): `IN_PLACE`, `NOT_IN_PLACE`, `PARTIAL`, `NOT_ASSESSED`
- ISO 27001: `CONFORMING`, `MINOR_NON_CONFORMITY`, `MAJOR_NON_CONFORMITY`, `NOT_ASSESSED`
- FedRAMP: `SATISFIED`, `NOT_SATISFIED`, `OTHER_THAN_SATISFIED`, `NOT_ASSESSED`
- FedRAMP Key Security Indicators (KSI): `TRUE`, `FALSE`, `PARTIAL`, `NOT_ASSESSED`

Distinct from `ControlStatus`, which is the computed tests/documents-passing
status — a different concept. | | `justification` | *String* | :heavy_check_mark: | The recorded justification. | \ No newline at end of file diff --git a/docs/models/components/BusinessUnit.md b/docs/models/components/BusinessUnit.md new file mode 100644 index 0000000..78258ea --- /dev/null +++ b/docs/models/components/BusinessUnit.md @@ -0,0 +1,12 @@ +# BusinessUnit + +The business unit this program segment is scoped to, or null when the +segment is not BU-scoped or the BU cannot be resolved. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `id` | *String* | :heavy_check_mark: | The unique identifier of the associated business unit or information system. | +| `displayName` | *String* | :heavy_check_mark: | The human-readable name of the associated business unit or information system. | \ No newline at end of file diff --git a/docs/models/components/IssueSnapshotItem.md b/docs/models/components/IssueSnapshotItem.md index 0408087..9a8f54d 100644 --- a/docs/models/components/IssueSnapshotItem.md +++ b/docs/models/components/IssueSnapshotItem.md @@ -13,6 +13,7 @@ | `snapshotId` | *String* | :heavy_check_mark: | The identifier for the snapshot this issue item belongs to. | 5f2c939a52855e725c8d5823 | | `dueDate` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | The due date for the issue. | 2023-12-31T23:59:59.000Z | | `status` | [Optional\](../../models/components/IssueStatusTypeForSnapshot.md) | :heavy_minus_sign: | N/A | | +| `approvalProgress` | [JsonNullable\](../../models/components/ApprovalProgress.md) | :heavy_minus_sign: | The issue's approval progress at the time the snapshot was captured,
or null if no approval was in progress or issue approvals are not enabled. | | | `lastModifiedAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | The date and time when the issue was last modified. | 2024-06-15T10:30:00.000Z | | `createdAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | The date and time when the issue was created. | 2024-06-01T09:00:00.000Z | | `detectedAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | The date and time when the issue was detected. | 2024-05-30T14:45:00.000Z | \ No newline at end of file diff --git a/docs/models/components/IssueStatusTypeForSnapshot.md b/docs/models/components/IssueStatusTypeForSnapshot.md index ce6649a..408673d 100644 --- a/docs/models/components/IssueStatusTypeForSnapshot.md +++ b/docs/models/components/IssueStatusTypeForSnapshot.md @@ -11,8 +11,9 @@ IssueStatusTypeForSnapshot value = IssueStatusTypeForSnapshot.IN_PROGRESS; ## Values -| Name | Value | -| ------------- | ------------- | -| `IN_PROGRESS` | IN_PROGRESS | -| `NOT_STARTED` | NOT_STARTED | -| `CLOSED` | CLOSED | \ No newline at end of file +| Name | Value | +| ---------------- | ---------------- | +| `IN_PROGRESS` | IN_PROGRESS | +| `NOT_STARTED` | NOT_STARTED | +| `PENDING_REVIEW` | PENDING_REVIEW | +| `CLOSED` | CLOSED | \ No newline at end of file diff --git a/docs/models/components/Soc2Deliverable.md b/docs/models/components/Soc2Deliverable.md new file mode 100644 index 0000000..b4892b5 --- /dev/null +++ b/docs/models/components/Soc2Deliverable.md @@ -0,0 +1,11 @@ +# Soc2Deliverable + +SOC 2 report type and Trust Services Criteria for this segment, or null. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | +| `reportType` | [AuditSoc2ReportType](../../models/components/AuditSoc2ReportType.md) | :heavy_check_mark: | N/A | +| `tscs` | List\<[AuditSoc2Tsc](../../models/components/AuditSoc2Tsc.md)> | :heavy_check_mark: | Trust Services Criteria this segment covers. | \ No newline at end of file diff --git a/docs/models/components/System.md b/docs/models/components/System.md new file mode 100644 index 0000000..5073c01 --- /dev/null +++ b/docs/models/components/System.md @@ -0,0 +1,12 @@ +# System + +The information system this system segment is scoped to, or null on +program segments. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `id` | *String* | :heavy_check_mark: | The unique identifier of the associated business unit or information system. | +| `displayName` | *String* | :heavy_check_mark: | The human-readable name of the associated business unit or information system. | \ No newline at end of file diff --git a/docs/models/components/UpsertAuditControlAssessmentInput.md b/docs/models/components/UpsertAuditControlAssessmentInput.md index e1b601d..8ff57e7 100644 --- a/docs/models/components/UpsertAuditControlAssessmentInput.md +++ b/docs/models/components/UpsertAuditControlAssessmentInput.md @@ -1,13 +1,14 @@ # UpsertAuditControlAssessmentInput Input for upserting a control's auditor assessment within an audit. Overwrites -the single assessment for this control in the audit's program segment. +the assessment for this control in the chosen program segment. ## Fields | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `segmentId` | *Optional\* | :heavy_minus_sign: | The program segment to assess. Required when the audit has more than one
program segment. Optional on a single-program audit (the only program is
used). Must be a program segment on the audit; system segments are rejected. | | `assessmentState` | [AuditControlAssessmentState](../../models/components/AuditControlAssessmentState.md) | :heavy_check_mark: | An auditor's assessment of a control within an audit. This is the full flat
union of every framework's assessment states (the superset); a given audit's
framework only uses its own subset. `NOT_ASSESSED` is shared by all
frameworks and is the default for a control that has not yet been assessed.

Which states apply to which framework:
- Most frameworks (e.g. SOC 2): `IN_PLACE`, `NOT_IN_PLACE`, `PARTIAL`, `NOT_ASSESSED`
- ISO 27001: `CONFORMING`, `MINOR_NON_CONFORMITY`, `MAJOR_NON_CONFORMITY`, `NOT_ASSESSED`
- FedRAMP: `SATISFIED`, `NOT_SATISFIED`, `OTHER_THAN_SATISFIED`, `NOT_ASSESSED`
- FedRAMP Key Security Indicators (KSI): `TRUE`, `FALSE`, `PARTIAL`, `NOT_ASSESSED`

Distinct from `ControlStatus`, which is the computed tests/documents-passing
status — a different concept. | | `justification` | *String* | :heavy_check_mark: | Free-text reasoning for the assessment. Required, and at most 5000 characters. | | `auditorEmail` | *String* | :heavy_check_mark: | Email of the auditor performing the assessment. Must match an existing Vanta
user who belongs to the audit firm making the API request. | \ No newline at end of file diff --git a/docs/models/operations/GetInformationRequestEvidenceRequest.md b/docs/models/operations/GetInformationRequestEvidenceRequest.md new file mode 100644 index 0000000..abae1fc --- /dev/null +++ b/docs/models/operations/GetInformationRequestEvidenceRequest.md @@ -0,0 +1,10 @@ +# GetInformationRequestEvidenceRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `auditId` | *String* | :heavy_check_mark: | N/A | +| `requestId` | *String* | :heavy_check_mark: | N/A | +| `evidenceId` | *String* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetInformationRequestEvidenceResponse.md b/docs/models/operations/GetInformationRequestEvidenceResponse.md new file mode 100644 index 0000000..e9ddcc9 --- /dev/null +++ b/docs/models/operations/GetInformationRequestEvidenceResponse.md @@ -0,0 +1,11 @@ +# GetInformationRequestEvidenceResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse\](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `informationRequestEvidence` | [Optional\](../../models/components/InformationRequestEvidence.md) | :heavy_minus_sign: | Ok | \ No newline at end of file diff --git a/docs/sdks/audits/README.md b/docs/sdks/audits/README.md index 3263980..ab017e6 100644 --- a/docs/sdks/audits/README.md +++ b/docs/sdks/audits/README.md @@ -38,6 +38,7 @@ * [updateCommentForInformationRequest](#updatecommentforinformationrequest) - Update a comment for an information request * [deleteCommentForInformationRequest](#deletecommentforinformationrequest) - Delete a comment for an information request * [listInformationRequestEvidence](#listinformationrequestevidence) - List evidence for an information request +* [getInformationRequestEvidence](#getinformationrequestevidence) - Get information request evidence by ID * [getInformationRequestTestSnapshotEvidenceDetail](#getinformationrequesttestsnapshotevidencedetail) - Get test snapshot detail for an evidence row * [flagInformationRequestEvidence](#flaginformationrequestevidence) - Flag evidence for an information request * [listIntegrations](#listintegrations) - List integrations for an audit @@ -68,6 +69,12 @@ To identify IRL (Information Request List) audits, check for the presence of the `auditorRequestListMetadata` field. This field is only present for IRL-based audits and will be `undefined` for standard audits. +Each audit includes `segments`, the audit's scope. A live single-framework +audit has one entry; a live multi-framework audit has one entry per +in-scope framework (and business unit or system, when applicable). +Soft-deleted audits return an empty list. The top-level `framework` field +is deprecated; use `segments` for framework identity. + Rate limit: 250 requests / minute. ### Example Usage @@ -139,6 +146,9 @@ Information requests are copied from the source audit. After duplication: evidence added manually. - Evidence capture dates and due dates can be modified after duplication. +Audits with generated information requests can be duplicated only after their information +requests have been created successfully. + Rate limit: 10 requests / minute. ### Example Usage @@ -209,6 +219,12 @@ To identify IRL (Information Request List) audits, check for the presence of the `auditorRequestListMetadata` field. This field is only present for IRL-based audits and will be `undefined` for standard audits. +The response includes `segments`, the audit's scope. A live single-framework +audit has one entry; a live multi-framework audit has one entry per +in-scope framework (and business unit or system, when applicable). +Soft-deleted audits return an empty list. The top-level `framework` field +is deprecated; use `segments` for framework identity. + Rate limit: 250 requests / minute. ### Example Usage @@ -276,6 +292,9 @@ Uses cursor-based pagination. To paginate: Results are sorted by closed date (newest first). This sort order is fixed and cannot be customized via query parameters. +Returns 422 when the audit does not have exactly one program segment +(multi-framework audits are not supported on this endpoint). + Rate limit: 10 requests / minute. ### Example Usage @@ -442,6 +461,9 @@ public class Application { Create a custom control for an audit. +This endpoint supports classic audits only. Audits that use information request +lists (IRL) are not supported and return a 422 error. + Rate limit: 10 requests / minute. ### Example Usage @@ -513,8 +535,9 @@ is rejected otherwise). The acting auditor is identified by `auditorEmail`, which must belong to the audit firm making the request. Returns 404 when the control is not part of the audit or the auditor email -does not resolve to a firm user. Applies to both Full and Controlled Audit -View audits. +does not resolve to a firm user. Returns 422 when the audit does not have +exactly one program segment (multi-framework audits are not supported on +this endpoint). Applies to both Full and Controlled Audit View audits. Rate limit: 10 requests / minute. @@ -1038,7 +1061,7 @@ public class Application { Update audit evidence. -Rate limit: 10 requests / minute. +Rate limit: 50 requests / minute. ### Example Usage @@ -1157,7 +1180,7 @@ public class Application { Create a comment in Vanta for a piece of evidence. -Rate limit: 10 requests / minute. +Rate limit: 25 requests / minute. ### Example Usage @@ -1286,6 +1309,9 @@ evidence is created or has a statusUpdatedAt field that is more recent than the Evidence must be in one of the following states to retrieve URLs: "Ready for audit", "Accepted", "Flagged", or "NA". +Returns 422 when the audit does not have exactly one program segment +(multi-framework audits are not supported on this endpoint). + Rate limit: 600 requests / minute. ### Example Usage @@ -1347,7 +1373,7 @@ Use this endpoint to: - Validate framework codes against the audit's framework - Get context about what framework codes are available for the audit type -Rate limit: 10 requests / minute. +Rate limit: 50 requests / minute. ### Example Usage @@ -1677,7 +1703,7 @@ After deletion: - The request will not appear in normal list responses (without `changedSinceDate`) - The request's `deletionDate` field will be populated -Rate limit: 10 requests / minute. +Rate limit: 50 requests / minute. ### Example Usage @@ -2081,7 +2107,7 @@ Updates an existing comment for an information request. Only the original author of the comment can update it. The author is identified by their email address, which must match the email of the user who created the comment. -Rate limit: 10 requests / minute. +Rate limit: 25 requests / minute. ### Example Usage @@ -2144,7 +2170,7 @@ Deletes an existing comment for an information request. Only the original author of the comment can delete it. The author is identified by their email address, which must match the email of the user who created the comment. -Rate limit: 10 requests / minute. +Rate limit: 25 requests / minute. ### Example Usage @@ -2276,6 +2302,74 @@ public class Application { | -------------------------- | -------------------------- | -------------------------- | | models/errors/APIException | 4XX, 5XX | \*/\* | +## getInformationRequestEvidence + +Retrieves a single evidence item attached to an information request by its ID. + +This endpoint always includes soft-deleted evidence (where `deletionDate !== null`), +so an evidence ID surfaced by a `changedSinceDate` delta sync stays fetchable after +the evidence is deleted. Clients should check the `deletionDate` field to identify +and handle deleted records appropriately in their systems. + +Evidence is only resolvable while its information request exists. Once the +request itself is deleted, this endpoint reports the request as not found — +matching `GET /audits/{auditId}/information-requests/{requestId}/evidence`. +Clients reconciling a deleted request should treat its evidence as gone with it. + +Evidence that the customer has not shared with the auditor is reported as not +found, rather than distinguishing it from an ID that does not exist. + +Rate limit: 250 requests / minute. + +### Example Usage + + +```java +package hello.world; + +import com.vanta.vanta_auditor_api.Vanta; +import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestEvidenceResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws Exception { + + Vanta sdk = Vanta.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + GetInformationRequestEvidenceResponse res = sdk.audits().getInformationRequestEvidence() + .auditId("") + .requestId("") + .evidenceId("") + .call(); + + if (res.informationRequestEvidence().isPresent()) { + System.out.println(res.informationRequestEvidence().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `auditId` | *String* | :heavy_check_mark: | N/A | +| `requestId` | *String* | :heavy_check_mark: | N/A | +| `evidenceId` | *String* | :heavy_check_mark: | N/A | + +### Response + +**[GetInformationRequestEvidenceResponse](../../models/operations/GetInformationRequestEvidenceResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| -------------------------- | -------------------------- | -------------------------- | +| models/errors/APIException | 4XX, 5XX | \*/\* | + ## getInformationRequestTestSnapshotEvidenceDetail Retrieves the rich detail for a single VANTA_TEST_SNAPSHOT evidence row @@ -2724,6 +2818,9 @@ End of life — this endpoint works for classic audits only; it does not support controlled audit view. It remains available for existing classic audits but will be removed once classic audits are fully phased out, so do not build new integrations on it. +Returns 422 when the audit does not have exactly one program segment +(multi-framework audits are not supported on this endpoint). + Rate limit: 10 requests / minute. > :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible. @@ -2974,6 +3071,9 @@ Uses cursor-based pagination. To paginate: Results are returned in connection order. Sort order is not guaranteed and cannot be customized via query parameters. +Returns 422 when the audit does not have exactly one program segment +(multi-framework audits are not supported on this endpoint). + Rate limit: 10 requests / minute. ### Example Usage @@ -3069,6 +3169,9 @@ The default sort order depends on the service type: Sort order cannot be customized via query parameters. +Returns 422 when the audit does not have exactly one program segment +(multi-framework audits are not supported on this endpoint). + Rate limit: 10 requests / minute. ### Example Usage @@ -3423,7 +3526,7 @@ Shares the current information request list for an audit with the customer organ making it visible in their portal. This action allows the customer to see all information requests that have been created for their audit. Only IRL audits are supported. -Rate limit: 10 requests / minute. +Rate limit: 50 requests / minute. ### Example Usage @@ -3600,6 +3703,9 @@ End of life — this endpoint works for classic audits only; it does not support controlled audit view. It remains available for existing classic audits but will be removed once classic audits are fully phased out, so do not build new integrations on it. +Returns 422 when the audit does not have exactly one program segment +(multi-framework audits are not supported on this endpoint). + Rate limit: 10 requests / minute. > :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible. diff --git a/gradle.properties b/gradle.properties index 950a9c0..833cd0d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ groupId=com.vanta artifactId=vanta-auditor-api -version=0.6.5 +version=0.7.0 org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g diff --git a/src/main/java/com/vanta/vanta_auditor_api/AsyncAudits.java b/src/main/java/com/vanta/vanta_auditor_api/AsyncAudits.java index ec674a8..154117c 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/AsyncAudits.java +++ b/src/main/java/com/vanta/vanta_auditor_api/AsyncAudits.java @@ -38,6 +38,7 @@ import com.vanta.vanta_auditor_api.models.operations.GetAuditRequest; import com.vanta.vanta_auditor_api.models.operations.GetCommentForInformationRequestRequest; import com.vanta.vanta_auditor_api.models.operations.GetFrameworkCodesRequest; +import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestEvidenceRequest; import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestRequest; import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestTestSnapshotEvidenceDetailRequest; import com.vanta.vanta_auditor_api.models.operations.GetOrganizationInformationRequest; @@ -110,6 +111,8 @@ import com.vanta.vanta_auditor_api.models.operations.async.GetCommentForInformationRequestResponse; import com.vanta.vanta_auditor_api.models.operations.async.GetFrameworkCodesRequestBuilder; import com.vanta.vanta_auditor_api.models.operations.async.GetFrameworkCodesResponse; +import com.vanta.vanta_auditor_api.models.operations.async.GetInformationRequestEvidenceRequestBuilder; +import com.vanta.vanta_auditor_api.models.operations.async.GetInformationRequestEvidenceResponse; import com.vanta.vanta_auditor_api.models.operations.async.GetInformationRequestRequestBuilder; import com.vanta.vanta_auditor_api.models.operations.async.GetInformationRequestResponse; import com.vanta.vanta_auditor_api.models.operations.async.GetInformationRequestTestSnapshotEvidenceDetailRequestBuilder; @@ -204,6 +207,7 @@ import com.vanta.vanta_auditor_api.operations.GetCommentForInformationRequest; import com.vanta.vanta_auditor_api.operations.GetFrameworkCodes; import com.vanta.vanta_auditor_api.operations.GetInformationRequest; +import com.vanta.vanta_auditor_api.operations.GetInformationRequestEvidence; import com.vanta.vanta_auditor_api.operations.GetInformationRequestTestSnapshotEvidenceDetail; import com.vanta.vanta_auditor_api.operations.GetOrganizationInformation; import com.vanta.vanta_auditor_api.operations.GetOrganizationNotifications; @@ -281,6 +285,12 @@ public Audits sync() { * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

Each audit includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @return The async call builder @@ -298,6 +308,12 @@ public ListAuditsRequestBuilder list() { * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

Each audit includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @return {@code CompletableFuture} - The async response @@ -317,6 +333,12 @@ public CompletableFuture listDirect() { * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

Each audit includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @param pageSize @@ -365,6 +387,9 @@ public CompletableFuture list( *

evidence added manually. * - Evidence capture dates and due dates can be modified after duplication. * + *

Audits with generated information requests can be duplicated only after their information + * requests have been created successfully. + * *

Rate limit: 10 requests / minute. * * @return The async call builder @@ -395,6 +420,9 @@ public DuplicateRequestBuilder duplicate() { *

evidence added manually. * - Evidence capture dates and due dates can be modified after duplication. * + *

Audits with generated information requests can be duplicated only after their information + * requests have been created successfully. + * *

Rate limit: 10 requests / minute. * * @param request The request object containing all the parameters for the API call. @@ -417,6 +445,12 @@ public CompletableFuture duplicate(DuplicateAuditRequest requ * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

The response includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @return The async call builder @@ -434,6 +468,12 @@ public GetAuditRequestBuilder getAudit() { * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

The response includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @param auditId @@ -474,6 +514,9 @@ public CompletableFuture getAudit(String auditId) { *

Results are sorted by closed date (newest first). This sort order is * fixed and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The async call builder @@ -504,6 +547,9 @@ public ListCodeChangesRequestBuilder listCodeChanges() { *

Results are sorted by closed date (newest first). This sort order is * fixed and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param request The request object containing all the parameters for the API call. @@ -642,6 +688,9 @@ public CompletableFuture listControls( * *

Create a custom control for an audit. * + *

This endpoint supports classic audits only. Audits that use information request + * lists (IRL) are not supported and return a 422 error. + * *

Rate limit: 10 requests / minute. * * @return The async call builder @@ -655,6 +704,9 @@ public CreateCustomControlRequestBuilder createCustomControl() { * *

Create a custom control for an audit. * + *

This endpoint supports classic audits only. Audits that use information request + * lists (IRL) are not supported and return a 422 error. + * *

Rate limit: 10 requests / minute. * * @param auditId @@ -688,8 +740,9 @@ public CompletableFuture createCustomControl(String * which must belong to the audit firm making the request. * *

Returns 404 when the control is not part of the audit or the auditor email - * does not resolve to a firm user. Applies to both Full and Controlled Audit - * View audits. + * does not resolve to a firm user. Returns 422 when the audit does not have + * exactly one program segment (multi-framework audits are not supported on + * this endpoint). Applies to both Full and Controlled Audit View audits. * *

Rate limit: 10 requests / minute. * @@ -712,15 +765,16 @@ public UpsertAssessmentForControlRequestBuilder upsertAssessmentForControl() { * which must belong to the audit firm making the request. * *

Returns 404 when the control is not part of the audit or the auditor email - * does not resolve to a firm user. Applies to both Full and Controlled Audit - * View audits. + * does not resolve to a firm user. Returns 422 when the audit does not have + * exactly one program segment (multi-framework audits are not supported on + * this endpoint). Applies to both Full and Controlled Audit View audits. * *

Rate limit: 10 requests / minute. * * @param auditId * @param controlId * @param upsertAuditControlAssessmentInput Input for upserting a control's auditor assessment within an audit. Overwrites - * the single assessment for this control in the audit's program segment. + * the assessment for this control in the chosen program segment. * @return {@code CompletableFuture} - The async response */ public CompletableFuture upsertAssessmentForControl( @@ -1178,7 +1232,7 @@ public CompletableFuture createCustomEviden * *

Update audit evidence. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @return The async call builder */ @@ -1191,7 +1245,7 @@ public UpdateAuditEvidenceRequestBuilder updateEvidence() { * *

Update audit evidence. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @param auditId * @param auditEvidenceId @@ -1276,7 +1330,7 @@ public CompletableFuture getAuditEvidence(String audit * *

Create a comment in Vanta for a piece of evidence. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @return The async call builder */ @@ -1289,7 +1343,7 @@ public CreateCommentForAuditEvidenceRequestBuilder createCommentForEvidence() { * *

Create a comment in Vanta for a piece of evidence. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @param auditId * @param auditEvidenceId @@ -1385,6 +1439,9 @@ public CompletableFuture getAuditEvidenceCommen *

Evidence must be in one of the following states to retrieve URLs: "Ready for audit", "Accepted", * "Flagged", or "NA". * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 600 requests / minute. * * @return The async call builder @@ -1403,6 +1460,9 @@ public ListAuditEvidenceUrlsRequestBuilder getEvidenceUrls() { *

Evidence must be in one of the following states to retrieve URLs: "Ready for audit", "Accepted", * "Flagged", or "NA". * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 600 requests / minute. * * @param auditId @@ -1425,6 +1485,9 @@ public CompletableFuture getEvidenceUrls(String a *

Evidence must be in one of the following states to retrieve URLs: "Ready for audit", "Accepted", * "Flagged", or "NA". * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 600 requests / minute. * * @param auditId @@ -1462,7 +1525,7 @@ public CompletableFuture getEvidenceUrls( * - Validate framework codes against the audit's framework * - Get context about what framework codes are available for the audit type * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @return The async call builder */ @@ -1481,7 +1544,7 @@ public GetFrameworkCodesRequestBuilder getFrameworkCodes() { * - Validate framework codes against the audit's framework * - Get context about what framework codes are available for the audit type * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @param auditId * @return {@code CompletableFuture} - The async response @@ -1803,7 +1866,7 @@ public CompletableFuture updateInformationRequ * - The request will not appear in normal list responses (without `changedSinceDate`) * - The request's `deletionDate` field will be populated * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @return The async call builder */ @@ -1826,7 +1889,7 @@ public DeleteInformationRequestRequestBuilder deleteInformationRequest() { * - The request will not appear in normal list responses (without `changedSinceDate`) * - The request's `deletionDate` field will be populated * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @param auditId * @param requestId @@ -2171,7 +2234,7 @@ public CompletableFuture getCommentForI * of the comment can update it. The author is identified by their email address, * which must match the email of the user who created the comment. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @return The async call builder */ @@ -2186,7 +2249,7 @@ public UpdateCommentForInformationRequestRequestBuilder updateCommentForInformat * of the comment can update it. The author is identified by their email address, * which must match the email of the user who created the comment. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @param auditId * @param requestId @@ -2220,7 +2283,7 @@ public CompletableFuture updateComme * of the comment can delete it. The author is identified by their email address, * which must match the email of the user who created the comment. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @return The async call builder */ @@ -2235,7 +2298,7 @@ public DeleteCommentForInformationRequestRequestBuilder deleteCommentForInformat * of the comment can delete it. The author is identified by their email address, * which must match the email of the user who created the comment. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @param auditId * @param requestId @@ -2335,6 +2398,74 @@ public CompletableFuture listInformation } + /** + * Get information request evidence by ID + * + *

Retrieves a single evidence item attached to an information request by its ID. + * + *

This endpoint always includes soft-deleted evidence (where `deletionDate !== null`), + * so an evidence ID surfaced by a `changedSinceDate` delta sync stays fetchable after + * the evidence is deleted. Clients should check the `deletionDate` field to identify + * and handle deleted records appropriately in their systems. + * + *

Evidence is only resolvable while its information request exists. Once the + * request itself is deleted, this endpoint reports the request as not found — + * matching `GET /audits/{auditId}/information-requests/{requestId}/evidence`. + * Clients reconciling a deleted request should treat its evidence as gone with it. + * + *

Evidence that the customer has not shared with the auditor is reported as not + * found, rather than distinguishing it from an ID that does not exist. + * + *

Rate limit: 250 requests / minute. + * + * @return The async call builder + */ + public GetInformationRequestEvidenceRequestBuilder getInformationRequestEvidence() { + return new GetInformationRequestEvidenceRequestBuilder(sdkConfiguration); + } + + /** + * Get information request evidence by ID + * + *

Retrieves a single evidence item attached to an information request by its ID. + * + *

This endpoint always includes soft-deleted evidence (where `deletionDate !== null`), + * so an evidence ID surfaced by a `changedSinceDate` delta sync stays fetchable after + * the evidence is deleted. Clients should check the `deletionDate` field to identify + * and handle deleted records appropriately in their systems. + * + *

Evidence is only resolvable while its information request exists. Once the + * request itself is deleted, this endpoint reports the request as not found — + * matching `GET /audits/{auditId}/information-requests/{requestId}/evidence`. + * Clients reconciling a deleted request should treat its evidence as gone with it. + * + *

Evidence that the customer has not shared with the auditor is reported as not + * found, rather than distinguishing it from an ID that does not exist. + * + *

Rate limit: 250 requests / minute. + * + * @param auditId + * @param requestId + * @param evidenceId + * @return {@code CompletableFuture} - The async response + */ + public CompletableFuture getInformationRequestEvidence( + String auditId, String requestId, + String evidenceId) { + GetInformationRequestEvidenceRequest request = + GetInformationRequestEvidenceRequest + .builder() + .auditId(auditId) + .requestId(requestId) + .evidenceId(evidenceId) + .build(); + AsyncRequestOperation operation + = new GetInformationRequestEvidence.Async(sdkConfiguration, _headers); + return operation.doRequest(request) + .thenCompose(operation::handleResponse); + } + + /** * Get test snapshot detail for an evidence row * @@ -2817,6 +2948,9 @@ public CompletableFuture listVendors(ListVendorsRequest req * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The async call builder @@ -2838,6 +2972,9 @@ public ListMonitoredComputersInAuditScopeRequestBuilder listMonitoredComputersIn * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param auditId @@ -2862,6 +2999,9 @@ public CompletableFuture listMonitor * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param auditId @@ -3053,6 +3193,9 @@ public CompletableFuture listPeopleInAuditScope( *

Results are returned in connection order. Sort order is not guaranteed * and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The async call builder @@ -3081,6 +3224,9 @@ public ListAccountAccessServicesRequestBuilder listAccountAccessServices() { *

Results are returned in connection order. Sort order is not guaranteed * and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param auditId The audit ID @@ -3110,6 +3256,9 @@ public CompletableFuture listAccountAccessSer *

Results are returned in connection order. Sort order is not guaranteed * and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param auditId The audit ID @@ -3179,6 +3328,9 @@ public CompletableFuture listAccountAccessSer * *

Sort order cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The async call builder @@ -3232,6 +3384,9 @@ public ListPersonnelAccountAccessRequestBuilder listPersonnelAccountAccess() { * *

Sort order cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param request The request object containing all the parameters for the API call. @@ -3559,7 +3714,7 @@ public CompletableFuture listAuditRisks(ListAuditRisksRe * making it visible in their portal. This action allows the customer to see all information * requests that have been created for their audit. Only IRL audits are supported. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @return The async call builder */ @@ -3574,7 +3729,7 @@ public ShareInformationRequestListRequestBuilder shareInformationRequestList() { * making it visible in their portal. This action allows the customer to see all information * requests that have been created for their audit. Only IRL audits are supported. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @param auditId * @return {@code CompletableFuture} - The async response @@ -3718,6 +3873,9 @@ public CompletableFuture listVulnerabilities(ListVu * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The async call builder @@ -3737,6 +3895,9 @@ public ListVulnerabilityRemediationsInAuditScopeRequestBuilder listVulnerability * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param request The request object containing all the parameters for the API call. diff --git a/src/main/java/com/vanta/vanta_auditor_api/Audits.java b/src/main/java/com/vanta/vanta_auditor_api/Audits.java index f8531b2..0cdd2b7 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/Audits.java +++ b/src/main/java/com/vanta/vanta_auditor_api/Audits.java @@ -72,6 +72,9 @@ import com.vanta.vanta_auditor_api.models.operations.GetFrameworkCodesRequest; import com.vanta.vanta_auditor_api.models.operations.GetFrameworkCodesRequestBuilder; import com.vanta.vanta_auditor_api.models.operations.GetFrameworkCodesResponse; +import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestEvidenceRequest; +import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestEvidenceRequestBuilder; +import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestEvidenceResponse; import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestRequest; import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestRequestBuilder; import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestResponse; @@ -204,6 +207,7 @@ import com.vanta.vanta_auditor_api.operations.GetCommentForInformationRequest; import com.vanta.vanta_auditor_api.operations.GetFrameworkCodes; import com.vanta.vanta_auditor_api.operations.GetInformationRequest; +import com.vanta.vanta_auditor_api.operations.GetInformationRequestEvidence; import com.vanta.vanta_auditor_api.operations.GetInformationRequestTestSnapshotEvidenceDetail; import com.vanta.vanta_auditor_api.operations.GetOrganizationInformation; import com.vanta.vanta_auditor_api.operations.GetOrganizationNotifications; @@ -279,6 +283,12 @@ public AsyncAudits async() { * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

Each audit includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @return The call builder @@ -296,6 +306,12 @@ public ListAuditsRequestBuilder list() { * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

Each audit includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @return The response from the API call @@ -315,6 +331,12 @@ public ListAuditsResponse listDirect() { * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

Each audit includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @param pageSize @@ -362,6 +384,9 @@ public ListAuditsResponse list( *

evidence added manually. * - Evidence capture dates and due dates can be modified after duplication. * + *

Audits with generated information requests can be duplicated only after their information + * requests have been created successfully. + * *

Rate limit: 10 requests / minute. * * @return The call builder @@ -392,6 +417,9 @@ public DuplicateRequestBuilder duplicate() { *

evidence added manually. * - Evidence capture dates and due dates can be modified after duplication. * + *

Audits with generated information requests can be duplicated only after their information + * requests have been created successfully. + * *

Rate limit: 10 requests / minute. * * @param request The request object containing all the parameters for the API call. @@ -413,6 +441,12 @@ public DuplicateResponse duplicate(DuplicateAuditRequest request) { * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

The response includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @return The call builder @@ -430,6 +464,12 @@ public GetAuditRequestBuilder getAudit() { * `auditorRequestListMetadata` field. This field is only present for IRL-based audits * and will be `undefined` for standard audits. * + *

The response includes `segments`, the audit's scope. A live single-framework + * audit has one entry; a live multi-framework audit has one entry per + * in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. The top-level `framework` field + * is deprecated; use `segments` for framework identity. + * *

Rate limit: 250 requests / minute. * * @param auditId @@ -469,6 +509,9 @@ public GetAuditResponse getAudit(String auditId) { *

Results are sorted by closed date (newest first). This sort order is * fixed and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The call builder @@ -499,6 +542,9 @@ public ListCodeChangesRequestBuilder listCodeChanges() { *

Results are sorted by closed date (newest first). This sort order is * fixed and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param request The request object containing all the parameters for the API call. @@ -634,6 +680,9 @@ public ListAuditControlsResponse listControls( * *

Create a custom control for an audit. * + *

This endpoint supports classic audits only. Audits that use information request + * lists (IRL) are not supported and return a 422 error. + * *

Rate limit: 10 requests / minute. * * @return The call builder @@ -647,6 +696,9 @@ public CreateCustomControlRequestBuilder createCustomControl() { * *

Create a custom control for an audit. * + *

This endpoint supports classic audits only. Audits that use information request + * lists (IRL) are not supported and return a 422 error. + * *

Rate limit: 10 requests / minute. * * @param auditId @@ -679,8 +731,9 @@ public CreateCustomControlResponse createCustomControl(String auditId, CreateCus * which must belong to the audit firm making the request. * *

Returns 404 when the control is not part of the audit or the auditor email - * does not resolve to a firm user. Applies to both Full and Controlled Audit - * View audits. + * does not resolve to a firm user. Returns 422 when the audit does not have + * exactly one program segment (multi-framework audits are not supported on + * this endpoint). Applies to both Full and Controlled Audit View audits. * *

Rate limit: 10 requests / minute. * @@ -703,15 +756,16 @@ public UpsertAssessmentForControlRequestBuilder upsertAssessmentForControl() { * which must belong to the audit firm making the request. * *

Returns 404 when the control is not part of the audit or the auditor email - * does not resolve to a firm user. Applies to both Full and Controlled Audit - * View audits. + * does not resolve to a firm user. Returns 422 when the audit does not have + * exactly one program segment (multi-framework audits are not supported on + * this endpoint). Applies to both Full and Controlled Audit View audits. * *

Rate limit: 10 requests / minute. * * @param auditId * @param controlId * @param upsertAuditControlAssessmentInput Input for upserting a control's auditor assessment within an audit. Overwrites - * the single assessment for this control in the audit's program segment. + * the assessment for this control in the chosen program segment. * @return The response from the API call * @throws RuntimeException subclass if the API call fails */ @@ -1161,7 +1215,7 @@ public CreateCustomEvidenceRequestResponse createCustomEvidenceRequest(String au * *

Update audit evidence. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @return The call builder */ @@ -1174,7 +1228,7 @@ public UpdateAuditEvidenceRequestBuilder updateEvidence() { * *

Update audit evidence. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @param auditId * @param auditEvidenceId @@ -1257,7 +1311,7 @@ public GetAuditEvidenceResponse getAuditEvidence(String auditId, String auditEvi * *

Create a comment in Vanta for a piece of evidence. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @return The call builder */ @@ -1270,7 +1324,7 @@ public CreateCommentForAuditEvidenceRequestBuilder createCommentForEvidence() { * *

Create a comment in Vanta for a piece of evidence. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @param auditId * @param auditEvidenceId @@ -1364,6 +1418,9 @@ public GetAuditEvidenceCommentResponse getAuditEvidenceComment( *

Evidence must be in one of the following states to retrieve URLs: "Ready for audit", "Accepted", * "Flagged", or "NA". * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 600 requests / minute. * * @return The call builder @@ -1382,6 +1439,9 @@ public ListAuditEvidenceUrlsRequestBuilder getEvidenceUrls() { *

Evidence must be in one of the following states to retrieve URLs: "Ready for audit", "Accepted", * "Flagged", or "NA". * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 600 requests / minute. * * @param auditId @@ -1404,6 +1464,9 @@ public ListAuditEvidenceUrlsResponse getEvidenceUrls(String auditId, String audi *

Evidence must be in one of the following states to retrieve URLs: "Ready for audit", "Accepted", * "Flagged", or "NA". * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 600 requests / minute. * * @param auditId @@ -1440,7 +1503,7 @@ public ListAuditEvidenceUrlsResponse getEvidenceUrls( * - Validate framework codes against the audit's framework * - Get context about what framework codes are available for the audit type * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @return The call builder */ @@ -1459,7 +1522,7 @@ public GetFrameworkCodesRequestBuilder getFrameworkCodes() { * - Validate framework codes against the audit's framework * - Get context about what framework codes are available for the audit type * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @param auditId * @return The response from the API call @@ -1776,7 +1839,7 @@ public UpdateInformationRequestResponse updateInformationRequest( * - The request will not appear in normal list responses (without `changedSinceDate`) * - The request's `deletionDate` field will be populated * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @return The call builder */ @@ -1799,7 +1862,7 @@ public DeleteInformationRequestRequestBuilder deleteInformationRequest() { * - The request will not appear in normal list responses (without `changedSinceDate`) * - The request's `deletionDate` field will be populated * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @param auditId * @param requestId @@ -2138,7 +2201,7 @@ public GetCommentForInformationRequestResponse getCommentForInformationRequest( * of the comment can update it. The author is identified by their email address, * which must match the email of the user who created the comment. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @return The call builder */ @@ -2153,7 +2216,7 @@ public UpdateCommentForInformationRequestRequestBuilder updateCommentForInformat * of the comment can update it. The author is identified by their email address, * which must match the email of the user who created the comment. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @param auditId * @param requestId @@ -2186,7 +2249,7 @@ public UpdateCommentForInformationRequestResponse updateCommentForInformationReq * of the comment can delete it. The author is identified by their email address, * which must match the email of the user who created the comment. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @return The call builder */ @@ -2201,7 +2264,7 @@ public DeleteCommentForInformationRequestRequestBuilder deleteCommentForInformat * of the comment can delete it. The author is identified by their email address, * which must match the email of the user who created the comment. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 25 requests / minute. * * @param auditId * @param requestId @@ -2299,6 +2362,73 @@ public ListInformationRequestEvidenceResponse listInformationRequestEvidence(Lis return operation.handleResponse(operation.doRequest(request)); } + /** + * Get information request evidence by ID + * + *

Retrieves a single evidence item attached to an information request by its ID. + * + *

This endpoint always includes soft-deleted evidence (where `deletionDate !== null`), + * so an evidence ID surfaced by a `changedSinceDate` delta sync stays fetchable after + * the evidence is deleted. Clients should check the `deletionDate` field to identify + * and handle deleted records appropriately in their systems. + * + *

Evidence is only resolvable while its information request exists. Once the + * request itself is deleted, this endpoint reports the request as not found — + * matching `GET /audits/{auditId}/information-requests/{requestId}/evidence`. + * Clients reconciling a deleted request should treat its evidence as gone with it. + * + *

Evidence that the customer has not shared with the auditor is reported as not + * found, rather than distinguishing it from an ID that does not exist. + * + *

Rate limit: 250 requests / minute. + * + * @return The call builder + */ + public GetInformationRequestEvidenceRequestBuilder getInformationRequestEvidence() { + return new GetInformationRequestEvidenceRequestBuilder(sdkConfiguration); + } + + /** + * Get information request evidence by ID + * + *

Retrieves a single evidence item attached to an information request by its ID. + * + *

This endpoint always includes soft-deleted evidence (where `deletionDate !== null`), + * so an evidence ID surfaced by a `changedSinceDate` delta sync stays fetchable after + * the evidence is deleted. Clients should check the `deletionDate` field to identify + * and handle deleted records appropriately in their systems. + * + *

Evidence is only resolvable while its information request exists. Once the + * request itself is deleted, this endpoint reports the request as not found — + * matching `GET /audits/{auditId}/information-requests/{requestId}/evidence`. + * Clients reconciling a deleted request should treat its evidence as gone with it. + * + *

Evidence that the customer has not shared with the auditor is reported as not + * found, rather than distinguishing it from an ID that does not exist. + * + *

Rate limit: 250 requests / minute. + * + * @param auditId + * @param requestId + * @param evidenceId + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public GetInformationRequestEvidenceResponse getInformationRequestEvidence( + String auditId, String requestId, + String evidenceId) { + GetInformationRequestEvidenceRequest request = + GetInformationRequestEvidenceRequest + .builder() + .auditId(auditId) + .requestId(requestId) + .evidenceId(evidenceId) + .build(); + RequestOperation operation + = new GetInformationRequestEvidence.Sync(sdkConfiguration, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + /** * Get test snapshot detail for an evidence row * @@ -2775,6 +2905,9 @@ public ListVendorsResponse listVendors(ListVendorsRequest request) { * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The call builder @@ -2796,6 +2929,9 @@ public ListMonitoredComputersInAuditScopeRequestBuilder listMonitoredComputersIn * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param auditId @@ -2820,6 +2956,9 @@ public ListMonitoredComputersInAuditScopeResponse listMonitoredComputersInAuditS * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param auditId @@ -3007,6 +3146,9 @@ public ListPeopleInAuditScopeResponse listPeopleInAuditScope(ListPeopleInAuditSc *

Results are returned in connection order. Sort order is not guaranteed * and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The call builder @@ -3035,6 +3177,9 @@ public ListAccountAccessServicesRequestBuilder listAccountAccessServices() { *

Results are returned in connection order. Sort order is not guaranteed * and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param auditId The audit ID @@ -3065,6 +3210,9 @@ public ListAccountAccessServicesResponse listAccountAccessServices(String auditI *

Results are returned in connection order. Sort order is not guaranteed * and cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param auditId The audit ID @@ -3133,6 +3281,9 @@ public ListAccountAccessServicesResponse listAccountAccessServices( * *

Sort order cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The call builder @@ -3186,6 +3337,9 @@ public ListPersonnelAccountAccessRequestBuilder listPersonnelAccountAccess() { * *

Sort order cannot be customized via query parameters. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param request The request object containing all the parameters for the API call. @@ -3509,7 +3663,7 @@ public ListAuditRisksResponse listAuditRisks(ListAuditRisksRequest request) { * making it visible in their portal. This action allows the customer to see all information * requests that have been created for their audit. Only IRL audits are supported. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @return The call builder */ @@ -3524,7 +3678,7 @@ public ShareInformationRequestListRequestBuilder shareInformationRequestList() { * making it visible in their portal. This action allows the customer to see all information * requests that have been created for their audit. Only IRL audits are supported. * - *

Rate limit: 10 requests / minute. + *

Rate limit: 50 requests / minute. * * @param auditId * @return The response from the API call @@ -3666,6 +3820,9 @@ public ListVulnerabilitiesResponse listVulnerabilities(ListVulnerabilitiesReques * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @return The call builder @@ -3685,6 +3842,9 @@ public ListVulnerabilityRemediationsInAuditScopeRequestBuilder listVulnerability * controlled audit view. It remains available for existing classic audits but will be removed once * classic audits are fully phased out, so do not build new integrations on it. * + *

Returns 422 when the audit does not have exactly one program segment + * (multi-framework audits are not supported on this endpoint). + * *

Rate limit: 10 requests / minute. * * @param request The request object containing all the parameters for the API call. diff --git a/src/main/java/com/vanta/vanta_auditor_api/SDKConfiguration.java b/src/main/java/com/vanta/vanta_auditor_api/SDKConfiguration.java index 64f0980..98bd209 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/SDKConfiguration.java +++ b/src/main/java/com/vanta/vanta_auditor_api/SDKConfiguration.java @@ -19,8 +19,8 @@ public class SDKConfiguration { private static final String LANGUAGE = "java"; public static final String OPENAPI_DOC_VERSION = "1.0.0"; - public static final String SDK_VERSION = "0.6.5"; - public static final String GEN_VERSION = "2.926.8"; + public static final String SDK_VERSION = "0.7.0"; + public static final String GEN_VERSION = "2.933.0"; private static final String BASE_PACKAGE = "com.vanta.vanta_auditor_api"; public static final String USER_AGENT = String.format("speakeasy-sdk/%s %s %s %s %s", diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/ApprovalProgress.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/ApprovalProgress.java new file mode 100644 index 0000000..3a4fdac --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/ApprovalProgress.java @@ -0,0 +1,147 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.components; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.Double; +import java.lang.Override; +import java.lang.String; + +/** + * ApprovalProgress + * + *

The issue's approval progress at the time the snapshot was captured, + * or null if no approval was in progress or issue approvals are not enabled. + */ +public class ApprovalProgress { + /** + * The number of approvers who have approved the issue. + */ + @JsonProperty("approvedCount") + private double approvedCount; + + /** + * The total number of approvers in the issue's approval chain. + */ + @JsonProperty("totalApprovers") + private double totalApprovers; + + @JsonCreator + public ApprovalProgress( + @JsonProperty("approvedCount") double approvedCount, + @JsonProperty("totalApprovers") double totalApprovers) { + Utils.checkNotNull(approvedCount, "approvedCount"); + Utils.checkNotNull(totalApprovers, "totalApprovers"); + this.approvedCount = approvedCount; + this.totalApprovers = totalApprovers; + } + + /** + * The number of approvers who have approved the issue. + */ + @JsonIgnore + public double approvedCount() { + return approvedCount; + } + + /** + * The total number of approvers in the issue's approval chain. + */ + @JsonIgnore + public double totalApprovers() { + return totalApprovers; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The number of approvers who have approved the issue. + */ + public ApprovalProgress withApprovedCount(double approvedCount) { + Utils.checkNotNull(approvedCount, "approvedCount"); + this.approvedCount = approvedCount; + return this; + } + + /** + * The total number of approvers in the issue's approval chain. + */ + public ApprovalProgress withTotalApprovers(double totalApprovers) { + Utils.checkNotNull(totalApprovers, "totalApprovers"); + this.totalApprovers = totalApprovers; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ApprovalProgress other = (ApprovalProgress) o; + return + Utils.enhancedDeepEquals(this.approvedCount, other.approvedCount) && + Utils.enhancedDeepEquals(this.totalApprovers, other.totalApprovers); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + approvedCount, totalApprovers); + } + + @Override + public String toString() { + return Utils.toString(ApprovalProgress.class, + "approvedCount", approvedCount, + "totalApprovers", totalApprovers); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private Double approvedCount; + + private Double totalApprovers; + + private Builder() { + // force use of static builder() method + } + + + /** + * The number of approvers who have approved the issue. + */ + public Builder approvedCount(double approvedCount) { + Utils.checkNotNull(approvedCount, "approvedCount"); + this.approvedCount = approvedCount; + return this; + } + + + /** + * The total number of approvers in the issue's approval chain. + */ + public Builder totalApprovers(double totalApprovers) { + Utils.checkNotNull(totalApprovers, "totalApprovers"); + this.totalApprovers = totalApprovers; + return this; + } + + public ApprovalProgress build() { + + return new ApprovalProgress( + approvedCount, totalApprovers); + } + + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/Audit.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/Audit.java index 182b2ec..8d65e09 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/models/components/Audit.java +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/Audit.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.vanta.vanta_auditor_api.utils.Utils; import java.lang.Boolean; +import java.lang.Deprecated; import java.lang.Override; import java.lang.String; import java.lang.SuppressWarnings; @@ -64,9 +65,13 @@ public class Audit { private Optional earlyAccessStartsAt; /** - * The name of the framework for the audit + * Legacy singular framework display name from the audit type. Incomplete for + * a multi-framework audit — use `segments` for framework identity. + * + * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ @JsonProperty("framework") + @Deprecated private String framework; /** @@ -128,6 +133,16 @@ public class Audit { @JsonProperty("auditorRequestListMetadata") private Optional auditorRequestListMetadata; + /** + * The audit's scope as a list of segments. Always present. A live + * single-framework audit has one entry; a multi-framework audit has one + * entry per in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. Prefer this over the deprecated + * top-level `framework` field. + */ + @JsonProperty("segments") + private List segments; + @JsonCreator public Audit( @JsonProperty("id") String id, @@ -146,7 +161,8 @@ public Audit( @JsonProperty("modificationDate") Optional modificationDate, @JsonProperty("completionDate") Optional completionDate, @JsonProperty("auditFocus") AuditFocus auditFocus, - @JsonProperty("auditorRequestListMetadata") Optional auditorRequestListMetadata) { + @JsonProperty("auditorRequestListMetadata") Optional auditorRequestListMetadata, + @JsonProperty("segments") List segments) { Utils.checkNotNull(id, "id"); Utils.checkNotNull(customerOrganizationName, "customerOrganizationName"); Utils.checkNotNull(customerDisplayName, "customerDisplayName"); @@ -164,6 +180,7 @@ public Audit( Utils.checkNotNull(completionDate, "completionDate"); Utils.checkNotNull(auditFocus, "auditFocus"); Utils.checkNotNull(auditorRequestListMetadata, "auditorRequestListMetadata"); + Utils.checkNotNull(segments, "segments"); this.id = id; this.customerOrganizationName = customerOrganizationName; this.customerDisplayName = customerDisplayName; @@ -181,6 +198,7 @@ public Audit( this.completionDate = completionDate; this.auditFocus = auditFocus; this.auditorRequestListMetadata = auditorRequestListMetadata; + this.segments = segments; } public Audit( @@ -194,13 +212,14 @@ public Audit( List allowAuditorEmails, boolean allowAllAuditors, OffsetDateTime creationDate, - AuditFocus auditFocus) { + AuditFocus auditFocus, + List segments) { this(id, customerOrganizationName, Optional.empty(), customerOrganizationId, auditStartDate, auditEndDate, Optional.empty(), framework, displayName, allowAuditorEmails, allowAllAuditors, Optional.empty(), creationDate, Optional.empty(), Optional.empty(), - auditFocus, Optional.empty()); + auditFocus, Optional.empty(), segments); } /** @@ -260,8 +279,12 @@ public Optional earlyAccessStartsAt() { } /** - * The name of the framework for the audit + * Legacy singular framework display name from the audit type. Incomplete for + * a multi-framework audit — use `segments` for framework identity. + * + * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated @JsonIgnore public String framework() { return framework; @@ -340,6 +363,18 @@ public Optional auditorRequestListMetadata() { return (Optional) auditorRequestListMetadata; } + /** + * The audit's scope as a list of segments. Always present. A live + * single-framework audit has one entry; a multi-framework audit has one + * entry per in-scope framework (and business unit or system, when applicable). + * Soft-deleted audits return an empty list. Prefer this over the deprecated + * top-level `framework` field. + */ + @JsonIgnore + public List segments() { + return segments; + } + public static Builder builder() { return new Builder(); } @@ -429,8 +464,12 @@ public Audit withEarlyAccessStartsAt(Optional earlyAccessStartsA } /** - * The name of the framework for the audit + * Legacy singular framework display name from the audit type. Incomplete for + * a multi-framework audit — use `segments` for framework identity. + * + * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public Audit withFramework(String framework) { Utils.checkNotNull(framework, "framework"); this.framework = framework; @@ -560,6 +599,19 @@ public Audit withAuditorRequestListMetadata(Optional segments) { + Utils.checkNotNull(segments, "segments"); + this.segments = segments; + return this; + } + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -586,7 +638,8 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.modificationDate, other.modificationDate) && Utils.enhancedDeepEquals(this.completionDate, other.completionDate) && Utils.enhancedDeepEquals(this.auditFocus, other.auditFocus) && - Utils.enhancedDeepEquals(this.auditorRequestListMetadata, other.auditorRequestListMetadata); + Utils.enhancedDeepEquals(this.auditorRequestListMetadata, other.auditorRequestListMetadata) && + Utils.enhancedDeepEquals(this.segments, other.segments); } @Override @@ -597,7 +650,7 @@ public int hashCode() { earlyAccessStartsAt, framework, displayName, allowAuditorEmails, allowAllAuditors, deletionDate, creationDate, modificationDate, completionDate, - auditFocus, auditorRequestListMetadata); + auditFocus, auditorRequestListMetadata, segments); } @Override @@ -619,7 +672,8 @@ public String toString() { "modificationDate", modificationDate, "completionDate", completionDate, "auditFocus", auditFocus, - "auditorRequestListMetadata", auditorRequestListMetadata); + "auditorRequestListMetadata", auditorRequestListMetadata, + "segments", segments); } @SuppressWarnings("UnusedReturnValue") @@ -639,6 +693,7 @@ public final static class Builder { private Optional earlyAccessStartsAt = Optional.empty(); + @Deprecated private String framework; private String displayName; @@ -659,6 +714,8 @@ public final static class Builder { private Optional auditorRequestListMetadata = Optional.empty(); + private List segments; + private Builder() { // force use of static builder() method } @@ -753,8 +810,12 @@ public Builder earlyAccessStartsAt(Optional earlyAccessStartsAt) /** - * The name of the framework for the audit + * Legacy singular framework display name from the audit type. Incomplete for + * a multi-framework audit — use `segments` for framework identity. + * + * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public Builder framework(String framework) { Utils.checkNotNull(framework, "framework"); this.framework = framework; @@ -889,6 +950,20 @@ public Builder auditorRequestListMetadata(Optional segments) { + Utils.checkNotNull(segments, "segments"); + this.segments = segments; + return this; + } + public Audit build() { return new Audit( @@ -897,7 +972,7 @@ public Audit build() { earlyAccessStartsAt, framework, displayName, allowAuditorEmails, allowAllAuditors, deletionDate, creationDate, modificationDate, completionDate, - auditFocus, auditorRequestListMetadata); + auditFocus, auditorRequestListMetadata, segments); } } diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditControlAssessment.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditControlAssessment.java index df00f4d..f5c79ae 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditControlAssessment.java +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditControlAssessment.java @@ -23,6 +23,12 @@ * a `null` justification. */ public class AuditControlAssessment { + /** + * The audit program segment this assessment belongs to. + */ + @JsonProperty("segmentId") + private String segmentId; + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -50,17 +56,29 @@ public class AuditControlAssessment { @JsonCreator public AuditControlAssessment( + @JsonProperty("segmentId") String segmentId, @JsonProperty("assessmentState") AuditControlAssessmentState assessmentState, @JsonProperty("justification") Optional justification) { + Utils.checkNotNull(segmentId, "segmentId"); Utils.checkNotNull(assessmentState, "assessmentState"); Utils.checkNotNull(justification, "justification"); + this.segmentId = segmentId; this.assessmentState = assessmentState; this.justification = justification; } public AuditControlAssessment( + String segmentId, AuditControlAssessmentState assessmentState) { - this(assessmentState, Optional.empty()); + this(segmentId, assessmentState, Optional.empty()); + } + + /** + * The audit program segment this assessment belongs to. + */ + @JsonIgnore + public String segmentId() { + return segmentId; } /** @@ -96,6 +114,15 @@ public static Builder builder() { } + /** + * The audit program segment this assessment belongs to. + */ + public AuditControlAssessment withSegmentId(String segmentId) { + Utils.checkNotNull(segmentId, "segmentId"); + this.segmentId = segmentId; + return this; + } + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -146,6 +173,7 @@ public boolean equals(java.lang.Object o) { } AuditControlAssessment other = (AuditControlAssessment) o; return + Utils.enhancedDeepEquals(this.segmentId, other.segmentId) && Utils.enhancedDeepEquals(this.assessmentState, other.assessmentState) && Utils.enhancedDeepEquals(this.justification, other.justification); } @@ -153,12 +181,13 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { return Utils.enhancedHash( - assessmentState, justification); + segmentId, assessmentState, justification); } @Override public String toString() { return Utils.toString(AuditControlAssessment.class, + "segmentId", segmentId, "assessmentState", assessmentState, "justification", justification); } @@ -166,6 +195,8 @@ public String toString() { @SuppressWarnings("UnusedReturnValue") public final static class Builder { + private String segmentId; + private AuditControlAssessmentState assessmentState; private Optional justification = Optional.empty(); @@ -175,6 +206,16 @@ private Builder() { } + /** + * The audit program segment this assessment belongs to. + */ + public Builder segmentId(String segmentId) { + Utils.checkNotNull(segmentId, "segmentId"); + this.segmentId = segmentId; + return this; + } + + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -218,7 +259,7 @@ public Builder justification(Optional justification) { public AuditControlAssessment build() { return new AuditControlAssessment( - assessmentState, justification); + segmentId, assessmentState, justification); } } diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegment.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegment.java new file mode 100644 index 0000000..18aea97 --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegment.java @@ -0,0 +1,434 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.components; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.Optional; + +/** + * AuditSegment + * + *

One segment of an audit's scope. A live single-framework audit has exactly + * one entry; a live multi-framework audit has one per in-scope framework + * (and business unit or system, when applicable). Soft-deleted audits return + * an empty list. `displayName` is the segment label owned by audit scope + * (for example "{Framework}" or "{Framework} — {Business Unit}"). + * `soc2Deliverable` is the per-segment SOC 2 config, or null. `businessUnit` + * is set for program segments that are BU-scoped and null otherwise. `system` + * is set for system segments and null otherwise. + */ +public class AuditSegment { + /** + * The unique identifier for the segment. + */ + @JsonProperty("id") + private String id; + + + @JsonProperty("kind") + private AuditSegmentKind kind; + + /** + * The segment's display label. Do not reconstruct this from framework + BU. + */ + @JsonProperty("displayName") + private String displayName; + + /** + * The framework reached through a segment. + */ + @JsonProperty("framework") + private AuditSegmentFramework framework; + + /** + * The business unit this program segment is scoped to, or null when the + * segment is not BU-scoped or the BU cannot be resolved. + */ + @JsonInclude(Include.ALWAYS) + @JsonProperty("businessUnit") + private Optional businessUnit; + + /** + * The information system this system segment is scoped to, or null on + * program segments. + */ + @JsonInclude(Include.ALWAYS) + @JsonProperty("system") + private Optional system; + + /** + * SOC 2 report type and Trust Services Criteria for this segment, or null. + */ + @JsonInclude(Include.ALWAYS) + @JsonProperty("soc2Deliverable") + private Optional soc2Deliverable; + + @JsonCreator + public AuditSegment( + @JsonProperty("id") String id, + @JsonProperty("kind") AuditSegmentKind kind, + @JsonProperty("displayName") String displayName, + @JsonProperty("framework") AuditSegmentFramework framework, + @JsonProperty("businessUnit") Optional businessUnit, + @JsonProperty("system") Optional system, + @JsonProperty("soc2Deliverable") Optional soc2Deliverable) { + Utils.checkNotNull(id, "id"); + Utils.checkNotNull(kind, "kind"); + Utils.checkNotNull(displayName, "displayName"); + Utils.checkNotNull(framework, "framework"); + Utils.checkNotNull(businessUnit, "businessUnit"); + Utils.checkNotNull(system, "system"); + Utils.checkNotNull(soc2Deliverable, "soc2Deliverable"); + this.id = id; + this.kind = kind; + this.displayName = displayName; + this.framework = framework; + this.businessUnit = businessUnit; + this.system = system; + this.soc2Deliverable = soc2Deliverable; + } + + public AuditSegment( + String id, + AuditSegmentKind kind, + String displayName, + AuditSegmentFramework framework) { + this(id, kind, displayName, + framework, Optional.empty(), Optional.empty(), + Optional.empty()); + } + + /** + * The unique identifier for the segment. + */ + @JsonIgnore + public String id() { + return id; + } + + @JsonIgnore + public AuditSegmentKind kind() { + return kind; + } + + /** + * The segment's display label. Do not reconstruct this from framework + BU. + */ + @JsonIgnore + public String displayName() { + return displayName; + } + + /** + * The framework reached through a segment. + */ + @JsonIgnore + public AuditSegmentFramework framework() { + return framework; + } + + /** + * The business unit this program segment is scoped to, or null when the + * segment is not BU-scoped or the BU cannot be resolved. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional businessUnit() { + return (Optional) businessUnit; + } + + /** + * The information system this system segment is scoped to, or null on + * program segments. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional system() { + return (Optional) system; + } + + /** + * SOC 2 report type and Trust Services Criteria for this segment, or null. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional soc2Deliverable() { + return (Optional) soc2Deliverable; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The unique identifier for the segment. + */ + public AuditSegment withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + public AuditSegment withKind(AuditSegmentKind kind) { + Utils.checkNotNull(kind, "kind"); + this.kind = kind; + return this; + } + + /** + * The segment's display label. Do not reconstruct this from framework + BU. + */ + public AuditSegment withDisplayName(String displayName) { + Utils.checkNotNull(displayName, "displayName"); + this.displayName = displayName; + return this; + } + + /** + * The framework reached through a segment. + */ + public AuditSegment withFramework(AuditSegmentFramework framework) { + Utils.checkNotNull(framework, "framework"); + this.framework = framework; + return this; + } + + /** + * The business unit this program segment is scoped to, or null when the + * segment is not BU-scoped or the BU cannot be resolved. + */ + public AuditSegment withBusinessUnit(BusinessUnit businessUnit) { + Utils.checkNotNull(businessUnit, "businessUnit"); + this.businessUnit = Optional.ofNullable(businessUnit); + return this; + } + + + /** + * The business unit this program segment is scoped to, or null when the + * segment is not BU-scoped or the BU cannot be resolved. + */ + public AuditSegment withBusinessUnit(Optional businessUnit) { + Utils.checkNotNull(businessUnit, "businessUnit"); + this.businessUnit = businessUnit; + return this; + } + + /** + * The information system this system segment is scoped to, or null on + * program segments. + */ + public AuditSegment withSystem(System system) { + Utils.checkNotNull(system, "system"); + this.system = Optional.ofNullable(system); + return this; + } + + + /** + * The information system this system segment is scoped to, or null on + * program segments. + */ + public AuditSegment withSystem(Optional system) { + Utils.checkNotNull(system, "system"); + this.system = system; + return this; + } + + /** + * SOC 2 report type and Trust Services Criteria for this segment, or null. + */ + public AuditSegment withSoc2Deliverable(Soc2Deliverable soc2Deliverable) { + Utils.checkNotNull(soc2Deliverable, "soc2Deliverable"); + this.soc2Deliverable = Optional.ofNullable(soc2Deliverable); + return this; + } + + + /** + * SOC 2 report type and Trust Services Criteria for this segment, or null. + */ + public AuditSegment withSoc2Deliverable(Optional soc2Deliverable) { + Utils.checkNotNull(soc2Deliverable, "soc2Deliverable"); + this.soc2Deliverable = soc2Deliverable; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuditSegment other = (AuditSegment) o; + return + Utils.enhancedDeepEquals(this.id, other.id) && + Utils.enhancedDeepEquals(this.kind, other.kind) && + Utils.enhancedDeepEquals(this.displayName, other.displayName) && + Utils.enhancedDeepEquals(this.framework, other.framework) && + Utils.enhancedDeepEquals(this.businessUnit, other.businessUnit) && + Utils.enhancedDeepEquals(this.system, other.system) && + Utils.enhancedDeepEquals(this.soc2Deliverable, other.soc2Deliverable); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + id, kind, displayName, + framework, businessUnit, system, + soc2Deliverable); + } + + @Override + public String toString() { + return Utils.toString(AuditSegment.class, + "id", id, + "kind", kind, + "displayName", displayName, + "framework", framework, + "businessUnit", businessUnit, + "system", system, + "soc2Deliverable", soc2Deliverable); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String id; + + private AuditSegmentKind kind; + + private String displayName; + + private AuditSegmentFramework framework; + + private Optional businessUnit = Optional.empty(); + + private Optional system = Optional.empty(); + + private Optional soc2Deliverable = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * The unique identifier for the segment. + */ + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + + public Builder kind(AuditSegmentKind kind) { + Utils.checkNotNull(kind, "kind"); + this.kind = kind; + return this; + } + + + /** + * The segment's display label. Do not reconstruct this from framework + BU. + */ + public Builder displayName(String displayName) { + Utils.checkNotNull(displayName, "displayName"); + this.displayName = displayName; + return this; + } + + + /** + * The framework reached through a segment. + */ + public Builder framework(AuditSegmentFramework framework) { + Utils.checkNotNull(framework, "framework"); + this.framework = framework; + return this; + } + + + /** + * The business unit this program segment is scoped to, or null when the + * segment is not BU-scoped or the BU cannot be resolved. + */ + public Builder businessUnit(BusinessUnit businessUnit) { + Utils.checkNotNull(businessUnit, "businessUnit"); + this.businessUnit = Optional.ofNullable(businessUnit); + return this; + } + + /** + * The business unit this program segment is scoped to, or null when the + * segment is not BU-scoped or the BU cannot be resolved. + */ + public Builder businessUnit(Optional businessUnit) { + Utils.checkNotNull(businessUnit, "businessUnit"); + this.businessUnit = businessUnit; + return this; + } + + + /** + * The information system this system segment is scoped to, or null on + * program segments. + */ + public Builder system(System system) { + Utils.checkNotNull(system, "system"); + this.system = Optional.ofNullable(system); + return this; + } + + /** + * The information system this system segment is scoped to, or null on + * program segments. + */ + public Builder system(Optional system) { + Utils.checkNotNull(system, "system"); + this.system = system; + return this; + } + + + /** + * SOC 2 report type and Trust Services Criteria for this segment, or null. + */ + public Builder soc2Deliverable(Soc2Deliverable soc2Deliverable) { + Utils.checkNotNull(soc2Deliverable, "soc2Deliverable"); + this.soc2Deliverable = Optional.ofNullable(soc2Deliverable); + return this; + } + + /** + * SOC 2 report type and Trust Services Criteria for this segment, or null. + */ + public Builder soc2Deliverable(Optional soc2Deliverable) { + Utils.checkNotNull(soc2Deliverable, "soc2Deliverable"); + this.soc2Deliverable = soc2Deliverable; + return this; + } + + public AuditSegment build() { + + return new AuditSegment( + id, kind, displayName, + framework, businessUnit, system, + soc2Deliverable); + } + + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegmentFramework.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegmentFramework.java new file mode 100644 index 0000000..faa3820 --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegmentFramework.java @@ -0,0 +1,185 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.components; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.Override; +import java.lang.String; + +/** + * AuditSegmentFramework + * + *

The framework reached through a segment. + */ +public class AuditSegmentFramework { + /** + * The stable identifier of the framework (for example `soc2`). + */ + @JsonProperty("id") + private String id; + + /** + * The human-readable framework name. + */ + @JsonProperty("displayName") + private String displayName; + + /** + * The short framework name used in compact UI. + */ + @JsonProperty("shortName") + private String shortName; + + @JsonCreator + public AuditSegmentFramework( + @JsonProperty("id") String id, + @JsonProperty("displayName") String displayName, + @JsonProperty("shortName") String shortName) { + Utils.checkNotNull(id, "id"); + Utils.checkNotNull(displayName, "displayName"); + Utils.checkNotNull(shortName, "shortName"); + this.id = id; + this.displayName = displayName; + this.shortName = shortName; + } + + /** + * The stable identifier of the framework (for example `soc2`). + */ + @JsonIgnore + public String id() { + return id; + } + + /** + * The human-readable framework name. + */ + @JsonIgnore + public String displayName() { + return displayName; + } + + /** + * The short framework name used in compact UI. + */ + @JsonIgnore + public String shortName() { + return shortName; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The stable identifier of the framework (for example `soc2`). + */ + public AuditSegmentFramework withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + /** + * The human-readable framework name. + */ + public AuditSegmentFramework withDisplayName(String displayName) { + Utils.checkNotNull(displayName, "displayName"); + this.displayName = displayName; + return this; + } + + /** + * The short framework name used in compact UI. + */ + public AuditSegmentFramework withShortName(String shortName) { + Utils.checkNotNull(shortName, "shortName"); + this.shortName = shortName; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuditSegmentFramework other = (AuditSegmentFramework) o; + return + Utils.enhancedDeepEquals(this.id, other.id) && + Utils.enhancedDeepEquals(this.displayName, other.displayName) && + Utils.enhancedDeepEquals(this.shortName, other.shortName); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + id, displayName, shortName); + } + + @Override + public String toString() { + return Utils.toString(AuditSegmentFramework.class, + "id", id, + "displayName", displayName, + "shortName", shortName); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String id; + + private String displayName; + + private String shortName; + + private Builder() { + // force use of static builder() method + } + + + /** + * The stable identifier of the framework (for example `soc2`). + */ + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + + /** + * The human-readable framework name. + */ + public Builder displayName(String displayName) { + Utils.checkNotNull(displayName, "displayName"); + this.displayName = displayName; + return this; + } + + + /** + * The short framework name used in compact UI. + */ + public Builder shortName(String shortName) { + Utils.checkNotNull(shortName, "shortName"); + this.shortName = shortName; + return this; + } + + public AuditSegmentFramework build() { + + return new AuditSegmentFramework( + id, displayName, shortName); + } + + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegmentKind.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegmentKind.java new file mode 100644 index 0000000..bc2beef --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSegmentKind.java @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +public enum AuditSegmentKind { + PROGRAM("PROGRAM"), + SYSTEM("SYSTEM"); + + @JsonValue + private final String value; + + AuditSegmentKind(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (AuditSegmentKind o: AuditSegmentKind.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSoc2ReportType.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSoc2ReportType.java new file mode 100644 index 0000000..182d3af --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSoc2ReportType.java @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +public enum AuditSoc2ReportType { + SOC2TYPE1("soc2type1"), + SOC2TYPE2("soc2type2"); + + @JsonValue + private final String value; + + AuditSoc2ReportType(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (AuditSoc2ReportType o: AuditSoc2ReportType.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSoc2Tsc.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSoc2Tsc.java new file mode 100644 index 0000000..9bb6034 --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditSoc2Tsc.java @@ -0,0 +1,38 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +public enum AuditSoc2Tsc { + SECURITY("SECURITY"), + AVAILABILITY("AVAILABILITY"), + CONFIDENTIALITY("CONFIDENTIALITY"), + PRIVACY("PRIVACY"), + PROCESSING_INTEGRITY("PROCESSING_INTEGRITY"); + + @JsonValue + private final String value; + + AuditSoc2Tsc(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (AuditSoc2Tsc o: AuditSoc2Tsc.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControl.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControl.java index 979d61e..519fbf4 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControl.java +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControl.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.Deprecated; import java.lang.Override; import java.lang.String; import java.lang.SuppressWarnings; @@ -90,8 +91,12 @@ public class AuditorControl { /** * The report standard framework fulfilled by the control. + * Incomplete once a control is in scope for more than one framework. + * + * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ @JsonProperty("framework") + @Deprecated private String framework; /** @@ -100,6 +105,14 @@ public class AuditorControl { @JsonProperty("sections") private List

sections; + /** + * Audit segments this control is in scope for. Empty when the control is + * attached only by a direct link and has no catalog mapping on a + * multi-program audit. + */ + @JsonProperty("inScopeSegmentIds") + private List inScopeSegmentIds; + /** * The auditor's assessments of this control, one per audit program segment the * control is in scope for (a multi-framework audit can have more than one). @@ -126,6 +139,7 @@ public AuditorControl( @JsonProperty("modificationDate") Optional modificationDate, @JsonProperty("framework") String framework, @JsonProperty("sections") List
sections, + @JsonProperty("inScopeSegmentIds") List inScopeSegmentIds, @JsonProperty("assessments") List assessments) { Utils.checkNotNull(id, "id"); Utils.checkNotNull(externalId, "externalId"); @@ -140,6 +154,7 @@ public AuditorControl( Utils.checkNotNull(modificationDate, "modificationDate"); Utils.checkNotNull(framework, "framework"); Utils.checkNotNull(sections, "sections"); + Utils.checkNotNull(inScopeSegmentIds, "inScopeSegmentIds"); Utils.checkNotNull(assessments, "assessments"); this.id = id; this.externalId = externalId; @@ -154,6 +169,7 @@ public AuditorControl( this.modificationDate = modificationDate; this.framework = framework; this.sections = sections; + this.inScopeSegmentIds = inScopeSegmentIds; this.assessments = assessments; } @@ -166,12 +182,13 @@ public AuditorControl( List customFields, String framework, List
sections, + List inScopeSegmentIds, List assessments) { this(id, Optional.empty(), name, description, source, domains, Optional.empty(), JsonNullable.undefined(), customFields, Optional.empty(), Optional.empty(), framework, - sections, assessments); + sections, inScopeSegmentIds, assessments); } /** @@ -262,7 +279,11 @@ public Optional modificationDate() { /** * The report standard framework fulfilled by the control. + * Incomplete once a control is in scope for more than one framework. + * + * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated @JsonIgnore public String framework() { return framework; @@ -276,6 +297,16 @@ public List
sections() { return sections; } + /** + * Audit segments this control is in scope for. Empty when the control is + * attached only by a direct link and has no catalog mapping on a + * multi-program audit. + */ + @JsonIgnore + public List inScopeSegmentIds() { + return inScopeSegmentIds; + } + /** * The auditor's assessments of this control, one per audit program segment the * control is in scope for (a multi-framework audit can have more than one). @@ -441,7 +472,11 @@ public AuditorControl withModificationDate(Optional modification /** * The report standard framework fulfilled by the control. + * Incomplete once a control is in scope for more than one framework. + * + * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public AuditorControl withFramework(String framework) { Utils.checkNotNull(framework, "framework"); this.framework = framework; @@ -457,6 +492,17 @@ public AuditorControl withSections(List
sections) { return this; } + /** + * Audit segments this control is in scope for. Empty when the control is + * attached only by a direct link and has no catalog mapping on a + * multi-program audit. + */ + public AuditorControl withInScopeSegmentIds(List inScopeSegmentIds) { + Utils.checkNotNull(inScopeSegmentIds, "inScopeSegmentIds"); + this.inScopeSegmentIds = inScopeSegmentIds; + return this; + } + /** * The auditor's assessments of this control, one per audit program segment the * control is in scope for (a multi-framework audit can have more than one). @@ -494,6 +540,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.modificationDate, other.modificationDate) && Utils.enhancedDeepEquals(this.framework, other.framework) && Utils.enhancedDeepEquals(this.sections, other.sections) && + Utils.enhancedDeepEquals(this.inScopeSegmentIds, other.inScopeSegmentIds) && Utils.enhancedDeepEquals(this.assessments, other.assessments); } @@ -504,7 +551,7 @@ public int hashCode() { description, source, domains, owner, role, customFields, creationDate, modificationDate, framework, - sections, assessments); + sections, inScopeSegmentIds, assessments); } @Override @@ -523,6 +570,7 @@ public String toString() { "modificationDate", modificationDate, "framework", framework, "sections", sections, + "inScopeSegmentIds", inScopeSegmentIds, "assessments", assessments); } @@ -551,10 +599,13 @@ public final static class Builder { private Optional modificationDate = Optional.empty(); + @Deprecated private String framework; private List
sections; + private List inScopeSegmentIds; + private List assessments; private Builder() { @@ -716,7 +767,11 @@ public Builder modificationDate(Optional modificationDate) { /** * The report standard framework fulfilled by the control. + * Incomplete once a control is in scope for more than one framework. + * + * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public Builder framework(String framework) { Utils.checkNotNull(framework, "framework"); this.framework = framework; @@ -734,6 +789,18 @@ public Builder sections(List
sections) { } + /** + * Audit segments this control is in scope for. Empty when the control is + * attached only by a direct link and has no catalog mapping on a + * multi-program audit. + */ + public Builder inScopeSegmentIds(List inScopeSegmentIds) { + Utils.checkNotNull(inScopeSegmentIds, "inScopeSegmentIds"); + this.inScopeSegmentIds = inScopeSegmentIds; + return this; + } + + /** * The auditor's assessments of this control, one per audit program segment the * control is in scope for (a multi-framework audit can have more than one). @@ -755,7 +822,7 @@ public AuditorControl build() { description, source, domains, owner, role, customFields, creationDate, modificationDate, framework, - sections, assessments); + sections, inScopeSegmentIds, assessments); } } diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControlAssessment.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControlAssessment.java index a095706..bd41227 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControlAssessment.java +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/AuditorControlAssessment.java @@ -23,6 +23,12 @@ public class AuditorControlAssessment { @JsonProperty("controlId") private String controlId; + /** + * The program segment this assessment was written to. + */ + @JsonProperty("segmentId") + private String segmentId; + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -50,12 +56,15 @@ public class AuditorControlAssessment { @JsonCreator public AuditorControlAssessment( @JsonProperty("controlId") String controlId, + @JsonProperty("segmentId") String segmentId, @JsonProperty("assessmentState") AuditControlAssessmentState assessmentState, @JsonProperty("justification") String justification) { Utils.checkNotNull(controlId, "controlId"); + Utils.checkNotNull(segmentId, "segmentId"); Utils.checkNotNull(assessmentState, "assessmentState"); Utils.checkNotNull(justification, "justification"); this.controlId = controlId; + this.segmentId = segmentId; this.assessmentState = assessmentState; this.justification = justification; } @@ -68,6 +77,14 @@ public String controlId() { return controlId; } + /** + * The program segment this assessment was written to. + */ + @JsonIgnore + public String segmentId() { + return segmentId; + } + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -110,6 +127,15 @@ public AuditorControlAssessment withControlId(String controlId) { return this; } + /** + * The program segment this assessment was written to. + */ + public AuditorControlAssessment withSegmentId(String segmentId) { + Utils.checkNotNull(segmentId, "segmentId"); + this.segmentId = segmentId; + return this; + } + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -151,6 +177,7 @@ public boolean equals(java.lang.Object o) { AuditorControlAssessment other = (AuditorControlAssessment) o; return Utils.enhancedDeepEquals(this.controlId, other.controlId) && + Utils.enhancedDeepEquals(this.segmentId, other.segmentId) && Utils.enhancedDeepEquals(this.assessmentState, other.assessmentState) && Utils.enhancedDeepEquals(this.justification, other.justification); } @@ -158,13 +185,15 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { return Utils.enhancedHash( - controlId, assessmentState, justification); + controlId, segmentId, assessmentState, + justification); } @Override public String toString() { return Utils.toString(AuditorControlAssessment.class, "controlId", controlId, + "segmentId", segmentId, "assessmentState", assessmentState, "justification", justification); } @@ -174,6 +203,8 @@ public final static class Builder { private String controlId; + private String segmentId; + private AuditControlAssessmentState assessmentState; private String justification; @@ -193,6 +224,16 @@ public Builder controlId(String controlId) { } + /** + * The program segment this assessment was written to. + */ + public Builder segmentId(String segmentId) { + Utils.checkNotNull(segmentId, "segmentId"); + this.segmentId = segmentId; + return this; + } + + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -227,7 +268,8 @@ public Builder justification(String justification) { public AuditorControlAssessment build() { return new AuditorControlAssessment( - controlId, assessmentState, justification); + controlId, segmentId, assessmentState, + justification); } } diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/BusinessUnit.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/BusinessUnit.java new file mode 100644 index 0000000..9a4825a --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/BusinessUnit.java @@ -0,0 +1,146 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.components; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.Override; +import java.lang.String; + +/** + * BusinessUnit + * + *

The business unit this program segment is scoped to, or null when the + * segment is not BU-scoped or the BU cannot be resolved. + */ +public class BusinessUnit { + /** + * The unique identifier of the associated business unit or information system. + */ + @JsonProperty("id") + private String id; + + /** + * The human-readable name of the associated business unit or information system. + */ + @JsonProperty("displayName") + private String displayName; + + @JsonCreator + public BusinessUnit( + @JsonProperty("id") String id, + @JsonProperty("displayName") String displayName) { + Utils.checkNotNull(id, "id"); + Utils.checkNotNull(displayName, "displayName"); + this.id = id; + this.displayName = displayName; + } + + /** + * The unique identifier of the associated business unit or information system. + */ + @JsonIgnore + public String id() { + return id; + } + + /** + * The human-readable name of the associated business unit or information system. + */ + @JsonIgnore + public String displayName() { + return displayName; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The unique identifier of the associated business unit or information system. + */ + public BusinessUnit withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + /** + * The human-readable name of the associated business unit or information system. + */ + public BusinessUnit withDisplayName(String displayName) { + Utils.checkNotNull(displayName, "displayName"); + this.displayName = displayName; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BusinessUnit other = (BusinessUnit) o; + return + Utils.enhancedDeepEquals(this.id, other.id) && + Utils.enhancedDeepEquals(this.displayName, other.displayName); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + id, displayName); + } + + @Override + public String toString() { + return Utils.toString(BusinessUnit.class, + "id", id, + "displayName", displayName); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String id; + + private String displayName; + + private Builder() { + // force use of static builder() method + } + + + /** + * The unique identifier of the associated business unit or information system. + */ + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + + /** + * The human-readable name of the associated business unit or information system. + */ + public Builder displayName(String displayName) { + Utils.checkNotNull(displayName, "displayName"); + this.displayName = displayName; + return this; + } + + public BusinessUnit build() { + + return new BusinessUnit( + id, displayName); + } + + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/IssueSnapshotItem.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/IssueSnapshotItem.java index c7e99cb..5b35973 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/models/components/IssueSnapshotItem.java +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/IssueSnapshotItem.java @@ -77,6 +77,14 @@ public class IssueSnapshotItem { @JsonProperty("status") private Optional status; + /** + * The issue's approval progress at the time the snapshot was captured, + * or null if no approval was in progress or issue approvals are not enabled. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("approvalProgress") + private JsonNullable approvalProgress; + /** * The date and time when the issue was last modified. */ @@ -108,6 +116,7 @@ public IssueSnapshotItem( @JsonProperty("snapshotId") String snapshotId, @JsonProperty("dueDate") JsonNullable dueDate, @JsonProperty("status") Optional status, + @JsonProperty("approvalProgress") JsonNullable approvalProgress, @JsonProperty("lastModifiedAt") Optional lastModifiedAt, @JsonProperty("createdAt") Optional createdAt, @JsonProperty("detectedAt") Optional detectedAt) { @@ -119,6 +128,7 @@ public IssueSnapshotItem( Utils.checkNotNull(snapshotId, "snapshotId"); Utils.checkNotNull(dueDate, "dueDate"); Utils.checkNotNull(status, "status"); + Utils.checkNotNull(approvalProgress, "approvalProgress"); Utils.checkNotNull(lastModifiedAt, "lastModifiedAt"); Utils.checkNotNull(createdAt, "createdAt"); Utils.checkNotNull(detectedAt, "detectedAt"); @@ -130,6 +140,7 @@ public IssueSnapshotItem( this.snapshotId = snapshotId; this.dueDate = dueDate; this.status = status; + this.approvalProgress = approvalProgress; this.lastModifiedAt = lastModifiedAt; this.createdAt = createdAt; this.detectedAt = detectedAt; @@ -142,8 +153,8 @@ public IssueSnapshotItem( String snapshotId) { this(id, Optional.empty(), Optional.empty(), readableIssueId, issueId, snapshotId, - JsonNullable.undefined(), Optional.empty(), Optional.empty(), - Optional.empty(), Optional.empty()); + JsonNullable.undefined(), Optional.empty(), JsonNullable.undefined(), + Optional.empty(), Optional.empty(), Optional.empty()); } /** @@ -217,6 +228,16 @@ public Optional status() { return (Optional) status; } + /** + * The issue's approval progress at the time the snapshot was captured, + * or null if no approval was in progress or issue approvals are not enabled. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public JsonNullable approvalProgress() { + return (JsonNullable) approvalProgress; + } + /** * The date and time when the issue was last modified. */ @@ -360,6 +381,26 @@ public IssueSnapshotItem withStatus(Optional approvalProgress) { + Utils.checkNotNull(approvalProgress, "approvalProgress"); + this.approvalProgress = approvalProgress; + return this; + } + /** * The date and time when the issue was last modified. */ @@ -435,6 +476,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.snapshotId, other.snapshotId) && Utils.enhancedDeepEquals(this.dueDate, other.dueDate) && Utils.enhancedDeepEquals(this.status, other.status) && + Utils.enhancedDeepEquals(this.approvalProgress, other.approvalProgress) && Utils.enhancedDeepEquals(this.lastModifiedAt, other.lastModifiedAt) && Utils.enhancedDeepEquals(this.createdAt, other.createdAt) && Utils.enhancedDeepEquals(this.detectedAt, other.detectedAt); @@ -445,8 +487,8 @@ public int hashCode() { return Utils.enhancedHash( id, title, description, readableIssueId, issueId, snapshotId, - dueDate, status, lastModifiedAt, - createdAt, detectedAt); + dueDate, status, approvalProgress, + lastModifiedAt, createdAt, detectedAt); } @Override @@ -460,6 +502,7 @@ public String toString() { "snapshotId", snapshotId, "dueDate", dueDate, "status", status, + "approvalProgress", approvalProgress, "lastModifiedAt", lastModifiedAt, "createdAt", createdAt, "detectedAt", detectedAt); @@ -484,6 +527,8 @@ public final static class Builder { private Optional status = Optional.empty(); + private JsonNullable approvalProgress = JsonNullable.undefined(); + private Optional lastModifiedAt = Optional.empty(); private Optional createdAt = Optional.empty(); @@ -614,6 +659,27 @@ public Builder status(Optional status) { } + /** + * The issue's approval progress at the time the snapshot was captured, + * or null if no approval was in progress or issue approvals are not enabled. + */ + public Builder approvalProgress(ApprovalProgress approvalProgress) { + Utils.checkNotNull(approvalProgress, "approvalProgress"); + this.approvalProgress = JsonNullable.of(approvalProgress); + return this; + } + + /** + * The issue's approval progress at the time the snapshot was captured, + * or null if no approval was in progress or issue approvals are not enabled. + */ + public Builder approvalProgress(JsonNullable approvalProgress) { + Utils.checkNotNull(approvalProgress, "approvalProgress"); + this.approvalProgress = approvalProgress; + return this; + } + + /** * The date and time when the issue was last modified. */ @@ -675,8 +741,8 @@ public IssueSnapshotItem build() { return new IssueSnapshotItem( id, title, description, readableIssueId, issueId, snapshotId, - dueDate, status, lastModifiedAt, - createdAt, detectedAt); + dueDate, status, approvalProgress, + lastModifiedAt, createdAt, detectedAt); } } diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/IssueStatusTypeForSnapshot.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/IssueStatusTypeForSnapshot.java index 89ade8f..2d333df 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/models/components/IssueStatusTypeForSnapshot.java +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/IssueStatusTypeForSnapshot.java @@ -11,6 +11,7 @@ public enum IssueStatusTypeForSnapshot { IN_PROGRESS("IN_PROGRESS"), NOT_STARTED("NOT_STARTED"), + PENDING_REVIEW("PENDING_REVIEW"), CLOSED("CLOSED"); @JsonValue diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/Soc2Deliverable.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/Soc2Deliverable.java new file mode 100644 index 0000000..818d9e8 --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/Soc2Deliverable.java @@ -0,0 +1,135 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.components; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.Override; +import java.lang.String; +import java.util.List; + +/** + * Soc2Deliverable + * + *

SOC 2 report type and Trust Services Criteria for this segment, or null. + */ +public class Soc2Deliverable { + + @JsonProperty("reportType") + private AuditSoc2ReportType reportType; + + /** + * Trust Services Criteria this segment covers. + */ + @JsonProperty("tscs") + private List tscs; + + @JsonCreator + public Soc2Deliverable( + @JsonProperty("reportType") AuditSoc2ReportType reportType, + @JsonProperty("tscs") List tscs) { + Utils.checkNotNull(reportType, "reportType"); + Utils.checkNotNull(tscs, "tscs"); + this.reportType = reportType; + this.tscs = tscs; + } + + @JsonIgnore + public AuditSoc2ReportType reportType() { + return reportType; + } + + /** + * Trust Services Criteria this segment covers. + */ + @JsonIgnore + public List tscs() { + return tscs; + } + + public static Builder builder() { + return new Builder(); + } + + + public Soc2Deliverable withReportType(AuditSoc2ReportType reportType) { + Utils.checkNotNull(reportType, "reportType"); + this.reportType = reportType; + return this; + } + + /** + * Trust Services Criteria this segment covers. + */ + public Soc2Deliverable withTscs(List tscs) { + Utils.checkNotNull(tscs, "tscs"); + this.tscs = tscs; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Soc2Deliverable other = (Soc2Deliverable) o; + return + Utils.enhancedDeepEquals(this.reportType, other.reportType) && + Utils.enhancedDeepEquals(this.tscs, other.tscs); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + reportType, tscs); + } + + @Override + public String toString() { + return Utils.toString(Soc2Deliverable.class, + "reportType", reportType, + "tscs", tscs); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private AuditSoc2ReportType reportType; + + private List tscs; + + private Builder() { + // force use of static builder() method + } + + + public Builder reportType(AuditSoc2ReportType reportType) { + Utils.checkNotNull(reportType, "reportType"); + this.reportType = reportType; + return this; + } + + + /** + * Trust Services Criteria this segment covers. + */ + public Builder tscs(List tscs) { + Utils.checkNotNull(tscs, "tscs"); + this.tscs = tscs; + return this; + } + + public Soc2Deliverable build() { + + return new Soc2Deliverable( + reportType, tscs); + } + + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/System.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/System.java new file mode 100644 index 0000000..2167c32 --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/System.java @@ -0,0 +1,146 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.components; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.Override; +import java.lang.String; + +/** + * System + * + *

The information system this system segment is scoped to, or null on + * program segments. + */ +public class System { + /** + * The unique identifier of the associated business unit or information system. + */ + @JsonProperty("id") + private String id; + + /** + * The human-readable name of the associated business unit or information system. + */ + @JsonProperty("displayName") + private String displayName; + + @JsonCreator + public System( + @JsonProperty("id") String id, + @JsonProperty("displayName") String displayName) { + Utils.checkNotNull(id, "id"); + Utils.checkNotNull(displayName, "displayName"); + this.id = id; + this.displayName = displayName; + } + + /** + * The unique identifier of the associated business unit or information system. + */ + @JsonIgnore + public String id() { + return id; + } + + /** + * The human-readable name of the associated business unit or information system. + */ + @JsonIgnore + public String displayName() { + return displayName; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The unique identifier of the associated business unit or information system. + */ + public System withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + /** + * The human-readable name of the associated business unit or information system. + */ + public System withDisplayName(String displayName) { + Utils.checkNotNull(displayName, "displayName"); + this.displayName = displayName; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + System other = (System) o; + return + Utils.enhancedDeepEquals(this.id, other.id) && + Utils.enhancedDeepEquals(this.displayName, other.displayName); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + id, displayName); + } + + @Override + public String toString() { + return Utils.toString(System.class, + "id", id, + "displayName", displayName); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String id; + + private String displayName; + + private Builder() { + // force use of static builder() method + } + + + /** + * The unique identifier of the associated business unit or information system. + */ + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + + /** + * The human-readable name of the associated business unit or information system. + */ + public Builder displayName(String displayName) { + Utils.checkNotNull(displayName, "displayName"); + this.displayName = displayName; + return this; + } + + public System build() { + + return new System( + id, displayName); + } + + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/components/UpsertAuditControlAssessmentInput.java b/src/main/java/com/vanta/vanta_auditor_api/models/components/UpsertAuditControlAssessmentInput.java index 8b56b2c..e111c31 100644 --- a/src/main/java/com/vanta/vanta_auditor_api/models/components/UpsertAuditControlAssessmentInput.java +++ b/src/main/java/com/vanta/vanta_auditor_api/models/components/UpsertAuditControlAssessmentInput.java @@ -5,18 +5,30 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.vanta.vanta_auditor_api.utils.Utils; import java.lang.Override; import java.lang.String; +import java.util.Optional; /** * UpsertAuditControlAssessmentInput * *

Input for upserting a control's auditor assessment within an audit. Overwrites - * the single assessment for this control in the audit's program segment. + * the assessment for this control in the chosen program segment. */ public class UpsertAuditControlAssessmentInput { + /** + * The program segment to assess. Required when the audit has more than one + * program segment. Optional on a single-program audit (the only program is + * used). Must be a program segment on the audit; system segments are rejected. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("segmentId") + private Optional segmentId; + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -50,16 +62,37 @@ public class UpsertAuditControlAssessmentInput { @JsonCreator public UpsertAuditControlAssessmentInput( + @JsonProperty("segmentId") Optional segmentId, @JsonProperty("assessmentState") AuditControlAssessmentState assessmentState, @JsonProperty("justification") String justification, @JsonProperty("auditorEmail") String auditorEmail) { + Utils.checkNotNull(segmentId, "segmentId"); Utils.checkNotNull(assessmentState, "assessmentState"); Utils.checkNotNull(justification, "justification"); Utils.checkNotNull(auditorEmail, "auditorEmail"); + this.segmentId = segmentId; this.assessmentState = assessmentState; this.justification = justification; this.auditorEmail = auditorEmail; } + + public UpsertAuditControlAssessmentInput( + AuditControlAssessmentState assessmentState, + String justification, + String auditorEmail) { + this(Optional.empty(), assessmentState, justification, + auditorEmail); + } + + /** + * The program segment to assess. Required when the audit has more than one + * program segment. Optional on a single-program audit (the only program is + * used). Must be a program segment on the audit; system segments are rejected. + */ + @JsonIgnore + public Optional segmentId() { + return segmentId; + } /** * An auditor's assessment of a control within an audit. This is the full flat @@ -103,6 +136,29 @@ public static Builder builder() { } + /** + * The program segment to assess. Required when the audit has more than one + * program segment. Optional on a single-program audit (the only program is + * used). Must be a program segment on the audit; system segments are rejected. + */ + public UpsertAuditControlAssessmentInput withSegmentId(String segmentId) { + Utils.checkNotNull(segmentId, "segmentId"); + this.segmentId = Optional.ofNullable(segmentId); + return this; + } + + + /** + * The program segment to assess. Required when the audit has more than one + * program segment. Optional on a single-program audit (the only program is + * used). Must be a program segment on the audit; system segments are rejected. + */ + public UpsertAuditControlAssessmentInput withSegmentId(Optional segmentId) { + Utils.checkNotNull(segmentId, "segmentId"); + this.segmentId = segmentId; + return this; + } + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -153,6 +209,7 @@ public boolean equals(java.lang.Object o) { } UpsertAuditControlAssessmentInput other = (UpsertAuditControlAssessmentInput) o; return + Utils.enhancedDeepEquals(this.segmentId, other.segmentId) && Utils.enhancedDeepEquals(this.assessmentState, other.assessmentState) && Utils.enhancedDeepEquals(this.justification, other.justification) && Utils.enhancedDeepEquals(this.auditorEmail, other.auditorEmail); @@ -161,12 +218,14 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { return Utils.enhancedHash( - assessmentState, justification, auditorEmail); + segmentId, assessmentState, justification, + auditorEmail); } @Override public String toString() { return Utils.toString(UpsertAuditControlAssessmentInput.class, + "segmentId", segmentId, "assessmentState", assessmentState, "justification", justification, "auditorEmail", auditorEmail); @@ -175,6 +234,8 @@ public String toString() { @SuppressWarnings("UnusedReturnValue") public final static class Builder { + private Optional segmentId = Optional.empty(); + private AuditControlAssessmentState assessmentState; private String justification; @@ -186,6 +247,29 @@ private Builder() { } + /** + * The program segment to assess. Required when the audit has more than one + * program segment. Optional on a single-program audit (the only program is + * used). Must be a program segment on the audit; system segments are rejected. + */ + public Builder segmentId(String segmentId) { + Utils.checkNotNull(segmentId, "segmentId"); + this.segmentId = Optional.ofNullable(segmentId); + return this; + } + + /** + * The program segment to assess. Required when the audit has more than one + * program segment. Optional on a single-program audit (the only program is + * used). Must be a program segment on the audit; system segments are rejected. + */ + public Builder segmentId(Optional segmentId) { + Utils.checkNotNull(segmentId, "segmentId"); + this.segmentId = segmentId; + return this; + } + + /** * An auditor's assessment of a control within an audit. This is the full flat * union of every framework's assessment states (the superset); a given audit's @@ -231,7 +315,8 @@ public Builder auditorEmail(String auditorEmail) { public UpsertAuditControlAssessmentInput build() { return new UpsertAuditControlAssessmentInput( - assessmentState, justification, auditorEmail); + segmentId, assessmentState, justification, + auditorEmail); } } diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceRequest.java b/src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceRequest.java new file mode 100644 index 0000000..068ee6c --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceRequest.java @@ -0,0 +1,148 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.operations; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.vanta.vanta_auditor_api.utils.SpeakeasyMetadata; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.Override; +import java.lang.String; + + +public class GetInformationRequestEvidenceRequest { + + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=auditId") + private String auditId; + + + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=requestId") + private String requestId; + + + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=evidenceId") + private String evidenceId; + + @JsonCreator + public GetInformationRequestEvidenceRequest( + String auditId, + String requestId, + String evidenceId) { + Utils.checkNotNull(auditId, "auditId"); + Utils.checkNotNull(requestId, "requestId"); + Utils.checkNotNull(evidenceId, "evidenceId"); + this.auditId = auditId; + this.requestId = requestId; + this.evidenceId = evidenceId; + } + + @JsonIgnore + public String auditId() { + return auditId; + } + + @JsonIgnore + public String requestId() { + return requestId; + } + + @JsonIgnore + public String evidenceId() { + return evidenceId; + } + + public static Builder builder() { + return new Builder(); + } + + + public GetInformationRequestEvidenceRequest withAuditId(String auditId) { + Utils.checkNotNull(auditId, "auditId"); + this.auditId = auditId; + return this; + } + + public GetInformationRequestEvidenceRequest withRequestId(String requestId) { + Utils.checkNotNull(requestId, "requestId"); + this.requestId = requestId; + return this; + } + + public GetInformationRequestEvidenceRequest withEvidenceId(String evidenceId) { + Utils.checkNotNull(evidenceId, "evidenceId"); + this.evidenceId = evidenceId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetInformationRequestEvidenceRequest other = (GetInformationRequestEvidenceRequest) o; + return + Utils.enhancedDeepEquals(this.auditId, other.auditId) && + Utils.enhancedDeepEquals(this.requestId, other.requestId) && + Utils.enhancedDeepEquals(this.evidenceId, other.evidenceId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + auditId, requestId, evidenceId); + } + + @Override + public String toString() { + return Utils.toString(GetInformationRequestEvidenceRequest.class, + "auditId", auditId, + "requestId", requestId, + "evidenceId", evidenceId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String auditId; + + private String requestId; + + private String evidenceId; + + private Builder() { + // force use of static builder() method + } + + + public Builder auditId(String auditId) { + Utils.checkNotNull(auditId, "auditId"); + this.auditId = auditId; + return this; + } + + + public Builder requestId(String requestId) { + Utils.checkNotNull(requestId, "requestId"); + this.requestId = requestId; + return this; + } + + + public Builder evidenceId(String evidenceId) { + Utils.checkNotNull(evidenceId, "evidenceId"); + this.evidenceId = evidenceId; + return this; + } + + public GetInformationRequestEvidenceRequest build() { + + return new GetInformationRequestEvidenceRequest( + auditId, requestId, evidenceId); + } + + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceRequestBuilder.java b/src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceRequestBuilder.java new file mode 100644 index 0000000..c181e3f --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceRequestBuilder.java @@ -0,0 +1,62 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.operations; + +import static com.vanta.vanta_auditor_api.operations.Operations.RequestOperation; + +import com.vanta.vanta_auditor_api.SDKConfiguration; +import com.vanta.vanta_auditor_api.operations.GetInformationRequestEvidence; +import com.vanta.vanta_auditor_api.utils.Headers; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.String; + +public class GetInformationRequestEvidenceRequestBuilder { + + private String auditId; + private String requestId; + private String evidenceId; + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public GetInformationRequestEvidenceRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public GetInformationRequestEvidenceRequestBuilder auditId(String auditId) { + Utils.checkNotNull(auditId, "auditId"); + this.auditId = auditId; + return this; + } + + public GetInformationRequestEvidenceRequestBuilder requestId(String requestId) { + Utils.checkNotNull(requestId, "requestId"); + this.requestId = requestId; + return this; + } + + public GetInformationRequestEvidenceRequestBuilder evidenceId(String evidenceId) { + Utils.checkNotNull(evidenceId, "evidenceId"); + this.evidenceId = evidenceId; + return this; + } + + + private GetInformationRequestEvidenceRequest buildRequest() { + + GetInformationRequestEvidenceRequest request = new GetInformationRequestEvidenceRequest(auditId, + requestId, + evidenceId); + + return request; + } + + public GetInformationRequestEvidenceResponse call() { + + RequestOperation operation + = new GetInformationRequestEvidence.Sync(sdkConfiguration, _headers); + GetInformationRequestEvidenceRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceResponse.java b/src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceResponse.java new file mode 100644 index 0000000..3831698 --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/operations/GetInformationRequestEvidenceResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.operations; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.vanta.vanta_auditor_api.models.components.InformationRequestEvidence; +import com.vanta.vanta_auditor_api.utils.Response; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.io.InputStream; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.net.http.HttpResponse; +import java.util.Optional; + + +public class GetInformationRequestEvidenceResponse implements Response { + /** + * HTTP response content type for this operation + */ + private String contentType; + + /** + * HTTP response status code for this operation + */ + private int statusCode; + + /** + * Raw HTTP response; suitable for custom response parsing + */ + private HttpResponse rawResponse; + + /** + * Ok + */ + private Optional informationRequestEvidence; + + @JsonCreator + public GetInformationRequestEvidenceResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional informationRequestEvidence) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.informationRequestEvidence = informationRequestEvidence; + } + + public GetInformationRequestEvidenceResponse( + String contentType, + int statusCode, + HttpResponse rawResponse) { + this(contentType, statusCode, rawResponse, + Optional.empty()); + } + + /** + * HTTP response content type for this operation + */ + @JsonIgnore + public String contentType() { + return contentType; + } + + /** + * HTTP response status code for this operation + */ + @JsonIgnore + public int statusCode() { + return statusCode; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @JsonIgnore + public HttpResponse rawResponse() { + return rawResponse; + } + + /** + * Ok + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional informationRequestEvidence() { + return (Optional) informationRequestEvidence; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public GetInformationRequestEvidenceResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public GetInformationRequestEvidenceResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetInformationRequestEvidenceResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * Ok + */ + public GetInformationRequestEvidenceResponse withInformationRequestEvidence(InformationRequestEvidence informationRequestEvidence) { + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.informationRequestEvidence = Optional.ofNullable(informationRequestEvidence); + return this; + } + + + /** + * Ok + */ + public GetInformationRequestEvidenceResponse withInformationRequestEvidence(Optional informationRequestEvidence) { + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.informationRequestEvidence = informationRequestEvidence; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetInformationRequestEvidenceResponse other = (GetInformationRequestEvidenceResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.informationRequestEvidence, other.informationRequestEvidence); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + informationRequestEvidence); + } + + @Override + public String toString() { + return Utils.toString(GetInformationRequestEvidenceResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "informationRequestEvidence", informationRequestEvidence); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional informationRequestEvidence = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * HTTP response content type for this operation + */ + public Builder contentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + + /** + * HTTP response status code for this operation + */ + public Builder statusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + + /** + * Ok + */ + public Builder informationRequestEvidence(InformationRequestEvidence informationRequestEvidence) { + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.informationRequestEvidence = Optional.ofNullable(informationRequestEvidence); + return this; + } + + /** + * Ok + */ + public Builder informationRequestEvidence(Optional informationRequestEvidence) { + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.informationRequestEvidence = informationRequestEvidence; + return this; + } + + public GetInformationRequestEvidenceResponse build() { + + return new GetInformationRequestEvidenceResponse( + contentType, statusCode, rawResponse, + informationRequestEvidence); + } + + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/operations/async/GetInformationRequestEvidenceRequestBuilder.java b/src/main/java/com/vanta/vanta_auditor_api/models/operations/async/GetInformationRequestEvidenceRequestBuilder.java new file mode 100644 index 0000000..f6fb17a --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/operations/async/GetInformationRequestEvidenceRequestBuilder.java @@ -0,0 +1,65 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.operations.async; + +import static com.vanta.vanta_auditor_api.operations.Operations.AsyncRequestOperation; + +import com.vanta.vanta_auditor_api.SDKConfiguration; +import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestEvidenceRequest; +import com.vanta.vanta_auditor_api.operations.GetInformationRequestEvidence; +import com.vanta.vanta_auditor_api.utils.Headers; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.String; +import java.util.concurrent.CompletableFuture; + +public class GetInformationRequestEvidenceRequestBuilder { + + private String auditId; + private String requestId; + private String evidenceId; + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public GetInformationRequestEvidenceRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public GetInformationRequestEvidenceRequestBuilder auditId(String auditId) { + Utils.checkNotNull(auditId, "auditId"); + this.auditId = auditId; + return this; + } + + public GetInformationRequestEvidenceRequestBuilder requestId(String requestId) { + Utils.checkNotNull(requestId, "requestId"); + this.requestId = requestId; + return this; + } + + public GetInformationRequestEvidenceRequestBuilder evidenceId(String evidenceId) { + Utils.checkNotNull(evidenceId, "evidenceId"); + this.evidenceId = evidenceId; + return this; + } + + + private GetInformationRequestEvidenceRequest buildRequest() { + + GetInformationRequestEvidenceRequest request = new GetInformationRequestEvidenceRequest(auditId, + requestId, + evidenceId); + + return request; + } + + public CompletableFuture call() { + + AsyncRequestOperation operation + = new GetInformationRequestEvidence.Async(sdkConfiguration, _headers); + GetInformationRequestEvidenceRequest request = buildRequest(); + + return operation.doRequest(request) + .thenCompose(operation::handleResponse); + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/models/operations/async/GetInformationRequestEvidenceResponse.java b/src/main/java/com/vanta/vanta_auditor_api/models/operations/async/GetInformationRequestEvidenceResponse.java new file mode 100644 index 0000000..8266d05 --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/models/operations/async/GetInformationRequestEvidenceResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.models.operations.async; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.vanta.vanta_auditor_api.models.components.InformationRequestEvidence; +import com.vanta.vanta_auditor_api.utils.AsyncResponse; +import com.vanta.vanta_auditor_api.utils.Blob; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.net.http.HttpResponse; +import java.util.Optional; + + +public class GetInformationRequestEvidenceResponse implements AsyncResponse { + /** + * HTTP response content type for this operation + */ + private String contentType; + + /** + * HTTP response status code for this operation + */ + private int statusCode; + + /** + * Raw HTTP response; suitable for custom response parsing + */ + private HttpResponse rawResponse; + + /** + * Ok + */ + private Optional informationRequestEvidence; + + @JsonCreator + public GetInformationRequestEvidenceResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional informationRequestEvidence) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.informationRequestEvidence = informationRequestEvidence; + } + + public GetInformationRequestEvidenceResponse( + String contentType, + int statusCode, + HttpResponse rawResponse) { + this(contentType, statusCode, rawResponse, + Optional.empty()); + } + + /** + * HTTP response content type for this operation + */ + @JsonIgnore + public String contentType() { + return contentType; + } + + /** + * HTTP response status code for this operation + */ + @JsonIgnore + public int statusCode() { + return statusCode; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @JsonIgnore + public HttpResponse rawResponse() { + return rawResponse; + } + + /** + * Ok + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional informationRequestEvidence() { + return (Optional) informationRequestEvidence; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public GetInformationRequestEvidenceResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public GetInformationRequestEvidenceResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetInformationRequestEvidenceResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * Ok + */ + public GetInformationRequestEvidenceResponse withInformationRequestEvidence(InformationRequestEvidence informationRequestEvidence) { + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.informationRequestEvidence = Optional.ofNullable(informationRequestEvidence); + return this; + } + + + /** + * Ok + */ + public GetInformationRequestEvidenceResponse withInformationRequestEvidence(Optional informationRequestEvidence) { + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.informationRequestEvidence = informationRequestEvidence; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetInformationRequestEvidenceResponse other = (GetInformationRequestEvidenceResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.informationRequestEvidence, other.informationRequestEvidence); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + informationRequestEvidence); + } + + @Override + public String toString() { + return Utils.toString(GetInformationRequestEvidenceResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "informationRequestEvidence", informationRequestEvidence); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional informationRequestEvidence = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * HTTP response content type for this operation + */ + public Builder contentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + + /** + * HTTP response status code for this operation + */ + public Builder statusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + + /** + * Ok + */ + public Builder informationRequestEvidence(InformationRequestEvidence informationRequestEvidence) { + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.informationRequestEvidence = Optional.ofNullable(informationRequestEvidence); + return this; + } + + /** + * Ok + */ + public Builder informationRequestEvidence(Optional informationRequestEvidence) { + Utils.checkNotNull(informationRequestEvidence, "informationRequestEvidence"); + this.informationRequestEvidence = informationRequestEvidence; + return this; + } + + public GetInformationRequestEvidenceResponse build() { + + return new GetInformationRequestEvidenceResponse( + contentType, statusCode, rawResponse, + informationRequestEvidence); + } + + } +} diff --git a/src/main/java/com/vanta/vanta_auditor_api/operations/GetInformationRequestEvidence.java b/src/main/java/com/vanta/vanta_auditor_api/operations/GetInformationRequestEvidence.java new file mode 100644 index 0000000..937848c --- /dev/null +++ b/src/main/java/com/vanta/vanta_auditor_api/operations/GetInformationRequestEvidence.java @@ -0,0 +1,244 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.vanta.vanta_auditor_api.operations; + +import static com.vanta.vanta_auditor_api.operations.Operations.RequestOperation; +import static com.vanta.vanta_auditor_api.utils.Exceptions.unchecked; +import static com.vanta.vanta_auditor_api.operations.Operations.AsyncRequestOperation; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.vanta.vanta_auditor_api.SDKConfiguration; +import com.vanta.vanta_auditor_api.SecuritySource; +import com.vanta.vanta_auditor_api.models.components.InformationRequestEvidence; +import com.vanta.vanta_auditor_api.models.errors.APIException; +import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestEvidenceRequest; +import com.vanta.vanta_auditor_api.models.operations.GetInformationRequestEvidenceResponse; +import com.vanta.vanta_auditor_api.utils.Blob; +import com.vanta.vanta_auditor_api.utils.HTTPClient; +import com.vanta.vanta_auditor_api.utils.HTTPRequest; +import com.vanta.vanta_auditor_api.utils.Headers; +import com.vanta.vanta_auditor_api.utils.Hook.AfterErrorContextImpl; +import com.vanta.vanta_auditor_api.utils.Hook.AfterSuccessContextImpl; +import com.vanta.vanta_auditor_api.utils.Hook.BeforeRequestContextImpl; +import com.vanta.vanta_auditor_api.utils.Utils; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.lang.Throwable; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; + + +public class GetInformationRequestEvidence { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final HTTPClient client; + final Headers _headers; + + public Base(SDKConfiguration sdkConfiguration, Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "GetInformationRequestEvidence", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "GetInformationRequestEvidence", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "GetInformationRequestEvidence", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/audits/{auditId}/information-requests/{requestId}/evidence/{evidenceId}", + request, null); + HTTPRequest req = new HTTPRequest(url, "GET"); + req.addHeader("Accept", "application/json") + .addHeader("user-agent", SDKConfiguration.USER_AGENT); + _headers.forEach((k, list) -> list.forEach(v -> req.addHeader(k, v))); + Utils.configureSecurity(req, this.sdkConfiguration.securitySource().getSecurity()); + + return req.build(); + } + } + + public static class Sync extends Base + implements RequestOperation { + public Sync(SDKConfiguration sdkConfiguration, Headers _headers) { + super(sdkConfiguration, _headers); + } + + private HttpRequest onBuildRequest(GetInformationRequestEvidenceRequest request) throws Exception { + HttpRequest req = buildRequest(request, GetInformationRequestEvidenceRequest.class); + return sdkConfiguration.hooks().beforeRequest(createBeforeRequestContext(), req); + } + + private HttpResponse onError(HttpResponse response, Exception error) throws Exception { + return sdkConfiguration.hooks().afterError( + createAfterErrorContext(), + Optional.ofNullable(response), + Optional.ofNullable(error)); + } + + private HttpResponse onSuccess(HttpResponse response) throws Exception { + return sdkConfiguration.hooks().afterSuccess(createAfterSuccessContext(), response); + } + + @Override + public HttpResponse doRequest(GetInformationRequestEvidenceRequest request) { + HttpRequest r = unchecked(() -> onBuildRequest(request)).get(); + HttpResponse httpRes; + try { + httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + httpRes = onError(httpRes, null); + } else { + httpRes = onSuccess(httpRes); + } + } catch (Exception e) { + httpRes = unchecked(() -> onError(null, e)).get(); + } + + return httpRes; + } + + + @Override + public GetInformationRequestEvidenceResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + GetInformationRequestEvidenceResponse.Builder resBuilder = + GetInformationRequestEvidenceResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + GetInformationRequestEvidenceResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withInformationRequestEvidence(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw APIException.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw APIException.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw APIException.from("API error occurred", response); + } + throw APIException.from("Unexpected status code received: " + response.statusCode(), response); + } + } + public static class Async extends Base + implements AsyncRequestOperation { + + public Async(SDKConfiguration sdkConfiguration, Headers _headers) { + super(sdkConfiguration, _headers); + } + + private CompletableFuture onBuildRequest(GetInformationRequestEvidenceRequest request) throws Exception { + HttpRequest req = buildRequest(request, GetInformationRequestEvidenceRequest.class); + return this.sdkConfiguration.asyncHooks().beforeRequest(createBeforeRequestContext(), req); + } + + private CompletableFuture> onError(HttpResponse response, Throwable error) { + return this.sdkConfiguration.asyncHooks().afterError(createAfterErrorContext(), response, error); + } + + private CompletableFuture> onSuccess(HttpResponse response) { + return this.sdkConfiguration.asyncHooks().afterSuccess(createAfterSuccessContext(), response); + } + + @Override + public CompletableFuture> doRequest(GetInformationRequestEvidenceRequest request) { + return unchecked(() -> onBuildRequest(request)).get().thenCompose(client::sendAsync) + .handle((resp, err) -> { + if (err != null) { + return onError(null, err); + } + if (Utils.statusCodeMatches(resp.statusCode(), "4XX", "5XX")) { + return onError(resp, null); + } + return CompletableFuture.completedFuture(resp); + }) + .thenCompose(Function.identity()) + .thenCompose(this::onSuccess); + } + + @Override + public CompletableFuture handleResponse( + HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + com.vanta.vanta_auditor_api.models.operations.async.GetInformationRequestEvidenceResponse.Builder resBuilder = + com.vanta.vanta_auditor_api.models.operations.async.GetInformationRequestEvidenceResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + com.vanta.vanta_auditor_api.models.operations.async.GetInformationRequestEvidenceResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return Utils.unmarshalAsync(response, new TypeReference() {}) + .thenApply(res::withInformationRequestEvidence); + } else { + return Utils.createAsyncApiError(response, "Unexpected content-type received: " + contentType); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + return Utils.createAsyncApiError(response, "API error occurred"); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + return Utils.createAsyncApiError(response, "API error occurred"); + } + return Utils.createAsyncApiError(response, "Unexpected status code received: " + response.statusCode()); + } + } +}