diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 9dc3b475..5e32cfe0 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,25 +1,25 @@ lockVersion: 2.0.0 id: 1d22a5a4-8bac-42e3-b164-121fcacf66c9 management: - docChecksum: 02b24072d85acb936c20096395533907 + docChecksum: a50b5e4da9b53aa838201bcc1a2cba0a docVersion: "2026-05-12" - speakeasyVersion: 1.793.0 - generationVersion: 2.928.0 - releaseVersion: 6.0.0 - configChecksum: 41fc30a9c5ba669d1b989e561fe1850b + speakeasyVersion: 1.797.0 + generationVersion: 2.937.18 + releaseVersion: 6.1.0 + configChecksum: c8793a5edefe2fcbc56dbadb8c92cc83 repoURL: https://github.com/clerk/clerk-sdk-java.git installationURL: https://github.com/clerk/clerk-sdk-java published: true persistentEdits: - generation_id: 948e5646-dddc-43ff-91fd-6277fa8a847b - pristine_commit_hash: 5f23a6cc93c0283be6c0b73bd82789801e09c1a9 - pristine_tree_hash: ab74e69a797d35f453d8bebf2f79afac27a8d757 + generation_id: 4948a2ca-940d-45e5-93ba-ad334702d62d + pristine_commit_hash: 7c39e62a50989cf6baef384258a8801cbe4166df + pristine_tree_hash: cad4f8ca1b2efb289ee9dea45df56627b0a9f297 features: java: additionalDependencies: 0.1.0 additionalProperties: 0.0.2 constsAndDefaults: 0.1.3 - core: 3.56.1 + core: 3.57.2 deprecations: 2.81.2 examples: 2.81.9 flattening: 2.81.1 @@ -31,9 +31,9 @@ features: nameOverrides: 2.81.5 nullables: 0.1.1 openEnums: 0.2.0 - retries: 0.1.3 + retries: 0.1.4 sdkHooks: 1.2.0 - unions: 0.3.7 + unions: 0.3.8 uploadStreams: 0.1.0 trackedFiles: .gitattributes: @@ -108,6 +108,10 @@ trackedFiles: id: 979e7d519592 last_write_checksum: sha1:b1c1380879d5d4c8c06b5d6caeb389ab4d7214b6 pristine_git_object: bf577f5f6df03d60f9804b1a7cc710bb3ecf7030 + docs/models/components/AmountOff.md: + id: 91a08ef1da9f + last_write_checksum: sha1:fe5dcbf679f4ea12ba775f578c5aea84a9c1616e + pristine_git_object: b499c3bb1346886f5582a4e71a1f32aab79ed1b9 docs/models/components/AnnualFee.md: id: 05f92f069880 last_write_checksum: sha1:fc109b1863c9bf612261e2bd3d1bd81064deed76 @@ -116,6 +120,14 @@ trackedFiles: id: 7e3f6e5d5446 last_write_checksum: sha1:9a09e6a428bf11b538f7b3bf70e9b61087be53d6 pristine_git_object: 80aff4a0c9d4d9e43e7a526a433900ad23dc8cc3 + docs/models/components/ApplyCommerceDiscountRequest.md: + id: beacfdc9184d + last_write_checksum: sha1:0e99ed1817c411b79c9a8d4043fdb15b9c2cbef0 + pristine_git_object: c104148c644b1538f36e8a4926319ad03b1b8dd5 + docs/models/components/AutomationDisposition.md: + id: 9d0e7e928292 + last_write_checksum: sha1:cc209f06a2dea847d17aab4b1eef0c3a79b1e72c + pristine_git_object: b258f2ba9249ea12906364ed424f88eae755b156 docs/models/components/Balance.md: id: e905195631b8 last_write_checksum: sha1:1c5eb1077ccb26caf6abefa61245966fc8289215 @@ -192,6 +204,30 @@ trackedFiles: id: c7e9fef991e2 last_write_checksum: sha1:51a39cc29ca2728c1dbbc6f7159e1d1dd14309b5 pristine_git_object: 7e429785d2cc0d2e0d175e1ae5635a71a1361695 + docs/models/components/BiometricCredential.md: + id: a5028fa4a1fb + last_write_checksum: sha1:2b84ef3178e9990050e3acc4b98e1e20ee6d0535 + pristine_git_object: ee3870098b3eb9410839d2074f71681ce8675dfc + docs/models/components/BiometricCredentialAlgorithm.md: + id: e685b51179eb + last_write_checksum: sha1:36982b7d9f737890ac237f00195443459eb12f62 + pristine_git_object: 58d86fdba8421839e8db904cf93c3c7184d518ab + docs/models/components/BiometricCredentialList.md: + id: 61d88759c45f + last_write_checksum: sha1:6aead1cb27926cc5da495ddd50719b64d15f55dc + pristine_git_object: ad7b772cfe6d7bbc5ddf1e765389cca2707896d0 + docs/models/components/BiometricCredentialObject.md: + id: 3a4548e9ee6c + last_write_checksum: sha1:b64b7fb12d15a40ff68544771a4a048fc6ec401b + pristine_git_object: 7ee431104b95acec0ddcbb92fe94af591dc1e00b + docs/models/components/BiometricCredentialPlatform.md: + id: a10166b594bf + last_write_checksum: sha1:573b27a4d80aa275a42c4f6042e957e073b8fa8d + pristine_git_object: 2cb79749dae2b7dc081cde5596327836cb71ab66 + docs/models/components/BiometricCredentialStatus.md: + id: 281372ae618f + last_write_checksum: sha1:c6a8ad5f4a16486b481b801c0a3f6bc2a4697f85 + pristine_git_object: d220cc572f31cabd4557c461e813de05e9e631dc docs/models/components/BlocklistIdentifier.md: id: 6a354d58cb70 last_write_checksum: sha1:2afbcc755a76d11a1da0a8cec176f908f5470e3f @@ -232,6 +268,22 @@ trackedFiles: id: 92ea5fd66f05 last_write_checksum: sha1:55143977c00287dc27a1d7f362dd3ec680926b0b pristine_git_object: eb0a22365bfc3e34089c9ad93de9de14a90a542f + docs/models/components/CommerceDiscountRedemptionResponse.md: + id: 1853d705b364 + last_write_checksum: sha1:c932ad9710eed772166a3caab9be0e06f5f9bbee + pristine_git_object: 61a3c645c21acb4ab39b56442eb806d63ad950ab + docs/models/components/CommerceDiscountRedemptionResponseAmount.md: + id: cd8ec2ca8f01 + last_write_checksum: sha1:73fba51658938a14501cbdb00e9beeec94a329ba + pristine_git_object: d53fcdbe5f73d1db573e11fe7295779c47610467 + docs/models/components/CommerceDiscountRedemptionResponseObject.md: + id: b7bf84a272a0 + last_write_checksum: sha1:ba70cf380dd8fd7e1be30a6faa831d6a35474d20 + pristine_git_object: 4880d5ad22cfb76bef8cf9749399aa3b4695b186 + docs/models/components/CommerceDiscountRedemptionResponseStatus.md: + id: 5e1844045cca + last_write_checksum: sha1:e12a3f22dc94dff47b563ec6311d6f6d1bcb3525 + pristine_git_object: da8b7ffe639008e42221a9d447b9ad2e1d72f077 docs/models/components/CommerceMoneyResponse.md: id: e319b813a90c last_write_checksum: sha1:6af9a266a5753b17d6cb29aba063534be800a271 @@ -570,8 +622,8 @@ trackedFiles: pristine_git_object: 480543fcb9c5e18d4a4f6cf97c3a7058cae1d0ef docs/models/components/CreateBillingPriceRequest.md: id: b0a52e1238e7 - last_write_checksum: sha1:d120e96aaca343ff280561e09fde6b4c3fe50d0e - pristine_git_object: b00896c7ab90fb4a7d965a8600bea4bef34b11f0 + last_write_checksum: sha1:7f5d55e2b868f80590895cbf0c858880274a7000 + pristine_git_object: d57dae26fcc72490770f8438cc2be389d2109e7b docs/models/components/CreateBillingPriceRequestSupportedBillingPeriods.md: id: ba9a750ca684 last_write_checksum: sha1:9ce8e9b3b401e2243c427fe075062d26f6f6da8f @@ -590,8 +642,12 @@ trackedFiles: pristine_git_object: c4515e4e2e8fafc4a9248e5f6b99700ae6088c01 docs/models/components/CustomAttributes.md: id: 4f2fbd9f4faa - last_write_checksum: sha1:f6c1bb4d28c0a2d9ae1183a40a1e483fa8234f8f - pristine_git_object: 952a97f134cbf9c088c3aa7d479941600ca6cae5 + last_write_checksum: sha1:dfb96018965ff56332533304ae0bed2bb1bd8ffc + pristine_git_object: 6ed04c23a2ec9da98b822939a74fcc4244db58f1 + docs/models/components/DNSTarget.md: + id: 96ac8378cf1c + last_write_checksum: sha1:4b52b9bdb9bac07aaf5a602725ded981dff9fdda + pristine_git_object: 4930b0024e1e61c0987479728add61a49c21a994 docs/models/components/DefaultRole.md: id: be3c00337ff3 last_write_checksum: sha1:cf3f81b8040b3b0760aece31426d1fb678b2779b @@ -600,14 +656,50 @@ trackedFiles: id: fb565a752242 last_write_checksum: sha1:3514752aac09e9334bc2d3605ac9d7d1bca92778 pristine_git_object: e599c09561bebe2f347cd7d077b38076d82a02c8 + docs/models/components/Directory.md: + id: d2f2d7195da8 + last_write_checksum: sha1:d123fa5af9e90b44ccca544a92d4e028e601830b + pristine_git_object: 232bc55ed1e5dff7e4e3a8c2609fafefee36021f + docs/models/components/DirectoryCustomAttributes.md: + id: 1e7e8a18d380 + last_write_checksum: sha1:bb1b470878e427a70c03fd252dc15965687d5011 + pristine_git_object: 59f09da5c311c73ba558cac0a1cb9f1e5b34b2c4 + docs/models/components/DirectoryGroupRoleMapping.md: + id: a0aa95569938 + last_write_checksum: sha1:54b4b8306d989ba13c67e8777ef5a3b316d15781 + pristine_git_object: 54276f8219dacdc49801455c9924e76a758f9ae0 + docs/models/components/DirectoryGroupRoleMappingDeleted.md: + id: 761068b86142 + last_write_checksum: sha1:a521d686644475122fdac10c66dd78c21fb5dd8b + pristine_git_object: 358eee711ba6c81f9438d344e5cf489a8b400092 + docs/models/components/DirectoryGroupRoleMappingDeletedObject.md: + id: 9a1ca3b1a2b2 + last_write_checksum: sha1:314cf96aad46c1c018c7cdb0666d6f73e7cc9385 + pristine_git_object: 8a1deeebfd0bb385b0f895effaf92de93fda9b97 + docs/models/components/DirectoryGroupRoleMappingList.md: + id: a5482658d0f4 + last_write_checksum: sha1:d82583ecf1cdbc209aae9a8b1e9532290eadebd7 + pristine_git_object: 4ffee3937467ae66669c14c22ede4864e23dd83f + docs/models/components/DirectoryGroupRoleMappingObject.md: + id: ea2753358d69 + last_write_checksum: sha1:179555f42dca32f277f7956da35349a5562cdc19 + pristine_git_object: e23eaf7e09156847d84b0a4689c19a600d6ee50f + docs/models/components/DirectoryList.md: + id: e11a5b53fb8c + last_write_checksum: sha1:80f5be23414f7db2a4eace8532d7582436bb8d5b + pristine_git_object: 787a0370e25daf31ba47a92641d1e886e531aade + docs/models/components/DirectoryObject.md: + id: 6e192e2c13af + last_write_checksum: sha1:cdf0bf308c62c92d21de31b87db583ff2f11c87b + pristine_git_object: a270a20c5d1fbffc13d5993ef73a743da4ef1f7a docs/models/components/Discounts.md: id: 4374e7fb7e0d last_write_checksum: sha1:20ed38c7928828295aad599e191dc8777e1b94da pristine_git_object: ed035ff66cf5851cefa36847082d359f43375063 docs/models/components/Domain.md: id: 066bd2720e91 - last_write_checksum: sha1:81ac8b6a33c0d0b9517a87f9add111241e77ef37 - pristine_git_object: cfb9d43bfc6e7498e8a61fdd248caea71217738d + last_write_checksum: sha1:1bf757072936f515a4a789dd26af1078d0795f02 + pristine_git_object: 1199d4dd6ad7a09fc569a2f45d2bfeb619bc0141 docs/models/components/DomainObject.md: id: 66ee6092758e last_write_checksum: sha1:0236389e529118cf0a4013b45b436a9c07755d1b @@ -620,6 +712,10 @@ trackedFiles: id: 37e38b1d4cbe last_write_checksum: sha1:d0b553c0ba8aab75ce11df68e39054895d446776 pristine_git_object: ed72a3527834be7b53ad04ec42b64ea49be69c7d + docs/models/components/Effect.md: + id: 151c69ac1ac7 + last_write_checksum: sha1:d7b22d4b8a94efde221afbcd2091b3ab1723e338 + pristine_git_object: 83dd3859c500acbbec51ab76a90d0bf6211b0f83 docs/models/components/EffectiveMode.md: id: e13388709a5c last_write_checksum: sha1:a519c6c8ffc34086ce7bc515cf0a7062c7eaf131 @@ -778,8 +874,8 @@ trackedFiles: pristine_git_object: 372b7e38dcf011066dee604964d8237746123aed docs/models/components/Instance.md: id: f86f8a3b26be - last_write_checksum: sha1:ed26965915d3b0387b7ef70cd404e192718327df - pristine_git_object: c0940739ec5ab3ca0b794369de43170c34245e67 + last_write_checksum: sha1:75a6d91872b26ac99a96cb4f3b55793c674c87fc + pristine_git_object: 00f9eafa05f83ec97b2607a88c49d4997172477a docs/models/components/InstanceCommunication.md: id: ae2fcd0b0421 last_write_checksum: sha1:90887cc51da342698824535ac2aafccbc26107dd @@ -794,8 +890,8 @@ trackedFiles: pristine_git_object: c100f0fa537e64beeb1df23d4669b74581f4f65a docs/models/components/InstanceProtect.md: id: 5526cd7682a9 - last_write_checksum: sha1:77692060a54c38d258a628841cd4c5018cd42fad - pristine_git_object: c1449172e80a81551d1ec8255f74cab2d5a90911 + last_write_checksum: sha1:71028670745f1dddd3407a23e7bda04f9754b22d + pristine_git_object: 6485e64737b700ce0c1ac553ac41cff7a2fab371 docs/models/components/InstanceProtectObject.md: id: da628a04397d last_write_checksum: sha1:abf766d6bc95f0ad8aebb257fe77a34d1c28ba73 @@ -810,8 +906,8 @@ trackedFiles: pristine_git_object: 7307a183193bb236a6730503abc9a664b4fcc58e docs/models/components/InstanceSettings.md: id: 8aa3ff5b98f1 - last_write_checksum: sha1:bc4e4af0107cb061a54c0b65f5c54237aafa6b6a - pristine_git_object: ee0eff92e3f799c0ec414cd70fccad8e64728f5d + last_write_checksum: sha1:eb1ae425feaa960335497d5ee04e7b8b5d4d0c34 + pristine_git_object: 19744f4e8c9bed034c90ca0aea969150bf1d14ac docs/models/components/InstanceSettingsObject.md: id: 574134b9c90f last_write_checksum: sha1:4ba0e4d59943e598d063867f2898d8cafd655b87 @@ -958,24 +1054,24 @@ trackedFiles: pristine_git_object: 52a427269211780b37fb10a954fafbf94a007fac docs/models/components/OAuthApplication.md: id: abb0fbac17c0 - last_write_checksum: sha1:5744e8db5b993f2a29749110e20bf8d8833f7e91 - pristine_git_object: 505d599fa1299903f62ea5e10622ac717034e222 + last_write_checksum: sha1:d0e8082fbf2c28b0607f692c9aef59bef21970df + pristine_git_object: 3c93402cb21a5534ce822d79afd046128c5b9138 docs/models/components/OAuthApplicationObject.md: id: a8308946ebb1 last_write_checksum: sha1:b2ad16eee85fcbb7182a0b545e32fbff5eb4f7b6 pristine_git_object: 08cf61471ff915385dea966e1b34eb1a2fd8db54 docs/models/components/OAuthApplicationSettings.md: id: b259cb5a3038 - last_write_checksum: sha1:4da74c80291695505521367a402063ec595d19a7 - pristine_git_object: 118ef7dad0273f1dcd46d4b6a82535e0b89113da + last_write_checksum: sha1:268435694b8af99cc794229ec0cb3ac0ac0d1ad2 + pristine_git_object: 2da44742c1eb920171c71c2d34b309b4d85adb9b docs/models/components/OAuthApplicationSettingsObject.md: id: befa70a22487 last_write_checksum: sha1:867255360318858fdde96d5ee3ff2d1b88afc132 pristine_git_object: df82e2de1666f6a55a0b7ec82fea1d4c8faf1d10 docs/models/components/OAuthApplicationWithSecret.md: id: 1b498df4d655 - last_write_checksum: sha1:da596a8a2ecd121f164fa71f703b1b780f5d9787 - pristine_git_object: 6150b39eba2199f27f579919a16b37ab0654e725 + last_write_checksum: sha1:99ca798e4fca1b7ef7bdfe002b7eec5b0be094b7 + pristine_git_object: 27d9852a0a40e5a4a691c9913d24f233339abc0b docs/models/components/OAuthApplicationWithSecretObject.md: id: 9430ed65fc20 last_write_checksum: sha1:ff59ccdbb66fb7fec71db61ff66140cef53b8f39 @@ -1002,8 +1098,8 @@ trackedFiles: pristine_git_object: ca49ddd0619c5763b302a602b9dba3c386dbdc0e docs/models/components/Organization.md: id: 63e359b91c0e - last_write_checksum: sha1:6077b50f98e25ecd198f73bb8dea7a2e30bd8fef - pristine_git_object: 4e16d47277e85cfdf46b918457a3aa61acfca42e + last_write_checksum: sha1:b31db402a2c9c37eae3d850975249708b41046a7 + pristine_git_object: 9882d2dbcec33313959be1fa9a144886bf544af6 docs/models/components/OrganizationDomain.md: id: e6e39f422211 last_write_checksum: sha1:977233e9c2f7ebfa30f7db21476f13684c3bcbc8 @@ -1062,8 +1158,8 @@ trackedFiles: pristine_git_object: 0855b3d3f8674fdeeea79280f723cc8383da7629 docs/models/components/OrganizationMembershipOrganization.md: id: e7a7216b7de5 - last_write_checksum: sha1:02ad0b4ba8f1db29fc5f8dd4eab93e436f4ff97f - pristine_git_object: fe788b532d1422dec5b42921507d8c770fcd1240 + last_write_checksum: sha1:9e5f7a1cd99ae1d119c88a19e131f9be732fa818 + pristine_git_object: 9b9706300971b4500476b283561246d4d87c6ab0 docs/models/components/OrganizationMembershipOrganizationObject.md: id: 1baa7170b0e3 last_write_checksum: sha1:ab1805e4e31f41c4c08351678cbe1f82b1b8ca51 @@ -1090,8 +1186,8 @@ trackedFiles: pristine_git_object: 0876c842923c761ced9fa588231cd383d9f3b0ff docs/models/components/OrganizationWithLogo.md: id: e785e9c0a5f8 - last_write_checksum: sha1:5795bc2a77a0a3500b29c19e747b25832d987d25 - pristine_git_object: a9fcc54ace77e7e48ded77489109e7a661309d14 + last_write_checksum: sha1:1e0954838c7cbe2d2ba70f0b1b73f8ee5f2a7ab1 + pristine_git_object: 55ccbd38a8986468d86afd4102d9ee19971e0ca7 docs/models/components/OrganizationWithLogoObject.md: id: 5a2b20c28e06 last_write_checksum: sha1:4b405dcf2050121abd9d9ae6e0c41ec82e7ac519 @@ -1228,6 +1324,10 @@ trackedFiles: id: 9ecf899cea5e last_write_checksum: sha1:f023918827aa3751b3a61692ec6a86bad8ff344d pristine_git_object: 479baba4afacc890104acca2a675598982bf5bae + docs/models/components/RecordType.md: + id: 589b7622de0d + last_write_checksum: sha1:179f006c2f0d3cc0e2231d1e5865f14aef6858e8 + pristine_git_object: a0d1262a0ab0ab5250329085f46aa1605470d260 docs/models/components/RedirectURL.md: id: 08e4e304bb6e last_write_checksum: sha1:f2792362a06072c258fa5bda681ed40105204c4d @@ -1338,24 +1438,24 @@ trackedFiles: pristine_git_object: e7255db1f7784cb6f843bd508360a0608079fb99 docs/models/components/SCIMDirectory.md: id: 295157804cd1 - last_write_checksum: sha1:0a2c828ff353ee7eca54c8a1e65eba9e94c4d0e6 - pristine_git_object: d1d5c9e02db0cc3581f090dacdbd2c3d49a19754 + last_write_checksum: sha1:3444875119ac145059db25d222f05dad17eceede + pristine_git_object: e4045a8bf7fd0589fe143c40874c09002afba07c docs/models/components/SCIMDirectoryCustomAttributes.md: id: 84c93e590bfc - last_write_checksum: sha1:981bee925e231a9975aafa36b6538349a3aa3802 - pristine_git_object: 856f62a2eed4af4c4d5558bd5e93b8548e2ef1b9 + last_write_checksum: sha1:d3169be099820181c38191cb727e8446548062a4 + pristine_git_object: f653ebbd615e6eb8bd7dd7ee1a1792f391545546 docs/models/components/SCIMDirectoryList.md: id: d34c1c523dd8 - last_write_checksum: sha1:a964ca114d292c9f9424e79292be8d490a46d2ed - pristine_git_object: 9d027d3f260d9c7aae5996d02649c2bdb2efedc8 + last_write_checksum: sha1:7f38d507851c5de148e52bc8019819d7894ac65e + pristine_git_object: 5aeb0fb8532fac7358a7283242e8e134e11130ad docs/models/components/SCIMDirectoryObject.md: id: d8ec1c9c10c7 last_write_checksum: sha1:f2236d8fa8f77af0488e25fc1f0015e9ec606902 pristine_git_object: d8c6ae4b208764fdeef28d71cfe024afa99f323b docs/models/components/SCIMGroupRoleMapping.md: id: ebd70d16aac8 - last_write_checksum: sha1:c98c338dc0fba9dfe0a8329a68de2b5e64481291 - pristine_git_object: f4e811ec569171e460915338d2621a3b16c6490f + last_write_checksum: sha1:e6e7e3ea8e358b0320e81766d0629a32dbaa8968 + pristine_git_object: d524f85bc3fec333c7ad5ca54bc45f445a6fe056 docs/models/components/SCIMGroupRoleMappingDeleted.md: id: c26466d9e3e4 last_write_checksum: sha1:3e47593ee47c27e41bc20cfee28a8ad1596b983c @@ -1378,8 +1478,8 @@ trackedFiles: pristine_git_object: 0b1a091b76d4e18dec28d4f419998aa74d896d28 docs/models/components/Scim.md: id: 15d999cacc52 - last_write_checksum: sha1:6a0a6366f85e04f554d553575766c849043f65a2 - pristine_git_object: 13c4087101ffe926f65ac6626a8bf739c8e4be48 + last_write_checksum: sha1:a56d68b29e0463f9f29135c71fd3d892fd4c6b9d + pristine_git_object: f23887a977e8de4f0bf5f9f065c5d70325ccbaf9 docs/models/components/Seats.md: id: ca6ade4bd7ea last_write_checksum: sha1:e168a6abad2bf8167b74160443da1d98b43cacd5 @@ -1444,6 +1544,10 @@ trackedFiles: id: 66c6eab25f3c last_write_checksum: sha1:a74e331f5a01d8d21503899d9f6d1a920c0af72a pristine_git_object: 50c96e25ff144d4cf6c80410180079e8ec344b9f + docs/models/components/Source.md: + id: 851a72141717 + last_write_checksum: sha1:86eca1e4469ac3cd370ea70155de1e93a94db917 + pristine_git_object: cbcc973bd2bcb9e466011fe8ac574f0dadb41277 docs/models/components/Status.md: id: dd05f949cb61 last_write_checksum: sha1:49f6e1cfbc06c6b21e61fb08b076f1efc5e1033a @@ -1530,8 +1634,8 @@ trackedFiles: pristine_git_object: 5005e4a5864ce390660dd60e17fbc12f456e9f4b docs/models/components/User.md: id: 8f2722ab45f3 - last_write_checksum: sha1:bb506ff030d95d4b6b4cf1103f130b38485c4fae - pristine_git_object: c4d1972d7954b5686ea6a89b6de1aaf09f17863d + last_write_checksum: sha1:6ad697f7d9ac306bc6f57619b42cc63d5ec47256 + pristine_git_object: 132abd4f1171bea720d4be3d9559d7ffeafc7403 docs/models/components/UserObject.md: id: 9d7bc67de5a8 last_write_checksum: sha1:93d67bda70a564f58c319ddbc99a5443182d2207 @@ -2220,6 +2324,14 @@ trackedFiles: id: b27bcba82700 last_write_checksum: sha1:28be7861e879186a3e1349e75a54927bf0c43b58 pristine_git_object: a8cc1b47dfb6a5bd9a2907d77263e03c3a177f29 + docs/models/operations/ApplyBillingSubscriptionItemDiscountRequest.md: + id: 8057c7f70b42 + last_write_checksum: sha1:49bdead530521edc78b56a99643df94f9a92dec6 + pristine_git_object: 11e1dfa9c9a5d3f517b77b5ca4392c323f0f2b6e + docs/models/operations/ApplyBillingSubscriptionItemDiscountResponse.md: + id: 42232b6a38df + last_write_checksum: sha1:fd4baa2e25b919165022992bfd58baebe4042985 + pristine_git_object: f9a8073841d0d1631b7d474d249063f1eecd7c45 docs/models/operations/AssignPermissionToOrganizationRoleRequest.md: id: 2f7116e0b464 last_write_checksum: sha1:f70ca78a5956d29755a53dbd140aeac71ce7e20b @@ -2380,6 +2492,30 @@ trackedFiles: id: c91ae24dfaa5 last_write_checksum: sha1:62d16333555efce6c9f6df1c9ee09d649342fe29 pristine_git_object: 7f5fcc06fb3a4416cf76b47ba56b7514ecb08850 + docs/models/operations/CreateDirectoryGroupRoleMappingRequest.md: + id: e61b7b6ed946 + last_write_checksum: sha1:daad0abe473d9d500bb5b994aba9f7d7eded8ad0 + pristine_git_object: 222fe97102ce2244f0687c8777bc25ef591c9270 + docs/models/operations/CreateDirectoryGroupRoleMappingRequestBody.md: + id: 3c2ceda4f47d + last_write_checksum: sha1:e69c3f12bcbb984bd1aa9bade75fd69d594a9c31 + pristine_git_object: 350268915fe62714c0e1c19848fff42ceca24c2b + docs/models/operations/CreateDirectoryGroupRoleMappingResponse.md: + id: 3883b4e86aef + last_write_checksum: sha1:e2612f5a4ac56a80f7e789557c28c7d80b1566e9 + pristine_git_object: ab0dfdd6801b2c343473d8a2ee0604155b8385fd + docs/models/operations/CreateDirectoryGroupRoleMappings.md: + id: a770931c220e + last_write_checksum: sha1:b7027d6de9c5db223fd87937170a2a68f341e485 + pristine_git_object: be08f5cbbef20163a9a6906283ea45eb66df1ab0 + docs/models/operations/CreateDirectoryRequestBody.md: + id: e07d45ef2e20 + last_write_checksum: sha1:bf9b8b5cc23be1ee910b3defb35f01203e921eab + pristine_git_object: de4d6d56e6e133d6dac32b2e94171b6af9850f29 + docs/models/operations/CreateDirectoryResponse.md: + id: 83992290b65e + last_write_checksum: sha1:c041426a68810d0eb7e8285d9ab43ce7c6e5219b + pristine_git_object: c7e5d9c58dd93e4bf31e5d4fd4c0b30dbd11f595 docs/models/operations/CreateEmailAddressRequestBody.md: id: fef6b6411fae last_write_checksum: sha1:ca0734ecbc07e824e7f596d297ba0ab8b348808e @@ -2470,8 +2606,8 @@ trackedFiles: pristine_git_object: d960998eb10011182fabfff588aca5fa13a0dd75 docs/models/operations/CreateOAuthApplicationRequestBody.md: id: 241e1a47481d - last_write_checksum: sha1:e658a8374538a7fb6005ffbece88a610c3dfb664 - pristine_git_object: a977ca32495a9eb48745c783a226f1c21f510155 + last_write_checksum: sha1:5d37dba32a2bffc502002eb65885fb25698e9100 + pristine_git_object: b432dd40f219dae9e59f2988021345784e8d468c docs/models/operations/CreateOAuthApplicationResponse.md: id: f6287cc00011 last_write_checksum: sha1:87a024be3c3ac450af30dd8cf2bde7c92585513c @@ -2598,16 +2734,16 @@ trackedFiles: pristine_git_object: cbd0838e798955d3a0fa63acde48393dbd165710 docs/models/operations/CreateSCIMDirectoryRequestBody.md: id: cc1afa296572 - last_write_checksum: sha1:f975690cb2f51726ae343f99a6814c83603615e1 - pristine_git_object: b6e0266dbf6c283ab78e6bbc6543379d3e5973cf + last_write_checksum: sha1:9a50cc4569dfdc9c3e4405de0bd8e0b885d62067 + pristine_git_object: 75c090f6f7f012166666c06269d0f61a6fce0f92 docs/models/operations/CreateSCIMDirectoryResponse.md: id: 076ca624a505 - last_write_checksum: sha1:25e15b6b29c9661f2ab432e8366a2291511b504b - pristine_git_object: ea2d41a0adcc25db6b76be09e89f08b826152a59 + last_write_checksum: sha1:a9e6b920f165c391a5e366f1e6a514fcfffd4c00 + pristine_git_object: 1578c7ce774df5b5e63e12c15a2ee6d88c5b6d52 docs/models/operations/CreateSCIMGroupRoleMappingRequest.md: id: f2d3bf9900c8 - last_write_checksum: sha1:95dfdb4ab95eae5963522ff435eafb4b837c88a4 - pristine_git_object: 624ffc85208ba970164655b79fc275d448c7e331 + last_write_checksum: sha1:d4fea575397df2b2a1e5c63952ff6caa24f69765 + pristine_git_object: 287ef2119929d2c19a8be5cf422919d78ae4570b docs/models/operations/CreateSCIMGroupRoleMappingRequestBody.md: id: 2e433b354497 last_write_checksum: sha1:1653e9f908a09bad1793e64223a8f2217100a3b8 @@ -2678,8 +2814,8 @@ trackedFiles: pristine_git_object: b85c6b1723028ebd34a114db9501f12283ef4dee docs/models/operations/CreateUserRequestBody.md: id: 14bc27a15514 - last_write_checksum: sha1:82fba2a444f1207c1335111b22b40180735aac1f - pristine_git_object: 510848b31d6887910e7c9fa024d710d5b23b0fbf + last_write_checksum: sha1:9f19ac89f9b1645da515083dfc65559f467bebc5 + pristine_git_object: 7ed163dd76f8fcb0cf4f293179523e98ecd6c511 docs/models/operations/CreateUserResponse.md: id: 9a1334676890 last_write_checksum: sha1:acc50fbc15a5616e45081f8211838e9172771b00 @@ -2694,8 +2830,8 @@ trackedFiles: pristine_git_object: 3fd94d800f0e0fe47f461131c12956ef49f93521 docs/models/operations/CustomAttributes.md: id: 2742487e6598 - last_write_checksum: sha1:ebb69f7beed15c95f1bbd2e6dd41403f84ec9c2a - pristine_git_object: ce4645c7f4cb0df652f5de6344a96ca94ac2b2f3 + last_write_checksum: sha1:c8c22fbe8b1192d05d7aa1ed99204bcc44632315 + pristine_git_object: 7751f93afadfbcd8cb8bffcca2cee7e7eac7a580 docs/models/operations/Data.md: id: 82001e70e687 last_write_checksum: sha1:569fd0ca633cb64de691d37036ad33983fb63ee4 @@ -2744,6 +2880,22 @@ trackedFiles: id: 27670c6ed725 last_write_checksum: sha1:7aa5a5d902bc37d6045975e266411945a097afa4 pristine_git_object: 71a585db1db1113c71e6f0d1955e3b718d86f80c + docs/models/operations/DeleteDirectoryGroupRoleMappingRequest.md: + id: 8a93014ea58a + last_write_checksum: sha1:3d009f4991eb404b4b38fd2907239adf3e7f9269 + pristine_git_object: 15fd5c4e992d25b9ca4abe3120297f22fbf0468e + docs/models/operations/DeleteDirectoryGroupRoleMappingResponse.md: + id: 98cff57e0c92 + last_write_checksum: sha1:44069c0acace5fee36bb68429e76cafa256bdaf3 + pristine_git_object: 1e2ba2e10677ba437942eacaaa082be9be76edbb + docs/models/operations/DeleteDirectoryRequest.md: + id: 3cd17062b958 + last_write_checksum: sha1:b8b9761eb35778835aa99d93d5444dd5acd510e1 + pristine_git_object: 205497eb0133a969aeb08809a24bd4ff24e09b40 + docs/models/operations/DeleteDirectoryResponse.md: + id: 92b0fa142e1e + last_write_checksum: sha1:08d4efa5ba5c89d8ab5b4ec99ed539f072e0d849 + pristine_git_object: 9b5858a81966dafac122f714045c48bc0ef7aa38 docs/models/operations/DeleteDomainRequest.md: id: d5fe9ce68eab last_write_checksum: sha1:5bfe1951a4b08ab143f9489309b24c8a1c661a4f @@ -2882,16 +3034,16 @@ trackedFiles: pristine_git_object: 4ac767e978ba4dcbfa17e9c688ff64967499751c docs/models/operations/DeleteSCIMDirectoryRequest.md: id: b47edf3b3a9c - last_write_checksum: sha1:c19b834053dfabcbdbb27153f14ba5a7a105ad55 - pristine_git_object: 31a928acde1af2713a282bc02fa11232593e28a9 + last_write_checksum: sha1:739b1fdca6fafcd33588eda8b19906766690b2fe + pristine_git_object: 4c22f87ef1b42f497fbbf2bb4e34e400830620af docs/models/operations/DeleteSCIMDirectoryResponse.md: id: 6b807998ecd0 last_write_checksum: sha1:23158edfe7719fc6455b04d0c60a65519355fef6 pristine_git_object: bc8dfd53ed97b9094d07a882ee001650788c7e53 docs/models/operations/DeleteSCIMGroupRoleMappingRequest.md: id: df099e59a705 - last_write_checksum: sha1:6667133067cad6a0a44b73bcb0c6900b882dc3f7 - pristine_git_object: 75261c1979e97528eca09ea6f6b5b929e6f28e4c + last_write_checksum: sha1:cb8e15e59427fc385af945c4bca81c3df7a8133c + pristine_git_object: 9672e92cb7a3f9d89a4510af09bfd92982282042 docs/models/operations/DeleteSCIMGroupRoleMappingResponse.md: id: 76d9dc0b7bc0 last_write_checksum: sha1:93dafff73da7a4c6f9c4408ad077d2cb3ec78a46 @@ -3088,6 +3240,14 @@ trackedFiles: id: 02d9c850e9f7 last_write_checksum: sha1:cb52950cf440d411c331705f880e2c2a1cdb7a47 pristine_git_object: 9af4f9fbcce2b528212eb8d8d75604489cbb4a8c + docs/models/operations/GetDirectoryRequest.md: + id: fe45d8dcc9b5 + last_write_checksum: sha1:d886b96d2fb33914f282599203a6eaefe02cf9b2 + pristine_git_object: 52f525b73fc98d2878b808e5818f911c68ef91b8 + docs/models/operations/GetDirectoryResponse.md: + id: fdfb162ec4c7 + last_write_checksum: sha1:60dc755764efdf9bff9aad385bf32e0bc310c531 + pristine_git_object: d1649a59e20a969c53f281d29db0d2ea6f124736 docs/models/operations/GetEmailAddressRequest.md: id: ccb6e4dddf07 last_write_checksum: sha1:d9478ab5646a5780bf1c719d02348837eeafa7ab @@ -3274,12 +3434,12 @@ trackedFiles: pristine_git_object: 7a652a7d1a1e3d3c71d41a144386767852b5f482 docs/models/operations/GetSCIMDirectoryRequest.md: id: cf404a5cd815 - last_write_checksum: sha1:664aebe0a875349b2b3abdce2aaa08941a30bb30 - pristine_git_object: c089034f40fbd2fa824ce57d1021642ff345b8c3 + last_write_checksum: sha1:15e8efc02d2f5c4c20f0074af3d188f5d9693c3b + pristine_git_object: 6a621e1ded59ad9f8ff833e67123d3d94902e72d docs/models/operations/GetSCIMDirectoryResponse.md: id: e99819471523 - last_write_checksum: sha1:b826cb178434e33200714cbb6e1c8c4830271769 - pristine_git_object: d27457ab735acb4cf0c7fa62c2f2906d802f49f2 + last_write_checksum: sha1:e0646a4ee2c58185799e4b9b196d51b6aaf7acac + pristine_git_object: a550bcce688415953dc96d0651717692c0d35fee docs/models/operations/GetSessionListRequest.md: id: 3ba597756590 last_write_checksum: sha1:4d020549bef79a2459b94e4c7411a249cd94b3be @@ -3338,8 +3498,8 @@ trackedFiles: pristine_git_object: b470790adc16b441531cda49f3f632ea31e4027a docs/models/operations/GetUserListRequest.md: id: 26370e4ce833 - last_write_checksum: sha1:89e15525092f44b1fe4cc055f192ddcd9e76cc9a - pristine_git_object: c5fda89ee5be8fd969d9d72a46fa1ed1be1dd8d4 + last_write_checksum: sha1:517a0be388daace1b3ad16466c611e3f1aa09cea + pristine_git_object: 236a770479d8dddad2b5cca9460dfdc74254c8c7 docs/models/operations/GetUserListResponse.md: id: 464da0b09ef9 last_write_checksum: sha1:2801ae713dc9e11445b0656cf318d5c4c01b3be2 @@ -3412,6 +3572,22 @@ trackedFiles: id: 97613f9de606 last_write_checksum: sha1:d159d10e2a3f05adf65893849fa5dc93edf74949 pristine_git_object: 3e53d72053dffa7d91a721f76208f697ddb03f6c + docs/models/operations/ListDirectoriesRequest.md: + id: bd6f7d5bf312 + last_write_checksum: sha1:ea2831a1ff1bd142dc6e7b80d2691fb8169e6f75 + pristine_git_object: 91022a767a291eec1e1590e3bf254846ff06a47a + docs/models/operations/ListDirectoriesResponse.md: + id: 664ae1f98d16 + last_write_checksum: sha1:4b9da39b6b922e58fea5d4cfec1c7a90e19d0d35 + pristine_git_object: 6a465f16dfd790534a62fa71bc1711bf9e0037b5 + docs/models/operations/ListDirectoryGroupRoleMappingsRequest.md: + id: c1574b9053f0 + last_write_checksum: sha1:5356c97ae80394ef64d39eecdcb9bcf8dcba747a + pristine_git_object: 86544b9e2e63edd0fb7765e176a5e227e91bc792 + docs/models/operations/ListDirectoryGroupRoleMappingsResponse.md: + id: 5e6d7206db9c + last_write_checksum: sha1:6b3b0a40668c3a783781849436a1279c4b343363 + pristine_git_object: c72b764dd4ca29e97c6ff74a309d7ed6a89d7d5b docs/models/operations/ListDomainsResponse.md: id: e2ae796f73d9 last_write_checksum: sha1:9424a2796f37ef2b7562f96675807c86c8b41272 @@ -3478,8 +3654,8 @@ trackedFiles: pristine_git_object: b7ec7972896da5abd15ceb055c525a287b9e722b docs/models/operations/ListOAuthApplicationsRequest.md: id: 8e6fcee546a2 - last_write_checksum: sha1:68e41e45152f54b1c370fe938edf7f26287cdaa9 - pristine_git_object: 4d98240f5bb4d81199b8dbb6c193a74098c9e717 + last_write_checksum: sha1:d1ce5d1f6b44494ea97c8d3bf6809a87e362a38d + pristine_git_object: 80f37496afaa6380abea415c576924e99947624c docs/models/operations/ListOAuthApplicationsResponse.md: id: a254132c089f last_write_checksum: sha1:db4dd3a5d2cad6c47f34ba8d0884b58709898bf8 @@ -3574,16 +3750,24 @@ trackedFiles: pristine_git_object: 46b57e144c6484f76a28f56ef912955b5916ea18 docs/models/operations/ListSCIMDirectoriesResponse.md: id: e311c7c8872f - last_write_checksum: sha1:80a136ab2949da5f65d94390edb193645f6d67c3 - pristine_git_object: d8cce0d0b6abff0cd71f5ca7ac6207ebebd2de2c + last_write_checksum: sha1:3c44f22d6166a18aaf1f695044d4729408fab4e3 + pristine_git_object: 64943eb24965fc4fa6de04d0eb5c77464233566b docs/models/operations/ListSCIMGroupRoleMappingsRequest.md: id: c6521266cf0b - last_write_checksum: sha1:882ba05c31ec538c1c3e6d9da32f7cb657010ea8 - pristine_git_object: 0d2d308f505409a1aede3da5e9704ca189ac400d + last_write_checksum: sha1:40f6593d8c3657d6b1209c46e9f2647dee441f34 + pristine_git_object: 98e85676901a38f4328c67250109a7f4f17c127f docs/models/operations/ListSCIMGroupRoleMappingsResponse.md: id: b6fa4df2f0ab last_write_checksum: sha1:3b09758eb7758c47e23d42a9292ba07289a2e8ba pristine_git_object: e278e943b0a7b937123700cfc25bb1ffa8722f19 + docs/models/operations/ListUserBiometricCredentialsRequest.md: + id: 64e20c8b9b49 + last_write_checksum: sha1:a254569621c4c6239c96abb9c21fafe28fc23c4b + pristine_git_object: 39c0a4f9f2f3e458c1ec9992ebe1673ba3870964 + docs/models/operations/ListUserBiometricCredentialsResponse.md: + id: d029f0683f7f + last_write_checksum: sha1:3149fa54bce35edfcd1520dfae3290f6a4970108 + pristine_git_object: 603cca7662991f8ff86a9e89a47165c387e59a9e docs/models/operations/ListUserTrustedDevicesRequest.md: id: a4d5e4a54dcb last_write_checksum: sha1:e70d760a89172c22a0779c73c7f86cc61da01552 @@ -3740,6 +3924,14 @@ trackedFiles: id: fd20a30964b9 last_write_checksum: sha1:53e5d99cdb7f10402ca6dc7a28931aa55dbbf14b pristine_git_object: 8cff6e981ab63a0391bcdb75b5be8c92f1848bbb + docs/models/operations/RemoveBillingSubscriptionItemDiscountRequest.md: + id: 615239235f56 + last_write_checksum: sha1:1e3c466ce4c08600f04be6dd800ef137f850dc97 + pristine_git_object: 30efed2c9399fde03089a71645bc1ac4546c4daa + docs/models/operations/RemoveBillingSubscriptionItemDiscountResponse.md: + id: a507da134302 + last_write_checksum: sha1:ce90bd2893d5b708b8c99e324212fe118bc3b910 + pristine_git_object: 90a05fb36b5ff58b42c3591cfdcc3f5314fc7cef docs/models/operations/RemovePermissionFromOrganizationRoleRequest.md: id: 61d81868209f last_write_checksum: sha1:b2822d5c14351ed851e4e2eefcec328809dd4c9f @@ -3760,6 +3952,22 @@ trackedFiles: id: 3533dd6434cc last_write_checksum: sha1:fea11bed970a5d3836565dceace9c97b59959f96 pristine_git_object: 0370fe916440b1418e85fa62dd2461671b9d9b78 + docs/models/operations/ReplaceDirectoryGroupRoleMappingsMappings.md: + id: fdd6f796fe15 + last_write_checksum: sha1:d8163172904cbee2ab561312e51cbb04c35f02a4 + pristine_git_object: 68316a72637e540fae0b029cc1598be6f4fdbeee + docs/models/operations/ReplaceDirectoryGroupRoleMappingsRequest.md: + id: c1f6b57de223 + last_write_checksum: sha1:de7381e912b58c415d434a0504df578c12d06915 + pristine_git_object: f81f13d2f2d03f87032cd38e8587701b8b065d29 + docs/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.md: + id: 67d5dfaee3b3 + last_write_checksum: sha1:7f49b78fa478044b5e867e07c6c70fe3ee5d44cb + pristine_git_object: 1e5a2d54ef1ff8bf78878028ab7cd38ec4b8d75b + docs/models/operations/ReplaceDirectoryGroupRoleMappingsResponse.md: + id: 48b69636daef + last_write_checksum: sha1:f9204a728cd6ad8be9b2ccb116e09b8ab00fe7f9 + pristine_git_object: b5c5eed03b4786f8342214c1f1423aacd58bec9a docs/models/operations/ReplaceOrganizationMetadataRequest.md: id: 93d882426dab last_write_checksum: sha1:2c768e6d979a2e62aa64a3194604b43097ee331d @@ -3798,8 +4006,8 @@ trackedFiles: pristine_git_object: e60c3e279f6c3715bd69b1db1c9de6901bf2a2c2 docs/models/operations/ReplaceSCIMGroupRoleMappingsRequest.md: id: 6704c0444209 - last_write_checksum: sha1:4ef0b0e9be8da3235614b17574a134ca2538883f - pristine_git_object: d6b430377ece9a7f1a88e68ac06c65078c488c33 + last_write_checksum: sha1:6964c962f9f4ff5cd13aa420b60c889336374639 + pristine_git_object: 7f3007778418920e348918fae8f7fe2d196a5698 docs/models/operations/ReplaceSCIMGroupRoleMappingsRequestBody.md: id: 42fb6057e237 last_write_checksum: sha1:0e17a3c767a7c6c1a2865f0333dd828cfabaa29e @@ -4016,6 +4224,14 @@ trackedFiles: id: a34dc62af815 last_write_checksum: sha1:89f2e91fcabbe3372e0bc9a6d71f95fb07a8c83d pristine_git_object: e72ea07c8e8bb96f6ed61189fe10497407e0d1e6 + docs/models/operations/RevokeUserBiometricCredentialRequest.md: + id: 0ef130e71d76 + last_write_checksum: sha1:0a9d3081799a774e102a67261ba149a1974cbdf6 + pristine_git_object: 18485359feea975a223f3befbbc38efbc45fcf08 + docs/models/operations/RevokeUserBiometricCredentialResponse.md: + id: 4c1a72b087fe + last_write_checksum: sha1:13a708527a24da8bdecad4b27bd9840147bda4a6 + pristine_git_object: d7450a25e674450b10ebc5042395afd17e7d92d9 docs/models/operations/RevokeUserTrustedDeviceRequest.md: id: 4fd24104df03 last_write_checksum: sha1:39214739d43835c4c07cbe209fb29fcd4e2dbf24 @@ -4024,6 +4240,14 @@ trackedFiles: id: d599b7476969 last_write_checksum: sha1:4a08266e4ef0f4f72f422a204e4d5e4245535c4a pristine_git_object: 946c2e255785f42503c1d4af1b2f57681643d819 + docs/models/operations/RotateDirectoryAPIKeyRequest.md: + id: 41239705dfed + last_write_checksum: sha1:c6dc48fd9a92f5ad6e608237211647eb4e9d9b50 + pristine_git_object: 67089db38da302624f4d15b503cc982132464ed3 + docs/models/operations/RotateDirectoryAPIKeyResponse.md: + id: b4eec776a0f0 + last_write_checksum: sha1:e9f25754cd82a10cd566e4fd50cd6d1c59706d36 + pristine_git_object: eaed7aa2bcf667b60ca05e6965a586c535043167 docs/models/operations/RotateMachineSecretKeyRequest.md: id: 0d6ebb9e8b9d last_write_checksum: sha1:a7dd4e8ecef47ca95d5f009e1c91cf5c894f07e3 @@ -4046,12 +4270,12 @@ trackedFiles: pristine_git_object: 9d5dea39dae93ad1992665fc11532d560823e5e2 docs/models/operations/RotateSCIMDirectoryAPIKeyRequest.md: id: 03b7a531ea41 - last_write_checksum: sha1:903147ee3bc3cdc9973a38698c12bdb50fa12a45 - pristine_git_object: 052a100f7894b52c029f2385e7dfa6a9b5d02052 + last_write_checksum: sha1:3a4c87829f625cf7e331478702357f3830161f42 + pristine_git_object: f3117bedbaaa32cbf7fb333e00b60ef1bd7bb57f docs/models/operations/RotateSCIMDirectoryAPIKeyResponse.md: id: b571cdc1fde5 - last_write_checksum: sha1:13f79bca4093ff9161bfeb9b1bf7113bf8b12e48 - pristine_git_object: 6dd15dd79923aa191382cbd38eec6baaf0c0482c + last_write_checksum: sha1:4d6121cc97b3314021b06a33da76d1fba81aa6b5 + pristine_git_object: 67e835833b096e78c2059002323813454c912c47 docs/models/operations/Saml.md: id: b7d65d3ef2ad last_write_checksum: sha1:bac37e65036151c6d3d41dd4711a1435b22a1978 @@ -4164,6 +4388,18 @@ trackedFiles: id: ea5422133701 last_write_checksum: sha1:1ff0fd44ab1e676d6de357a6e62db240abd7f93b pristine_git_object: ac27b37dd115e06080eafc976e9e52d5e77c49a3 + docs/models/operations/UpdateDirectoryRequest.md: + id: e3b3600a4013 + last_write_checksum: sha1:90edb556061002258f1a62ad837a52c7b2fa0660 + pristine_git_object: 8eaef7141d94ca2d47a86bffecbe9e4e45c88836 + docs/models/operations/UpdateDirectoryRequestBody.md: + id: e559d622a04e + last_write_checksum: sha1:21a987b3c5deecb7aa004f7eb9a5a5e8a7db1f4c + pristine_git_object: ce0c5dc9c7ea0ab4363d0c43f85ead65ebbeb673 + docs/models/operations/UpdateDirectoryResponse.md: + id: 3f65b2fcac50 + last_write_checksum: sha1:cd7f20fc92fa121335f8229e28f20276a2c278ec + pristine_git_object: df3f57f647951cfd6384b402f352d0de4fbcbcec docs/models/operations/UpdateDomainRequest.md: id: 5d5f86090b1d last_write_checksum: sha1:c2c39d0a90d7082f595b4f976896b42972602ffb @@ -4194,8 +4430,8 @@ trackedFiles: pristine_git_object: 7434ab0ed63b765342bdd615581b5007ab8ae283 docs/models/operations/UpdateEnterpriseConnectionCustomAttributes.md: id: 68a3d7f3f5f8 - last_write_checksum: sha1:da65ab95d2945337be8d9cc767f32998afae14f8 - pristine_git_object: 7b187e2d98c1d0796994a4f13b9504bb23583470 + last_write_checksum: sha1:9a06633a5d8cd939f78bbd48e0ce4e81cb68d51a + pristine_git_object: 45ed2297588e57e0e4553f9e1e063625c8f0c955 docs/models/operations/UpdateEnterpriseConnectionLoginHint.md: id: 2874bcf558ee last_write_checksum: sha1:738d960a12bccb9779b44a971e35c7f5ea83fc56 @@ -4242,8 +4478,8 @@ trackedFiles: pristine_git_object: fa9b397c10affd9ac6dedee0b17b00342ef22d26 docs/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.md: id: bec8dec22ddd - last_write_checksum: sha1:c261e64ba26f7236a9f555f02cb26a2df4744033 - pristine_git_object: 4a3385e62cadc591abfc59dd5600a1c981ef4496 + last_write_checksum: sha1:fc9222cb70b64349a4ad9e29ff3df308c41bf375 + pristine_git_object: 699e72a98813ebf20a4df5d345d012f9d660ef3b docs/models/operations/UpdateInstanceOAuthApplicationSettingsResponse.md: id: f267fc163865 last_write_checksum: sha1:1ec62dc25d8012952136094538fed225099b3cf9 @@ -4258,16 +4494,16 @@ trackedFiles: pristine_git_object: d449ad2ad8c65cf361748dd520ad5bfdd3043e19 docs/models/operations/UpdateInstanceProtectRequestBody.md: id: 0ec9ae7a4c10 - last_write_checksum: sha1:4585f772e2564cfb3c14f61932a22231aa1c7af6 - pristine_git_object: 6f6efb6ef492bb89d6d26603957a41d6b8d7b889 + last_write_checksum: sha1:adb9424f25fe90daac0a8f9bd26d2f21b6e9460b + pristine_git_object: 7a838c135523cc5f8f4fde436fbebf0dba60c2d7 docs/models/operations/UpdateInstanceProtectResponse.md: id: be417eb53915 last_write_checksum: sha1:5ea3609d555be7968e76e1647e42460bd0b6e3ff pristine_git_object: e2d354a0c72ce64219012e7d255545ae6d04a88f docs/models/operations/UpdateInstanceRequestBody.md: id: a89563fe1486 - last_write_checksum: sha1:4abdd5b56791b4995ad9d4de836defb13819f85b - pristine_git_object: 974233c9f6aea7170ab1b614a6fe18bd0d99b6d5 + last_write_checksum: sha1:6349ef90a02e3297f56db2fcb63f85190a4c832f + pristine_git_object: d020e6400ae9175f45e1e1f19ff9ffbd61a980f8 docs/models/operations/UpdateInstanceResponse.md: id: 10a110c8fbf3 last_write_checksum: sha1:b691349be5edb4e13d6b844e77867218a185f11f @@ -4314,8 +4550,8 @@ trackedFiles: pristine_git_object: 26cb68380b5cdc431aebeca557f79f458dc52c48 docs/models/operations/UpdateOAuthApplicationRequestBody.md: id: 519af88526ab - last_write_checksum: sha1:2394134eba3d29c7c9d44ae6bb06698d48e23451 - pristine_git_object: dee48adf17b19b8bc069de773daef99becb793c6 + last_write_checksum: sha1:a8d0b81b2ba7ebd143e8c4fcad2536fb36a2e037 + pristine_git_object: 5a63e9fc6424b50da051b64fcb7e46edd6c1ea4d docs/models/operations/UpdateOAuthApplicationResponse.md: id: e644cc15d391 last_write_checksum: sha1:e437460e5c8d6bc67a917de11ec722c526cd7d9a @@ -4374,8 +4610,8 @@ trackedFiles: pristine_git_object: 7e91d26d0aaf9118df2e3bdfa06c8d092d272e7e docs/models/operations/UpdateOrganizationRequestBody.md: id: ff4aed869862 - last_write_checksum: sha1:654436cf257a789a56cafd51dab7660d64d34fae - pristine_git_object: c5a53ae269ff8322e345eab7681f8f910791f152 + last_write_checksum: sha1:bce0ff211be6a33d35668ebf11df74071f61ff3d + pristine_git_object: 31fd4b4dff793ea214101bba1c30a79525755200 docs/models/operations/UpdateOrganizationResponse.md: id: ba469c92700a last_write_checksum: sha1:64d4723c89bb14477db6803f4f8acf98a1f65873 @@ -4442,16 +4678,16 @@ trackedFiles: pristine_git_object: 4f8b898415db20885caf64cdc7f95909e860fc13 docs/models/operations/UpdateSCIMDirectoryRequest.md: id: 3d6bba177783 - last_write_checksum: sha1:c38a6506400ad8e309035d2e5fe92cc3f9e9b983 - pristine_git_object: 0d96a0c4ac3265a6ae1f63b1e5503ba9fbccbb2b + last_write_checksum: sha1:60af38fb8c4b05ff389ab627c86dd4d99e7e0d47 + pristine_git_object: 371fdcf43ea0289506b44809e467eeee49244ba1 docs/models/operations/UpdateSCIMDirectoryRequestBody.md: id: 40c7e596911e - last_write_checksum: sha1:3ec128d5b02ba649bcf020ba14ffd997ee97f748 - pristine_git_object: c01180ae028721ba2ea79845af7ab0eb20cc2763 + last_write_checksum: sha1:37a9a057c5a766bb928606878bfaf5575dd77cb8 + pristine_git_object: 1dc9b2d978830257c6ecc241a182ebfa1dc23fda docs/models/operations/UpdateSCIMDirectoryResponse.md: id: 3dd2e62d1106 - last_write_checksum: sha1:080be23fc1590899231e7a07dc6bd4e880757bdf - pristine_git_object: 11f18a91296b39a2e27c90d7849e2a26d69612c5 + last_write_checksum: sha1:d59c5e799e0727920fcee6759aaa80b46296fa26 + pristine_git_object: 99b043133db058b5c51793bd08933d6a06a55d80 docs/models/operations/UpdateSignUpRequest.md: id: e27519a34655 last_write_checksum: sha1:853e9f34f3f12b94f716fdd409cffdb70119c6d3 @@ -4482,8 +4718,8 @@ trackedFiles: pristine_git_object: fba5f0c1fc1c3904cfcc94f8e60962326b8a81e4 docs/models/operations/UpdateUserRequestBody.md: id: d698cf716c12 - last_write_checksum: sha1:39fa893828fabe2b40a6a35d203c18cea8058b30 - pristine_git_object: d7e3cd70559ba566c9e2d72e8cbb17b19ff03f20 + last_write_checksum: sha1:1e000f18a4f2b0366ae0d3d3615c658024826cd4 + pristine_git_object: 4de44745aa84310bb5cf0c0d2650e8d0b85012a2 docs/models/operations/UpdateUserResponse.md: id: 54a64b6a8f40 last_write_checksum: sha1:ee35240abcd1e61d77040a921ad6126f02433fd0 @@ -4690,8 +4926,8 @@ trackedFiles: pristine_git_object: 71d7317c6fd90cfe622152d23cf6a4d3a90cf076 docs/sdks/actortokens/README.md: id: d484142effde - last_write_checksum: sha1:e726bee6213da46861601df6d8da93738d727040 - pristine_git_object: c2c833665e6b0decda85493578507e25314f906c + last_write_checksum: sha1:b223685e6769e7dcf900ffedfa83a31e51556964 + pristine_git_object: 76c232d7535a691b8b22a152ed46b34506ce95c6 docs/sdks/adminportallinktokens/README.md: id: 006cf1d47b1e last_write_checksum: sha1:9ba517fde7fd4ac260703a1a9d986876b00dd639 @@ -4714,8 +4950,8 @@ trackedFiles: pristine_git_object: c2ab6e9891fad07a124eb7337002b3375f04b0ff docs/sdks/billing/README.md: id: dc915331dd9d - last_write_checksum: sha1:1f0be60ff3882c883e627428ad3e2ec49946582f - pristine_git_object: 4c317f100902c104a5441e41a3e6cdc8d161ded3 + last_write_checksum: sha1:46c6732a19fb987f749097d96a68e12bc0d7cafb + pristine_git_object: ea2dccfdca77d67977915f4880f280196807e93e docs/sdks/blocklistidentifiers/README.md: id: c7e007a1e760 last_write_checksum: sha1:eccb6bf4da4a74ab77f0fa37478458589ce96b27 @@ -4724,6 +4960,10 @@ trackedFiles: id: ba883fd0c1cf last_write_checksum: sha1:08f7213266f673aeebe0f91edccee3cf14e96148 pristine_git_object: 43d6287a8a96ff3a910f61d8e52db7e94c80c861 + docs/sdks/directories/README.md: + id: e8590265548d + last_write_checksum: sha1:3c3e739128359afa992dad149f4d4e4c38b9ae21 + pristine_git_object: d804522632d5cbcc9f8ebab2b47a050f7897a56b docs/sdks/domains/README.md: id: 06e9beb4063b last_write_checksum: sha1:6b79511f264ab3e82e4cec02d78b1c825989ea1e @@ -4778,8 +5018,8 @@ trackedFiles: pristine_git_object: f53b4c25dde82ca37206c6d750e1b39f88feaf37 docs/sdks/oauthapplications/README.md: id: 8962667a62b1 - last_write_checksum: sha1:4b98e42a683c6a432408e4f34a351aa552ad4f8e - pristine_git_object: 974edface2ac73d0863054de25f8ee4299c1391e + last_write_checksum: sha1:68344da3e8dafa52f96aea72405f8a46fa125f51 + pristine_git_object: a7a11cf1f6ff35b1a022888a530643885c68e228 docs/sdks/organizationdomains/README.md: id: a256821053b6 last_write_checksum: sha1:78d240bfd259446fe1a2ac54787188dee1843a69 @@ -4826,8 +5066,8 @@ trackedFiles: pristine_git_object: 906b17e8f133dae3f515076698621ecd19445194 docs/sdks/scimdirectories/README.md: id: 78ae8c1a63c0 - last_write_checksum: sha1:4607fbcdcef5331c7104011a3c1ce0954b1c498f - pristine_git_object: c5e9eb34c81f75b2671480ddd89237659077e55e + last_write_checksum: sha1:eca748b0dbf7572e11ca787cbcf5a7fc1af86cd8 + pristine_git_object: d1501247b868426fdc7bed0cab2b98864097a029 docs/sdks/sessions/README.md: id: 57ad62844f79 last_write_checksum: sha1:2f49edccab12e69d351ada28016c854c007cdb2e @@ -4850,8 +5090,8 @@ trackedFiles: pristine_git_object: 9ee3bca6022fca25977862c6abda580f3def47c1 docs/sdks/users/README.md: id: 5d80027045fe - last_write_checksum: sha1:9db0b481692aa70b598788cde03a0198e6d18748 - pristine_git_object: dde91100882bc8b81d26cb7932aa3610991a4e5d + last_write_checksum: sha1:bd4123134b3a7388f727ef84ecd60022985af5e7 + pristine_git_object: 1f4b7d79b22ac8b79989272fb827ece71a42262a docs/sdks/waitlistentries/README.md: id: a4b511c18a9a last_write_checksum: sha1:eeef8b5b3c90024d3d0b5df790786dac86e9988c @@ -4862,8 +5102,8 @@ trackedFiles: pristine_git_object: 45f47ee13644598aaf91efff776b5e331d062373 gradle.properties: id: 2afbb999f001 - last_write_checksum: sha1:ec065b6a60d3b90d79724f921bace9faa4452293 - pristine_git_object: efdf7cfd060f3069deadcac30a05d5b077d6e290 + last_write_checksum: sha1:bca27b3743c8ef87b5143c7102948f4e7cb9e3e4 + pristine_git_object: 6bc1b685b48352d07c3e99711a613902bf7a07d0 gradle/wrapper/gradle-wrapper.jar: id: ec27dae6e852 last_write_checksum: sha1:f725fb1467084142d74fd7cd8eab691ab3442611 @@ -4914,20 +5154,24 @@ trackedFiles: pristine_git_object: dbe5d634e503b4b65c9b24c1cf049d7ee590b566 src/main/java/com/clerk/backend_api/Billing.java: id: 9a68e5801126 - last_write_checksum: sha1:589ce989a6fb1768a3b8b293992b8a98e4079d7c - pristine_git_object: 53b3fee088279c2ca22e3e6a4e01efe2338e160c + last_write_checksum: sha1:673ed9c18fb4c494af14f31babd8c69ccaa2203e + pristine_git_object: 29999fb6800f00d6ae76b7f97f74e9a6135cfcd9 src/main/java/com/clerk/backend_api/BlocklistIdentifiers.java: id: 89f79d8b7eac last_write_checksum: sha1:d42e4057d9d7890abfbe5e8ad7e3494433342360 pristine_git_object: 5bf02163324a409051fe6b8395ab523a4bd34c67 src/main/java/com/clerk/backend_api/Clerk.java: id: f98667576bff - last_write_checksum: sha1:54f2dbf2221aecafa1165af87019720c3af7b95d - pristine_git_object: 54389ef4bdd27098b38651c8c884e94a35d01afc + last_write_checksum: sha1:a45d021dd9ba0014d4e561e6daf9bb18074f3ca8 + pristine_git_object: abb85d98f901b6e859000035dd313f129749c4bf src/main/java/com/clerk/backend_api/Clients.java: id: 2b86a17ff763 last_write_checksum: sha1:2c7b3fff8cd457b51317ca1197ced5003f028465 pristine_git_object: 94d3f6f46d46fcfc18f2d0b98b3cb8b3802fdda5 + src/main/java/com/clerk/backend_api/Directories.java: + id: f9e4cde3de04 + last_write_checksum: sha1:a6c8a618e4d4135b29c2b2e92408adc202f28f5f + pristine_git_object: 50dd3cc87228a943011a5594d4553ff16f881dcd src/main/java/com/clerk/backend_api/Domains.java: id: b3c36a038460 last_write_checksum: sha1:12cc9d89e3ee46356dcec088952a612db7a91968 @@ -4982,8 +5226,8 @@ trackedFiles: pristine_git_object: 8f102b8c622d560fbaca16d37d9427fdd7a14358 src/main/java/com/clerk/backend_api/OauthApplications.java: id: e3cea00cfded - last_write_checksum: sha1:6adcbcab21390e4c02e0ecd8128581ce58db3b4f - pristine_git_object: 939293e47260a0894ab9e9858c0ac1f33726bf85 + last_write_checksum: sha1:c4c6a7f2285754b1ac7ea66aff85e924b68b5dae + pristine_git_object: fdab2c415376a8d4f1f96d1c0e7dcf89e0a36af2 src/main/java/com/clerk/backend_api/OrganizationDomains.java: id: ec98099a9e10 last_write_checksum: sha1:30cee25117f29d1450c1580fdfe11dd232a61c8b @@ -5026,16 +5270,16 @@ trackedFiles: pristine_git_object: 40597c8205e6e12003fcdad6e1d4f084c674effd src/main/java/com/clerk/backend_api/SDKConfiguration.java: id: 02084533ec5b - last_write_checksum: sha1:bff495301b2eb4268489ea9af49f1808327e225c - pristine_git_object: 7bbfa3c6bc9862c5bba9f4e149a269a1df919dc8 + last_write_checksum: sha1:425dd6324aa9415f06db3781719ad6b2fa503458 + pristine_git_object: 963220becd4c16eafab7627be33695991cf0db5d src/main/java/com/clerk/backend_api/SamlConnections.java: id: 4bbf4e5d0a3c last_write_checksum: sha1:2e48c2a616261bcc34ae98b7f96b9eacfa8cdee6 pristine_git_object: 7f76add10087f3751b550ebf83bcac1aea639b0a src/main/java/com/clerk/backend_api/ScimDirectories.java: id: ac0b05772a9a - last_write_checksum: sha1:c027d080106e336f9332cd4e8356cc32b35ad78e - pristine_git_object: 56c22e5d0acb6d560cbddd5ba3f3e830ce408e6f + last_write_checksum: sha1:43e9cb389b358de749322cdab97020efb3680f53 + pristine_git_object: 68de3ee9980688b939acd524913a0fcda576660a src/main/java/com/clerk/backend_api/SecuritySource.java: id: 4010c3f377dc last_write_checksum: sha1:860f7ae6b19ce596e37ac476536164f66a68de78 @@ -5062,8 +5306,8 @@ trackedFiles: pristine_git_object: 2d6d35e80ad878256a7a1a71c241668889c0e0e6 src/main/java/com/clerk/backend_api/Users.java: id: 25ce71c73baa - last_write_checksum: sha1:6b5363303846bdef53468a46da01bb3c7939fb62 - pristine_git_object: 1c456baaf36f2e91430f0e15a848a0bc99d03dad + last_write_checksum: sha1:8e30aed578c561d6e4ca1ac96af9dac670b59a53 + pristine_git_object: c0fe9642e230044a41e21cdad9d983899bb4b84b src/main/java/com/clerk/backend_api/WaitlistEntries.java: id: 5008ff59b95b last_write_checksum: sha1:47fa5ea495bc9740ea46051ec71a584b5c6a64fe @@ -5132,6 +5376,10 @@ trackedFiles: id: e074d0275651 last_write_checksum: sha1:bcb66df53e2ac3c06d5a3ee230375cb6226932d3 pristine_git_object: e65a0c64bd69d9e6bbd729a5b32569854c0a2d1f + src/main/java/com/clerk/backend_api/models/components/AmountOff.java: + id: ef582f336b94 + last_write_checksum: sha1:5fe3d00b3aa96028d926b83913eac5f1ec667499 + pristine_git_object: cd762f0cecd11cd8197d269bf1f74b5ccf533836 src/main/java/com/clerk/backend_api/models/components/AnnualFee.java: id: 80f7862b74f9 last_write_checksum: sha1:f542ce7f26882cc9a426a489bdf43f23853119ad @@ -5140,6 +5388,14 @@ trackedFiles: id: b4bd55f4df68 last_write_checksum: sha1:12e8b6aaf37322a60c12d7dc31328d549d263429 pristine_git_object: d1ce77fd1e99ff05de78ab5e782ff1e3985c3192 + src/main/java/com/clerk/backend_api/models/components/ApplyCommerceDiscountRequest.java: + id: 67cc9069f348 + last_write_checksum: sha1:70c50346e1765825ffddf4e4e698013dde138d8c + pristine_git_object: 6e96cc136580c9cc6002f332870ff21333b757b1 + src/main/java/com/clerk/backend_api/models/components/AutomationDisposition.java: + id: fc06f56b81ef + last_write_checksum: sha1:5477e7d3bea5a2a94ea06b752d7c88f3cb5c6777 + pristine_git_object: 4714e9cc7ac7afab2de3b24cc088cc78dc6c8711 src/main/java/com/clerk/backend_api/models/components/Balance.java: id: 8570ce3d9fd2 last_write_checksum: sha1:978af63edc19b06c68abfb02e7a9c2a5b03a3be7 @@ -5216,6 +5472,30 @@ trackedFiles: id: 3cbc06cd4281 last_write_checksum: sha1:ea5bb25bc6890d475b57f91b6e16b66ddb4e8f13 pristine_git_object: a805f3e2ad92d03aad9cc9de36ab136a780299b9 + src/main/java/com/clerk/backend_api/models/components/BiometricCredential.java: + id: 9d3075513a66 + last_write_checksum: sha1:9a708f148ed964645a92a2917fa0317656f49120 + pristine_git_object: 1ac3249f7b756514dc6a00b48ba072b75d1c2e99 + src/main/java/com/clerk/backend_api/models/components/BiometricCredentialAlgorithm.java: + id: 6aa9f58dfe3d + last_write_checksum: sha1:10c150f64f2a2b79cb6d1ff69f0ee38c5a1ed1db + pristine_git_object: 99265f0e151392831736acba400c0024e23eb04b + src/main/java/com/clerk/backend_api/models/components/BiometricCredentialList.java: + id: 560c98dfdd8c + last_write_checksum: sha1:c54a312f03cc5137757a00d5549dc6082794b9fb + pristine_git_object: 4fa8fe830d273187a9db0d57fe21ce7d1dd7b71e + src/main/java/com/clerk/backend_api/models/components/BiometricCredentialObject.java: + id: c6e9e62e88d2 + last_write_checksum: sha1:fecfb2c51763a020ad3545bb8f7d69699dfd9c81 + pristine_git_object: cdb2953df9ea963f812984c7b77d61b82f01086a + src/main/java/com/clerk/backend_api/models/components/BiometricCredentialPlatform.java: + id: 316df002397f + last_write_checksum: sha1:8539e02794acbfacd8e1f6d9ccf94b8bc233e056 + pristine_git_object: 691a75d492feb322cc1f7f1b67e2147b3236b345 + src/main/java/com/clerk/backend_api/models/components/BiometricCredentialStatus.java: + id: 26512026247f + last_write_checksum: sha1:e65beb54aa00ffbe68fb154428415c3143e9282d + pristine_git_object: f9ab90ccfd3836da3f1c9800e885d21a70278e78 src/main/java/com/clerk/backend_api/models/components/BlocklistIdentifier.java: id: 1bae02508f98 last_write_checksum: sha1:42222635f59b2109b5594cbabab7d851741ee868 @@ -5256,6 +5536,22 @@ trackedFiles: id: 5f288173e67d last_write_checksum: sha1:51fbc66561dbc66edd4e0fdbe1b2a844da323779 pristine_git_object: 9d6d3b312adc11e3d1926d0f64d34f7d7139e0a9 + src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponse.java: + id: cc7e8d667fad + last_write_checksum: sha1:38da3f44ecb299b2dc9b52b250561da420c46078 + pristine_git_object: eb6f10338cd49ba83625497ae072215f6ea5e2be + src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseAmount.java: + id: ba359ae9965a + last_write_checksum: sha1:73d1c4b40b29ecc26359202cdd7a28f079162534 + pristine_git_object: 1a0d4bd54f4e53d44d70a28aac0dc592bf22376e + src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseObject.java: + id: 5f6cfc9c55d3 + last_write_checksum: sha1:ea91cae0d96a5dd5726c66ff6364da4062a5ff2a + pristine_git_object: 95cc3229c034bcf707d79f4afbe11f3f6712ba26 + src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseStatus.java: + id: b1ff152f76f9 + last_write_checksum: sha1:ddad42e02725a60b1d291ddcbc29ecb1a0fa4a7b + pristine_git_object: adbaa4861886c2ba544d67fb2327d2a2f4c301ef src/main/java/com/clerk/backend_api/models/components/CommerceMoneyResponse.java: id: d933e5826c61 last_write_checksum: sha1:b75b7ff5374b24b8a829520df371ba303012a0ca @@ -5594,8 +5890,8 @@ trackedFiles: pristine_git_object: 12bca16938f64515020dca8a7336e9e71b44fb31 src/main/java/com/clerk/backend_api/models/components/CreateBillingPriceRequest.java: id: "566330433822" - last_write_checksum: sha1:f3b56754adbe0df4f4a979b7dbf1e72a3e5aef3b - pristine_git_object: f98fea664e323bd45052313184fb3f221a052d6c + last_write_checksum: sha1:42698689305b1debf11a17e416a4e7537212f8e1 + pristine_git_object: 6d235a9a1d0692bb8cb60837ea29500f5afc23d7 src/main/java/com/clerk/backend_api/models/components/CreateBillingPriceRequestSupportedBillingPeriods.java: id: 17538187e754 last_write_checksum: sha1:9a8b9bac8051b60558fd1868220333ad181a3589 @@ -5614,8 +5910,12 @@ trackedFiles: pristine_git_object: 58fdd673ddc95275747c26df934f93e965697dc5 src/main/java/com/clerk/backend_api/models/components/CustomAttributes.java: id: a3a8d83c1104 - last_write_checksum: sha1:c03872e79b1e1fc6b875f920fb895997cfb8a0ab - pristine_git_object: 8664e8cdc365f88939e92961e577d119eaaf29d1 + last_write_checksum: sha1:99833458079669f96bf0c1f8a77c46e9d2fe8e1c + pristine_git_object: eca201dd69139135a9312a37e866ff896d202b31 + src/main/java/com/clerk/backend_api/models/components/DNSTarget.java: + id: 20c4d06a754d + last_write_checksum: sha1:7266398b0e0a89534b91d992552df0a018e44600 + pristine_git_object: 3e611f4c83a2559bd9ed8aa6ad51ab3f5bd17f03 src/main/java/com/clerk/backend_api/models/components/DefaultRole.java: id: 0adec04077c6 last_write_checksum: sha1:86295e9fbbbbd4619d639f3d3083c41cbee68ce4 @@ -5624,14 +5924,50 @@ trackedFiles: id: e63632c18733 last_write_checksum: sha1:19a5c978b43f83fa423f8e093c4c8d74637980f6 pristine_git_object: 747889d36b70f2d653a5da1a35beb023b3935be3 + src/main/java/com/clerk/backend_api/models/components/Directory.java: + id: cd1cbce68b5e + last_write_checksum: sha1:c25612045a919b3145c28873f492c9e3fc846d3b + pristine_git_object: 44f522fd187574eef61835f1638cb546101cb70d + src/main/java/com/clerk/backend_api/models/components/DirectoryCustomAttributes.java: + id: 1d690a46a1f3 + last_write_checksum: sha1:ef6ed9a2de9681613908e99959cedc47101afc00 + pristine_git_object: 7ddb4305b69475fa7bf431adcbfcf56d511a9761 + src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMapping.java: + id: 8028f412db2e + last_write_checksum: sha1:63f3d8e7745d52712890040a69b07b34900f9c49 + pristine_git_object: 72ddaca138198b189164a971c3ab462bcc1bbd36 + src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingDeleted.java: + id: 8dff248732ab + last_write_checksum: sha1:7ec8f3171ed2a4c3cf036a09cb22af73e6b891af + pristine_git_object: 2ac59a6002aac691db8dc01799d41ad708ef33e8 + src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingDeletedObject.java: + id: 24c719edd76b + last_write_checksum: sha1:6304a3fcc14b9452f4899028f51630f7882ddbd1 + pristine_git_object: bd494c69711d69ff1b218e25ea6055107139af44 + src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingList.java: + id: c15ccc7f51cb + last_write_checksum: sha1:ae017f8216e09e1187c728fffb54f33feae50c81 + pristine_git_object: d49a9b08d89a57a69418240b4671bacd60a11643 + src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingObject.java: + id: e292e538cbd1 + last_write_checksum: sha1:0b9fec398fd80a5bf176fd550e23cdb3c80fcfcb + pristine_git_object: d44a38344653bcd5f2cf7ecf42538b49b77049b8 + src/main/java/com/clerk/backend_api/models/components/DirectoryList.java: + id: 9233189482d8 + last_write_checksum: sha1:eb1092716d74c8cf03efe84d3fa12e280b6403cd + pristine_git_object: 3077e9b725d8c755add37c3b17efacba96ee7bda + src/main/java/com/clerk/backend_api/models/components/DirectoryObject.java: + id: 6004c4ad31e6 + last_write_checksum: sha1:0c1c060e6e805695fe881f36ab1108cfc79a63a6 + pristine_git_object: 350ba23a5a232728377a7bbb56b0f424b9971114 src/main/java/com/clerk/backend_api/models/components/Discounts.java: id: 2c514b54dc59 last_write_checksum: sha1:e8fd8aa70f7d50e795f44ab0408c139498cc870b pristine_git_object: 1d26d4956790d7a78ed2878b31a1719aa2d7384b src/main/java/com/clerk/backend_api/models/components/Domain.java: id: 3d9f103e7a07 - last_write_checksum: sha1:d726126a65bb70e7864e028c81d7aa5418aae383 - pristine_git_object: 039dd8a19ad013b580f1f733cf70c8f62e3b285b + last_write_checksum: sha1:94ee389a109fc82671d31b59dcebce910d269a46 + pristine_git_object: 2c5e9958cacfcd2080a27dea92bf169d9c165ee8 src/main/java/com/clerk/backend_api/models/components/DomainObject.java: id: e8875985708d last_write_checksum: sha1:554b0542fa811fdfd845033a5d566206f0fbf54e @@ -5644,6 +5980,10 @@ trackedFiles: id: 3af3d2102311 last_write_checksum: sha1:ed7e37c3e1b8520f249f386d42586a1618736164 pristine_git_object: d26062d4a7aa38562295461b097751643c0b3b93 + src/main/java/com/clerk/backend_api/models/components/Effect.java: + id: 8f28ce98d9f8 + last_write_checksum: sha1:d712e203d4f6c1ac53a88640d9ad0005d13af068 + pristine_git_object: 95737678088d39de10b9f2dad7ed4ba209dc3800 src/main/java/com/clerk/backend_api/models/components/EffectiveMode.java: id: 5ef35301e563 last_write_checksum: sha1:055152fa154f5241b37a0c714120478a0da1ecdc @@ -5810,8 +6150,8 @@ trackedFiles: pristine_git_object: c77e534a180164b6544ea14713e7065fe019b072 src/main/java/com/clerk/backend_api/models/components/Instance.java: id: e4cae529c4e4 - last_write_checksum: sha1:b1e4a42fdafb68e07365bd4370836c31514e541c - pristine_git_object: 56d7ea42be0666211c2fbff215d330a10297ce6a + last_write_checksum: sha1:8d24959a3d297b8a232b5e01149f7d1689b176f2 + pristine_git_object: 4d1effb7ac287b109e62dbe8cb9118694305cd0c src/main/java/com/clerk/backend_api/models/components/InstanceCommunication.java: id: bbf15f4ec646 last_write_checksum: sha1:3780f73f12dde38e936e41dcaf45ce6dd1c7c177 @@ -5826,8 +6166,8 @@ trackedFiles: pristine_git_object: 311ccc2cb0de8a54038ddde8f0bd1904d15383e9 src/main/java/com/clerk/backend_api/models/components/InstanceProtect.java: id: e4d1a27e38c8 - last_write_checksum: sha1:bd1bb649e859fed02629f93ff116039498fca424 - pristine_git_object: fbd141165455f20454ae5646b9765f6741313246 + last_write_checksum: sha1:8bf5a28d5a015b4d26206bb1fd6f7439503c6b51 + pristine_git_object: 3fe02b793666d0c4e019fb8e7681d936ebaedb58 src/main/java/com/clerk/backend_api/models/components/InstanceProtectObject.java: id: ea1363cfe862 last_write_checksum: sha1:043c984e2cedb67464db7f3861b0d4b5451f99b3 @@ -5842,8 +6182,8 @@ trackedFiles: pristine_git_object: f79336e8139bd8b5577ef8b33575071afb9531eb src/main/java/com/clerk/backend_api/models/components/InstanceSettings.java: id: 9a85627382ab - last_write_checksum: sha1:380079c4e93851af9b38318164db6934648a792b - pristine_git_object: 6676160c75d3c05a60a3fd534acf9d3fa108ac32 + last_write_checksum: sha1:cbb0aeebd5f108df05a6be38c7925969d5d17656 + pristine_git_object: efc0523e90b9789f40b95a3f1c0d1bd068f70816 src/main/java/com/clerk/backend_api/models/components/InstanceSettingsObject.java: id: a49f787f14ae last_write_checksum: sha1:721273b6059c889670fce821f229e7f73a47d0d4 @@ -5990,24 +6330,24 @@ trackedFiles: pristine_git_object: 49cd843877aa977a3c206c4780ef7495d5bd9e75 src/main/java/com/clerk/backend_api/models/components/OAuthApplication.java: id: c36c71f22af9 - last_write_checksum: sha1:a36c7949fb98b04a66ca43b400428f5e2bb914f1 - pristine_git_object: 22834b45b88b58ecefc4f23f5606d239a7b252c5 + last_write_checksum: sha1:df1b001e80ef62a991b6afd1e8ecaefef944336a + pristine_git_object: 5b0a02c17b797f96034c3386cc49fb822d2150e0 src/main/java/com/clerk/backend_api/models/components/OAuthApplicationObject.java: id: 8311b8e90803 last_write_checksum: sha1:49573216a47b3233bbef8d879f192ac06de355c1 pristine_git_object: 71dcf636edb6dae93d6e9dea0531e43494604de9 src/main/java/com/clerk/backend_api/models/components/OAuthApplicationSettings.java: id: 66bca493e987 - last_write_checksum: sha1:e119ccb66ec4c59e858b4680ffaca5cb852b5c8e - pristine_git_object: 33658c34048d7c4051e35f6b8baa3b1a772a6fbe + last_write_checksum: sha1:45ae10322f31c2cbdda2bc3c5d9d468a45e2c001 + pristine_git_object: 965a46fa0857999674c6e8cf423399f5233090b2 src/main/java/com/clerk/backend_api/models/components/OAuthApplicationSettingsObject.java: id: 906db9fc8c6c last_write_checksum: sha1:4b3da2ebf4f8ddb693f91bce1013368b7a69f60c pristine_git_object: adf33c9ab81aaacd4f06a80f2bf942f91c18d88a src/main/java/com/clerk/backend_api/models/components/OAuthApplicationWithSecret.java: id: 532f33f3087d - last_write_checksum: sha1:64b8a4716620db20baa71d2a281cf145fcd0ef6b - pristine_git_object: 5ac9f0080f69b7936d6d640649c87af6943833df + last_write_checksum: sha1:474c3edc13adf528e0488916b5d486cdaa1cb054 + pristine_git_object: 9e6c12c2e254a9dfa36d16e9cee09b92b09b7a15 src/main/java/com/clerk/backend_api/models/components/OAuthApplicationWithSecretObject.java: id: 5ebd1808e4b9 last_write_checksum: sha1:ac4fcffc9ef87099788d28a78d5639893fe6c637 @@ -6034,8 +6374,8 @@ trackedFiles: pristine_git_object: 0acd34001623a5c41ef920eb8b279de82b968b0f src/main/java/com/clerk/backend_api/models/components/Organization.java: id: ab23b4c09b18 - last_write_checksum: sha1:8c859714425963945b5eda95c49bf645f3119133 - pristine_git_object: 02978ea5a5e1c647e6ed999d6658d8451d41e2d0 + last_write_checksum: sha1:4bd7982307932901483b39269d137788ad085dbe + pristine_git_object: 1b7be30e3176d83acca61a75f2f265052c89e92a src/main/java/com/clerk/backend_api/models/components/OrganizationDomain.java: id: 367543ec850e last_write_checksum: sha1:86cb48496ca151ff11567010656ced29e25ee037 @@ -6094,8 +6434,8 @@ trackedFiles: pristine_git_object: f0db6659cd6812eba6a59940fb1edb918babb3a8 src/main/java/com/clerk/backend_api/models/components/OrganizationMembershipOrganization.java: id: c239983de422 - last_write_checksum: sha1:ecf0252566927bdaae9d6c792b21446751170741 - pristine_git_object: eb9c4be4a47acee636c5da23ecfab7a29c3e5634 + last_write_checksum: sha1:536cca49398137384883b46a54af53d464db5536 + pristine_git_object: ed1462c3dca8843823a4cfec702f57db59d4a89b src/main/java/com/clerk/backend_api/models/components/OrganizationMembershipOrganizationObject.java: id: 5a9d9b7a0b7e last_write_checksum: sha1:24af2ab99c558160d5f60cb8979fce96b289f54c @@ -6122,8 +6462,8 @@ trackedFiles: pristine_git_object: e592437928f410155cb63728d47527e989a6e867 src/main/java/com/clerk/backend_api/models/components/OrganizationWithLogo.java: id: baa1eabf46d9 - last_write_checksum: sha1:bf7361cb967a49b538a279d52d7f51483ebe9aed - pristine_git_object: 1b617e8eb98c2edf5eab17e09e2d23c72c7543fa + last_write_checksum: sha1:bf51f2ba79fb8244d4cf42aa3341942e2ac422cc + pristine_git_object: b45b5c210acb514e5fa89b4d264010ce92ec299a src/main/java/com/clerk/backend_api/models/components/OrganizationWithLogoObject.java: id: d12bb36755c8 last_write_checksum: sha1:6d867236d7bbfb7e1cd8b136959d9e64f55d4254 @@ -6268,6 +6608,10 @@ trackedFiles: id: 179ece5780e8 last_write_checksum: sha1:ef1826535069faa8488b9e191411bd48a64c29ae pristine_git_object: 4c7fc528291d5a014d361a1acf55c325745ca5b5 + src/main/java/com/clerk/backend_api/models/components/RecordType.java: + id: 6f1d3bf039ba + last_write_checksum: sha1:24dee546140ba4fb6d807bc2411a22887aa43060 + pristine_git_object: 30a53108641024f74597b654c99116a4b606213f src/main/java/com/clerk/backend_api/models/components/RedirectURL.java: id: fbcff68d1f17 last_write_checksum: sha1:2636711c0b6461c1eb2e40045786c17709ec394a @@ -6382,24 +6726,24 @@ trackedFiles: pristine_git_object: eedb7412ca285e9cc78f042c43219b6dc900d649 src/main/java/com/clerk/backend_api/models/components/SCIMDirectory.java: id: 1bf405970832 - last_write_checksum: sha1:55444bb476184c5312e66462ebb5ece774ac0bd6 - pristine_git_object: a3e3597d3eee253138453bce66ec0a01fd4da83c + last_write_checksum: sha1:cc8a3109824563c99a28ca230ed17205f24bc2a5 + pristine_git_object: e53ebd6e04b92152cc2800e4a8bbcb5e02b7e19e src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryCustomAttributes.java: id: 86f475fb75e1 - last_write_checksum: sha1:360d7a5bcfa5002950055ade4b76126e87555fd8 - pristine_git_object: e63ee7d59b3092570cfa432972da3f10b993e548 + last_write_checksum: sha1:8614485175907638cce3a77825992a3a978c31b6 + pristine_git_object: aeb85e9f365bd93e3b4785d6f7b1d53645d37d41 src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryList.java: id: 8d1b721f402c - last_write_checksum: sha1:0a0ac048dde083f6f87ab44100b2ecf58dd198e4 - pristine_git_object: 9d8bec1f41dd832f385b37fdab1b3e8030317c7f + last_write_checksum: sha1:bb9709c61b73a49efe072801d9a057f14a486064 + pristine_git_object: eac09c918e3adab9e0cc229e6c4fd2d6d8694470 src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryObject.java: id: bfc6a8c582c4 last_write_checksum: sha1:d42c22eb9cccab1fcbcf414ae1738805a6907cd4 pristine_git_object: cc436a7ed2992005e228fc614617d00edaf457ae src/main/java/com/clerk/backend_api/models/components/SCIMGroupRoleMapping.java: id: b99542ec85ee - last_write_checksum: sha1:819f425d09bfa6f9e4d838f8beb10eeb9a5d8e1e - pristine_git_object: c2305a757b0b0b412729b7f7140eb62d1ad614fb + last_write_checksum: sha1:1c921271564e261b67a5ee84712a3a1c51b9c51f + pristine_git_object: ce7d8d0a12f5aa216e75d23e9f2b66914d364182 src/main/java/com/clerk/backend_api/models/components/SCIMGroupRoleMappingDeleted.java: id: d101c88a0c3b last_write_checksum: sha1:5293877e2f17cf6b2f27be03424373479aa0301f @@ -6422,8 +6766,8 @@ trackedFiles: pristine_git_object: f75b35326a853c27b07e80bb49c240b9de10f94e src/main/java/com/clerk/backend_api/models/components/Scim.java: id: 602a309b40a5 - last_write_checksum: sha1:dadc2ed92b51d6bc03450db9fc34556c59575aaf - pristine_git_object: 33344e519e7f3d4db7aa1dc2505bcfc0c057c07f + last_write_checksum: sha1:22da09d383f0ac1e526c27a9b89e13d02c04cf55 + pristine_git_object: a7742dda15ce3f899fb8ef576cdad9654678e360 src/main/java/com/clerk/backend_api/models/components/Seats.java: id: a2587836532d last_write_checksum: sha1:aa244297c0e31aa8b51ee17e81a1bda8f221770d @@ -6488,6 +6832,10 @@ trackedFiles: id: ecb36e869b88 last_write_checksum: sha1:ba547590fed72c634c362174d1b4e75d0cac080e pristine_git_object: 8122851973934040ada7bccb687dc1d2af249852 + src/main/java/com/clerk/backend_api/models/components/Source.java: + id: a0a9060fe3f0 + last_write_checksum: sha1:4919f9b21696385b2304a1ef5f377d19a9448260 + pristine_git_object: 272748d6270b789983e4668cac0346b54a338c71 src/main/java/com/clerk/backend_api/models/components/Status.java: id: 55083a9b3e9b last_write_checksum: sha1:b49982f9fd11ce00664ab5a5e83457291e0f8eab @@ -6602,8 +6950,8 @@ trackedFiles: pristine_git_object: 8d6abfb9306f4b8f50140816f566e9994c0f8fd0 src/main/java/com/clerk/backend_api/models/components/User.java: id: e0ba80043def - last_write_checksum: sha1:17ba0d0df46f795b4422335a916aacb61a1bef0a - pristine_git_object: e9466480a3c00607d2ae1c7a8436bb5d98762587 + last_write_checksum: sha1:717b62ad1418f7c81d3e022f49b14f13722ea945 + pristine_git_object: 5eb46c43e43aed5d19c307e2273947a23b142e62 src/main/java/com/clerk/backend_api/models/components/UserObject.java: id: 5efb9fe49895 last_write_checksum: sha1:3817019cf8043dcfae4bc45dc5a9d18da776a69a @@ -6990,52 +7338,52 @@ trackedFiles: pristine_git_object: 67a329b27851b3974741a9c0fe1ac00f2519ccab src/main/java/com/clerk/backend_api/models/errors/ClerkErrors.java: id: 2def47eec248 - last_write_checksum: sha1:0182e37f773c4204a3ac725d7d22d70a387fa7e2 - pristine_git_object: ea75353ae9d02fa015938f977736f4831ae9457e + last_write_checksum: sha1:cb6bf2cd4f6af18f3e5042140ce00aab06314579 + pristine_git_object: e8a786c377330b41ab98ee3e91e385d7c4475f54 src/main/java/com/clerk/backend_api/models/errors/CreateAPIKeyAPIKeysErrors.java: id: 80e3e5525201 last_write_checksum: sha1:8e3f5b2cf40032c7d2e881c585f563669890cf6a pristine_git_object: 9c7cde6d370faa78a53522a61e8122f46f477fa8 src/main/java/com/clerk/backend_api/models/errors/CreateAPIKeyAPIKeysResponseBody.java: id: f180c562970c - last_write_checksum: sha1:27983e8e039077ba35577fd94de38df867ed5e07 - pristine_git_object: 2c1a461c38a040e1ebbe8634d1448e30abdad890 + last_write_checksum: sha1:8b3b3e55263dfc1c434b2391cf42962a0b1de8df + pristine_git_object: 1506e635d539e9141ad7afc8ad0316a09b131d42 src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensErrors.java: id: bcbfba4d2d37 last_write_checksum: sha1:45253ed80c6c3370e9d9ae75f19031ae1f220b27 pristine_git_object: fb1915fb20f29baf4307e067e332c265c41a4d9e src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody.java: id: e20f25bed369 - last_write_checksum: sha1:4c0ea6a595cb1e6a63cdcce7f18ec642c21641c3 - pristine_git_object: 346575b52d8bb72024faff44b0b9503b7efb3455 + last_write_checksum: sha1:c7d472787880a525d73b7a758933d8264e99e01f + pristine_git_object: 979983c3404b03ad430e6c29718d0f5fa0441f3d src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java: id: 64dcf29a67d9 - last_write_checksum: sha1:713c3580d366b3c92f3e94dd7cba4f6654a14213 - pristine_git_object: 54b88a8a5872dc385f3638245c039096eb63ddb6 + last_write_checksum: sha1:2c74ac4af22a38a712b3238d8a0fbda34e0e191c + pristine_git_object: d12d2015188157ae99923a06875e87eaddaf7eb2 src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseErrors.java: id: 013a9065aeba last_write_checksum: sha1:bba6e6cd8fa5cc4cd48302ba462c4c06b693426d pristine_git_object: c5099fc0e33944bfc44d614b3cefdb79b84917c8 src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java: id: 6276ffdf3d44 - last_write_checksum: sha1:530475b1c99b36497d843a25e02f552ea3e48412 - pristine_git_object: 7944375eb7b568f246a38d6ff9be849ed9fb2fe4 + last_write_checksum: sha1:9e4a6638c409015d80ca3f3ec7176f6f8f43b0ce + pristine_git_object: 818162b38ea3ddebb399dc6bab4185e19c77e952 src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenErrors.java: id: 59fe74cca880 last_write_checksum: sha1:8d750e5f0c657527e16c96ea33073ce32c7260db pristine_git_object: 0549cd2a0fa042e028a613d11aff3b98128f7d7f src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenResponseBody.java: id: 4aac4e35ae9f - last_write_checksum: sha1:528d5fbaced701661c6948c74f88af6e96f78844 - pristine_git_object: 8e0151adf7f596c9412c91a05d5149da472cc36e + last_write_checksum: sha1:4cd7341fd6d0635313e18dff44eaa59d7836b02d + pristine_git_object: d51ec4808d8c62836ee28ac723d0d2b92e7c4632 src/main/java/com/clerk/backend_api/models/errors/CreateApiKeyErrors.java: id: 7c05c4650c60 last_write_checksum: sha1:48f0f923ae91761c95a803725a871987d7a93756 pristine_git_object: 942f19796471da9f0d3f7c5ee1e594a67138fa21 src/main/java/com/clerk/backend_api/models/errors/CreateApiKeyResponseBody.java: id: f4a7a4cfb16b - last_write_checksum: sha1:23262f5cabddf127e8130c487e81f0e74af51981 - pristine_git_object: 91d79288bd9d790de497576b4dbd82b0b5b1a2ce + last_write_checksum: sha1:386ca1b9159f454f75f6e2bfd51c797b4a3b32d9 + pristine_git_object: d319011db25ee902f7d3d7b180ebbcb9c87efca9 src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenErrors.java: id: b6498fd179cd last_write_checksum: sha1:b19488bdf67b7b3365fe023312614cfb12088c4c @@ -7046,28 +7394,28 @@ trackedFiles: pristine_git_object: 32951837db12acb678820d44c851b92b4c1f8beb src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenM2mResponseBody.java: id: fd425a39397a - last_write_checksum: sha1:53351b0070dcac537db072bbdb2da62126dd89c9 - pristine_git_object: 3f5057bcbb09a765663584d90a8f0c65d717b12e + last_write_checksum: sha1:4292f6f7f9b1b6023da15630534ae9a1211bc481 + pristine_git_object: aa1308e4b27bf8d0a51cb3150462ee916faf3298 src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenResponseBody.java: id: 3ad7748c6fca - last_write_checksum: sha1:73575db210ade3e0064a6ea77dce872580f5dd3f - pristine_git_object: 49f53423c376920cb560888ba34a9ef2988ac8c7 + last_write_checksum: sha1:afe6878526dabaa61cb873fa3d480b06374b4cf5 + pristine_git_object: 7c4bbf27d09b18b18b70f63244e227a988ba4339 src/main/java/com/clerk/backend_api/models/errors/DeleteAPIKeyAPIKeysErrors.java: id: f074619dd04a last_write_checksum: sha1:4eb3541a263de774f9cd39ca451267127807e660 pristine_git_object: adcc1cbb1da79b2b7a5596209800cec80f62e5ce src/main/java/com/clerk/backend_api/models/errors/DeleteAPIKeyAPIKeysResponseBody.java: id: 266ca8354f6e - last_write_checksum: sha1:f2b0e0c6b1b0eab21ec6c0394ab4fe3d927b675a - pristine_git_object: b93cafa568c06d98f2d678bf70f5dabce3200987 + last_write_checksum: sha1:f4cdbcf690aa1fe99970468dc853fd0ab5b6e501 + pristine_git_object: 833a0fbf5a2962775e3965f25028faa29061ef8a src/main/java/com/clerk/backend_api/models/errors/DeleteApiKeyErrors.java: id: 02ba5a1b2aa6 last_write_checksum: sha1:9315e4f2ee8e8b6bbf170789174275dbfb9147ef pristine_git_object: f1fb2d6ef8e2a7090f5796ee974a8f3155788df5 src/main/java/com/clerk/backend_api/models/errors/DeleteApiKeyResponseBody.java: id: 1150fd033a44 - last_write_checksum: sha1:e850507411be5db638236623b676ba6d2d301c9d - pristine_git_object: 67fb49778c9bcf45e3431b785eb2328c361af105 + last_write_checksum: sha1:0798c62ee3568879087bb3b6f28d2f91c86f36fd + pristine_git_object: 3bed1514367c26bedf87b0fc53ffd96a41135510 src/main/java/com/clerk/backend_api/models/errors/Errors.java: id: ed918e15848d last_write_checksum: sha1:441214943b46ee63c645b220f2fc1be9c0c31bdd @@ -7078,48 +7426,48 @@ trackedFiles: pristine_git_object: 367e5943e09540bf8aec4690774c396d78a9c7ba src/main/java/com/clerk/backend_api/models/errors/GetAPIKeyAPIKeysResponseBody.java: id: cb8e66358235 - last_write_checksum: sha1:9ead468fbddcd41bcfc35733bdcd725be78c20ef - pristine_git_object: 4d9c234d6889e5fec3a1b98df8a08d5d44409af1 + last_write_checksum: sha1:b591df020ab4b3cc3ffacf41ea3f9a9170a7a8f6 + pristine_git_object: e223bcaf7b36142f438b427024fd044e42ed57f3 src/main/java/com/clerk/backend_api/models/errors/GetAPIKeySecretAPIKeysErrors.java: id: b4ec3051ec65 last_write_checksum: sha1:dd3e926dcf109967c17168ee58d7a11dfe7f0b9a pristine_git_object: 00a498fe8f0b149052158dfdd5f29c0ff0aac04d src/main/java/com/clerk/backend_api/models/errors/GetAPIKeySecretAPIKeysResponseBody.java: id: 32ad31608e6d - last_write_checksum: sha1:8aee67c70cc3da31937960325a79cf2066d13494 - pristine_git_object: 096e8137a7071255f0a5369daceede7abcd83cc5 + last_write_checksum: sha1:c4bc3cd35844d0673d482026ce48fedffa1d78ef + pristine_git_object: cdb5d6b652075d1b69f4fdf84aa68a4cf6390e44 src/main/java/com/clerk/backend_api/models/errors/GetAPIKeysAPIKeysErrors.java: id: 3b4c0f0bbbb3 last_write_checksum: sha1:5f4b6d4f3ec6ff99beb9137a92bed9922d1f1b19 pristine_git_object: fba08b4db628a27c567ca3e76d07a260f1615886 src/main/java/com/clerk/backend_api/models/errors/GetAPIKeysAPIKeysResponseBody.java: id: 421579eb2c0f - last_write_checksum: sha1:e8bf15200d999d2d803acf636135c943c7941020 - pristine_git_object: 046ff249f1c89ca3216f70e34fc7ffe0109e6f93 + last_write_checksum: sha1:4e3c87b28527187ead41ce11ca0f8ee77f4321f1 + pristine_git_object: f6f87cda1f58357e79fe09caa43f3877745d822f src/main/java/com/clerk/backend_api/models/errors/GetApiKeyErrors.java: id: 0079c29b7d89 last_write_checksum: sha1:19b9279778ce69b6003dbe96beb528849d6865ef pristine_git_object: 56e6e8488adae169c5d5062c0353c228d797f563 src/main/java/com/clerk/backend_api/models/errors/GetApiKeyResponseBody.java: id: d765d291c50b - last_write_checksum: sha1:3c31160cf35f683bea721073203a502629a46b61 - pristine_git_object: a50168aec7db09ce11ee025066cd2efd69af52ec + last_write_checksum: sha1:f62746d958b2a40371476ae6cf2e874aa1f3d687 + pristine_git_object: 2f71a51f8ac18c8d44a2c025666d947aed3b5952 src/main/java/com/clerk/backend_api/models/errors/GetApiKeySecretErrors.java: id: c9a3e47be604 last_write_checksum: sha1:88474ded1247ec2e0be0562eae1055aeb4a1997a pristine_git_object: 42560a097b289550a28ad6c48b63cd11bafd8c57 src/main/java/com/clerk/backend_api/models/errors/GetApiKeySecretResponseBody.java: id: eff3aa436167 - last_write_checksum: sha1:44173564a9f1b3c614bf9223a5ecb6f21dd9451b - pristine_git_object: 039d36b221d3f18ac7d994d3b0553e03e5059e69 + last_write_checksum: sha1:2f0af61c3bf7d804db33c363c3f90ed6db20a614 + pristine_git_object: a1dfe5f5dc9038beeb5619eea258e02cb639496c src/main/java/com/clerk/backend_api/models/errors/GetApiKeysErrors.java: id: 906ce79cbf52 last_write_checksum: sha1:178a273fc9029facfd3c51bd806a0ae475f7fbe7 pristine_git_object: e0f491171bbfec3823eeda2e65e784cdf0c04610 src/main/java/com/clerk/backend_api/models/errors/GetApiKeysResponseBody.java: id: 1c6e13070b64 - last_write_checksum: sha1:2ee1c8024a00d4a88a4b34e7980b48b00267eee1 - pristine_git_object: 1d298882bd7eed0ace2b6de5f33a76f0b1c41960 + last_write_checksum: sha1:b26b952be2982e7c71e9683c4298814c135db48d + pristine_git_object: 2366a85c4a8fc7920e607e71c333f40ee7ca32a9 src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensErrors.java: id: 2c34d7820a9b last_write_checksum: sha1:d219a2ce43486bc8e9b955618a627903a1cadd5a @@ -7130,28 +7478,28 @@ trackedFiles: pristine_git_object: 6db63166142d129ae665f00b4e470b81efbd90dc src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseBody.java: id: 5fc5ef85887e - last_write_checksum: sha1:6462075ae7d31efbdf6bcd15c349117ae708669b - pristine_git_object: a91391aa7c0cfa4c53f54e5ef9c864a4d05ea991 + last_write_checksum: sha1:b6bae77276eb2e17253c29a77401ad911d5c6ce6 + pristine_git_object: b8ff202110e442593b846bc329921f740e82a2c2 src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseErrors.java: id: a60fa03954ed last_write_checksum: sha1:928e61d4723e4800157a18751fcf1b0c114c1723 pristine_git_object: 862ad0822dabbd468adaca8c19e518a9d52b8260 src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseResponseBody.java: id: fd33c228d2a6 - last_write_checksum: sha1:4ab08e6134ea07fa63a4ef07795b7d7aeb921273 - pristine_git_object: 8770d72c9a58976f93b878888396d1ce93be750a + last_write_checksum: sha1:ba8070c265568ea1a04b39b36f12bbf18d7a470b + pristine_git_object: e4c34abfa89781208d3c0cb1b3508ee0555ee2af src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensResponseBody.java: id: b27ee499780c - last_write_checksum: sha1:a1c39121633cded859ce409a6ad4c0e0dad06903 - pristine_git_object: 8b4d88a230094765e640f7e12e1a3db880688f09 + last_write_checksum: sha1:77cab314901bd844d06bd43108088fb503af79e7 + pristine_git_object: f485a573080932ecfe7c912d47181efc916b4353 src/main/java/com/clerk/backend_api/models/errors/RevokeAPIKeyAPIKeysErrors.java: id: 5fa7e9f691f8 last_write_checksum: sha1:e4d361832f51ff449914583c60cacb9c7b99f9d6 pristine_git_object: e5a10b4d08fa101a8d8a7f6fc626c921f7337a83 src/main/java/com/clerk/backend_api/models/errors/RevokeAPIKeyAPIKeysResponseBody.java: id: e9b81a85b86e - last_write_checksum: sha1:64cea2295c0cebe159fa077af6e0d071234942ff - pristine_git_object: f4b89b1007b072971ea59ad3243a477e40cd9753 + last_write_checksum: sha1:6d754488d20947cd1f368c2f1eff2bbb4768ffb9 + pristine_git_object: 206ec7e35df3573dad6979b148973548bb604cf7 src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensErrors.java: id: 82f3e0b2d769 last_write_checksum: sha1:39adc10e0a73932891ae1d398a41c8ae3b3aca88 @@ -7162,36 +7510,36 @@ trackedFiles: pristine_git_object: 15ec73cd5d473546004a5d752c9ddd7570d78c52 src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody.java: id: 61aad6031a0f - last_write_checksum: sha1:624a9410e301f3fc86a88c3a19355ec554ab3b49 - pristine_git_object: 39f529fabd617b00bba715e40f7345510dbbb4c8 + last_write_checksum: sha1:1ad3f12dc11ffed1af951dbd889e8d594674ad7d + pristine_git_object: bfca37a1c18fce1961c9755b8ad6b83c16a01d9c src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java: id: b75fd2a9a8fa - last_write_checksum: sha1:d20249f2f38121a76f6e20626225f7199c3e7753 - pristine_git_object: 1435bb47c999c448cf247fd3893228bf829c5b06 + last_write_checksum: sha1:541c74ecf5e5c27f5edd9a40ad4ba26a0e1830fe + pristine_git_object: c224c583c4ce08b4c2d05f4e43574b1dccb90200 src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseErrors.java: id: 75c19850fba0 last_write_checksum: sha1:9605f3bf191f9909e215a131bb3fa67952157171 pristine_git_object: 714b10c27de0e66b3c6458bd9b96eead634ee7ad src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java: id: f8b22166436a - last_write_checksum: sha1:33351d6edd595a8f570f6c2d66fd8d2ad9f6a11b - pristine_git_object: 5e2fc217af0944b529e147e8addbbd934ca1771c + last_write_checksum: sha1:4e6ae05c14e6174c092a7e93c578c6fad2784ded + pristine_git_object: 6d5ee2b37149f1d46f2ad608fd38ab06cb3674a1 src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenErrors.java: id: 028623ec931e last_write_checksum: sha1:5987d499bd64acf7fb89e684953ccbd893b8bde3 pristine_git_object: 98e541a04b27e918f731ab7300078643c9d73f0e src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenResponseBody.java: id: 1b6281b41f49 - last_write_checksum: sha1:362429eea6fa431ecf4b9d17a4622486a4534378 - pristine_git_object: 13328be2e8dd44730ae59f2be799ae5841f8e6ae + last_write_checksum: sha1:5a5e93573a3801a9276aff039dc1cfaa4ac11c04 + pristine_git_object: be2020ef729ecd5f40f0528efc32bc4674351f1d src/main/java/com/clerk/backend_api/models/errors/RevokeApiKeyErrors.java: id: 0a0533e0eb6d last_write_checksum: sha1:8c4e84402fc04159a3284c56ad0ba60dbdcd0e9d pristine_git_object: 6acc68ccb739605d8f982b45abab6ca4beb1b0cc src/main/java/com/clerk/backend_api/models/errors/RevokeApiKeyResponseBody.java: id: f24e2c1abbee - last_write_checksum: sha1:5a79bd634cac59fc7a8c27fd912436d81fe5ee6f - pristine_git_object: c763ffc59bc4df86b6e40582f95f3059206254d5 + last_write_checksum: sha1:0254b0279c71093aeb1a86db9692bf10ec1acdb8 + pristine_git_object: cd0b68b588cbf2051f9d1db78ca9c7eb6178ec6d src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenErrors.java: id: e8c811e7fb65 last_write_checksum: sha1:ecb24456b4159a4ea294da579b9dbb9e4c83a001 @@ -7202,12 +7550,12 @@ trackedFiles: pristine_git_object: a10504207a8cc79e141fd61e700b36d3797a9b11 src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenM2mResponseBody.java: id: dde869fc2938 - last_write_checksum: sha1:aa6c5bd8d2cef4c69fd4ae6a77da082e39c26852 - pristine_git_object: 8a2c1b54f523f98294f1775bb70102e1cf6a6456 + last_write_checksum: sha1:ef154f4b9e3a8911045dd331b2e2d48ed42eae20 + pristine_git_object: d7ecfa19e843b17118b5acac05e3b01cda6ea342 src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenResponseBody.java: id: 8a055b3ebca8 - last_write_checksum: sha1:eb186b988d508e7b4791449bdf6cce60896e7e7f - pristine_git_object: c6214dfc9484d78de8d11304d4cac7cfe624109c + last_write_checksum: sha1:87c7cf07c83851703b46a2aa876dc7dbfafb287c + pristine_git_object: d598838f138e6c34484c729492f148823338f8a3 src/main/java/com/clerk/backend_api/models/errors/SDKError.java: id: 7234c2c468f3 last_write_checksum: sha1:30c3672b174e59a1d536b8c722f6cd1e744c3e0d @@ -7218,32 +7566,32 @@ trackedFiles: pristine_git_object: d50ffe4a059736c45798c38be3421aa6c53d50cb src/main/java/com/clerk/backend_api/models/errors/UpdateAPIKeyAPIKeysResponseBody.java: id: 39788ce59ee1 - last_write_checksum: sha1:e683edfa275457285198a931a3661d7c75411ff9 - pristine_git_object: 5fc6d91f57c22acdca59b19dcd1882b4d3c4b01a + last_write_checksum: sha1:499d3e98006a4536797360d8d41937fcc2cef1f2 + pristine_git_object: dad5760b869df43330be55f07bb5cdfe540b5228 src/main/java/com/clerk/backend_api/models/errors/UpdateApiKeyErrors.java: id: 7317e6371560 last_write_checksum: sha1:8dbac75a6baaa63f1b88d857432f37d9b9c33c0f pristine_git_object: e0f4a3334397763be7a18d1369bc2c2b71566efa src/main/java/com/clerk/backend_api/models/errors/UpdateApiKeyResponseBody.java: id: 9b59e27411c9 - last_write_checksum: sha1:5de5abd40e83e4a4c6e81e3cb52b82059f739089 - pristine_git_object: c0719f575c3f16b05fde2a678b6a9224526379fc + last_write_checksum: sha1:95b3e892959c32515bdbccec43c242d849c7379d + pristine_git_object: 437aa78f42f621a1e66b16735c52eb207ede10a4 src/main/java/com/clerk/backend_api/models/errors/VerifyAPIKeyAPIKeysErrors.java: id: c583706fbb90 last_write_checksum: sha1:2321e1faac95ec1479b102cee3f8a7bdaea08651 pristine_git_object: f47f88c5df76893f416c08ed59ecde2a148ad695 src/main/java/com/clerk/backend_api/models/errors/VerifyAPIKeyAPIKeysResponseBody.java: id: 22094fe21b3f - last_write_checksum: sha1:55018a40d06112276e1efd5fd99fee988d86f3f1 - pristine_git_object: 55590cdcf84a5cc612bac66ef6fe2d4fe3647d4f + last_write_checksum: sha1:bf1812ae44bf2d90541bfe73fd4abb48fe1726fc + pristine_git_object: 409fa91b0c3e13f5ea399464f61d81d44f69b965 src/main/java/com/clerk/backend_api/models/errors/VerifyApiKeyErrors.java: id: 35ff830536f3 last_write_checksum: sha1:bfa922c047ac2336eb57fad1a289bd5c8340e433 pristine_git_object: b5594f5b0e75064e24b4db720d49dd4731295e26 src/main/java/com/clerk/backend_api/models/errors/VerifyApiKeyResponseBody.java: id: dfc1116b91f1 - last_write_checksum: sha1:430f33477a49c53b1592115881982586c5ce1ebc - pristine_git_object: 6286ef0e42570c5fd6476fd8f7324268affe76ef + last_write_checksum: sha1:17d13b2e0d25e602980f8a36fbc50b472d8de6a6 + pristine_git_object: 3e7e8a105d139f4d208902d7b88be03ce32ee3f0 src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenErrors.java: id: 79e09ae1ac56 last_write_checksum: sha1:6d661fa53ddf6b92270c253c0a84f19addd889ad @@ -7254,12 +7602,12 @@ trackedFiles: pristine_git_object: 41fccdd0be29f204031ad2cb40adf6bb5fe02abc src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenM2mResponseBody.java: id: 8afdaf284ee9 - last_write_checksum: sha1:2b4bf55d5f41b6955f6127a10f1add939def89bd - pristine_git_object: e26614d164635683ca52387be27dbcf7d610f21d + last_write_checksum: sha1:860018c8e53707ca9cecd06a0e6e5c2261f6c050 + pristine_git_object: 6528290326ab14675e090086e7f37d4bacf78c36 src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenResponseBody.java: id: 094647f60b07 - last_write_checksum: sha1:5d770e2e7b9f4fb7b21e9abe3fd0dd69079a8f0c - pristine_git_object: f64edb59e43ada51ffd4e03d878dfb2828c1f42f + last_write_checksum: sha1:058cc0cd655ac1df49532fc6260dcc3470d15fdd + pristine_git_object: 1481e544a944d63ba7f320d4153b06927c4d438d src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenErrors.java: id: 76a00787b7d0 last_write_checksum: sha1:67024195d511b35480ba229626a33e8c71284ef0 @@ -7270,12 +7618,12 @@ trackedFiles: pristine_git_object: 7b1b75d5fc363a7c0e34539bb2df5fa91c6721a2 src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.java: id: 10a433d9f72d - last_write_checksum: sha1:5a2a1090f6ec2be3689036fe8a646402ac7f9356 - pristine_git_object: b01fc9b5ecd0cc2e567d738a71c23ab0d6536f1e + last_write_checksum: sha1:af6d5d59660d1aa1c145648837386f741f435551 + pristine_git_object: 5e372435343fe2a593c7ceaee0e99908a0f9456b src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenResponseBody.java: id: 2750220ec2bd - last_write_checksum: sha1:bc664ff5680f4c2a061757f41172be37404881e4 - pristine_git_object: 3428786f5ee53dd3449e93cad9210c66fcc726a9 + last_write_checksum: sha1:78c6280c82a9cf71376dcf46ce51d044a2028524 + pristine_git_object: 2f23fbb789d07df6fe47f59a920e778bb3ff8cde src/main/java/com/clerk/backend_api/models/operations/Actor.java: id: 0d20f9e4227f last_write_checksum: sha1:2036d08c310b99ebcc70cd742b0be83856820a48 @@ -7332,6 +7680,18 @@ trackedFiles: id: 2698f61c5680 last_write_checksum: sha1:7af0c41cf1662e811dad281f8b384606c64b411d pristine_git_object: 97ef3ffa3a8f8461a2ebbdeed6e6126efd3a0c6f + src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountRequest.java: + id: a77bfc72baff + last_write_checksum: sha1:4551d0965f0e69187fd0da0eab1cc269f27fa255 + pristine_git_object: beb4677e384a5e78d1b94cfb2579e48f11295ecc + src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountRequestBuilder.java: + id: ca80b0b3dd86 + last_write_checksum: sha1:16eab35709aa530a50843aa5c44f5888fc556397 + pristine_git_object: 73506823f718d5669ce70dbc0925fc1042cb8563 + src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountResponse.java: + id: 64c80005814d + last_write_checksum: sha1:4dc71e8acb29d5457f4a9822c6c8a7a7181444b8 + pristine_git_object: e7ac228994897b5b6143584ba029363878130709 src/main/java/com/clerk/backend_api/models/operations/AssignPermissionToOrganizationRoleRequest.java: id: 9898bf5670b1 last_write_checksum: sha1:aa3f121ba3d29d4fc6d0ecb9fe5b178bdcec433c @@ -7556,6 +7916,38 @@ trackedFiles: id: d6c7273a095a last_write_checksum: sha1:3ae2e8bc04137f918f6a6c83a410cfe992057eb7 pristine_git_object: be48dfb7361c857cdbd1b08596d877506343b77e + src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequest.java: + id: 2b271093589f + last_write_checksum: sha1:8d8a81b028de047a12c6d36c962f5c2eb2e09742 + pristine_git_object: b043d0de6f36eee648ae0817e338a2127b4841cd + src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequestBody.java: + id: b4ea2960019b + last_write_checksum: sha1:aff623118462e07f31440f9c1f3ba6ab846ee8ef + pristine_git_object: c0f1582be3795c1ec2723d7b667bc889dd07186d + src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequestBuilder.java: + id: 5012ffe3e217 + last_write_checksum: sha1:447d3db12339afa8c09eb3c2ed8d05ec76ea034b + pristine_git_object: 7f2672c5da7a90e40e36fe47d2249d1dee6d4905 + src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingResponse.java: + id: 93e3befa4f29 + last_write_checksum: sha1:db396bb68687ab38bb5084c5c8c7892d1f838507 + pristine_git_object: cd3765b2cce9072fb5f36b159366ecc5a9bfdf41 + src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappings.java: + id: 7f7c3667dcac + last_write_checksum: sha1:3d03e99b107f597223024f71b6467e3b17639845 + pristine_git_object: 9f6dbac75cabd9d006fee92e2254d66e8607bf8f + src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryRequestBody.java: + id: 7ebc7fcfdd02 + last_write_checksum: sha1:7abc7608d93b61961f335a87e484fd4d5b117aee + pristine_git_object: 9fd5a935600a10025091f29a97230677b9876760 + src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryRequestBuilder.java: + id: ef625230dd10 + last_write_checksum: sha1:152b823dfc476ac1dceae16bc483501686763413 + pristine_git_object: d9ad2e380afc617741992afa810201284c937136 + src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryResponse.java: + id: 72326f91bcce + last_write_checksum: sha1:ed76e08ea90ce18c702a33c62a5a5dea25762ca2 + pristine_git_object: 39bad16b1c944ef8f54fae4e57409378ff707356 src/main/java/com/clerk/backend_api/models/operations/CreateEmailAddressRequestBody.java: id: 6091930d63d3 last_write_checksum: sha1:c1fb3a98b0c8aea2a9286bdfa7f96e2bc67ba25b @@ -7678,8 +8070,8 @@ trackedFiles: pristine_git_object: 1061e2595a5da26be7a5b76587fe25bf8c84bbd7 src/main/java/com/clerk/backend_api/models/operations/CreateOAuthApplicationRequestBody.java: id: 2deeec5de915 - last_write_checksum: sha1:8266d9a6d18d70a6774c1d506f8d03697fe21d65 - pristine_git_object: 84d4d5c828f941e8276e2112a686e4135027d0bb + last_write_checksum: sha1:c7a5a80a67c75f2687136d5db93a642575b96284 + pristine_git_object: 52aee8a26a0f842d4b70d9705c91d51e7cdaad52 src/main/java/com/clerk/backend_api/models/operations/CreateOAuthApplicationRequestBuilder.java: id: bef6f949dd98 last_write_checksum: sha1:fc078f1fd8faef859a891dbc1fa354fc8a8d64d7 @@ -7854,20 +8246,20 @@ trackedFiles: pristine_git_object: 26b4735a10850d7f126da8169bba793e47677f70 src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryRequestBody.java: id: 927aa3de289f - last_write_checksum: sha1:b78179c9e8245f9b4054f0519048378ad725cd47 - pristine_git_object: 4ee9aa5fed5309d2d83f5a9d957576a53f6e2f3e + last_write_checksum: sha1:5ac9a094fad22ec3c31d910b4c25188a53de682c + pristine_git_object: 56bdd1ca6b0d463d03a0135886e44347f4fd4fb6 src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryRequestBuilder.java: id: 47fe861e138c last_write_checksum: sha1:b94b365257b4714d00d88ffd64ca07c700c731e9 pristine_git_object: 6409e9a39a9eb04406edb64359afb92487f1f7eb src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryResponse.java: id: 6ba6af85d1db - last_write_checksum: sha1:1804a2e70a1b981bcd73408ec23d4b655d7d5e8d - pristine_git_object: 89eaf58801a6099338ae9b148894ad22bd0dc122 + last_write_checksum: sha1:79fab7e0daf8bdbe2fe870064e66ff093215ff4f + pristine_git_object: 284afbc460dc0db31c6273e82203613498ec0764 src/main/java/com/clerk/backend_api/models/operations/CreateSCIMGroupRoleMappingRequest.java: id: 1b00b9d59424 - last_write_checksum: sha1:90e576c8ed938b685a1ffd568410347f540785b2 - pristine_git_object: 73afa2a07107bfc6c351b7c75e442be9e1bbe79e + last_write_checksum: sha1:7f644908ade408ce71b400daeb81e415f34a5be1 + pristine_git_object: ec58e3543b6de6d5df59d726a586b360fe131df7 src/main/java/com/clerk/backend_api/models/operations/CreateSCIMGroupRoleMappingRequestBody.java: id: 666cc928c726 last_write_checksum: sha1:768d7e67aa8fff8d120b35d4abd00ca8ed29343d @@ -7966,8 +8358,8 @@ trackedFiles: pristine_git_object: e1a3738268fe8bbe10b0519a89a297b0b2cd08ac src/main/java/com/clerk/backend_api/models/operations/CreateUserRequestBody.java: id: 07a02872c1bb - last_write_checksum: sha1:8c7a1cc0f4958ef7626237591ee38061d1de7423 - pristine_git_object: b6b8a597d60c7c1ebdd1cf91fdaad946d9e4748d + last_write_checksum: sha1:da85512bcb0e08630620b10d65f323c397e1e0d3 + pristine_git_object: cdbfe642f6244396e94b5826ba83c9cc35a6dc13 src/main/java/com/clerk/backend_api/models/operations/CreateUserRequestBuilder.java: id: 9c766f1fdce5 last_write_checksum: sha1:8714278a5d32ce001be670fb1fa8d8fd6d5da6a7 @@ -7990,8 +8382,8 @@ trackedFiles: pristine_git_object: c1c25091a5a33cfaa91a549a02032b71da17f4c0 src/main/java/com/clerk/backend_api/models/operations/CustomAttributes.java: id: cdcd625ec9c6 - last_write_checksum: sha1:f8c82e4513508920e729abdc3873db26ea9e522f - pristine_git_object: 016b2b7f2609c7d34a132877f7929d954a024726 + last_write_checksum: sha1:c2e77e8fc81e282bc09552d76d2c3a00ddd41d73 + pristine_git_object: 64b19aa0cf580594ebadccffad19e6f136a654d5 src/main/java/com/clerk/backend_api/models/operations/Data.java: id: 37bb0c0b9a29 last_write_checksum: sha1:d593bd38d263957ad899a8f6fa7d180963ba6bf4 @@ -8056,6 +8448,30 @@ trackedFiles: id: 7f0eff763f9d last_write_checksum: sha1:df27a0e8e4011202fc23daec011a46fad89eda4b pristine_git_object: d44a25c0b428a2a0909ab95800888ba07e9ec054 + src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingRequest.java: + id: 10fc418a3193 + last_write_checksum: sha1:2ef05ba3f6bc045b7253722ded5721ff32dc1b6d + pristine_git_object: ffa6172e63f80601898ecaeebd19ec0576316906 + src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingRequestBuilder.java: + id: be039b6ab9d0 + last_write_checksum: sha1:d65626936af32ad9414144ad4a15f4036926c442 + pristine_git_object: e372bfa5c9b7dee3bf44168c015bf75932edf259 + src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingResponse.java: + id: e9a571f299f7 + last_write_checksum: sha1:53ec45eef56cbf564a7df5b326c232ac03277920 + pristine_git_object: d2a7e59c6beee56bceb855e40c16bf8d9941d8bc + src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryRequest.java: + id: d31862b48264 + last_write_checksum: sha1:8ce0bd1a43e57f0a37a05765cfee6f218b042531 + pristine_git_object: f33599270ce89199306208c40062cb57fd636844 + src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryRequestBuilder.java: + id: 64f4787f586b + last_write_checksum: sha1:bbdd80f6d886f2c293cc513700673e8e147d7177 + pristine_git_object: 30a31e23d3432747451beba56831b6acbf02a6a2 + src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryResponse.java: + id: 28f1904d784f + last_write_checksum: sha1:8614809eece1f2f46b3073e1a9e24a9ad55cef75 + pristine_git_object: a410e048484c540925019015e469cb7bed6ec7d1 src/main/java/com/clerk/backend_api/models/operations/DeleteDomainRequest.java: id: 5da3e49c9139 last_write_checksum: sha1:71bc78a6dd9e1cd16057ecf6d5e83ae60a6a0c05 @@ -8262,8 +8678,8 @@ trackedFiles: pristine_git_object: aa3297ad5191130cf5893cee88dd9e704a9721b8 src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMDirectoryRequest.java: id: 706eb3b38129 - last_write_checksum: sha1:4be9f30ca16de03b43afeb7313c12262823f4739 - pristine_git_object: 0d9744cc17f7d8c32d726978920f2f912580a188 + last_write_checksum: sha1:45344b52fecee736c94fde5210ea65c3f92b3429 + pristine_git_object: 310bad63492f5fc35dbcb0e595df1ecce10c538a src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMDirectoryRequestBuilder.java: id: bd8176f65051 last_write_checksum: sha1:a4593fb6dd51be362f9ecb616597766e5328b5d9 @@ -8274,8 +8690,8 @@ trackedFiles: pristine_git_object: b4552e647e2fbd53356a0f6a5595940ed50af3c1 src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMGroupRoleMappingRequest.java: id: 18f5b99a1ccc - last_write_checksum: sha1:69da9165a06b38fd82cf091521c5c7ede6fcbb53 - pristine_git_object: 3ff97fb42021f5a5d1a5c70840d2f5c126b8857b + last_write_checksum: sha1:8e1ce4d740e8267c083de3e5306bbf8272faed8a + pristine_git_object: c5a42b73668a40d42ad65ff904f7ab8d8119e001 src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMGroupRoleMappingRequestBuilder.java: id: ae5930e764f5 last_write_checksum: sha1:4e458723bf1f4407bd1b71b37572e295e96e0409 @@ -8552,6 +8968,18 @@ trackedFiles: id: 4815ea194238 last_write_checksum: sha1:1f25e20a133349e02573f2115581c7530c899f2f pristine_git_object: e11c6d923ccc80f769c612f2bf3bee4cfbf75349 + src/main/java/com/clerk/backend_api/models/operations/GetDirectoryRequest.java: + id: 453a78d4b730 + last_write_checksum: sha1:d21882e939ccb16df688802a8a438aed7a86fa8e + pristine_git_object: 4e7ff89272e52b80537779bb29ec600d121265c3 + src/main/java/com/clerk/backend_api/models/operations/GetDirectoryRequestBuilder.java: + id: 40ad5256af73 + last_write_checksum: sha1:59d3364ce2e1f0114054b1a00fdfa01df5c7404d + pristine_git_object: 3a5d324af183461b3cd298c1fc3fe1c1c2d4e0c1 + src/main/java/com/clerk/backend_api/models/operations/GetDirectoryResponse.java: + id: 23fa6b7c8cf7 + last_write_checksum: sha1:1fc926fd393e56df7049debcc8b19e4d14f75337 + pristine_git_object: 4a9be0ccf909497cc27c3d41edb4d8c226e743e7 src/main/java/com/clerk/backend_api/models/operations/GetEmailAddressRequest.java: id: 6e1672a30338 last_write_checksum: sha1:c587627618c113cc3da3d824ca6b8f0f3d7a8b67 @@ -8838,16 +9266,16 @@ trackedFiles: pristine_git_object: e77500090a35f7de01e24fd7f7d09f6a71fb4d6b src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryRequest.java: id: 9387d087de0d - last_write_checksum: sha1:b4e24bd9d4ded06be1be5b9835fea733734449ce - pristine_git_object: 9094480fcb8300b0fae7395c8e22ab199d61b744 + last_write_checksum: sha1:3238236e6bf68e566897de5bf4029b2f73916aaf + pristine_git_object: 2206df3c57c3ab54a17443763c75549a6f9876af src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryRequestBuilder.java: id: 551fa00394ab last_write_checksum: sha1:3246b55b7755023b84699d187540cc3dd358317f pristine_git_object: 79b835c689f80a32e3fbbf386b6509e09c048d69 src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryResponse.java: id: dc94649273ff - last_write_checksum: sha1:7911f59da86c4029f0204fca8ce6a32a19b15e01 - pristine_git_object: d3d30f9044afe49db601af9c4788e8606d420099 + last_write_checksum: sha1:64f061210550125a0e562614f070a6370decc02d + pristine_git_object: 8082063bbd60f23f94dfd83dcc786e8a41b4c0f0 src/main/java/com/clerk/backend_api/models/operations/GetSessionListRequest.java: id: acedfb00c1ef last_write_checksum: sha1:18d468b7636dc5823d7298cac48e6836452af6ea @@ -8934,8 +9362,8 @@ trackedFiles: pristine_git_object: ec493676c7895ea69fe65afa2fd2d1003f8d1d59 src/main/java/com/clerk/backend_api/models/operations/GetUserListRequest.java: id: 154f998fb834 - last_write_checksum: sha1:329100e325beb8eb8839e5fb2b8a30059c70141d - pristine_git_object: 86b2f805df993fc81fb7dd3e1a8d2e3b2388af96 + last_write_checksum: sha1:015dba5388e9cf053cb8a032bcdfed08d922d338 + pristine_git_object: cab75be0e1819f45deaac461c1bedccd1d2c5c19 src/main/java/com/clerk/backend_api/models/operations/GetUserListRequestBuilder.java: id: 07719ca0f648 last_write_checksum: sha1:7de198aef3253fc047028c5b1304797eed676a22 @@ -9040,6 +9468,30 @@ trackedFiles: id: e47184463389 last_write_checksum: sha1:eac6f778c5aacc41b697f09d79056797139f8ef1 pristine_git_object: 0681aba1b16181ed908e61e286b226811e172eb0 + src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesRequest.java: + id: 07d358b45271 + last_write_checksum: sha1:cd438bf71e1019c3f77fc39f3fa31bbdfa319c6c + pristine_git_object: 1dd865bbb4eb4c4463d3152f3bd43b8d621d6e59 + src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesRequestBuilder.java: + id: e29664120849 + last_write_checksum: sha1:d5c526ae5c7b6dd0a1c8e398a161fc1e34a11043 + pristine_git_object: af317470043573b0c085672839081346357b8765 + src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesResponse.java: + id: 45158c5b40f1 + last_write_checksum: sha1:06c0953658aad455b9383a8cf6b847e61f38f573 + pristine_git_object: b4cfbdbbfeaa4848c95c550244a548eeffc811a9 + src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsRequest.java: + id: de72adbd5086 + last_write_checksum: sha1:e530a0e1a8a73bef46d6444fea9a4b76efbc6816 + pristine_git_object: 444995985cd355d814d2200a3f4b3d39d36efd13 + src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsRequestBuilder.java: + id: 2f0ed9fcb002 + last_write_checksum: sha1:c2864a18ef99ba06463cd329f9a488fb35d4716e + pristine_git_object: 2134a9b157a7a790f62771cf42949654b05cddda + src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsResponse.java: + id: 524656cbd150 + last_write_checksum: sha1:3e015cc4885a83fd9dc7c4e309d05ceaf6830ab5 + pristine_git_object: c9310c6483f7259fc55f34961ef8ea5a951a5d09 src/main/java/com/clerk/backend_api/models/operations/ListDomainsRequestBuilder.java: id: c0aad8415a35 last_write_checksum: sha1:4bce43d974e5c235183edfb24d658d482e3c5b95 @@ -9134,8 +9586,8 @@ trackedFiles: pristine_git_object: c1cef1cb517b0863ea2426984e04b360f153e2d2 src/main/java/com/clerk/backend_api/models/operations/ListOAuthApplicationsRequest.java: id: a1d81c645b13 - last_write_checksum: sha1:92952eeb29ceea433b7f3aea24c2b3368c75526e - pristine_git_object: 0e34a6fec5f08634f8c37efd126c20a1cf50e04c + last_write_checksum: sha1:404e06012254793db7a108eb6d8283f728875ea7 + pristine_git_object: 032530b7481ede37e7118aa8dc365ca79675d31f src/main/java/com/clerk/backend_api/models/operations/ListOAuthApplicationsRequestBuilder.java: id: 37a0aadb2c90 last_write_checksum: sha1:f36ce4f6f724c700e147882e4ad56362072e3c6c @@ -9278,12 +9730,12 @@ trackedFiles: pristine_git_object: b7bc05a87601cc2a948207a9dea5e7186bce38c2 src/main/java/com/clerk/backend_api/models/operations/ListSCIMDirectoriesResponse.java: id: 531ca5977822 - last_write_checksum: sha1:f014c21d955bc59e1c98aab8f011043dcdd639f0 - pristine_git_object: 7258b5fc6f380b4555b3b49dc6f3a2c02ad0d7a8 + last_write_checksum: sha1:fbf6bbd61c8f5b5a3db61a148e2799cb24f2023c + pristine_git_object: 9d1bd52ed2b5f77b711a0cb4db6fa86be0930145 src/main/java/com/clerk/backend_api/models/operations/ListSCIMGroupRoleMappingsRequest.java: id: 3bba41ff6386 - last_write_checksum: sha1:341e09dff9326f2e2e962b9805f0372f05b92569 - pristine_git_object: 3a67ae55726e836d22f4a65ad1568efa7aca8f58 + last_write_checksum: sha1:3d1dbddcbf4a8053b7d34bac86faeffb0d341be0 + pristine_git_object: 15d1c70f9fbb7b8931cae7cdac516b4e3a951410 src/main/java/com/clerk/backend_api/models/operations/ListSCIMGroupRoleMappingsRequestBuilder.java: id: 4ef967041de8 last_write_checksum: sha1:b68a11e8102c67b00cac53eef5d9aebb349d0ac6 @@ -9292,6 +9744,18 @@ trackedFiles: id: b76f98f5d86d last_write_checksum: sha1:8ca139876dc8f703373c870afccc4caff3edf733 pristine_git_object: 384f0ae9376e73b9cda88cf9906fd98168328a27 + src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsRequest.java: + id: 0fd7a5438978 + last_write_checksum: sha1:ba5591a624d6de015776fe6a89db60b1d1765383 + pristine_git_object: 4d3d6733802f87a455596b2c72d212eb338121e6 + src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsRequestBuilder.java: + id: 058a9bb9e21a + last_write_checksum: sha1:810ec79d5ea36ee56cc143fb1ed378c6e7cf5a24 + pristine_git_object: ea968761d33f529ae932ce91e17d33f44b5a2855 + src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsResponse.java: + id: f229b6906c64 + last_write_checksum: sha1:a5729e1a571ab3e65ac266323b8f208075a05478 + pristine_git_object: 6f0314640b26e1ae204861412bb17fd01d8be2c2 src/main/java/com/clerk/backend_api/models/operations/ListUserTrustedDevicesRequest.java: id: a04dd3e5676d last_write_checksum: sha1:0649a8748355c39b3d4f7ec5dc7d6d380a039641 @@ -9484,6 +9948,18 @@ trackedFiles: id: ee45939998c3 last_write_checksum: sha1:d755164100e1780f052323e2531918eb68b96a17 pristine_git_object: 4a88579a0e1bf29fddd220a56a2d55073060dbc1 + src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountRequest.java: + id: 559f9f9b01f9 + last_write_checksum: sha1:424ff6ada882aac7a48bb211bee41c6c3af6def9 + pristine_git_object: a1a69dd168a80e1c5e3f9613ce80dc52e8eb7b28 + src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountRequestBuilder.java: + id: 2ca6e6a6635f + last_write_checksum: sha1:f538e5af2fa22e74b938cbc5ea8ac5e1876020c1 + pristine_git_object: 179433e00f35886146ac7f24f87fe67373380229 + src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountResponse.java: + id: 440aa47535d1 + last_write_checksum: sha1:a5f1f8bbea28dbd4f5321e26d4809b921bbc8028 + pristine_git_object: ad3cb3bb6d5a8ef4945ca91110dcd22f6a2765f9 src/main/java/com/clerk/backend_api/models/operations/RemovePermissionFromOrganizationRoleRequest.java: id: 7b7a9dc27823 last_write_checksum: sha1:8adca359034a4b56516bf774da45600f9c187a8a @@ -9512,6 +9988,26 @@ trackedFiles: id: c8ee3238aa00 last_write_checksum: sha1:f98d327b8f1f48dd31ea25e99dc36bf5ffd67972 pristine_git_object: 4bdef28af0f5c0ecd1d18489c1837164b2f294a1 + src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsMappings.java: + id: 237a27b22f79 + last_write_checksum: sha1:c219032befc288d2ef8edc68800782b1eb69b5bf + pristine_git_object: 906fc462cd382cc988aba8aec825177bea69264b + src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequest.java: + id: 631f4165ac88 + last_write_checksum: sha1:c09aa3a7eba3cb7fc2890eda2f7d3220f16a58b2 + pristine_git_object: f13e3beaa41b46e7b69f5e72be7183b424e20ff9 + src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.java: + id: 78ebf0cb0d62 + last_write_checksum: sha1:94c3202f09199133d312b217a3041f7466e17c06 + pristine_git_object: a6db2509e8595b3cafef7a453eaa6142ecce4387 + src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBuilder.java: + id: 6fe9d4d307dc + last_write_checksum: sha1:6af31429a03ba4bff7315e3ec0b2c129914b0168 + pristine_git_object: 465d12f36f37b527d35d9638e2c4306e40ca3d86 + src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsResponse.java: + id: 56bf3a58299c + last_write_checksum: sha1:1646df65be94809ddc9070ae60200a0579bb74c3 + pristine_git_object: a13f2856b6aed83a4912a42dac746e7ac68b457c src/main/java/com/clerk/backend_api/models/operations/ReplaceOrganizationMetadataRequest.java: id: b1e7bb8b518e last_write_checksum: sha1:da054a2eff1eab86ce755536c8c9c5e1f420fa40 @@ -9562,8 +10058,8 @@ trackedFiles: pristine_git_object: 06a62763a0677de94e07e97b8ede99191e04653e src/main/java/com/clerk/backend_api/models/operations/ReplaceSCIMGroupRoleMappingsRequest.java: id: 3175567f3286 - last_write_checksum: sha1:3a47f012439cd7dcbec5644524033a467485ded3 - pristine_git_object: 849532ade56d4b6d4505c635dfe9f7908651fe7e + last_write_checksum: sha1:09105768354bfc4352f9980316d39dd55a6fe0b3 + pristine_git_object: 741e3e60c82cf2f4c0c8cf98a7f7544505d3e149 src/main/java/com/clerk/backend_api/models/operations/ReplaceSCIMGroupRoleMappingsRequestBody.java: id: d0c8716e51be last_write_checksum: sha1:cfdaf5afcce137a50eb69c407947e22c3dbbb019 @@ -9840,6 +10336,18 @@ trackedFiles: id: 6962bef54a91 last_write_checksum: sha1:92444e22f759334ac348c97877a5a9f96afecffc pristine_git_object: 7b8b2880af52da779487f580cf168fc06ce00452 + src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialRequest.java: + id: 60cf1ee4b875 + last_write_checksum: sha1:127b68ba0ebcf3fa5dfbbd8c733eefa3947a2d07 + pristine_git_object: 9f3e82bb55ebc48386b394603ec53acfde805bba + src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialRequestBuilder.java: + id: 851a82ad8eb8 + last_write_checksum: sha1:c8694bd7fcf7b19b0fac1bef96b22cbb14fb421b + pristine_git_object: 5a6f2f5aeccf6a5158c8e0e75fc9c873b08f89cc + src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialResponse.java: + id: d1b83d805759 + last_write_checksum: sha1:a5c6198c03834247e4eceabeccabca9c5384ae44 + pristine_git_object: 7d04c13fee8d9ff30f9d8d80178c0b2fcd69db54 src/main/java/com/clerk/backend_api/models/operations/RevokeUserTrustedDeviceRequest.java: id: 4bc67fa8d02c last_write_checksum: sha1:80672aeea3e5ac9544c2623924bf57a6a6924cee @@ -9852,6 +10360,18 @@ trackedFiles: id: 032fa541bbee last_write_checksum: sha1:e5f4eeef30e7485367e5b0635feb27f4a0104e95 pristine_git_object: 961371060d2755bf3566b6aa0a5f2a1af283868d + src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyRequest.java: + id: febe220b807e + last_write_checksum: sha1:cf5824435c8bbcfbc5fbbf497f853b9c46694c7a + pristine_git_object: c42f80de75201dc60168cec5e56c6e386d50a980 + src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyRequestBuilder.java: + id: 482b134d4545 + last_write_checksum: sha1:8d562c1c6ced0e9e06eef9c6be39b3b148f8ce83 + pristine_git_object: 17fc1b42a582fe1a82141c062a72cc00da806671 + src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyResponse.java: + id: 935550e01f87 + last_write_checksum: sha1:6a1b33c680fb63f679a3a8ac476023ca9ea3fb4b + pristine_git_object: b0e56e25a270c697cc874c6bf665cdf68d0fd160 src/main/java/com/clerk/backend_api/models/operations/RotateMachineSecretKeyRequest.java: id: 34fc2a383d00 last_write_checksum: sha1:2668e2461143ca7f88751f3036fb73bc1d9d7982 @@ -9882,16 +10402,16 @@ trackedFiles: pristine_git_object: 22b038dda3f23bda3ecff657e61197699739c63e src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyRequest.java: id: c1bd9d14a8c9 - last_write_checksum: sha1:1edd17b2d8b23d7f4c77c1421ea8ca04fd8bf27b - pristine_git_object: 981c7321bd0722a45c18f83fac6d00a97e217dde + last_write_checksum: sha1:1b5d3485ad053782ab9b9e3132148a333cdf0111 + pristine_git_object: d27bba680928cb1f920416b729262e4e7b2ccacf src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyRequestBuilder.java: id: eb14c612eeec last_write_checksum: sha1:697a46c3a021f202a325df55eb1e6f513270e84f pristine_git_object: 591d70b8293d48c4023be1d6507469f2d36ef7f4 src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyResponse.java: id: d9cd9b2dc506 - last_write_checksum: sha1:aecd910efe82e6ed6974cfa6fe7d963e9f1fdb56 - pristine_git_object: 0dc887ac50b2856abef40d37d5fdb104cdb4e6e4 + last_write_checksum: sha1:99998137151da052623d145fa894aa54325958b0 + pristine_git_object: 5c70884728499f4731859657599bf895790e0148 src/main/java/com/clerk/backend_api/models/operations/Saml.java: id: c607aedffd6d last_write_checksum: sha1:075aee94e0bb614aac92b4f5065bed9f138708c1 @@ -10032,6 +10552,22 @@ trackedFiles: id: b4b2ae839ce3 last_write_checksum: sha1:04e0e2054c672331db35651d4077b44848b56944 pristine_git_object: af43e80cdc460e6721423a33105a540149e0bb95 + src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequest.java: + id: 28b74345995a + last_write_checksum: sha1:1a7c1e5bd42fc236f473e7694012e4a3204ab9c3 + pristine_git_object: 10bb45de1ad134ab52705c60edb4546212043f46 + src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequestBody.java: + id: b99d859bed19 + last_write_checksum: sha1:b9feb1d03eea8723cf298b8f44adbf50891e4ebf + pristine_git_object: e7c2b95c9fa61a67631be675f2f01580a77510d8 + src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequestBuilder.java: + id: d4f42603dc4b + last_write_checksum: sha1:f142afba343d71191131d3be91c4f1811e115d41 + pristine_git_object: 578bab3fc83153f9b9ac9f1abc8e256539829140 + src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryResponse.java: + id: 79241e543a54 + last_write_checksum: sha1:14c3943288f307ab20e2cb87ab3c6ef183fc3d21 + pristine_git_object: 76b08143b57e81d3446d48c158a0387f8af5514a src/main/java/com/clerk/backend_api/models/operations/UpdateDomainRequest.java: id: 24e0a13dbf42 last_write_checksum: sha1:2daa306d82fddf5c20f3de8b390e28da82f7e205 @@ -10070,8 +10606,8 @@ trackedFiles: pristine_git_object: 3262b9db2e81a8b1b82241287fb00eab86e09000 src/main/java/com/clerk/backend_api/models/operations/UpdateEnterpriseConnectionCustomAttributes.java: id: a57a0c26c677 - last_write_checksum: sha1:0dcf0566c8afade82238b0c87b4e78a76de706f0 - pristine_git_object: 1bc751389dee15d04ca5179e02d003fdbcf36cb7 + last_write_checksum: sha1:26026a0c1554ea9f6873a2e5980389f39ede2edb + pristine_git_object: d9cea984ee3aad52a2e4fc009b77456d4124e8c9 src/main/java/com/clerk/backend_api/models/operations/UpdateEnterpriseConnectionLoginHint.java: id: 408444d4088f last_write_checksum: sha1:daa14c31865c0d339cde58201018eaa5b27d7e5e @@ -10130,8 +10666,8 @@ trackedFiles: pristine_git_object: 5d0295d0a563908c4e8b18305b986ca6e15db446 src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.java: id: 0c961826415a - last_write_checksum: sha1:99190d6216984f287de64c7ed4b5c281b4f9842b - pristine_git_object: a924ea11d7211e2fe836b36851857c140d9ec14a + last_write_checksum: sha1:b1030b99ab405af240b5fc422a88c52edeba9d3b + pristine_git_object: b7803498fedbe725fd1e0c0310e192e7e97fa207 src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBuilder.java: id: fb050bd009b9 last_write_checksum: sha1:0ad2374667b98ca41a2dc0e945acc3056df49727 @@ -10154,8 +10690,8 @@ trackedFiles: pristine_git_object: 148efb156f36aae78ef3fb19c441a9a3f1274f97 src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceProtectRequestBody.java: id: 470b66b6b513 - last_write_checksum: sha1:a5a9a994c99fe315518097e6510b522216d705c7 - pristine_git_object: dd92875029c2a965d6c37112bcb6ac0d293cc76a + last_write_checksum: sha1:621946bf06500d58a05e5d25ed4cf7b1df524506 + pristine_git_object: 58a85c4340d266341beacb06180c978bf6d7e874 src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceProtectRequestBuilder.java: id: 33de52c04db7 last_write_checksum: sha1:094e3bd7cf5fd0fcf8b0c62d4b989f573184c36b @@ -10166,8 +10702,8 @@ trackedFiles: pristine_git_object: a0ac157a20093a7e15c5ab6d703212b684b8e439 src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceRequestBody.java: id: b8389ceff7e0 - last_write_checksum: sha1:abbffc1ec1e1f806697317a9cf278d8aa2acee86 - pristine_git_object: 39db73eaf686a764d4f024ddef09af0dd5b570a5 + last_write_checksum: sha1:ad628131186ea5cc13e875567935898c6c90a8e3 + pristine_git_object: 30086772ef4c196dc4f6c0aea6ac776fc0a45cf0 src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceRequestBuilder.java: id: f2d804e20d9d last_write_checksum: sha1:4096e0fb8853ba57f5992c05fc4a8c1cbe2c68dd @@ -10230,8 +10766,8 @@ trackedFiles: pristine_git_object: 85cc4394cbedd01e2922cebc81d002cb1a823823 src/main/java/com/clerk/backend_api/models/operations/UpdateOAuthApplicationRequestBody.java: id: 4c886e36fdc3 - last_write_checksum: sha1:661bfa0c5c5cdd7bf68ebf79dc659429cfdb8f19 - pristine_git_object: 33e8f25233224ac5599d998374d31b3efd30646d + last_write_checksum: sha1:112d8bbb9af67a17993b13d571197fea915520f1 + pristine_git_object: 0fbdfda158dda7df953e8e07520d9a3ac9ec2397 src/main/java/com/clerk/backend_api/models/operations/UpdateOAuthApplicationRequestBuilder.java: id: c1435499c8a7 last_write_checksum: sha1:c25a00011923398119ccefde5165a9c6f779facf @@ -10310,8 +10846,8 @@ trackedFiles: pristine_git_object: a383e878f0a07e83e4fea1b3c8a421994207f10e src/main/java/com/clerk/backend_api/models/operations/UpdateOrganizationRequestBody.java: id: cd4311e8ca06 - last_write_checksum: sha1:ca28d01b1ee074185d548f32dd71816e6fa0fade - pristine_git_object: 90776f76769f175d64ef16ffb6d2d5f0bfec2bc5 + last_write_checksum: sha1:c6471529c7c98c98639299e09e2d08cc83ae302d + pristine_git_object: b15d4c894dfe52f3baddbd5ad1cd862234b2be9c src/main/java/com/clerk/backend_api/models/operations/UpdateOrganizationRequestBuilder.java: id: f514663c1f16 last_write_checksum: sha1:1c99aa72c16193fead5f32e2e21dd84bf2afc7c3 @@ -10402,20 +10938,20 @@ trackedFiles: pristine_git_object: b0d85f7b59a812215172017c9a07ea3f0f8e6d56 src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequest.java: id: 2fecdea53c05 - last_write_checksum: sha1:3d874bb278a7967b4f57303dc682764eee4ad026 - pristine_git_object: a044062bf3d5f893fa22ae1e47157fd204d28e7b + last_write_checksum: sha1:c7e58ba16886940cd082b99a1a3a21e07f3f611d + pristine_git_object: 398864c4c83412a2af59d4cf0ed7209694cfe3e9 src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequestBody.java: id: 008e0cc8f703 - last_write_checksum: sha1:4a1e7f413f61b830b21ed55a14d7ced8ba3914d0 - pristine_git_object: 431e3243aec1188301ea84c3ec47e6b17cf11512 + last_write_checksum: sha1:592db13de3acfdc263ca869b8fe4ff35e45c3a6d + pristine_git_object: 6845ccca5036adcc645377bbdac7da775058fd4e src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequestBuilder.java: id: 56e009d2d255 last_write_checksum: sha1:9a061b18e8e449c7780a44a1317065ecbf28b3f2 pristine_git_object: e40c6b6eae8317a3d4afc04533affe6f57b8057b src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryResponse.java: id: 38815e34be5d - last_write_checksum: sha1:1fe9fc4dc5a2704a1f8b96037df55747a2d0ca72 - pristine_git_object: 34fe6ab599d6696b16486574c25097bed5a975d8 + last_write_checksum: sha1:5cce822f04e99299e30727deb57e27e24b85ab45 + pristine_git_object: a6b12286d1e296629f43513ba3696830e4d20836 src/main/java/com/clerk/backend_api/models/operations/UpdateSignUpRequest.java: id: 9f014705982e last_write_checksum: sha1:e156058e8b0f098c6ea30ad3f8d6e349634b0d37 @@ -10454,8 +10990,8 @@ trackedFiles: pristine_git_object: 443561cd22ff26071c424ee3e315d7b6ab8b3c44 src/main/java/com/clerk/backend_api/models/operations/UpdateUserRequestBody.java: id: 6c580e985e64 - last_write_checksum: sha1:5830004b9c9c7d4763997300e11920faf8af2882 - pristine_git_object: d73cbd938b92d7fb51dc1f3e5bd4bb32ffc054d4 + last_write_checksum: sha1:654869e046e5ac97e790acc6953cb174fbc46146 + pristine_git_object: 8564df2cd1ca59ca9bf128beb96a707a007ed89f src/main/java/com/clerk/backend_api/models/operations/UpdateUserRequestBuilder.java: id: aab33c072cb5 last_write_checksum: sha1:bd196f3d91035166de4843959ad518ae1e96f038 @@ -10748,6 +11284,10 @@ trackedFiles: id: ccdfdc164610 last_write_checksum: sha1:677e2980191923f878ed6eab83e378d556006713 pristine_git_object: ead7fba05c39e43cee07988049bde333be909cf1 + src/main/java/com/clerk/backend_api/operations/ApplyBillingSubscriptionItemDiscount.java: + id: 6a5bcf7c4712 + last_write_checksum: sha1:bf7fe3694768ae06f84d20c7f0faf95d5f3353af + pristine_git_object: db2ecd070220b28525ddd79daf443048f1ada7e1 src/main/java/com/clerk/backend_api/operations/AssignPermissionToOrganizationRole.java: id: 7e01640b237b last_write_checksum: sha1:a2c3ff06215f1fb9e6168c5fee2f93a298ef3f43 @@ -10774,8 +11314,8 @@ trackedFiles: pristine_git_object: 627a28bfef811bf8afefa16c64f858c0a067b319 src/main/java/com/clerk/backend_api/operations/CreateActorToken.java: id: ecb2ce8aa664 - last_write_checksum: sha1:c071c72bd80dd2c49abefa49e428c23322a94253 - pristine_git_object: dba8801b5c217b7859cfd687c2b721a91a0eeee3 + last_write_checksum: sha1:46e652359dd7c088f286da81cae4304799b0d2a6 + pristine_git_object: a84696b0f8095d6184bb14261fb0fc4b26b5c74f src/main/java/com/clerk/backend_api/operations/CreateAdminPortalLinkToken.java: id: b66321a7f23a last_write_checksum: sha1:f05ca881f3f23e2ab3d93d8ccba4bedc46964d24 @@ -10812,6 +11352,14 @@ trackedFiles: id: b89d12a6fb4f last_write_checksum: sha1:8296e6cbf5973dfe2c73a647da2a22b7aa3c4326 pristine_git_object: 67712b354ca6ff2725c039a2bcaa5aad858b9d41 + src/main/java/com/clerk/backend_api/operations/CreateDirectory.java: + id: 1c317c66205a + last_write_checksum: sha1:5da52bc7b2820639f68d0e3d94e4f3de5b078c44 + pristine_git_object: fbf1b6a1921471e4e2139dd9d5585cd579e8d88e + src/main/java/com/clerk/backend_api/operations/CreateDirectoryGroupRoleMapping.java: + id: 7189809f634b + last_write_checksum: sha1:236934423be434990be207852c18a544a3132c1e + pristine_git_object: b7278d413623021fa063f629dcebb76c734675c9 src/main/java/com/clerk/backend_api/operations/CreateEmailAddress.java: id: def88dd4bd06 last_write_checksum: sha1:8f840f477018ed8e544194d3eef77a715dd77f7c @@ -10948,6 +11496,14 @@ trackedFiles: id: 15c601137816 last_write_checksum: sha1:c65485fdd8bd9e5bc7c89f351fead888ffc8c201 pristine_git_object: c7336dc5ecb9bb229b92b52d0a697512e9334e09 + src/main/java/com/clerk/backend_api/operations/DeleteDirectory.java: + id: 3ab2470843d6 + last_write_checksum: sha1:a8597c701e537f5afdc6db06344ad2594c11d616 + pristine_git_object: 8a81af249f000788cf37120b5e0d08221de0c9a2 + src/main/java/com/clerk/backend_api/operations/DeleteDirectoryGroupRoleMapping.java: + id: fb1ad0dfc3dd + last_write_checksum: sha1:239cd68518124962b9fb60624d06b02240bf6cd4 + pristine_git_object: e40abfd43fe02a96dbcb2fa28a52cf7c2fa705f0 src/main/java/com/clerk/backend_api/operations/DeleteDomain.java: id: 3b32063ee744 last_write_checksum: sha1:86d57a497b34239eaf0b75c160b15c529e56a38e @@ -11100,6 +11656,10 @@ trackedFiles: id: 01369693269a last_write_checksum: sha1:7b2c25df0fb23a579d77bd13397cb760b4f839ed pristine_git_object: e8dd6574f12bc0f8581de1a640191e799e666cce + src/main/java/com/clerk/backend_api/operations/GetDirectory.java: + id: d54d857267a6 + last_write_checksum: sha1:03e0ec1950175d754bb0dc8031783aab6c7822b8 + pristine_git_object: 902ecda0f8a7c204cc92191f53b38614c7030a17 src/main/java/com/clerk/backend_api/operations/GetEmailAddress.java: id: 13849a136189 last_write_checksum: sha1:0b1c070272d030c879cef575b2ef0242ad3a825a @@ -11264,6 +11824,14 @@ trackedFiles: id: 355124e2a7c4 last_write_checksum: sha1:63021375cb3de67ddc26377cc2de79641111f395 pristine_git_object: 177aa2995cfcb191811f245b99e1b81e1a6fe17e + src/main/java/com/clerk/backend_api/operations/ListDirectories.java: + id: 3d8f5bb8a2d5 + last_write_checksum: sha1:68986074df4bcfb153f66464fbf37926861fc145 + pristine_git_object: 51907c567f8c98d3d4ea0c2e86216860dd16f455 + src/main/java/com/clerk/backend_api/operations/ListDirectoryGroupRoleMappings.java: + id: d38cb4fcee20 + last_write_checksum: sha1:937b515154e6dbac79f7223adba2726fb9223eca + pristine_git_object: cd2d653ba4ec7f72cee1e4b17fb16d55cba8a99f src/main/java/com/clerk/backend_api/operations/ListDomains.java: id: 2da2727dcc84 last_write_checksum: sha1:3807bd5d9b25393e039f695d73164478a26a704d @@ -11344,6 +11912,10 @@ trackedFiles: id: 45402baebe43 last_write_checksum: sha1:7e674714c3116f4c354297e52fefad6198378beb pristine_git_object: 9006db3c28c07ba7002f0ce0e1aa9f450521d648 + src/main/java/com/clerk/backend_api/operations/ListUserBiometricCredentials.java: + id: 6e32af2fcfb0 + last_write_checksum: sha1:980bc5e3f64837678c67d3639abf588df45bda3d + pristine_git_object: 078ce7cf0b57a635f56a58cb56bb519d34e3fb47 src/main/java/com/clerk/backend_api/operations/ListUserTrustedDevices.java: id: 0729f23067f1 last_write_checksum: sha1:baf133a834be30d6ede759b96963380c754c4171 @@ -11384,6 +11956,10 @@ trackedFiles: id: 65727e1dc95b last_write_checksum: sha1:1eed2f25282ad0f51125754f36265ac0cf69b298 pristine_git_object: 0848e488e308d3dbbea03a75e994f2a45583dfa6 + src/main/java/com/clerk/backend_api/operations/RemoveBillingSubscriptionItemDiscount.java: + id: 8149dc33d867 + last_write_checksum: sha1:abc96f9827e1b6f35887dde2c75f205dc6c43af4 + pristine_git_object: 37fa1a53ef99a6e9b0954221ce4a7d0ea2d60034 src/main/java/com/clerk/backend_api/operations/RemovePermissionFromOrganizationRole.java: id: 34d78fc010eb last_write_checksum: sha1:e7734248cb239386bb143408d1351d3614286808 @@ -11392,6 +11968,10 @@ trackedFiles: id: b0eb4619a91a last_write_checksum: sha1:eded8c299db30e5a49ba4f20f230c3cdca6b95b2 pristine_git_object: 1d79de25b768854dacaafa31eb903a0b721feff7 + src/main/java/com/clerk/backend_api/operations/ReplaceDirectoryGroupRoleMappings.java: + id: 7f5675d140ae + last_write_checksum: sha1:49ebf40097bf9977849d21ecfa9436237c0ac637 + pristine_git_object: 2b9a94c982aede7e39102dcbd83db2521ea394c6 src/main/java/com/clerk/backend_api/operations/ReplaceOrganizationMetadata.java: id: d66bfff5ef93 last_write_checksum: sha1:4f4b6dc723b367d9c42ef1ebb0df37fe4ff5572b @@ -11464,10 +12044,18 @@ trackedFiles: id: 9fdbfbe89f55 last_write_checksum: sha1:eaea11ba713d69cbee6532863ead145bf6be2186 pristine_git_object: 35706bbe496c2527e79c602bd87d24c642d79066 + src/main/java/com/clerk/backend_api/operations/RevokeUserBiometricCredential.java: + id: a0262e230557 + last_write_checksum: sha1:c0182f7685213990d14619c76a767d9dd390c3e9 + pristine_git_object: a4e89438b20044747272331ab8ce1a3f2184d580 src/main/java/com/clerk/backend_api/operations/RevokeUserTrustedDevice.java: id: 416f8932aece last_write_checksum: sha1:92d1ce5d1bdcd9ef1521feac00618f8544df3618 pristine_git_object: 6b030a17de09ba0928b9163a4f85a310569119e6 + src/main/java/com/clerk/backend_api/operations/RotateDirectoryAPIKey.java: + id: 8ea16a082daf + last_write_checksum: sha1:5e8fc8694e1384d6c416c01d393a9d287d27b08a + pristine_git_object: 544049f761188de733580e9b794ade7118c51969 src/main/java/com/clerk/backend_api/operations/RotateMachineSecretKey.java: id: bdc89baefe14 last_write_checksum: sha1:54661c8c911f04657e2fd084c9587999608c1a4b @@ -11478,8 +12066,8 @@ trackedFiles: pristine_git_object: 72edc264e6c354f0c6cc34d2f90909c3d4e3e146 src/main/java/com/clerk/backend_api/operations/RotateSCIMDirectoryAPIKey.java: id: 7fcf6e174293 - last_write_checksum: sha1:614e56e6684a2ac8d00f8f02eefca75643fe4af6 - pristine_git_object: de6e06b2b1af562f3bec313c881f1d1872699779 + last_write_checksum: sha1:579eaa9617a8ff122e2cf6ead1b5605017017caa + pristine_git_object: e6775c8461b434b01bda4ce90570b857f61c0f74 src/main/java/com/clerk/backend_api/operations/SetUserPasswordCompromised.java: id: ee1a563f1165 last_write_checksum: sha1:3cb8683c956a534d0a1b2165bfd881e97cd6ecb1 @@ -11508,6 +12096,10 @@ trackedFiles: id: bf7c60346f02 last_write_checksum: sha1:977f7194f2ff20046fb855279414ad214f488787 pristine_git_object: 580bfa1435c8f084183857dd236b26f8c76ec707 + src/main/java/com/clerk/backend_api/operations/UpdateDirectory.java: + id: a11c017a6156 + last_write_checksum: sha1:954ab5353599bde82a128aa7697b747fd89581b4 + pristine_git_object: 8d5235a40b43c1868b75e62da00e1cccf443b5a1 src/main/java/com/clerk/backend_api/operations/UpdateDomain.java: id: d8b87a50acc4 last_write_checksum: sha1:e14e52930d98d76b3cbcc74044588d62116c0638 @@ -12735,7 +13327,7 @@ examples: speakeasy-default-get-instance: responses: "200": - application/json: {"object": "instance", "id": "", "environment_type": "development", "allowed_origins": ["http://localhost:3000", "https://some-domain"]} + application/json: {"object": "instance", "id": "", "environment_type": "development", "allowed_origins": ["http://localhost:3000", "https://some-domain"], "allowed_subdomains": ["app.example.com", "*.preview.example.com"], "subdomain_allowlist_enabled": false, "workspace_id": "org_2abc123def456"} UpdateInstance: speakeasy-default-update-instance: responses: @@ -13136,10 +13728,10 @@ examples: CreateOAuthApplication: speakeasy-default-create-O-auth-application: requestBody: - application/json: {"name": "", "scopes": "profile email public_metadata", "consent_screen_enabled": true, "pkce_required": false} + application/json: {"name": "", "scopes": "profile email public_metadata", "consent_screen_enabled": true, "pkce_required": false, "device_authorization_grant_enabled": false} responses: "200": - application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": "https://familiar-sport.info/", "client_image_url": "https://colorful-collectivization.biz/", "dynamically_registered": false, "consent_screen_enabled": true, "pkce_required": true, "public": true, "scopes": "", "redirect_uris": [""], "callback_url": "https://tedious-giant.info/", "authorize_url": "https://colorful-collectivization.biz/", "token_fetch_url": "https://glossy-dead.com", "user_info_url": "https://key-fraudster.biz", "discovery_url": "https://enchanting-legislature.net/", "token_introspection_url": "https://good-duster.info/", "created_at": 31938, "updated_at": 764933} + application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": "https://familiar-sport.info/", "client_image_url": "https://colorful-collectivization.biz/", "dynamically_registered": false, "consent_screen_enabled": true, "pkce_required": true, "device_authorization_grant_enabled": true, "public": true, "scopes": "", "redirect_uris": [""], "callback_url": "https://tedious-giant.info/", "authorize_url": "https://colorful-collectivization.biz/", "token_fetch_url": "https://glossy-dead.com", "user_info_url": "https://key-fraudster.biz", "discovery_url": "https://enchanting-legislature.net/", "token_introspection_url": "https://good-duster.info/", "created_at": 31938, "updated_at": 764933} "400": application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} GetOAuthApplication: @@ -13149,7 +13741,7 @@ examples: oauth_application_id: "" responses: "200": - application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": "https://profitable-yin.name/", "client_image_url": "https://eminent-warming.com", "dynamically_registered": true, "consent_screen_enabled": true, "pkce_required": true, "public": true, "scopes": "", "redirect_uris": [""], "callback_url": "https://yummy-marimba.info", "authorize_url": "https://eminent-warming.com", "token_fetch_url": "https://annual-halt.info/", "user_info_url": "https://complicated-freight.org/", "discovery_url": "https://weird-hyena.org", "token_introspection_url": "https://trivial-cinder.net", "created_at": 172236, "updated_at": 876106} + application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": "https://profitable-yin.name/", "client_image_url": "https://eminent-warming.com", "dynamically_registered": true, "consent_screen_enabled": true, "pkce_required": true, "device_authorization_grant_enabled": true, "public": true, "scopes": "", "redirect_uris": [""], "callback_url": "https://yummy-marimba.info", "authorize_url": "https://eminent-warming.com", "token_fetch_url": "https://annual-halt.info/", "user_info_url": "https://complicated-freight.org/", "discovery_url": "https://weird-hyena.org", "token_introspection_url": "https://trivial-cinder.net", "created_at": 172236, "updated_at": 876106} "403": application/json: {"errors": []} UpdateOAuthApplication: @@ -13161,7 +13753,7 @@ examples: application/json: {"scopes": "profile email public_metadata private_metadata"} responses: "200": - application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": null, "client_image_url": null, "dynamically_registered": true, "consent_screen_enabled": false, "pkce_required": true, "public": true, "scopes": "", "redirect_uris": [], "callback_url": "https://unsightly-flame.net/", "authorize_url": "https://slow-premeditation.biz/", "token_fetch_url": "https://miserly-sarong.net", "user_info_url": "https://hasty-account.info/", "discovery_url": "https://french-cross-contamination.biz", "token_introspection_url": "https://spherical-advertisement.org", "created_at": 558167, "updated_at": 560809} + application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": null, "client_image_url": null, "dynamically_registered": true, "consent_screen_enabled": false, "pkce_required": true, "device_authorization_grant_enabled": true, "public": true, "scopes": "", "redirect_uris": [], "callback_url": "https://unsightly-flame.net/", "authorize_url": "https://slow-premeditation.biz/", "token_fetch_url": "https://miserly-sarong.net", "user_info_url": "https://hasty-account.info/", "discovery_url": "https://french-cross-contamination.biz", "token_introspection_url": "https://spherical-advertisement.org", "created_at": 558167, "updated_at": 560809} "400": application/json: {"errors": []} DeleteOAuthApplication: @@ -13181,7 +13773,7 @@ examples: oauth_application_id: "" responses: "200": - application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": "https://avaricious-puritan.name", "client_image_url": "https://ill-fated-sonar.com/", "dynamically_registered": true, "consent_screen_enabled": false, "pkce_required": true, "public": true, "scopes": "", "redirect_uris": ["", "", ""], "callback_url": "https://separate-makeover.biz/", "authorize_url": "https://ill-fated-sonar.com/", "token_fetch_url": "https://unique-fibre.biz/", "user_info_url": "https://eminent-scarification.biz/", "discovery_url": "https://miserly-sundae.com", "token_introspection_url": "https://grim-retrospectivity.biz/", "created_at": 812387, "updated_at": 994111} + application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": "https://avaricious-puritan.name", "client_image_url": "https://ill-fated-sonar.com/", "dynamically_registered": true, "consent_screen_enabled": false, "pkce_required": true, "device_authorization_grant_enabled": true, "public": true, "scopes": "", "redirect_uris": ["", "", ""], "callback_url": "https://separate-makeover.biz/", "authorize_url": "https://ill-fated-sonar.com/", "token_fetch_url": "https://unique-fibre.biz/", "user_info_url": "https://eminent-scarification.biz/", "discovery_url": "https://miserly-sundae.com", "token_introspection_url": "https://grim-retrospectivity.biz/", "created_at": 812387, "updated_at": 994111} "403": application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} ListSAMLConnections: @@ -13879,12 +14471,12 @@ examples: speakeasy-default-get-instance-protect: responses: "200": - application/json: {"object": "instance_protect", "rules_enabled": true, "specter_enabled": true, "checks_bypassed": true} + application/json: {"object": "instance_protect", "rules_enabled": true, "specter_enabled": true, "checks_bypassed": true, "checks_verified": true, "checks_exempt": true} UpdateInstanceProtect: speakeasy-default-update-instance-protect: responses: "200": - application/json: {"object": "instance_protect", "rules_enabled": true, "specter_enabled": true, "checks_bypassed": true} + application/json: {"object": "instance_protect", "rules_enabled": true, "specter_enabled": true, "checks_bypassed": true, "checks_verified": true, "checks_exempt": true} "422": application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} CreateBulkWaitlistEntries: @@ -14041,12 +14633,12 @@ examples: speakeasy-default-get-instance-O-auth-application-settings: responses: "200": - application/json: {"object": "oauth_application_settings", "dynamic_oauth_client_registration": false, "default_scopes": ["", ""], "oauth_jwt_access_tokens": false, "client_id_metadata_documents_advertised": false, "client_id_metadata_documents_only_allow_pre_registered_clients": false, "client_id_metadata_documents_block_implicitly_allowed_clients": true} + application/json: {"object": "oauth_application_settings", "dynamic_oauth_client_registration": false, "default_scopes": ["", ""], "oauth_jwt_access_tokens": false, "aud_claim_enabled": false, "pkce_required": false, "client_id_metadata_documents_advertised": false, "client_id_metadata_documents_only_allow_pre_registered_clients": false, "client_id_metadata_documents_block_implicitly_allowed_clients": true} UpdateInstanceOAuthApplicationSettings: speakeasy-default-update-instance-O-auth-application-settings: responses: "200": - application/json: {"object": "oauth_application_settings", "dynamic_oauth_client_registration": false, "default_scopes": ["", "", ""], "oauth_jwt_access_tokens": false, "client_id_metadata_documents_advertised": false, "client_id_metadata_documents_only_allow_pre_registered_clients": true, "client_id_metadata_documents_block_implicitly_allowed_clients": false} + application/json: {"object": "oauth_application_settings", "dynamic_oauth_client_registration": false, "default_scopes": ["", "", ""], "oauth_jwt_access_tokens": false, "aud_claim_enabled": false, "pkce_required": false, "client_id_metadata_documents_advertised": false, "client_id_metadata_documents_only_allow_pre_registered_clients": true, "client_id_metadata_documents_block_implicitly_allowed_clients": false} "422": application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} GetOrganizationBillingCreditBalance: @@ -14099,7 +14691,7 @@ examples: oauth_application_id: "" responses: "200": - application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": "https://private-hoof.info", "client_image_url": "https://honorable-cod.name", "dynamically_registered": true, "consent_screen_enabled": true, "pkce_required": true, "public": true, "scopes": "", "redirect_uris": ["", "", ""], "callback_url": "https://tedious-council.biz", "authorize_url": "https://last-cycle.net/", "token_fetch_url": "https://marvelous-pop.com", "user_info_url": "https://fatal-decongestant.org/", "discovery_url": "https://weighty-kick.net", "token_introspection_url": "https://witty-emergent.org", "created_at": 543055, "updated_at": 649251} + application/json: {"object": "oauth_application", "id": "", "instance_id": "", "name": "", "client_id": "", "client_uri": "https://private-hoof.info", "client_image_url": "https://honorable-cod.name", "dynamically_registered": true, "consent_screen_enabled": true, "pkce_required": true, "device_authorization_grant_enabled": true, "public": true, "scopes": "", "redirect_uris": ["", "", ""], "callback_url": "https://tedious-council.biz", "authorize_url": "https://last-cycle.net/", "token_fetch_url": "https://marvelous-pop.com", "user_info_url": "https://fatal-decongestant.org/", "discovery_url": "https://weighty-kick.net", "token_introspection_url": "https://witty-emergent.org", "created_at": 543055, "updated_at": 649251} "400": application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} ListEnterpriseConnections: @@ -14448,7 +15040,7 @@ examples: scim_directory_id: "" responses: "200": - application/json: {"data": [{"object": "scim_group_role_mapping", "id": "", "scim_directory_id": "", "scim_group_id": "", "scim_group_display_name": "", "precedence": 444367, "created_at": 84318, "updated_at": 370083}], "total_count": 326127} + application/json: {"data": [{"object": "scim_group_role_mapping", "id": "", "scim_directory_id": "", "directory_id": "", "scim_group_id": "", "directory_group_id": "", "scim_group_display_name": "", "directory_group_display_name": "", "precedence": 444367, "created_at": 84318, "updated_at": 370083}], "total_count": 326127} "401": application/json: {"errors": []} CreateSCIMGroupRoleMapping: @@ -14460,7 +15052,7 @@ examples: application/json: {"scim_group_id": "", "role_id": ""} responses: "200": - application/json: {"object": "scim_group_role_mapping", "id": "", "scim_directory_id": "", "scim_group_id": "", "scim_group_display_name": "", "precedence": 722732, "created_at": 186067, "updated_at": 806389} + application/json: {"object": "scim_group_role_mapping", "id": "", "scim_directory_id": "", "directory_id": "", "scim_group_id": "", "directory_group_id": "", "scim_group_display_name": "", "directory_group_display_name": "", "precedence": 722732, "created_at": 186067, "updated_at": 806389} "400": application/json: {"errors": []} ReplaceSCIMGroupRoleMappings: @@ -14486,9 +15078,164 @@ examples: application/json: {"object": "scim_group_role_mapping", "id": "", "deleted": true} "400": application/json: {"errors": []} + ListUserBiometricCredentials: + speakeasy-default-list-user-biometric-credentials: + parameters: + path: + user_id: "" + responses: + "200": + application/json: {"data": [], "total_count": 727743} + "403": + application/json: {"errors": []} + "500": + application/json: {"errors": []} + RevokeUserBiometricCredential: + speakeasy-default-revoke-user-biometric-credential: + parameters: + path: + user_id: "" + biometric_credential_id: "" + responses: + "200": + application/json: {"object": "trusted_device", "id": "", "platform": "ios", "app_identifier": "", "algorithm": "ES256", "status": "active", "created_at": 593512, "updated_at": 739992} + "403": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + "500": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + ApplyBillingSubscriptionItemDiscount: + speakeasy-default-apply-billing-subscription-item-discount: + parameters: + path: + subscription_item_id: "" + requestBody: + application/json: {"discount_id": ""} + responses: + "200": + application/json: {"object": "commerce_discount_redemption", "id": "", "subscription_item_id": "", "discount_id": "", "source": "promo_code", "cycles_remaining": 756494, "cycles_applied": 870767, "redeemed_at": 245047, "redeemed_by": ""} + "400": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + "500": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + RemoveBillingSubscriptionItemDiscount: + speakeasy-default-remove-billing-subscription-item-discount: + parameters: + path: + subscription_item_id: "" + discount_id: "" + responses: + "200": + application/json: {"object": "commerce_discount_redemption", "id": "", "subscription_item_id": "", "discount_id": "", "source": "promotion", "cycles_remaining": 145739, "cycles_applied": 433032, "redeemed_at": 462556, "redeemed_by": ""} + "400": + application/json: {"errors": []} + "500": + application/json: {"errors": []} + ListDirectories: + speakeasy-default-list-directories: + parameters: + query: + limit: 10 + offset: 0 + responses: + "200": + application/json: {"data": [], "total_count": 816058} + "401": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + CreateDirectory: + speakeasy-default-create-directory: + responses: + "200": + application/json: {"object": "directory", "id": "", "name": "", "endpoint_url": "https://stupendous-management.net/", "provider": "", "enabled": false, "group_role_mapping_enabled": false, "attribute_mapping": {"key": "", "key1": "", "key2": ""}, "created_at": 892357, "updated_at": 799862} + "400": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + GetDirectory: + speakeasy-default-get-directory: + parameters: + path: + directory_id: "" + responses: + "200": + application/json: {"object": "directory", "id": "", "name": "", "endpoint_url": "https://spiffy-request.info", "provider": "", "enabled": false, "group_role_mapping_enabled": true, "attribute_mapping": {"key": "", "key1": "", "key2": ""}, "created_at": 95403, "updated_at": 581199} + "401": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + UpdateDirectory: + speakeasy-default-update-directory: + parameters: + path: + directory_id: "" + responses: + "200": + application/json: {"object": "directory", "id": "", "name": "", "endpoint_url": "https://funny-gerbil.name/", "provider": "", "enabled": true, "group_role_mapping_enabled": false, "attribute_mapping": {}, "created_at": 461459, "updated_at": 615541} + "400": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + DeleteDirectory: + speakeasy-default-delete-directory: + parameters: + path: + directory_id: "" + responses: + "200": + application/json: {"object": "", "deleted": true} + "401": + application/json: {"errors": []} + RotateDirectoryAPIKey: + speakeasy-default-rotate-directory-API-key: + parameters: + path: + directory_id: "" + responses: + "200": + application/json: {"object": "directory", "id": "", "name": "", "endpoint_url": "https://perfumed-flood.net/", "provider": "", "enabled": true, "group_role_mapping_enabled": true, "attribute_mapping": {"key": ""}, "created_at": 162399, "updated_at": 425167} + "401": + application/json: {"errors": []} + ListDirectoryGroupRoleMappings: + speakeasy-default-list-directory-group-role-mappings: + parameters: + path: + directory_id: "" + responses: + "200": + application/json: {"data": [{"object": "directory_group_role_mapping", "id": "", "directory_id": "", "scim_directory_id": "", "directory_group_id": "", "scim_group_id": "", "directory_group_display_name": "", "scim_group_display_name": "", "precedence": 163587, "created_at": 857144, "updated_at": 591219}], "total_count": 125579} + "401": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + CreateDirectoryGroupRoleMapping: + speakeasy-default-create-directory-group-role-mapping: + parameters: + path: + directory_id: "" + requestBody: + application/json: {"role_id": ""} + responses: + "200": + application/json: {"object": "directory_group_role_mapping", "id": "", "directory_id": "", "scim_directory_id": "", "directory_group_id": "", "scim_group_id": "", "directory_group_display_name": "", "scim_group_display_name": "", "precedence": 213856, "created_at": 547560, "updated_at": 504506} + "400": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} + ReplaceDirectoryGroupRoleMappings: + speakeasy-default-replace-directory-group-role-mappings: + parameters: + path: + directory_id: "" + requestBody: + application/json: {"mappings": [{"role_id": ""}]} + responses: + "200": + application/json: {"data": [{"object": "directory_group_role_mapping", "id": "", "directory_id": "", "scim_directory_id": "", "directory_group_id": "", "scim_group_id": "", "directory_group_display_name": "", "scim_group_display_name": "", "precedence": 762838, "created_at": 935550, "updated_at": 432324}], "total_count": 526439} + "400": + application/json: {"errors": []} + DeleteDirectoryGroupRoleMapping: + speakeasy-default-delete-directory-group-role-mapping: + parameters: + path: + directory_id: "" + mapping_id: "" + responses: + "200": + application/json: {"object": "directory_group_role_mapping", "id": "", "deleted": true} + "400": + application/json: {"errors": [{"message": "", "long_message": "", "code": ""}]} examplesVersion: 1.0.2 generatedTests: {} -releaseNotes: "## Java SDK Changes:\n* `clerk.instanceSettings.getOrganizationSettings()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.getOrganizationMemberships()`: \n * `response.data[].publicUserData.deprovisioned` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.clients.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailAddresses.create()`: \n * `request.notifyPrimaryEmailAddressChanged` **Added**\n * `response.verification` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.emailAddresses.get()`: \n * `response.verification` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.roleSets.replaceRole()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.roleSets.addRoles()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.roleSets.replace()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.roleSets.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.roleSets.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.roleSets.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.roleSets.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationPermissions.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationPermissions.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailAddresses.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailAddresses.update()`: \n * `requestBody.notifyPrimaryEmailAddressChanged` **Added**\n * `response.verification` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.emailAddresses.prepareVerification()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailAddresses.attemptVerification()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailAddresses.replaceForUser()`: \n * `requestBody` **Changed**\n * `response.verification` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.instanceSettings.updateOAuthApplicationSettings()`: \n * `request` **Changed**\n * `response` **Changed**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.phoneNumbers.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.phoneNumbers.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.phoneNumbers.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.phoneNumbers.prepareVerification()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.phoneNumbers.attemptVerification()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.phoneNumbers.replaceForUser()`: \n * `requestBody.identificationStatus.enum(unverified)` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.sessions.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.sessions.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.sessions.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.sessions.refresh()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.sessions.revoke()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.sessions.createToken()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.sessions.createTokenFromTemplate()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailSmsTemplates.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailSmsTemplates.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailSmsTemplates.revert()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailSmsTemplates.toggleTemplateDelivery()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.emailAndSmsTemplates.upsert()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.templates.preview()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.list()`: \n * `response.[]` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.create()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.count()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.get()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.update()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.ban()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.unban()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.bulkBan()`: \n * `response.[]` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.bulkUnban()`: \n * `response.[]` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.lock()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.unlock()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.setProfileImage()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.deleteProfileImage()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.updateMetadata()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.replaceMetadata()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.getBillingSubscription()`: \n * `response.subscriptionItems[].paymentMethod.paymentType.enum(payerCredits)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.getBillingCreditBalance()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.adjustBillingCreditBalance()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.getOAuthAccessToken()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.instanceSettings.changeDomain()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.getOrganizationInvitations()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.verifyPassword()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.verifyTotp()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.disableMfa()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.deleteBackupCodes()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.deletePasskey()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.deleteWeb3Wallet()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.deleteTotp()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.deleteExternalAccount()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.users.setPasswordCompromised()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.unsetPasswordCompromised()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.users.getInstanceOrganizationMemberships()`: \n * `response.data[].publicUserData.deprovisioned` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.invitations.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.invitations.bulkCreate()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.invitations.revoke()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationInvitations.getAll()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationInvitations.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationInvitations.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationInvitations.bulkCreate()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationInvitations.listPending()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationInvitations.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationInvitations.revoke()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.allowlistIdentifiers.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.allowlistIdentifiers.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.allowlistIdentifiers.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.blocklistIdentifiers.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.blocklistIdentifiers.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.blocklistIdentifiers.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.betaFeatures.updateInstanceSettings()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.betaFeatures.updateProductionInstanceDomain()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.actorTokens.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.actorTokens.revoke()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.domains.add()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.domains.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.domains.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.instanceSettings.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.instanceSettings.updateRestrictions()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.instanceSettings.updateCommunication()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationPermissions.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.clients.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationPermissions.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationPermissions.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.getStatementPaymentAttempts()`: \n * `response.data[].paymentMethod.paymentType.enum(payerCredits)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.getStatement()`: \n * `response.groups[].items[].paymentMethod.paymentType.enum(payerCredits)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.phoneNumbers.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.clients.verify()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.listStatements()`: \n * `response.data[].groups[].items[].paymentMethod.paymentType.enum(payerCredits)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.instanceSettings.updateOrganizationSettings()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.createPriceTransition()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.instanceSettings.updateInstanceProtect()`: \n * `response.checksBypassed` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.webhooks.createSvixApp()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.webhooks.deleteSvixApp()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.webhooks.generateSvixAuthUrl()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.jwtTemplates.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.jwtTemplates.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.jwtTemplates.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.jwtTemplates.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.machines.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.machines.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.machines.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.machines.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.machines.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.machines.getSecretKey()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.machines.rotateSecretKey()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.machines.createScope()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.machines.deleteScope()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.mergeMetadata()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.replaceMetadata()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.uploadLogo()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.deleteLogo()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.getBillingSubscription()`: \n * `response.subscriptionItems[].paymentMethod.paymentType.enum(payerCredits)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.getBillingCreditBalance()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizations.adjustBillingCreditBalance()`: \n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationRoles.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationRoles.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationRoles.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationRoles.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationRoles.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationRoles.assignPermission()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationRoles.removePermission()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationMemberships.create()`: \n * `response.publicUserData.deprovisioned` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationMemberships.list()`: \n * `response.data[].publicUserData.deprovisioned` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationMemberships.update()`: \n * `response.publicUserData.deprovisioned` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationMemberships.delete()`: \n * `response.publicUserData.deprovisioned` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationMemberships.updateMetadata()`: \n * `response.publicUserData.deprovisioned` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationDomains.create()`: \n * `response.enrollmentMode.enum(enterpriseSso)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationDomains.list()`: \n * `response.data[].enrollmentMode.enum(enterpriseSso)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationDomains.update()`: \n * `response.enrollmentMode.enum(enterpriseSso)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationDomains.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationDomains.verifyOwnership()`: \n * `response.enrollmentMode.enum(enterpriseSso)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.organizationDomains.listAll()`: \n * `request.enrollmentMode` **Changed**\n * `response.data[].enrollmentMode.enum(enterpriseSso)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.proxyChecks.verify()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.redirectUrls.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.redirectUrls.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.redirectUrls.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.signInTokens.create()`: \n * `request.orgId` **Added**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.signInTokens.revoke()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.signUps.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.signUps.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.oauthApplications.list()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.oauthApplications.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.oauthApplications.get()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.oauthApplications.update()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.oauthApplications.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.oauthApplications.uploadLogo()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.oauthApplications.rotateSecret()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.samlConnections.list()`: \n * `response.data[]` **Changed**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.samlConnections.create()`: \n * `request` **Changed**\n * `response` **Changed**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.samlConnections.get()`: \n * `response` **Changed**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.samlConnections.update()`: \n * `requestBody.loginHint` **Added**\n * `response` **Changed**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.samlConnections.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.enterpriseConnections.list()`: \n * `response.data[]` **Changed**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.enterpriseConnections.create()`: \n * `request.saml.loginHint` **Added**\n * `response` **Changed**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.enterpriseConnections.get()`: \n * `response` **Changed**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.enterpriseConnections.update()`: \n * `requestBody.saml.loginHint` **Added**\n * `response` **Changed**\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.enterpriseConnections.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.enterpriseConnections.listTestRuns()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.enterpriseConnections.createTestRun()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.agentTasks.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.agentTasks.revoke()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.waitlistEntries.create()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.waitlistEntries.bulkCreate()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.waitlistEntries.delete()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.waitlistEntries.invite()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.waitlistEntries.reject()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.listPlans()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.listPrices()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.createPrice()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.listSubscriptionItems()`: \n * `response.data[].paymentMethod.paymentType.enum(payerCredits)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.cancelSubscriptionItem()`: \n * `response.paymentMethod.paymentType.enum(payerCredits)` **Added** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `clerk.billing.extendSubscriptionItemFreeTrial()`: `error` **Changed** (Breaking ⚠️)\n* `clerk.scimDirectories.update()`: **Added**\n* `clerk.scimDirectories.delete()`: **Added**\n* `clerk.instanceSettings.getOAuthApplicationSettings()`: `response` **Changed**\n* `clerk.scimDirectories.deleteGroupRoleMapping()`: **Added**\n* `clerk.scimDirectories.replaceGroupRoleMappings()`: **Added**\n* `clerk.scimDirectories.createGroupRoleMapping()`: **Added**\n* `clerk.scimDirectories.listGroupRoleMappings()`: **Added**\n* `clerk.scimDirectories.rotateApiKey()`: **Added**\n* `clerk.scimDirectories.get()`: **Added**\n* `clerk.instanceSettings.getInstanceProtect()`: `response.checksBypassed` **Added**\n* `clerk.scimDirectories.create()`: **Added**\n* `clerk.scimDirectories.list()`: **Added**\n* `clerk.oauthApplications.revokeToken()`: **Added**\n* `clerk.users.revokeTrustedDevice()`: **Added**\n* `clerk.users.listTrustedDevices()`: **Added**\n* `clerk.users.removePassword()`: **Added**\n" +releaseNotes: "## Java SDK Changes:\n* `clerk.users.listBiometricCredentials()`: **Added**\n* `clerk.users.revokeBiometricCredential()`: **Added**\n* `clerk.billing.applySubscriptionItemDiscount()`: **Added**\n* `clerk.billing.removeSubscriptionItemDiscount()`: **Added**\n* `clerk.directories.list()`: **Added**\n* `clerk.directories.create()`: **Added**\n* `clerk.directories.get()`: **Added**\n* `clerk.directories.update()`: **Added**\n* `clerk.directories.delete()`: **Added**\n* `clerk.directories.rotateApiKey()`: **Added**\n* `clerk.directories.listGroupRoleMappings()`: **Added**\n* `clerk.directories.createGroupRoleMapping()`: **Added**\n* `clerk.directories.replaceGroupRoleMappings()`: **Added**\n* `clerk.directories.deleteGroupRoleMapping()`: **Added**\n* `clerk.users.list()`: \n * `request.startingAfter` **Added**\n * `response.[].organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.create()`: \n * `request.skipRestrictionChecks` **Added**\n * `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.get()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.update()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.ban()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.unban()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.bulkBan()`: `response.[].organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.bulkUnban()`: `response.[].organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.lock()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.unlock()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.setProfileImage()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.deleteProfileImage()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.updateMetadata()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.replaceMetadata()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.getOrganizationMemberships()`: `response.data[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.removePassword()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.listTrustedDevices()`: **Deprecated**\n* `clerk.users.revokeTrustedDevice()`: **Deprecated**\n* `clerk.users.setPasswordCompromised()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.unsetPasswordCompromised()`: `response.organizationMemberships[].organization.selfServeSsoEnabled` **Added**\n* `clerk.users.getInstanceOrganizationMemberships()`: `response.data[].organization.selfServeSsoEnabled` **Added**\n* `clerk.actorTokens.create()`: `error.status[403]` **Added**\n* `clerk.domains.list()`: `response.data[].dnsTargets` **Added**\n* `clerk.domains.add()`: `response.dnsTargets` **Added**\n* `clerk.domains.update()`: `response.dnsTargets` **Added**\n* `clerk.instanceSettings.get()`: `response` **Changed**\n* `clerk.instanceSettings.update()`: `request` **Changed**\n* `clerk.instanceSettings.getOAuthApplicationSettings()`: `response` **Changed**\n* `clerk.instanceSettings.updateOAuthApplicationSettings()`: \n * `request` **Changed**\n * `response` **Changed**\n* `clerk.instanceSettings.getInstanceProtect()`: `response` **Changed**\n* `clerk.instanceSettings.updateInstanceProtect()`: `response` **Changed**\n* `clerk.organizations.list()`: `response.data[].selfServeSsoEnabled` **Added**\n* `clerk.organizations.create()`: `response.selfServeSsoEnabled` **Added**\n* `clerk.organizations.get()`: `response.selfServeSsoEnabled` **Added**\n* `clerk.organizations.update()`: \n * `requestBody.selfServeSsoEnabled` **Added**\n * `response.selfServeSsoEnabled` **Added**\n* `clerk.organizations.mergeMetadata()`: `response.selfServeSsoEnabled` **Added**\n* `clerk.organizations.replaceMetadata()`: `response.selfServeSsoEnabled` **Added**\n* `clerk.organizations.uploadLogo()`: `response.selfServeSsoEnabled` **Added**\n* `clerk.organizations.deleteLogo()`: `response.selfServeSsoEnabled` **Added**\n* `clerk.organizationMemberships.create()`: `response.organization.selfServeSsoEnabled` **Added**\n* `clerk.organizationMemberships.list()`: `response.data[].organization.selfServeSsoEnabled` **Added**\n* `clerk.organizationMemberships.update()`: `response.organization.selfServeSsoEnabled` **Added**\n* `clerk.organizationMemberships.delete()`: `response.organization.selfServeSsoEnabled` **Added**\n* `clerk.organizationMemberships.updateMetadata()`: `response.organization.selfServeSsoEnabled` **Added**\n* `clerk.oauthApplications.list()`: `response.data[].deviceAuthorizationGrantEnabled` **Added**\n* `clerk.oauthApplications.create()`: \n * `request.deviceAuthorizationGrantEnabled` **Added**\n * `response.deviceAuthorizationGrantEnabled` **Added**\n* `clerk.oauthApplications.get()`: `response.deviceAuthorizationGrantEnabled` **Added**\n* `clerk.oauthApplications.update()`: \n * `requestBody` **Changed**\n * `response.deviceAuthorizationGrantEnabled` **Added**\n* `clerk.oauthApplications.uploadLogo()`: `response.deviceAuthorizationGrantEnabled` **Added**\n* `clerk.oauthApplications.rotateSecret()`: `response.deviceAuthorizationGrantEnabled` **Added**\n* `clerk.enterpriseConnections.list()`: `response.data[].customAttributes[].directoryPath` **Added**\n* `clerk.enterpriseConnections.create()`: \n * `request.customAttributes[].directoryPath` **Added**\n * `response.customAttributes[].directoryPath` **Added**\n* `clerk.enterpriseConnections.get()`: `response.customAttributes[].directoryPath` **Added**\n* `clerk.enterpriseConnections.update()`: \n * `requestBody.customAttributes[].directoryPath` **Added**\n * `response.customAttributes[].directoryPath` **Added**\n* `clerk.scimDirectories.list()`: `response.data[].customAttributes[].directoryPath` **Added**\n* `clerk.scimDirectories.create()`: `response.customAttributes[].directoryPath` **Added**\n* `clerk.scimDirectories.get()`: `response.customAttributes[].directoryPath` **Added**\n* `clerk.scimDirectories.update()`: `response.customAttributes[].directoryPath` **Added**\n* `clerk.scimDirectories.rotateApiKey()`: \n * `response.customAttributes[].directoryPath` **Added**\n * `error.status[422]` **Added**\n* `clerk.scimDirectories.listGroupRoleMappings()`: `response.data[]` **Changed**\n* `clerk.scimDirectories.createGroupRoleMapping()`: `response` **Changed**\n* `clerk.scimDirectories.replaceGroupRoleMappings()`: `response.data[]` **Changed**\n" generatedFiles: - .gitattributes - USAGE.md diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index eb65cdb1..3f086796 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -29,7 +29,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false java: - version: 6.0.0 + version: 6.1.0 additionalDependencies: [] additionalPlugins: [] artifactID: backend-api diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 7b8042e6..4caf300f 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.793.0 +speakeasyVersion: 1.797.0 sources: clerk-java-sdk: sourceNamespace: clerk-java-sdk - sourceRevisionDigest: sha256:ea628d8ad8afceca9586dc216664091cd56e3ea3899deb84b9c8bb2c87aa347e - sourceBlobDigest: sha256:e2556ac3926af5c3653d92806b21463d99d7703835ec1a56b11befb310293926 + sourceRevisionDigest: sha256:ec9218598a78ea67234fb0bf92b0d68146da3ea2fb7075f0ab42db482fa1d829 + sourceBlobDigest: sha256:621774b0be158b14c14a9ec2b083d73e85e6643f81b64c9f011be27a694506eb tags: - latest - "2026-05-12" @@ -11,10 +11,10 @@ targets: clerk-java: source: clerk-java-sdk sourceNamespace: clerk-java-sdk - sourceRevisionDigest: sha256:ea628d8ad8afceca9586dc216664091cd56e3ea3899deb84b9c8bb2c87aa347e - sourceBlobDigest: sha256:e2556ac3926af5c3653d92806b21463d99d7703835ec1a56b11befb310293926 + sourceRevisionDigest: sha256:ec9218598a78ea67234fb0bf92b0d68146da3ea2fb7075f0ab42db482fa1d829 + sourceBlobDigest: sha256:621774b0be158b14c14a9ec2b083d73e85e6643f81b64c9f011be27a694506eb codeSamplesNamespace: clerk-java-sdk-code-samples - codeSamplesRevisionDigest: sha256:94a70d852572b152d53068c89148a5b8989175493b8bdda8dfb5ecfcacc2c9c7 + codeSamplesRevisionDigest: sha256:cb564ae7e0be4ada9a4e8469e037ae8ee794c4b7f655a74fa2136ccbc5dad0a9 my-first-target: source: clerk-java-sdk sourceNamespace: clerk-java-sdk diff --git a/README.md b/README.md index 9c8c627e..4c954147 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ The samples below show how a published SDK artifact is used: Gradle: ```groovy -implementation 'com.clerk:backend-api:6.0.0' +implementation 'com.clerk:backend-api:6.1.0' ``` Maven: @@ -61,7 +61,7 @@ Maven: com.clerk backend-api - 6.0.0 + 6.1.0 ``` @@ -257,6 +257,8 @@ public class MachineAuthentication { * [cancelSubscriptionItem](docs/sdks/billing/README.md#cancelsubscriptionitem) - Cancel a subscription item * [extendSubscriptionItemFreeTrial](docs/sdks/billing/README.md#extendsubscriptionitemfreetrial) - Extend free trial for a subscription item * [createPriceTransition](docs/sdks/billing/README.md#createpricetransition) - Create a price transition for a subscription item +* [applySubscriptionItemDiscount](docs/sdks/billing/README.md#applysubscriptionitemdiscount) - Apply a discount to a subscription item +* [removeSubscriptionItemDiscount](docs/sdks/billing/README.md#removesubscriptionitemdiscount) - Remove a discount from a subscription item * [listStatements](docs/sdks/billing/README.md#liststatements) - List all billing statements * [getStatement](docs/sdks/billing/README.md#getstatement) - Retrieve a billing statement * [getStatementPaymentAttempts](docs/sdks/billing/README.md#getstatementpaymentattempts) - List payment attempts for a billing statement @@ -273,6 +275,19 @@ public class MachineAuthentication { * [verify](docs/sdks/clients/README.md#verify) - Verify a client * [get](docs/sdks/clients/README.md#get) - Get a client +### [Directories](docs/sdks/directories/README.md) + +* [list](docs/sdks/directories/README.md#list) - List all directories +* [create](docs/sdks/directories/README.md#create) - Create a directory +* [get](docs/sdks/directories/README.md#get) - Retrieve a directory +* [update](docs/sdks/directories/README.md#update) - Update a directory +* [delete](docs/sdks/directories/README.md#delete) - Delete a directory +* [rotateApiKey](docs/sdks/directories/README.md#rotateapikey) - Rotate a directory's API key +* [listGroupRoleMappings](docs/sdks/directories/README.md#listgrouprolemappings) - List directory group role mappings +* [createGroupRoleMapping](docs/sdks/directories/README.md#creategrouprolemapping) - Create a directory group role mapping +* [replaceGroupRoleMappings](docs/sdks/directories/README.md#replacegrouprolemappings) - Replace directory group role mappings +* [deleteGroupRoleMapping](docs/sdks/directories/README.md#deletegrouprolemapping) - Delete a directory group role mapping + ### [Domains](docs/sdks/domains/README.md) * [list](docs/sdks/domains/README.md#list) - List all instance domains @@ -484,12 +499,12 @@ public class MachineAuthentication { ### [ScimDirectories](docs/sdks/scimdirectories/README.md) -* [list](docs/sdks/scimdirectories/README.md#list) - List all SCIM directories -* [create](docs/sdks/scimdirectories/README.md#create) - Create a SCIM directory -* [get](docs/sdks/scimdirectories/README.md#get) - Retrieve a SCIM directory -* [update](docs/sdks/scimdirectories/README.md#update) - Update a SCIM directory -* [delete](docs/sdks/scimdirectories/README.md#delete) - Delete a SCIM directory -* [rotateApiKey](docs/sdks/scimdirectories/README.md#rotateapikey) - Rotate a SCIM directory's API key +* [list](docs/sdks/scimdirectories/README.md#list) - List all directories +* [create](docs/sdks/scimdirectories/README.md#create) - Create a directory +* [get](docs/sdks/scimdirectories/README.md#get) - Retrieve a directory +* [update](docs/sdks/scimdirectories/README.md#update) - Update a directory +* [delete](docs/sdks/scimdirectories/README.md#delete) - Delete a directory +* [rotateApiKey](docs/sdks/scimdirectories/README.md#rotateapikey) - Rotate a directory's API key * [listGroupRoleMappings](docs/sdks/scimdirectories/README.md#listgrouprolemappings) - List SCIM group role mappings * [createGroupRoleMapping](docs/sdks/scimdirectories/README.md#creategrouprolemapping) - Create a SCIM group role mapping * [replaceGroupRoleMappings](docs/sdks/scimdirectories/README.md#replacegrouprolemappings) - Replace SCIM group role mappings @@ -553,8 +568,10 @@ public class MachineAuthentication { * [disableMfa](docs/sdks/users/README.md#disablemfa) - Disable a user's MFA methods * [deleteBackupCodes](docs/sdks/users/README.md#deletebackupcodes) - Disable all user's Backup codes * [deletePasskey](docs/sdks/users/README.md#deletepasskey) - Delete a user passkey -* [listTrustedDevices](docs/sdks/users/README.md#listtrusteddevices) - List a user's trusted devices -* [revokeTrustedDevice](docs/sdks/users/README.md#revoketrusteddevice) - Revoke a user's trusted device +* [~~listTrustedDevices~~](docs/sdks/users/README.md#listtrusteddevices) - List a user's trusted devices :warning: **Deprecated** +* [~~revokeTrustedDevice~~](docs/sdks/users/README.md#revoketrusteddevice) - Revoke a user's trusted device :warning: **Deprecated** +* [listBiometricCredentials](docs/sdks/users/README.md#listbiometriccredentials) - List a user's biometric credentials +* [revokeBiometricCredential](docs/sdks/users/README.md#revokebiometriccredential) - Revoke a user's biometric credential * [deleteWeb3Wallet](docs/sdks/users/README.md#deleteweb3wallet) - Delete a user web3 wallet * [deleteTOTP](docs/sdks/users/README.md#deletetotp) - Delete all the user's TOTPs * [deleteExternalAccount](docs/sdks/users/README.md#deleteexternalaccount) - Delete External Account @@ -755,41 +772,41 @@ public class Application { many more subclasses in the JDK platform). **Inherit from [`ClerkError`](./src/main/java/models/errors/ClerkError.java)**: -* [`com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.CreateApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.GetApiKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetApiKeysResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.GetApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.UpdateApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.UpdateApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.DeleteApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.DeleteApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.GetApiKeySecretResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetApiKeySecretResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.RevokeApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.VerifyApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.CreateM2MTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateM2MTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.GetM2MTokensResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetM2MTokensResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.RevokeM2MTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeM2MTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.VerifyM2MTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyM2MTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.VerifyOAuthAccessTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyOAuthAccessTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java): 401 Unauthorized. Status code `401`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java): 401 Unauthorized. Status code `401`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java): 403 Forbidden. Status code `403`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java): 403 Forbidden. Status code `403`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.GetM2MTokensM2mResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetM2MTokensM2mResponseBody.java): 403 Forbidden. Status code `403`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.GetAPIKeysAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetAPIKeysAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.GetAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.UpdateAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.UpdateAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.DeleteAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.DeleteAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.GetAPIKeySecretAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetAPIKeySecretAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.RevokeAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.VerifyAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.GetM2MTokensM2mResponseResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetM2MTokensM2mResponseResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.RevokeM2MTokenM2mResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeM2MTokenM2mResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.VerifyM2MTokenM2mResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyM2MTokenM2mResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyOAuthAccessTokenOauthAccessTokensResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody.java): 409 Conflict. Status code `409`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.CreateAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAPIKeyAPIKeysResponseBody.java): 409 Conflict. Status code `409`. Applicable to 1 of 237 methods.* -* [`com.clerk.backend_api.models.errors.CreateM2MTokenM2mResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateM2MTokenM2mResponseBody.java): 409 Conflict. Status code `409`. Applicable to 1 of 237 methods.* +* [`com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.CreateApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.GetApiKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetApiKeysResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.GetApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.UpdateApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.UpdateApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.DeleteApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.DeleteApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.GetApiKeySecretResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetApiKeySecretResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.RevokeApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.VerifyApiKeyResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyApiKeyResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.CreateM2MTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateM2MTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.GetM2MTokensResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetM2MTokensResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.RevokeM2MTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeM2MTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.VerifyM2MTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyM2MTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.VerifyOAuthAccessTokenResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyOAuthAccessTokenResponseBody.java): 400 Bad Request. Status code `400`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java): 401 Unauthorized. Status code `401`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java): 401 Unauthorized. Status code `401`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java): 403 Forbidden. Status code `403`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java): 403 Forbidden. Status code `403`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.GetM2MTokensM2mResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetM2MTokensM2mResponseBody.java): 403 Forbidden. Status code `403`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.GetAPIKeysAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetAPIKeysAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.GetAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.UpdateAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.UpdateAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.DeleteAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.DeleteAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.GetAPIKeySecretAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetAPIKeySecretAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.RevokeAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.VerifyAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyAPIKeyAPIKeysResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.GetM2MTokensM2mResponseResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.GetM2MTokensM2mResponseResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.RevokeM2MTokenM2mResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.RevokeM2MTokenM2mResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.VerifyM2MTokenM2mResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyM2MTokenM2mResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.VerifyOAuthAccessTokenOauthAccessTokensResponseBody.java): 404 Not Found. Status code `404`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody.java): 409 Conflict. Status code `409`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.CreateAPIKeyAPIKeysResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateAPIKeyAPIKeysResponseBody.java): 409 Conflict. Status code `409`. Applicable to 1 of 251 methods.* +* [`com.clerk.backend_api.models.errors.CreateM2MTokenM2mResponseBody`](./src/main/java/models/errors/com.clerk.backend_api.models.errors.CreateM2MTokenM2mResponseBody.java): 409 Conflict. Status code `409`. Applicable to 1 of 251 methods.* diff --git a/RELEASES.md b/RELEASES.md index fb931122..71711f64 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -438,4 +438,14 @@ Based on: ### Generated - [java v6.0.0] . ### Releases -- [Maven Central v6.0.0] https://central.sonatype.com/artifact/com.clerk/backend-api/6.0.0 - . \ No newline at end of file +- [Maven Central v6.0.0] https://central.sonatype.com/artifact/com.clerk/backend-api/6.0.0 - . + +## 2026-09-14 21:13:09 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.797.0 (2.937.18) https://github.com/speakeasy-api/speakeasy +### Generated +- [java v6.1.0] . +### Releases +- [Maven Central v6.1.0] https://central.sonatype.com/artifact/com.clerk/backend-api/6.1.0 - . \ No newline at end of file diff --git a/docs/models/components/AmountOff.md b/docs/models/components/AmountOff.md new file mode 100644 index 00000000..b499c3bb --- /dev/null +++ b/docs/models/components/AmountOff.md @@ -0,0 +1,13 @@ +# AmountOff + +Fixed amount off when the effect is fixed_amount. + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `amount` | *long* | :heavy_check_mark: | The amount in cents. | +| `amountFormatted` | *String* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | +| `currency` | *String* | :heavy_check_mark: | The currency code (e.g., "USD"). | +| `currencySymbol` | *String* | :heavy_check_mark: | The currency symbol (e.g., "$"). | \ No newline at end of file diff --git a/docs/models/components/ApplyCommerceDiscountRequest.md b/docs/models/components/ApplyCommerceDiscountRequest.md new file mode 100644 index 00000000..c104148c --- /dev/null +++ b/docs/models/components/ApplyCommerceDiscountRequest.md @@ -0,0 +1,8 @@ +# ApplyCommerceDiscountRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | +| `discountId` | *String* | :heavy_check_mark: | The ID of the discount to apply to the subscription item. | \ No newline at end of file diff --git a/docs/models/components/AutomationDisposition.md b/docs/models/components/AutomationDisposition.md new file mode 100644 index 00000000..b258f2ba --- /dev/null +++ b/docs/models/components/AutomationDisposition.md @@ -0,0 +1,18 @@ +# AutomationDisposition + +## Example Usage + +```java +import com.clerk.backend_api.models.components.AutomationDisposition; + +AutomationDisposition value = AutomationDisposition.ALREADY_SATISFIED; +``` + + +## Values + +| Name | Value | +| ---------------------------- | ---------------------------- | +| `ALREADY_SATISFIED` | already_satisfied | +| `SAFE_TO_CREATE` | safe_to_create | +| `MANUAL_RESOLUTION_REQUIRED` | manual_resolution_required | \ No newline at end of file diff --git a/docs/models/components/BiometricCredential.md b/docs/models/components/BiometricCredential.md new file mode 100644 index 00000000..ee387009 --- /dev/null +++ b/docs/models/components/BiometricCredential.md @@ -0,0 +1,18 @@ +# BiometricCredential + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `object` | [BiometricCredentialObject](../../models/components/BiometricCredentialObject.md) | :heavy_check_mark: | String representing the object's type. | +| `id` | *String* | :heavy_check_mark: | N/A | +| `platform` | [BiometricCredentialPlatform](../../models/components/BiometricCredentialPlatform.md) | :heavy_check_mark: | N/A | +| `appIdentifier` | *String* | :heavy_check_mark: | N/A | +| `name` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `algorithm` | [BiometricCredentialAlgorithm](../../models/components/BiometricCredentialAlgorithm.md) | :heavy_check_mark: | N/A | +| `status` | [BiometricCredentialStatus](../../models/components/BiometricCredentialStatus.md) | :heavy_check_mark: | N/A | +| `createdAt` | *long* | :heavy_check_mark: | Unix timestamp of creation in milliseconds. | +| `updatedAt` | *long* | :heavy_check_mark: | Unix timestamp of the last update in milliseconds. | +| `lastUsedAt` | *JsonNullable\* | :heavy_minus_sign: | Unix timestamp of the last use in milliseconds. | +| `revokedAt` | *JsonNullable\* | :heavy_minus_sign: | Unix timestamp of revocation in milliseconds. | \ No newline at end of file diff --git a/docs/models/components/BiometricCredentialAlgorithm.md b/docs/models/components/BiometricCredentialAlgorithm.md new file mode 100644 index 00000000..58d86fdb --- /dev/null +++ b/docs/models/components/BiometricCredentialAlgorithm.md @@ -0,0 +1,16 @@ +# BiometricCredentialAlgorithm + +## Example Usage + +```java +import com.clerk.backend_api.models.components.BiometricCredentialAlgorithm; + +BiometricCredentialAlgorithm value = BiometricCredentialAlgorithm.ES256; +``` + + +## Values + +| Name | Value | +| ------- | ------- | +| `ES256` | ES256 | \ No newline at end of file diff --git a/docs/models/components/BiometricCredentialList.md b/docs/models/components/BiometricCredentialList.md new file mode 100644 index 00000000..ad7b772c --- /dev/null +++ b/docs/models/components/BiometricCredentialList.md @@ -0,0 +1,11 @@ +# BiometricCredentialList + +Success + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `data` | List\<[BiometricCredential](../../models/components/BiometricCredential.md)> | :heavy_check_mark: | N/A | +| `totalCount` | *long* | :heavy_check_mark: | Total number of biometric credentials | \ No newline at end of file diff --git a/docs/models/components/BiometricCredentialObject.md b/docs/models/components/BiometricCredentialObject.md new file mode 100644 index 00000000..7ee43110 --- /dev/null +++ b/docs/models/components/BiometricCredentialObject.md @@ -0,0 +1,18 @@ +# BiometricCredentialObject + +String representing the object's type. + +## Example Usage + +```java +import com.clerk.backend_api.models.components.BiometricCredentialObject; + +BiometricCredentialObject value = BiometricCredentialObject.TRUSTED_DEVICE; +``` + + +## Values + +| Name | Value | +| ---------------- | ---------------- | +| `TRUSTED_DEVICE` | trusted_device | \ No newline at end of file diff --git a/docs/models/components/BiometricCredentialPlatform.md b/docs/models/components/BiometricCredentialPlatform.md new file mode 100644 index 00000000..2cb79749 --- /dev/null +++ b/docs/models/components/BiometricCredentialPlatform.md @@ -0,0 +1,17 @@ +# BiometricCredentialPlatform + +## Example Usage + +```java +import com.clerk.backend_api.models.components.BiometricCredentialPlatform; + +BiometricCredentialPlatform value = BiometricCredentialPlatform.IOS; +``` + + +## Values + +| Name | Value | +| --------- | --------- | +| `IOS` | ios | +| `ANDROID` | android | \ No newline at end of file diff --git a/docs/models/components/BiometricCredentialStatus.md b/docs/models/components/BiometricCredentialStatus.md new file mode 100644 index 00000000..d220cc57 --- /dev/null +++ b/docs/models/components/BiometricCredentialStatus.md @@ -0,0 +1,17 @@ +# BiometricCredentialStatus + +## Example Usage + +```java +import com.clerk.backend_api.models.components.BiometricCredentialStatus; + +BiometricCredentialStatus value = BiometricCredentialStatus.ACTIVE; +``` + + +## Values + +| Name | Value | +| --------- | --------- | +| `ACTIVE` | active | +| `REVOKED` | revoked | \ No newline at end of file diff --git a/docs/models/components/CommerceDiscountRedemptionResponse.md b/docs/models/components/CommerceDiscountRedemptionResponse.md new file mode 100644 index 00000000..61a3c645 --- /dev/null +++ b/docs/models/components/CommerceDiscountRedemptionResponse.md @@ -0,0 +1,25 @@ +# CommerceDiscountRedemptionResponse + +A commerce discount redemption. + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `object` | [CommerceDiscountRedemptionResponseObject](../../models/components/CommerceDiscountRedemptionResponseObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `id` | *String* | :heavy_check_mark: | Unique identifier for the discount redemption. | +| `subscriptionItemId` | *String* | :heavy_check_mark: | Unique identifier for the subscription item the discount was applied to. | +| `discountId` | *String* | :heavy_check_mark: | Unique identifier for the discount that was applied. | +| `name` | *Optional\* | :heavy_minus_sign: | The display name of the discount. | +| `source` | [Source](../../models/components/Source.md) | :heavy_check_mark: | How the discount was applied to the subscription item. | +| `promoCode` | *Optional\* | :heavy_minus_sign: | The promo code used to redeem the discount, when applicable. | +| `effect` | [Optional\](../../models/components/Effect.md) | :heavy_minus_sign: | The snapshotted discount effect. | +| `percentOff` | *JsonNullable\* | :heavy_minus_sign: | Percent off when the effect is percentage. | +| `amountOff` | [JsonNullable\](../../models/components/AmountOff.md) | :heavy_minus_sign: | Fixed amount off when the effect is fixed_amount. | +| `amount` | [JsonNullable\](../../models/components/CommerceDiscountRedemptionResponseAmount.md) | :heavy_minus_sign: | How much this discount takes off the subscription item's next renewal charge.
Present for either effect when next-payment data is available. | +| `cyclesRemaining` | *Optional\* | :heavy_check_mark: | Remaining billing cycles the discount applies to. Null means the discount lasts forever. | +| `cyclesApplied` | *int* | :heavy_check_mark: | Number of billing cycles the discount has already been applied to. | +| `status` | [Optional\](../../models/components/CommerceDiscountRedemptionResponseStatus.md) | :heavy_minus_sign: | Current status of the discount redemption. | +| `redeemedAt` | *long* | :heavy_check_mark: | Unix timestamp (in milliseconds) when the discount was redeemed. | +| `redeemedBy` | *Optional\* | :heavy_check_mark: | Identifier of the actor that redeemed the discount, when available. | \ No newline at end of file diff --git a/docs/models/components/CommerceDiscountRedemptionResponseAmount.md b/docs/models/components/CommerceDiscountRedemptionResponseAmount.md new file mode 100644 index 00000000..d53fcdbe --- /dev/null +++ b/docs/models/components/CommerceDiscountRedemptionResponseAmount.md @@ -0,0 +1,14 @@ +# CommerceDiscountRedemptionResponseAmount + +How much this discount takes off the subscription item's next renewal charge. +Present for either effect when next-payment data is available. + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `amount` | *long* | :heavy_check_mark: | The amount in cents. | +| `amountFormatted` | *String* | :heavy_check_mark: | The formatted amount as a string (e.g., "$49.99"). | +| `currency` | *String* | :heavy_check_mark: | The currency code (e.g., "USD"). | +| `currencySymbol` | *String* | :heavy_check_mark: | The currency symbol (e.g., "$"). | \ No newline at end of file diff --git a/docs/models/components/CommerceDiscountRedemptionResponseObject.md b/docs/models/components/CommerceDiscountRedemptionResponseObject.md new file mode 100644 index 00000000..4880d5ad --- /dev/null +++ b/docs/models/components/CommerceDiscountRedemptionResponseObject.md @@ -0,0 +1,18 @@ +# CommerceDiscountRedemptionResponseObject + +String representing the object's type. Objects of the same type share the same value. + +## Example Usage + +```java +import com.clerk.backend_api.models.components.CommerceDiscountRedemptionResponseObject; + +CommerceDiscountRedemptionResponseObject value = CommerceDiscountRedemptionResponseObject.COMMERCE_DISCOUNT_REDEMPTION; +``` + + +## Values + +| Name | Value | +| ------------------------------ | ------------------------------ | +| `COMMERCE_DISCOUNT_REDEMPTION` | commerce_discount_redemption | \ No newline at end of file diff --git a/docs/models/components/CommerceDiscountRedemptionResponseStatus.md b/docs/models/components/CommerceDiscountRedemptionResponseStatus.md new file mode 100644 index 00000000..da8b7ffe --- /dev/null +++ b/docs/models/components/CommerceDiscountRedemptionResponseStatus.md @@ -0,0 +1,20 @@ +# CommerceDiscountRedemptionResponseStatus + +Current status of the discount redemption. + +## Example Usage + +```java +import com.clerk.backend_api.models.components.CommerceDiscountRedemptionResponseStatus; + +CommerceDiscountRedemptionResponseStatus value = CommerceDiscountRedemptionResponseStatus.ACTIVE; +``` + + +## Values + +| Name | Value | +| ----------- | ----------- | +| `ACTIVE` | active | +| `EXHAUSTED` | exhausted | +| `REMOVED` | removed | \ No newline at end of file diff --git a/docs/models/components/CreateBillingPriceRequest.md b/docs/models/components/CreateBillingPriceRequest.md index b00896c7..d57dae26 100644 --- a/docs/models/components/CreateBillingPriceRequest.md +++ b/docs/models/components/CreateBillingPriceRequest.md @@ -7,7 +7,7 @@ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | | `planId` | *String* | :heavy_check_mark: | The ID of the plan this price belongs to. | | `currency` | *Optional\* | :heavy_minus_sign: | The currency code (e.g., "USD"). Defaults to USD. | -| `amount` | *Optional\* | :heavy_check_mark: | The monthly amount in cents. Must be at least $1 (100 cents) if not null. | -| `annualMonthlyAmount` | *JsonNullable\* | :heavy_minus_sign: | The monthly amount in cents when billed annually. Must be at least $1 (100 cents) if not null. | +| `amount` | *Optional\* | :heavy_check_mark: | The monthly amount in cents. Use `0` for a complimentary price. Positive amounts must be at least $1 (100 cents). | +| `annualMonthlyAmount` | *JsonNullable\* | :heavy_minus_sign: | The monthly amount in cents when billed annually. Use `0` for a complimentary price. Positive amounts must be at least $1 (100 cents). | | `description` | *Optional\* | :heavy_minus_sign: | An optional description for this custom price. | | `supportedBillingPeriods` | [Optional\](../../models/components/CreateBillingPriceRequestSupportedBillingPeriods.md) | :heavy_minus_sign: | Which billing periods this price supports. Inferred from amounts if omitted. | \ No newline at end of file diff --git a/docs/models/components/CustomAttributes.md b/docs/models/components/CustomAttributes.md index 952a97f1..6ed04c23 100644 --- a/docs/models/components/CustomAttributes.md +++ b/docs/models/components/CustomAttributes.md @@ -9,4 +9,5 @@ | `key` | *String* | :heavy_check_mark: | Key used to store the attribute in the user's public/private/unsafe metadata | | `ssoPath` | *Optional\* | :heavy_minus_sign: | Path to extract the attribute value from SSO claims (SAML assertions or OIDC claims) | | `scimPath` | *Optional\* | :heavy_minus_sign: | GJSON path to extract the attribute value from SCIM user resources | +| `directoryPath` | *Optional\* | :heavy_minus_sign: | GJSON path to extract the attribute value from directory sync user resources. Same value as `scim_path`. | | `multiValued` | *Optional\* | :heavy_minus_sign: | When true, the attribute supports multiple values; values from the IdP are written to public_metadata as an array. Defaults to false. | \ No newline at end of file diff --git a/docs/models/components/DNSTarget.md b/docs/models/components/DNSTarget.md new file mode 100644 index 00000000..4930b002 --- /dev/null +++ b/docs/models/components/DNSTarget.md @@ -0,0 +1,12 @@ +# DNSTarget + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `host` | *String* | :heavy_check_mark: | N/A | +| `value` | *String* | :heavy_check_mark: | N/A | +| `recordType` | [RecordType](../../models/components/RecordType.md) | :heavy_check_mark: | N/A | +| `automationDisposition` | [Optional\](../../models/components/AutomationDisposition.md) | :heavy_minus_sign: | N/A | +| `required` | *boolean* | :heavy_check_mark: | Denotes whether this DNS target is required to be set in order for the domain to be considered deployed.
| \ No newline at end of file diff --git a/docs/models/components/Directory.md b/docs/models/components/Directory.md new file mode 100644 index 00000000..232bc55e --- /dev/null +++ b/docs/models/components/Directory.md @@ -0,0 +1,22 @@ +# Directory + +A directory configuration for provisioning users from an identity provider. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `object` | [DirectoryObject](../../models/components/DirectoryObject.md) | :heavy_check_mark: | String representing the object's type. Always "directory". | +| `id` | *String* | :heavy_check_mark: | Unique identifier for the directory. | +| `name` | *String* | :heavy_check_mark: | A human-friendly name for the directory. | +| `enterpriseConnectionId` | *JsonNullable\* | :heavy_minus_sign: | The ID of the associated enterprise connection. | +| `endpointUrl` | *String* | :heavy_check_mark: | The provisioning endpoint URL for this directory. | +| `provider` | *String* | :heavy_check_mark: | The identity provider for this directory. | +| `enabled` | *boolean* | :heavy_check_mark: | Whether the directory is enabled. | +| `groupRoleMappingEnabled` | *boolean* | :heavy_check_mark: | Whether group-to-role mapping is enabled for this directory. | +| `attributeMapping` | Map\ | :heavy_check_mark: | Mapping of user attributes to the directory attribute paths they are extracted from. | +| `customAttributes` | List\<[DirectoryCustomAttributes](../../models/components/DirectoryCustomAttributes.md)> | :heavy_minus_sign: | Custom attributes to map from the IdP to the user's profile via directory sync. Requires the custom attributes feature to be enabled for the instance. | +| `apiKey` | *JsonNullable\* | :heavy_minus_sign: | The API key for authenticating provisioning requests. Only returned when the directory is created or the key is rotated. | +| `createdAt` | *long* | :heavy_check_mark: | Unix timestamp when the directory was created. | +| `updatedAt` | *long* | :heavy_check_mark: | Unix timestamp when the directory was last updated. | \ No newline at end of file diff --git a/docs/models/components/DirectoryCustomAttributes.md b/docs/models/components/DirectoryCustomAttributes.md new file mode 100644 index 00000000..59f09da5 --- /dev/null +++ b/docs/models/components/DirectoryCustomAttributes.md @@ -0,0 +1,13 @@ +# DirectoryCustomAttributes + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *Optional\* | :heavy_minus_sign: | Display name for the custom attribute | +| `key` | *Optional\* | :heavy_minus_sign: | Key used to store the attribute in the user's public/private/unsafe metadata | +| `ssoPath` | *Optional\* | :heavy_minus_sign: | Path to extract the attribute value from SSO claims (SAML assertions or OIDC claims) | +| `scimPath` | *Optional\* | :heavy_minus_sign: | The legacy name for `directory_path`. Carries the same value. | +| `directoryPath` | *Optional\* | :heavy_minus_sign: | GJSON path to extract the attribute value from directory sync user resources | +| `multiValued` | *Optional\* | :heavy_minus_sign: | When true, the attribute supports multiple values; values from the IdP are written to public_metadata as an array. Defaults to false. | \ No newline at end of file diff --git a/docs/models/components/DirectoryGroupRoleMapping.md b/docs/models/components/DirectoryGroupRoleMapping.md new file mode 100644 index 00000000..54276f82 --- /dev/null +++ b/docs/models/components/DirectoryGroupRoleMapping.md @@ -0,0 +1,21 @@ +# DirectoryGroupRoleMapping + +A mapping from a directory group to an organization role. Members of the group are assigned the role; the lowest-precedence match wins when a user belongs to multiple mapped groups. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `object` | [DirectoryGroupRoleMappingObject](../../models/components/DirectoryGroupRoleMappingObject.md) | :heavy_check_mark: | String representing the object's type. Always "directory_group_role_mapping". | +| `id` | *String* | :heavy_check_mark: | Unique identifier for the directory group role mapping. | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory this mapping belongs to. | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The legacy name for `directory_id`. Carries the same value. | +| `directoryGroupId` | *String* | :heavy_check_mark: | The group ID from the identity provider. | +| `scimGroupId` | *String* | :heavy_check_mark: | The legacy name for `directory_group_id`. Carries the same value. | +| `directoryGroupDisplayName` | *String* | :heavy_check_mark: | The display name of the group, as reported by the identity provider. | +| `scimGroupDisplayName` | *String* | :heavy_check_mark: | The legacy name for `directory_group_display_name`. Carries the same value. | +| `role` | [Optional\](../../models/components/Role.md) | :heavy_minus_sign: | N/A | +| `precedence` | *long* | :heavy_check_mark: | Mapping precedence, starting at 1. Lower values take priority when a user belongs to multiple mapped groups. | +| `createdAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of when the mapping was created. | +| `updatedAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of when the mapping was last updated. | \ No newline at end of file diff --git a/docs/models/components/DirectoryGroupRoleMappingDeleted.md b/docs/models/components/DirectoryGroupRoleMappingDeleted.md new file mode 100644 index 00000000..358eee71 --- /dev/null +++ b/docs/models/components/DirectoryGroupRoleMappingDeleted.md @@ -0,0 +1,12 @@ +# DirectoryGroupRoleMappingDeleted + +A directory group role mapping was deleted. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `object` | [DirectoryGroupRoleMappingDeletedObject](../../models/components/DirectoryGroupRoleMappingDeletedObject.md) | :heavy_check_mark: | String representing the object's type. | +| `id` | *String* | :heavy_check_mark: | The ID of the deleted directory group role mapping. | +| `deleted` | *boolean* | :heavy_check_mark: | Whether the directory group role mapping was successfully deleted. | \ No newline at end of file diff --git a/docs/models/components/DirectoryGroupRoleMappingDeletedObject.md b/docs/models/components/DirectoryGroupRoleMappingDeletedObject.md new file mode 100644 index 00000000..8a1deeeb --- /dev/null +++ b/docs/models/components/DirectoryGroupRoleMappingDeletedObject.md @@ -0,0 +1,18 @@ +# DirectoryGroupRoleMappingDeletedObject + +String representing the object's type. + +## Example Usage + +```java +import com.clerk.backend_api.models.components.DirectoryGroupRoleMappingDeletedObject; + +DirectoryGroupRoleMappingDeletedObject value = DirectoryGroupRoleMappingDeletedObject.DIRECTORY_GROUP_ROLE_MAPPING; +``` + + +## Values + +| Name | Value | +| ------------------------------ | ------------------------------ | +| `DIRECTORY_GROUP_ROLE_MAPPING` | directory_group_role_mapping | \ No newline at end of file diff --git a/docs/models/components/DirectoryGroupRoleMappingList.md b/docs/models/components/DirectoryGroupRoleMappingList.md new file mode 100644 index 00000000..4ffee393 --- /dev/null +++ b/docs/models/components/DirectoryGroupRoleMappingList.md @@ -0,0 +1,11 @@ +# DirectoryGroupRoleMappingList + +A list of directory group role mappings, ordered by precedence. + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `data` | List\<[DirectoryGroupRoleMapping](../../models/components/DirectoryGroupRoleMapping.md)> | :heavy_check_mark: | N/A | +| `totalCount` | *long* | :heavy_check_mark: | Total number of directory group role mappings in the directory. | \ No newline at end of file diff --git a/docs/models/components/DirectoryGroupRoleMappingObject.md b/docs/models/components/DirectoryGroupRoleMappingObject.md new file mode 100644 index 00000000..e23eaf7e --- /dev/null +++ b/docs/models/components/DirectoryGroupRoleMappingObject.md @@ -0,0 +1,18 @@ +# DirectoryGroupRoleMappingObject + +String representing the object's type. Always "directory_group_role_mapping". + +## Example Usage + +```java +import com.clerk.backend_api.models.components.DirectoryGroupRoleMappingObject; + +DirectoryGroupRoleMappingObject value = DirectoryGroupRoleMappingObject.DIRECTORY_GROUP_ROLE_MAPPING; +``` + + +## Values + +| Name | Value | +| ------------------------------ | ------------------------------ | +| `DIRECTORY_GROUP_ROLE_MAPPING` | directory_group_role_mapping | \ No newline at end of file diff --git a/docs/models/components/DirectoryList.md b/docs/models/components/DirectoryList.md new file mode 100644 index 00000000..787a0370 --- /dev/null +++ b/docs/models/components/DirectoryList.md @@ -0,0 +1,11 @@ +# DirectoryList + +A list of directories + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `data` | List\<[Directory](../../models/components/Directory.md)> | :heavy_check_mark: | N/A | +| `totalCount` | *long* | :heavy_check_mark: | Total number of directories. | \ No newline at end of file diff --git a/docs/models/components/DirectoryObject.md b/docs/models/components/DirectoryObject.md new file mode 100644 index 00000000..a270a20c --- /dev/null +++ b/docs/models/components/DirectoryObject.md @@ -0,0 +1,18 @@ +# DirectoryObject + +String representing the object's type. Always "directory". + +## Example Usage + +```java +import com.clerk.backend_api.models.components.DirectoryObject; + +DirectoryObject value = DirectoryObject.DIRECTORY; +``` + + +## Values + +| Name | Value | +| ----------- | ----------- | +| `DIRECTORY` | directory | \ No newline at end of file diff --git a/docs/models/components/Domain.md b/docs/models/components/Domain.md index cfb9d43b..1199d4dd 100644 --- a/docs/models/components/Domain.md +++ b/docs/models/components/Domain.md @@ -3,14 +3,15 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `object` | [DomainObject](../../models/components/DomainObject.md) | :heavy_check_mark: | N/A | -| `id` | *String* | :heavy_check_mark: | N/A | -| `name` | *String* | :heavy_check_mark: | N/A | -| `isSatellite` | *boolean* | :heavy_check_mark: | N/A | -| `frontendApiUrl` | *String* | :heavy_check_mark: | N/A | -| `accountsPortalUrl` | *JsonNullable\* | :heavy_minus_sign: | Null for satellite domains.
| -| `proxyUrl` | *JsonNullable\* | :heavy_minus_sign: | N/A | -| `developmentOrigin` | *String* | :heavy_check_mark: | N/A | -| `cnameTargets` | List\<[CNameTarget](../../models/components/CNameTarget.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `object` | [DomainObject](../../models/components/DomainObject.md) | :heavy_check_mark: | N/A | +| `id` | *String* | :heavy_check_mark: | N/A | +| `name` | *String* | :heavy_check_mark: | N/A | +| `isSatellite` | *boolean* | :heavy_check_mark: | N/A | +| `frontendApiUrl` | *String* | :heavy_check_mark: | N/A | +| `accountsPortalUrl` | *JsonNullable\* | :heavy_minus_sign: | Null for satellite domains.
| +| `proxyUrl` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `developmentOrigin` | *String* | :heavy_check_mark: | N/A | +| `cnameTargets` | List\<[CNameTarget](../../models/components/CNameTarget.md)> | :heavy_minus_sign: | Legacy CNAME-only DNS targets. Prefer `dns_targets` when present. | +| `dnsTargets` | List\<[DNSTarget](../../models/components/DNSTarget.md)> | :heavy_minus_sign: | The complete typed DNS contract. Consumers should use this field instead of merging it with `cname_targets`.
| \ No newline at end of file diff --git a/docs/models/components/Effect.md b/docs/models/components/Effect.md new file mode 100644 index 00000000..83dd3859 --- /dev/null +++ b/docs/models/components/Effect.md @@ -0,0 +1,19 @@ +# Effect + +The snapshotted discount effect. + +## Example Usage + +```java +import com.clerk.backend_api.models.components.Effect; + +Effect value = Effect.PERCENTAGE; +``` + + +## Values + +| Name | Value | +| -------------- | -------------- | +| `PERCENTAGE` | percentage | +| `FIXED_AMOUNT` | fixed_amount | \ No newline at end of file diff --git a/docs/models/components/Instance.md b/docs/models/components/Instance.md index c0940739..00f9eafa 100644 --- a/docs/models/components/Instance.md +++ b/docs/models/components/Instance.md @@ -5,9 +5,12 @@ Success ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -| `object` | [InstanceObject](../../models/components/InstanceObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | | -| `id` | *String* | :heavy_check_mark: | N/A | | -| `environmentType` | *String* | :heavy_check_mark: | N/A | development | -| `allowedOrigins` | List\<*String*> | :heavy_check_mark: | N/A | [
"http://localhost:3000",
"https://some-domain"
] | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `object` | [InstanceObject](../../models/components/InstanceObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | | +| `id` | *String* | :heavy_check_mark: | N/A | | +| `environmentType` | *String* | :heavy_check_mark: | N/A | development | +| `allowedOrigins` | List\<*String*> | :heavy_check_mark: | N/A | [
"http://localhost:3000",
"https://some-domain"
] | +| `allowedSubdomains` | List\<*String*> | :heavy_check_mark: | Subdomains of the instance's own domains that may originate requests, when the subdomain allowlist is enabled. Production instances only; always empty on a development instance. | [
"app.example.com",
"*.preview.example.com"
] | +| `subdomainAllowlistEnabled` | *boolean* | :heavy_check_mark: | Whether requests from subdomains of the instance's own domains are restricted to `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production instances only; always false on a development instance. | | +| `workspaceId` | *Optional\* | :heavy_check_mark: | The ID of the Clerk workspace that owns the instance's application. It is null when the application has no owner. | org_2abc123def456 | \ No newline at end of file diff --git a/docs/models/components/InstanceProtect.md b/docs/models/components/InstanceProtect.md index c1449172..6485e647 100644 --- a/docs/models/components/InstanceProtect.md +++ b/docs/models/components/InstanceProtect.md @@ -5,9 +5,11 @@ Success ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `object` | [InstanceProtectObject](../../models/components/InstanceProtectObject.md) | :heavy_check_mark: | N/A | -| `rulesEnabled` | *boolean* | :heavy_check_mark: | N/A | -| `specterEnabled` | *boolean* | :heavy_check_mark: | N/A | -| `checksBypassed` | *boolean* | :heavy_check_mark: | Whether the instance has opted out of the Protect prerequisite checks, asserting its setup already meets the requirements. | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `object` | [InstanceProtectObject](../../models/components/InstanceProtectObject.md) | :heavy_check_mark: | N/A | +| `rulesEnabled` | *boolean* | :heavy_check_mark: | Whether Protect rules are enforced on this instance. False does not mean the instance is outside Protect — by default it is still evaluated in shadow, where rules are scored and recorded but never block. | +| `specterEnabled` | *boolean* | :heavy_check_mark: | N/A | +| `checksBypassed` | *boolean* | :heavy_check_mark: | Whether the instance has opted out of the Protect prerequisite checks, asserting its setup already meets the requirements. | +| `checksVerified` | *boolean* | :heavy_check_mark: | Whether the Protect system has verified the instance's prerequisite checks. Protect rules are gated on checks being verified, bypassed or exempt. | +| `checksExempt` | *boolean* | :heavy_check_mark: | Whether the instance was created into Protect and so was never subject to the prerequisite checks at all. | \ No newline at end of file diff --git a/docs/models/components/InstanceSettings.md b/docs/models/components/InstanceSettings.md index ee0eff92..19744f4e 100644 --- a/docs/models/components/InstanceSettings.md +++ b/docs/models/components/InstanceSettings.md @@ -5,11 +5,11 @@ InstanceSettings Server API ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `object` | [Optional\](../../models/components/InstanceSettingsObject.md) | :heavy_minus_sign: | String representing the object's type. Objects of the same type share the same value. | -| `id` | *Optional\* | :heavy_minus_sign: | N/A | -| `restrictedToAllowlist` | *Optional\* | :heavy_minus_sign: | N/A | -| `fromEmailAddress` | *Optional\* | :heavy_minus_sign: | N/A | -| `progressiveSignUp` | *Optional\* | :heavy_minus_sign: | N/A | -| ~~`enhancedEmailDeliverability`~~ | *Optional\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Deprecated. When enabled, production authentication emails for this instance are sent through Clerk's legacy managed email delivery path. This setting is being retired; use the instance's configured email sending domain instead.
| \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `object` | [Optional\](../../models/components/InstanceSettingsObject.md) | :heavy_minus_sign: | String representing the object's type. Objects of the same type share the same value. | +| `id` | *Optional\* | :heavy_minus_sign: | N/A | +| `restrictedToAllowlist` | *Optional\* | :heavy_minus_sign: | N/A | +| `fromEmailAddress` | *Optional\* | :heavy_minus_sign: | N/A | +| `progressiveSignUp` | *Optional\* | :heavy_minus_sign: | N/A | +| ~~`enhancedEmailDeliverability`~~ | *Optional\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Deprecated. This setting is retired and no longer affects email delivery; all email is sent through the instance's configured email sending domain. The field is preserved for API compatibility only and will be removed in a future version.
| \ No newline at end of file diff --git a/docs/models/components/OAuthApplication.md b/docs/models/components/OAuthApplication.md index 505d599f..3c93402c 100644 --- a/docs/models/components/OAuthApplication.md +++ b/docs/models/components/OAuthApplication.md @@ -15,8 +15,9 @@ | `dynamicallyRegistered` | *boolean* | :heavy_check_mark: | N/A | | `consentScreenEnabled` | *boolean* | :heavy_check_mark: | N/A | | `pkceRequired` | *boolean* | :heavy_check_mark: | N/A | +| `deviceAuthorizationGrantEnabled` | *boolean* | :heavy_check_mark: | N/A | | `public_` | *boolean* | :heavy_check_mark: | N/A | -| `scopes` | *String* | :heavy_check_mark: | N/A | +| `scopes` | *String* | :heavy_check_mark: | The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and assigned custom scope keys.
| | `redirectUris` | List\<*String*> | :heavy_check_mark: | N/A | | ~~`callbackUrl`~~ | *String* | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Deprecated: Use redirect_uris instead.
| | `authorizeUrl` | *String* | :heavy_check_mark: | N/A | diff --git a/docs/models/components/OAuthApplicationSettings.md b/docs/models/components/OAuthApplicationSettings.md index 118ef7da..2da44742 100644 --- a/docs/models/components/OAuthApplicationSettings.md +++ b/docs/models/components/OAuthApplicationSettings.md @@ -5,12 +5,14 @@ Success ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `object` | [OAuthApplicationSettingsObject](../../models/components/OAuthApplicationSettingsObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | -| `dynamicOauthClientRegistration` | *boolean* | :heavy_check_mark: | Whether dynamic OAuth client registration is enabled for the instance (RFC 7591). | -| `defaultScopes` | List\<*String*> | :heavy_check_mark: | Default scopes. | -| `oauthJwtAccessTokens` | *boolean* | :heavy_check_mark: | Whether OAuth JWT access tokens are enabled for the instance (disabled indicates opaque access tokens). | -| `clientIdMetadataDocumentsAdvertised` | *boolean* | :heavy_check_mark: | Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization server metadata. | -| `clientIdMetadataDocumentsOnlyAllowPreRegisteredClients` | *boolean* | :heavy_check_mark: | When true, new unknown CIMD clients are rejected. Previously auto-connected and pre-registered clients remain admitted; deleting a client makes it unknown again. | -| `clientIdMetadataDocumentsBlockImplicitlyAllowedClients` | *boolean* | :heavy_check_mark: | When true, recorded implicitly allowed CIMD clients are rejected on future client lookups. Explicitly allowed clients remain accepted. This does not revoke previously issued access tokens. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `object` | [OAuthApplicationSettingsObject](../../models/components/OAuthApplicationSettingsObject.md) | :heavy_check_mark: | String representing the object's type. Objects of the same type share the same value. | +| `dynamicOauthClientRegistration` | *boolean* | :heavy_check_mark: | Whether dynamic OAuth client registration is enabled for the instance (RFC 7591). | +| `defaultScopes` | List\<*String*> | :heavy_check_mark: | Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. Contains built-in keys and custom catalog keys. Null means Clerk-provided defaults. `advertised` does not affect eligibility. An empty input array is stored and returned as null.
| +| `oauthJwtAccessTokens` | *boolean* | :heavy_check_mark: | Whether OAuth JWT access tokens are enabled for the instance (disabled indicates opaque access tokens). | +| `audClaimEnabled` | *boolean* | :heavy_check_mark: | Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. | +| `pkceRequired` | *boolean* | :heavy_check_mark: | Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. | +| `clientIdMetadataDocumentsAdvertised` | *boolean* | :heavy_check_mark: | Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization server metadata. | +| `clientIdMetadataDocumentsOnlyAllowPreRegisteredClients` | *boolean* | :heavy_check_mark: | When true, new unknown CIMD clients are rejected. Previously auto-connected and pre-registered clients remain admitted; deleting a client makes it unknown again. | +| `clientIdMetadataDocumentsBlockImplicitlyAllowedClients` | *boolean* | :heavy_check_mark: | When true, recorded implicitly allowed CIMD clients are rejected on future client lookups. Explicitly allowed clients remain accepted. This does not revoke previously issued access tokens. | \ No newline at end of file diff --git a/docs/models/components/OAuthApplicationWithSecret.md b/docs/models/components/OAuthApplicationWithSecret.md index 6150b39e..27d9852a 100644 --- a/docs/models/components/OAuthApplicationWithSecret.md +++ b/docs/models/components/OAuthApplicationWithSecret.md @@ -15,8 +15,9 @@ | `dynamicallyRegistered` | *boolean* | :heavy_check_mark: | N/A | | `consentScreenEnabled` | *boolean* | :heavy_check_mark: | N/A | | `pkceRequired` | *boolean* | :heavy_check_mark: | N/A | +| `deviceAuthorizationGrantEnabled` | *boolean* | :heavy_check_mark: | N/A | | `public_` | *boolean* | :heavy_check_mark: | N/A | -| `scopes` | *String* | :heavy_check_mark: | N/A | +| `scopes` | *String* | :heavy_check_mark: | The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and assigned custom scope keys.
| | `redirectUris` | List\<*String*> | :heavy_check_mark: | N/A | | ~~`callbackUrl`~~ | *String* | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Deprecated: Use redirect_uris instead.
| | `authorizeUrl` | *String* | :heavy_check_mark: | N/A | diff --git a/docs/models/components/Organization.md b/docs/models/components/Organization.md index 4e16d472..9882d2db 100644 --- a/docs/models/components/Organization.md +++ b/docs/models/components/Organization.md @@ -16,6 +16,7 @@ | `pendingInvitationsCount` | *Optional\* | :heavy_minus_sign: | N/A | | `maxAllowedMemberships` | *long* | :heavy_check_mark: | N/A | | `adminDeleteEnabled` | *boolean* | :heavy_check_mark: | N/A | +| `selfServeSsoEnabled` | *JsonNullable\* | :heavy_minus_sign: | Whether this organization can configure self-serve enterprise SSO.
| | `publicMetadata` | Map\ | :heavy_check_mark: | N/A | | `privateMetadata` | Map\ | :heavy_minus_sign: | N/A | | `createdBy` | *Optional\* | :heavy_minus_sign: | N/A | diff --git a/docs/models/components/OrganizationMembershipOrganization.md b/docs/models/components/OrganizationMembershipOrganization.md index fe788b53..9b970630 100644 --- a/docs/models/components/OrganizationMembershipOrganization.md +++ b/docs/models/components/OrganizationMembershipOrganization.md @@ -16,6 +16,7 @@ | `pendingInvitationsCount` | *Optional\* | :heavy_minus_sign: | N/A | | `maxAllowedMemberships` | *long* | :heavy_check_mark: | N/A | | `adminDeleteEnabled` | *boolean* | :heavy_check_mark: | N/A | +| `selfServeSsoEnabled` | *JsonNullable\* | :heavy_minus_sign: | Whether this organization can configure self-serve enterprise SSO.
| | `publicMetadata` | Map\ | :heavy_check_mark: | N/A | | `privateMetadata` | Map\ | :heavy_minus_sign: | N/A | | `createdBy` | *Optional\* | :heavy_minus_sign: | N/A | diff --git a/docs/models/components/OrganizationWithLogo.md b/docs/models/components/OrganizationWithLogo.md index a9fcc54a..55ccbd38 100644 --- a/docs/models/components/OrganizationWithLogo.md +++ b/docs/models/components/OrganizationWithLogo.md @@ -16,6 +16,7 @@ | `pendingInvitationsCount` | *Optional\* | :heavy_minus_sign: | N/A | | `maxAllowedMemberships` | *long* | :heavy_check_mark: | N/A | | `adminDeleteEnabled` | *boolean* | :heavy_check_mark: | N/A | +| `selfServeSsoEnabled` | *JsonNullable\* | :heavy_minus_sign: | Whether this organization can configure self-serve enterprise SSO.
| | `publicMetadata` | Map\ | :heavy_check_mark: | N/A | | `privateMetadata` | Map\ | :heavy_minus_sign: | N/A | | `createdBy` | *Optional\* | :heavy_minus_sign: | N/A | diff --git a/docs/models/components/RecordType.md b/docs/models/components/RecordType.md new file mode 100644 index 00000000..a0d1262a --- /dev/null +++ b/docs/models/components/RecordType.md @@ -0,0 +1,17 @@ +# RecordType + +## Example Usage + +```java +import com.clerk.backend_api.models.components.RecordType; + +RecordType value = RecordType.CNAME; +``` + + +## Values + +| Name | Value | +| ------- | ------- | +| `CNAME` | CNAME | +| `TXT` | TXT | \ No newline at end of file diff --git a/docs/models/components/SCIMDirectory.md b/docs/models/components/SCIMDirectory.md index d1d5c9e0..e4045a8b 100644 --- a/docs/models/components/SCIMDirectory.md +++ b/docs/models/components/SCIMDirectory.md @@ -1,6 +1,6 @@ # SCIMDirectory -A SCIM directory configuration for provisioning users via SCIM protocol. +A directory configuration for provisioning users via SCIM protocol. ## Fields @@ -8,15 +8,15 @@ A SCIM directory configuration for provisioning users via SCIM protocol. | Field | Type | Required | Description | | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | `object` | [SCIMDirectoryObject](../../models/components/SCIMDirectoryObject.md) | :heavy_check_mark: | String representing the object's type. Always "scim_directory". | -| `id` | *String* | :heavy_check_mark: | Unique identifier for the SCIM directory. | -| `name` | *String* | :heavy_check_mark: | A human-friendly name for the SCIM directory. | +| `id` | *String* | :heavy_check_mark: | Unique identifier for the directory. | +| `name` | *String* | :heavy_check_mark: | A human-friendly name for the directory. | | `enterpriseConnectionId` | *JsonNullable\* | :heavy_minus_sign: | The ID of the associated enterprise connection. | | `endpointUrl` | *String* | :heavy_check_mark: | The SCIM endpoint URL for this directory. | -| `provider` | *String* | :heavy_check_mark: | The identity provider for this SCIM directory. | -| `enabled` | *boolean* | :heavy_check_mark: | Whether the SCIM directory is enabled. | -| `groupRoleMappingEnabled` | *boolean* | :heavy_check_mark: | Whether group-to-role mapping is enabled for this SCIM directory. | +| `provider` | *String* | :heavy_check_mark: | The identity provider for this directory. | +| `enabled` | *boolean* | :heavy_check_mark: | Whether the directory is enabled. | +| `groupRoleMappingEnabled` | *boolean* | :heavy_check_mark: | Whether group-to-role mapping is enabled for this directory. | | `attributeMapping` | Map\ | :heavy_check_mark: | Mapping of user attributes to the SCIM attribute paths they are extracted from. | | `customAttributes` | List\<[SCIMDirectoryCustomAttributes](../../models/components/SCIMDirectoryCustomAttributes.md)> | :heavy_minus_sign: | Custom attributes to map from the IdP to the user's profile via SCIM provisioning. Requires the custom attributes feature to be enabled for the instance. | | `apiKey` | *JsonNullable\* | :heavy_minus_sign: | The API key for authenticating SCIM requests. Only returned when the directory is created or the key is rotated. | -| `createdAt` | *long* | :heavy_check_mark: | Unix timestamp when the SCIM directory was created. | -| `updatedAt` | *long* | :heavy_check_mark: | Unix timestamp when the SCIM directory was last updated. | \ No newline at end of file +| `createdAt` | *long* | :heavy_check_mark: | Unix timestamp when the directory was created. | +| `updatedAt` | *long* | :heavy_check_mark: | Unix timestamp when the directory was last updated. | \ No newline at end of file diff --git a/docs/models/components/SCIMDirectoryCustomAttributes.md b/docs/models/components/SCIMDirectoryCustomAttributes.md index 856f62a2..f653ebbd 100644 --- a/docs/models/components/SCIMDirectoryCustomAttributes.md +++ b/docs/models/components/SCIMDirectoryCustomAttributes.md @@ -9,4 +9,5 @@ | `key` | *Optional\* | :heavy_minus_sign: | Key used to store the attribute in the user's public/private/unsafe metadata | | `ssoPath` | *Optional\* | :heavy_minus_sign: | Path to extract the attribute value from SSO claims (SAML assertions or OIDC claims) | | `scimPath` | *Optional\* | :heavy_minus_sign: | GJSON path to extract the attribute value from SCIM user resources | +| `directoryPath` | *Optional\* | :heavy_minus_sign: | GJSON path to extract the attribute value from directory sync user resources. Same value as `scim_path`. | | `multiValued` | *Optional\* | :heavy_minus_sign: | When true, the attribute supports multiple values; values from the IdP are written to public_metadata as an array. Defaults to false. | \ No newline at end of file diff --git a/docs/models/components/SCIMDirectoryList.md b/docs/models/components/SCIMDirectoryList.md index 9d027d3f..5aeb0fb8 100644 --- a/docs/models/components/SCIMDirectoryList.md +++ b/docs/models/components/SCIMDirectoryList.md @@ -1,6 +1,6 @@ # SCIMDirectoryList -A list of SCIM directories +A list of directories ## Fields @@ -8,4 +8,4 @@ A list of SCIM directories | Field | Type | Required | Description | | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | | `data` | List\<[SCIMDirectory](../../models/components/SCIMDirectory.md)> | :heavy_check_mark: | N/A | -| `totalCount` | *long* | :heavy_check_mark: | Total number of SCIM directories. | \ No newline at end of file +| `totalCount` | *long* | :heavy_check_mark: | Total number of directories. | \ No newline at end of file diff --git a/docs/models/components/SCIMGroupRoleMapping.md b/docs/models/components/SCIMGroupRoleMapping.md index f4e811ec..d524f85b 100644 --- a/docs/models/components/SCIMGroupRoleMapping.md +++ b/docs/models/components/SCIMGroupRoleMapping.md @@ -5,14 +5,17 @@ A mapping from a SCIM group to an organization role. Members of the group are as ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `object` | [SCIMGroupRoleMappingObject](../../models/components/SCIMGroupRoleMappingObject.md) | :heavy_check_mark: | String representing the object's type. Always "scim_group_role_mapping". | -| `id` | *String* | :heavy_check_mark: | Unique identifier for the SCIM group role mapping. | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory this mapping belongs to. | -| `scimGroupId` | *String* | :heavy_check_mark: | The SCIM group ID from the identity provider. | -| `scimGroupDisplayName` | *String* | :heavy_check_mark: | The display name of the SCIM group, as reported by the identity provider. | -| `role` | [Optional\](../../models/components/Role.md) | :heavy_minus_sign: | N/A | -| `precedence` | *long* | :heavy_check_mark: | Mapping precedence, starting at 1. Lower values take priority when a user belongs to multiple mapped groups. | -| `createdAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of when the mapping was created. | -| `updatedAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of when the mapping was last updated. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `object` | [SCIMGroupRoleMappingObject](../../models/components/SCIMGroupRoleMappingObject.md) | :heavy_check_mark: | String representing the object's type. Always "scim_group_role_mapping". | +| `id` | *String* | :heavy_check_mark: | Unique identifier for the SCIM group role mapping. | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory this mapping belongs to. | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory this mapping belongs to. Same value as `scim_directory_id`. | +| `scimGroupId` | *String* | :heavy_check_mark: | The SCIM group ID from the identity provider. | +| `directoryGroupId` | *String* | :heavy_check_mark: | The group ID from the identity provider. Same value as `scim_group_id`. | +| `scimGroupDisplayName` | *String* | :heavy_check_mark: | The display name of the SCIM group, as reported by the identity provider. | +| `directoryGroupDisplayName` | *String* | :heavy_check_mark: | The display name of the group, as reported by the identity provider. Same value as `scim_group_display_name`. | +| `role` | [Optional\](../../models/components/Role.md) | :heavy_minus_sign: | N/A | +| `precedence` | *long* | :heavy_check_mark: | Mapping precedence, starting at 1. Lower values take priority when a user belongs to multiple mapped groups. | +| `createdAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of when the mapping was created. | +| `updatedAt` | *long* | :heavy_check_mark: | Unix timestamp (milliseconds) of when the mapping was last updated. | \ No newline at end of file diff --git a/docs/models/components/Scim.md b/docs/models/components/Scim.md index 13c40871..f23887a9 100644 --- a/docs/models/components/Scim.md +++ b/docs/models/components/Scim.md @@ -1,13 +1,13 @@ # Scim -Metadata describing a user's linkage to a SCIM directory. This object is only delivered on `user.created` and `user.updated` webhook events, and only when the user is provisioned through a SCIM directory. Its absence does not necessarily mean the user is not SCIM-managed. +Metadata describing a user's linkage to a directory. This object is only delivered on `user.created` and `user.updated` webhook events, and only when the user is provisioned through a directory. Its absence does not necessarily mean the user is not managed by a directory. ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | -| `directoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory the user is provisioned from.
| -| `directoryEnabled` | *Optional\* | :heavy_minus_sign: | Whether the SCIM directory is currently enabled. Omitted when false.
| -| `externalId` | *Optional\* | :heavy_check_mark: | The user's external ID as reported by the SCIM directory, if any.
| \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory the user is provisioned from.
| +| `directoryEnabled` | *Optional\* | :heavy_minus_sign: | Whether the directory is currently enabled. Omitted when false.
| +| `externalId` | *Optional\* | :heavy_check_mark: | The user's external ID as reported by the directory, if any.
| \ No newline at end of file diff --git a/docs/models/components/Source.md b/docs/models/components/Source.md new file mode 100644 index 00000000..cbcc973b --- /dev/null +++ b/docs/models/components/Source.md @@ -0,0 +1,20 @@ +# Source + +How the discount was applied to the subscription item. + +## Example Usage + +```java +import com.clerk.backend_api.models.components.Source; + +Source value = Source.PROMOTION; +``` + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `PROMOTION` | promotion | +| `MANUAL` | manual | +| `PROMO_CODE` | promo_code | \ No newline at end of file diff --git a/docs/models/components/User.md b/docs/models/components/User.md index c4d1972d..132abd4f 100644 --- a/docs/models/components/User.md +++ b/docs/models/components/User.md @@ -51,5 +51,5 @@ Success | `createOrganizationsLimit` | *JsonNullable\* | :heavy_minus_sign: | The maximum number of organizations the user can create. 0 means unlimited.
| | | `lastActiveAt` | *Optional\* | :heavy_check_mark: | Unix timestamp of the latest session activity, with day precision.
| 1700690400000 | | `legalAcceptedAt` | *Optional\* | :heavy_check_mark: | Unix timestamp of when the user accepted the legal requirements.
| 1700690400000 | -| `bypassClientTrust` | *Optional\* | :heavy_minus_sign: | When set to `true`, the user will bypass client trust checks during sign-in. | | +| `bypassClientTrust` | *Optional\* | :heavy_minus_sign: | When set to `true`, the user will bypass Device Trust checks during sign-in. | | | `scim` | [JsonNullable\](../../models/components/Scim.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/ApplyBillingSubscriptionItemDiscountRequest.md b/docs/models/operations/ApplyBillingSubscriptionItemDiscountRequest.md new file mode 100644 index 00000000..11e1dfa9 --- /dev/null +++ b/docs/models/operations/ApplyBillingSubscriptionItemDiscountRequest.md @@ -0,0 +1,9 @@ +# ApplyBillingSubscriptionItemDiscountRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `subscriptionItemId` | *String* | :heavy_check_mark: | The ID of the subscription item to apply the discount to | +| `applyCommerceDiscountRequest` | [ApplyCommerceDiscountRequest](../../models/components/ApplyCommerceDiscountRequest.md) | :heavy_check_mark: | Parameters for applying the discount | \ No newline at end of file diff --git a/docs/models/operations/ApplyBillingSubscriptionItemDiscountResponse.md b/docs/models/operations/ApplyBillingSubscriptionItemDiscountResponse.md new file mode 100644 index 00000000..f9a80738 --- /dev/null +++ b/docs/models/operations/ApplyBillingSubscriptionItemDiscountResponse.md @@ -0,0 +1,11 @@ +# ApplyBillingSubscriptionItemDiscountResponse + + +## 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 | +| `commerceDiscountRedemptionResponse` | [Optional\](../../models/components/CommerceDiscountRedemptionResponse.md) | :heavy_minus_sign: | A commerce discount redemption. | \ No newline at end of file diff --git a/docs/models/operations/CreateDirectoryGroupRoleMappingRequest.md b/docs/models/operations/CreateDirectoryGroupRoleMappingRequest.md new file mode 100644 index 00000000..222fe971 --- /dev/null +++ b/docs/models/operations/CreateDirectoryGroupRoleMappingRequest.md @@ -0,0 +1,9 @@ +# CreateDirectoryGroupRoleMappingRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory. | +| `requestBody` | [CreateDirectoryGroupRoleMappingRequestBody](../../models/operations/CreateDirectoryGroupRoleMappingRequestBody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/CreateDirectoryGroupRoleMappingRequestBody.md b/docs/models/operations/CreateDirectoryGroupRoleMappingRequestBody.md new file mode 100644 index 00000000..35026891 --- /dev/null +++ b/docs/models/operations/CreateDirectoryGroupRoleMappingRequestBody.md @@ -0,0 +1,11 @@ +# CreateDirectoryGroupRoleMappingRequestBody + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `directoryGroupId` | *Optional\* | :heavy_minus_sign: | The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is required. | +| `scimGroupId` | *Optional\* | :heavy_minus_sign: | The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both with different values is rejected. | +| `roleId` | *String* | :heavy_check_mark: | The ID of the organization role to assign to members of the group. | +| `precedence` | *Optional\* | :heavy_minus_sign: | The precedence for this mapping. Lower values take priority when a user belongs
to multiple mapped groups. If omitted, the mapping is appended with the
next-highest precedence. | \ No newline at end of file diff --git a/docs/models/operations/CreateDirectoryGroupRoleMappingResponse.md b/docs/models/operations/CreateDirectoryGroupRoleMappingResponse.md new file mode 100644 index 00000000..ab0dfdd6 --- /dev/null +++ b/docs/models/operations/CreateDirectoryGroupRoleMappingResponse.md @@ -0,0 +1,11 @@ +# CreateDirectoryGroupRoleMappingResponse + + +## 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 | +| `directoryGroupRoleMapping` | [Optional\](../../models/components/DirectoryGroupRoleMapping.md) | :heavy_minus_sign: | A directory group role mapping | \ No newline at end of file diff --git a/docs/models/operations/CreateDirectoryGroupRoleMappings.md b/docs/models/operations/CreateDirectoryGroupRoleMappings.md new file mode 100644 index 00000000..be08f5cb --- /dev/null +++ b/docs/models/operations/CreateDirectoryGroupRoleMappings.md @@ -0,0 +1,13 @@ +# CreateDirectoryGroupRoleMappings + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `directoryGroupId` | *Optional\* | :heavy_minus_sign: | The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is required. | +| `scimGroupId` | *Optional\* | :heavy_minus_sign: | The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both with different values is rejected. | +| `directoryGroupDisplayName` | *Optional\* | :heavy_minus_sign: | Optional display name for the group. | +| `scimGroupDisplayName` | *Optional\* | :heavy_minus_sign: | The legacy name for `directory_group_display_name`. Send either one, or both with the same value; sending both with different values is rejected. | +| `roleId` | *String* | :heavy_check_mark: | The organization role ID to assign to members of the group. | +| `precedence` | *Optional\* | :heavy_minus_sign: | The precedence for this mapping. If omitted, precedence is assigned by array order. | \ No newline at end of file diff --git a/docs/models/operations/CreateDirectoryRequestBody.md b/docs/models/operations/CreateDirectoryRequestBody.md new file mode 100644 index 00000000..de4d6d56 --- /dev/null +++ b/docs/models/operations/CreateDirectoryRequestBody.md @@ -0,0 +1,11 @@ +# CreateDirectoryRequestBody + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `enterpriseConnectionId` | *String* | :heavy_check_mark: | The ID of the enterprise connection to associate with this directory. | +| `name` | *Optional\* | :heavy_minus_sign: | A human-friendly name for the directory. | +| `provider` | *String* | :heavy_check_mark: | The identity provider for this directory. | +| `groupRoleMappings` | List\<[CreateDirectoryGroupRoleMappings](../../models/operations/CreateDirectoryGroupRoleMappings.md)> | :heavy_minus_sign: | Optional directory group to organization role mappings to create with the directory. | \ No newline at end of file diff --git a/docs/models/operations/CreateDirectoryResponse.md b/docs/models/operations/CreateDirectoryResponse.md new file mode 100644 index 00000000..c7e5d9c5 --- /dev/null +++ b/docs/models/operations/CreateDirectoryResponse.md @@ -0,0 +1,11 @@ +# CreateDirectoryResponse + + +## 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 | +| `directory` | [Optional\](../../models/components/Directory.md) | :heavy_minus_sign: | A directory | \ No newline at end of file diff --git a/docs/models/operations/CreateOAuthApplicationRequestBody.md b/docs/models/operations/CreateOAuthApplicationRequestBody.md index a977ca32..b432dd40 100644 --- a/docs/models/operations/CreateOAuthApplicationRequestBody.md +++ b/docs/models/operations/CreateOAuthApplicationRequestBody.md @@ -3,12 +3,13 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *String* | :heavy_check_mark: | The name of the new OAuth application.
Max length: 256 | | -| `redirectUris` | List\<*String*> | :heavy_minus_sign: | An array of redirect URIs of the new OAuth application | | -| ~~`callbackUrl`~~ | *JsonNullable\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The callback URL of the new OAuth application | | -| `scopes` | *JsonNullable\* | :heavy_minus_sign: | Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. Provide the requested scopes as a string, separated by spaces. | profile email public_metadata | -| `consentScreenEnabled` | *JsonNullable\* | :heavy_minus_sign: | True to enable a consent screen to display in the authentication flow. | | -| `pkceRequired` | *JsonNullable\* | :heavy_minus_sign: | True to require the Proof Key of Code Exchange (PKCE) flow. | | -| `public_` | *JsonNullable\* | :heavy_minus_sign: | If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `name` | *String* | :heavy_check_mark: | The name of the new OAuth application.
Max length: 256 | | +| `redirectUris` | List\<*String*> | :heavy_minus_sign: | An array of redirect URIs of the new OAuth application | | +| ~~`callbackUrl`~~ | *JsonNullable\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The callback URL of the new OAuth application | | +| `scopes` | *JsonNullable\* | :heavy_minus_sign: | Define the application's built-in and custom scope ceiling. Provide scope keys as a space-delimited string. Custom keys must exist in the instance OAuth scope catalog. | profile email public_metadata | +| `consentScreenEnabled` | *JsonNullable\* | :heavy_minus_sign: | True to enable a consent screen to display in the authentication flow. | | +| `pkceRequired` | *JsonNullable\* | :heavy_minus_sign: | True to require the Proof Key of Code Exchange (PKCE) flow. | | +| `deviceAuthorizationGrantEnabled` | *JsonNullable\* | :heavy_minus_sign: | True to enable the OAuth Device Authorization Grant for this application. Enabling requires the OAuth Device Authorization Grant feature to be enabled for the instance. | | +| `public_` | *JsonNullable\* | :heavy_minus_sign: | If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. | | \ No newline at end of file diff --git a/docs/models/operations/CreateSCIMDirectoryRequestBody.md b/docs/models/operations/CreateSCIMDirectoryRequestBody.md index b6e0266d..75c090f6 100644 --- a/docs/models/operations/CreateSCIMDirectoryRequestBody.md +++ b/docs/models/operations/CreateSCIMDirectoryRequestBody.md @@ -5,7 +5,7 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | -| `enterpriseConnectionId` | *String* | :heavy_check_mark: | The ID of the enterprise connection to associate with this SCIM directory. | -| `name` | *Optional\* | :heavy_minus_sign: | A human-friendly name for the SCIM directory. | -| `provider` | *String* | :heavy_check_mark: | The identity provider for this SCIM directory. | +| `enterpriseConnectionId` | *String* | :heavy_check_mark: | The ID of the enterprise connection to associate with this directory. | +| `name` | *Optional\* | :heavy_minus_sign: | A human-friendly name for the directory. | +| `provider` | *String* | :heavy_check_mark: | The identity provider for this directory. | | `groupRoleMappings` | List\<[GroupRoleMappings](../../models/operations/GroupRoleMappings.md)> | :heavy_minus_sign: | Optional SCIM group to organization role mappings to create with the directory. | \ No newline at end of file diff --git a/docs/models/operations/CreateSCIMDirectoryResponse.md b/docs/models/operations/CreateSCIMDirectoryResponse.md index ea2d41a0..1578c7ce 100644 --- a/docs/models/operations/CreateSCIMDirectoryResponse.md +++ b/docs/models/operations/CreateSCIMDirectoryResponse.md @@ -8,4 +8,4 @@ | `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 | -| `scimDirectory` | [Optional\](../../models/components/SCIMDirectory.md) | :heavy_minus_sign: | A SCIM directory | \ No newline at end of file +| `scimDirectory` | [Optional\](../../models/components/SCIMDirectory.md) | :heavy_minus_sign: | A directory | \ No newline at end of file diff --git a/docs/models/operations/CreateSCIMGroupRoleMappingRequest.md b/docs/models/operations/CreateSCIMGroupRoleMappingRequest.md index 624ffc85..287ef211 100644 --- a/docs/models/operations/CreateSCIMGroupRoleMappingRequest.md +++ b/docs/models/operations/CreateSCIMGroupRoleMappingRequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory. | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory. | | `requestBody` | [CreateSCIMGroupRoleMappingRequestBody](../../models/operations/CreateSCIMGroupRoleMappingRequestBody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/CreateUserRequestBody.md b/docs/models/operations/CreateUserRequestBody.md index 510848b3..7ed163dd 100644 --- a/docs/models/operations/CreateUserRequestBody.md +++ b/docs/models/operations/CreateUserRequestBody.md @@ -20,6 +20,7 @@ | `passwordHasher` | *Optional\* | :heavy_minus_sign: | The hashing algorithm that was used to generate the password digest.

The algorithms we support at the moment are [`bcrypt`](https://en.wikipedia.org/wiki/Bcrypt), [`bcrypt_sha256_django`](https://docs.djangoproject.com/en/4.0/topics/auth/passwords/), [`md5`](https://en.wikipedia.org/wiki/MD5), `pbkdf2_sha1`, `pbkdf2_sha256`, [`pbkdf2_sha256_django`](https://docs.djangoproject.com/en/4.0/topics/auth/passwords/),
`pbkdf2_sha512`, [`phpass`](https://www.openwall.com/phpass/), `md5_phpass`, [`scrypt_firebase`](https://firebaseopensource.com/projects/firebase/scrypt/),
[`scrypt_werkzeug`](https://werkzeug.palletsprojects.com/en/3.0.x/utils/#werkzeug.security.generate_password_hash), [`sha256`](https://en.wikipedia.org/wiki/SHA-2),
[`ldap_ssha`](https://www.openldap.org/faq/data/cache/347.html), the [`argon2`](https://argon2.online/) variants: `argon2i` and `argon2id`, `sha512_symfony`, the SHA-512 variant of the [Symfony](https://symfony.com/doc/current/security/passwords.html) legacy hasher,
and `pbkdf2_sha512_hex`, a variant of `pbkdf2_sha512` that accepts hex-encoded salt and hash.

Each of the supported hashers expects the incoming digest to be in a particular format. See the [Clerk docs](https://clerk.com/docs/references/backend/user/create-user) for more information. | | `skipPasswordChecks` | *JsonNullable\* | :heavy_minus_sign: | When set to `true` all password checks are skipped.
It is recommended to use this method only when migrating plaintext passwords to Clerk.
Upon migration the user base should be prompted to pick stronger password. | | `skipPasswordRequirement` | *JsonNullable\* | :heavy_minus_sign: | When set to `true`, `password` is not required anymore when creating the user and can be omitted.
This is useful when you are trying to create a user that doesn't have a password, in an instance that is using passwords.
Please note that you cannot use this flag if password is the only way for a user to sign into your instance. | +| `skipRestrictionChecks` | *JsonNullable\* | :heavy_minus_sign: | When set to `true`, the instance's restrictions are not applied to this user.
Those settings are the allowlist, the blocklist, blocked disposable email domains and blocked email subaddresses, and they normally reject a matching identifier here just as they do at sign-up.
Use this when your backend is creating a user it already trusts, such as during a migration or from an admin tool. | | `totpSecret` | *JsonNullable\* | :heavy_minus_sign: | In case TOTP is configured on the instance, you can provide the secret to enable it on the newly created user without the need to reset it.
Please note that currently the supported options are:
* Period: 30 seconds
* Code length: 6 digits
* Algorithm: SHA1 | | `backupCodes` | List\<*String*> | :heavy_minus_sign: | If Backup Codes are configured on the instance, you can provide them to enable it on the newly created user without the need to reset them.
You must provide the backup codes in plain format or the corresponding bcrypt digest. | | `publicMetadata` | Map\ | :heavy_minus_sign: | Metadata saved on the user, that is visible to both your Frontend and Backend APIs | @@ -32,6 +33,6 @@ | `createOrganizationEnabled` | *JsonNullable\* | :heavy_minus_sign: | If enabled, user can create organizations via FAPI.
| | `createOrganizationsLimit` | *JsonNullable\* | :heavy_minus_sign: | The maximum number of organizations the user can create. 0 means unlimited.
| | `createdAt` | *JsonNullable\* | :heavy_minus_sign: | A custom date/time denoting _when_ the user signed up to the application, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). | -| `bypassClientTrust` | *JsonNullable\* | :heavy_minus_sign: | When set to `true`, the user will bypass client trust checks during sign-in. | +| `bypassClientTrust` | *JsonNullable\* | :heavy_minus_sign: | When set to `true`, the user will bypass Device Trust checks during sign-in. | | `banned` | *JsonNullable\* | :heavy_minus_sign: | When set to `true`, the user is created already banned and cannot sign in.
Requires the same plan support as the ban user endpoint. | | `locked` | *JsonNullable\* | :heavy_minus_sign: | When set to `true`, the user is created already locked.
Requires the user lockout feature to be enabled on the instance. | \ No newline at end of file diff --git a/docs/models/operations/CustomAttributes.md b/docs/models/operations/CustomAttributes.md index ce4645c7..7751f93a 100644 --- a/docs/models/operations/CustomAttributes.md +++ b/docs/models/operations/CustomAttributes.md @@ -9,4 +9,5 @@ | `key` | *String* | :heavy_check_mark: | Key used to store the attribute in the user's metadata | | `ssoPath` | *Optional\* | :heavy_minus_sign: | Path to extract the attribute value from SSO claims | | `scimPath` | *Optional\* | :heavy_minus_sign: | GJSON path to extract the attribute value from SCIM user resources | +| `directoryPath` | *Optional\* | :heavy_minus_sign: | The new name for `scim_path`. Send either one, or both with the same value; sending both with different values is rejected. | | `multiValued` | *Optional\* | :heavy_minus_sign: | When true, the attribute supports multiple values; values from the IdP are written to public_metadata as an array. Defaults to false. | \ No newline at end of file diff --git a/docs/models/operations/DeleteDirectoryGroupRoleMappingRequest.md b/docs/models/operations/DeleteDirectoryGroupRoleMappingRequest.md new file mode 100644 index 00000000..15fd5c4e --- /dev/null +++ b/docs/models/operations/DeleteDirectoryGroupRoleMappingRequest.md @@ -0,0 +1,9 @@ +# DeleteDirectoryGroupRoleMappingRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory. | +| `mappingId` | *String* | :heavy_check_mark: | The ID of the directory group role mapping to delete. | \ No newline at end of file diff --git a/docs/models/operations/DeleteDirectoryGroupRoleMappingResponse.md b/docs/models/operations/DeleteDirectoryGroupRoleMappingResponse.md new file mode 100644 index 00000000..1e2ba2e1 --- /dev/null +++ b/docs/models/operations/DeleteDirectoryGroupRoleMappingResponse.md @@ -0,0 +1,11 @@ +# DeleteDirectoryGroupRoleMappingResponse + + +## 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 | +| `directoryGroupRoleMappingDeleted` | [Optional\](../../models/components/DirectoryGroupRoleMappingDeleted.md) | :heavy_minus_sign: | A directory group role mapping was deleted. | \ No newline at end of file diff --git a/docs/models/operations/DeleteDirectoryRequest.md b/docs/models/operations/DeleteDirectoryRequest.md new file mode 100644 index 00000000..205497eb --- /dev/null +++ b/docs/models/operations/DeleteDirectoryRequest.md @@ -0,0 +1,8 @@ +# DeleteDirectoryRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory to delete | \ No newline at end of file diff --git a/docs/models/operations/DeleteDirectoryResponse.md b/docs/models/operations/DeleteDirectoryResponse.md new file mode 100644 index 00000000..9b5858a8 --- /dev/null +++ b/docs/models/operations/DeleteDirectoryResponse.md @@ -0,0 +1,11 @@ +# DeleteDirectoryResponse + + +## 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 | +| `deletedObject` | [Optional\](../../models/components/DeletedObject.md) | :heavy_minus_sign: | Deleted Object | \ No newline at end of file diff --git a/docs/models/operations/DeleteSCIMDirectoryRequest.md b/docs/models/operations/DeleteSCIMDirectoryRequest.md index 31a928ac..4c22f87e 100644 --- a/docs/models/operations/DeleteSCIMDirectoryRequest.md +++ b/docs/models/operations/DeleteSCIMDirectoryRequest.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory to delete | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory to delete | \ No newline at end of file diff --git a/docs/models/operations/DeleteSCIMGroupRoleMappingRequest.md b/docs/models/operations/DeleteSCIMGroupRoleMappingRequest.md index 75261c19..9672e92c 100644 --- a/docs/models/operations/DeleteSCIMGroupRoleMappingRequest.md +++ b/docs/models/operations/DeleteSCIMGroupRoleMappingRequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory. | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory. | | `mappingId` | *String* | :heavy_check_mark: | The ID of the SCIM group role mapping to delete. | \ No newline at end of file diff --git a/docs/models/operations/GetDirectoryRequest.md b/docs/models/operations/GetDirectoryRequest.md new file mode 100644 index 00000000..52f525b7 --- /dev/null +++ b/docs/models/operations/GetDirectoryRequest.md @@ -0,0 +1,8 @@ +# GetDirectoryRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory to retrieve | \ No newline at end of file diff --git a/docs/models/operations/GetDirectoryResponse.md b/docs/models/operations/GetDirectoryResponse.md new file mode 100644 index 00000000..d1649a59 --- /dev/null +++ b/docs/models/operations/GetDirectoryResponse.md @@ -0,0 +1,11 @@ +# GetDirectoryResponse + + +## 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 | +| `directory` | [Optional\](../../models/components/Directory.md) | :heavy_minus_sign: | A directory | \ No newline at end of file diff --git a/docs/models/operations/GetSCIMDirectoryRequest.md b/docs/models/operations/GetSCIMDirectoryRequest.md index c089034f..6a621e1d 100644 --- a/docs/models/operations/GetSCIMDirectoryRequest.md +++ b/docs/models/operations/GetSCIMDirectoryRequest.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory to retrieve | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory to retrieve | \ No newline at end of file diff --git a/docs/models/operations/GetSCIMDirectoryResponse.md b/docs/models/operations/GetSCIMDirectoryResponse.md index d27457ab..a550bcce 100644 --- a/docs/models/operations/GetSCIMDirectoryResponse.md +++ b/docs/models/operations/GetSCIMDirectoryResponse.md @@ -8,4 +8,4 @@ | `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 | -| `scimDirectory` | [Optional\](../../models/components/SCIMDirectory.md) | :heavy_minus_sign: | A SCIM directory | \ No newline at end of file +| `scimDirectory` | [Optional\](../../models/components/SCIMDirectory.md) | :heavy_minus_sign: | A directory | \ No newline at end of file diff --git a/docs/models/operations/GetUserListRequest.md b/docs/models/operations/GetUserListRequest.md index c5fda89e..236a7704 100644 --- a/docs/models/operations/GetUserListRequest.md +++ b/docs/models/operations/GetUserListRequest.md @@ -3,30 +3,31 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `emailAddress` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified email addresses.
Accepts up to 100 email addresses.
Any email addresses not found are ignored. | | -| `phoneNumber` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified phone numbers.
Accepts up to 100 phone numbers.
Any phone numbers not found are ignored. | | -| `externalId` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified external IDs.
For each external ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective external ID should be included or
excluded from the result set.
Accepts up to 100 external IDs.
Any external IDs not found are ignored. | | -| `username` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified usernames.
Accepts up to 100 usernames.
Any usernames not found are ignored. | | -| `web3Wallet` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified web3 wallet addresses.
Accepts up to 100 web3 wallet addresses.
Any web3 wallet addresses not found are ignored. | | -| `userId` | List\<*String*> | :heavy_minus_sign: | Returns users with the user IDs specified.
For each user ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective user ID should be included or
excluded from the result set.
Accepts up to 100 user IDs.
Any user IDs not found are ignored. | | -| `organizationId` | List\<*String*> | :heavy_minus_sign: | Returns users that have memberships to the
given organizations.
For each organization ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective organization should be included or
excluded from the result set.
Accepts up to 100 organization IDs. | | -| `query` | *Optional\* | :heavy_minus_sign: | Returns users that match the given query.
For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user IDs, first and last names.
The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. | | -| `emailAddressQuery` | *Optional\* | :heavy_minus_sign: | Returns users with emails that match the given query, via case-insensitive partial match.
For example, `email_address_query=ello` will match a user with the email `HELLO@example.com`. | | -| `phoneNumberQuery` | *Optional\* | :heavy_minus_sign: | Returns users with phone numbers that match the given query, via case-insensitive partial match.
For example, `phone_number_query=555` will match a user with the phone number `+1555xxxxxxx`. | | -| `usernameQuery` | *Optional\* | :heavy_minus_sign: | Returns users with usernames that match the given query, via case-insensitive partial match.
For example, `username_query=CoolUser` will match a user with the username `SomeCoolUser`. | | -| `nameQuery` | *Optional\* | :heavy_minus_sign: | Returns users with names that match the given query, via case-insensitive partial match. | | -| `banned` | *Optional\* | :heavy_minus_sign: | Returns users which are either banned (`banned=true`) or not banned (`banned=false`). | | -| `lastActiveAtBefore` | *Optional\* | :heavy_minus_sign: | Returns users whose last session activity was before the given date (with millisecond precision).
Example: use 1700690400000 to retrieve users whose last session activity was before 2023-11-23. | 1700690400000 | -| `lastActiveAtAfter` | *Optional\* | :heavy_minus_sign: | Returns users whose last session activity was after the given date (with millisecond precision).
Example: use 1700690400000 to retrieve users whose last session activity was after 2023-11-23. | 1700690400000 | -| ~~`lastActiveAtSince`~~ | *Optional\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Returns users that had session activity since the given date.
Example: use 1700690400000 to retrieve users that had session activity from 2023-11-23 until the current day.
Deprecated in favor of `last_active_at_after`. | 1700690400000 | -| `createdAtBefore` | *Optional\* | :heavy_minus_sign: | Returns users who have been created before the given date (with millisecond precision).
Example: use 1730160000000 to retrieve users who have been created before 2024-10-29. | 1730160000000 | -| `createdAtAfter` | *Optional\* | :heavy_minus_sign: | Returns users who have been created after the given date (with millisecond precision).
Example: use 1730160000000 to retrieve users who have been created after 2024-10-29. | 1730160000000 | -| `lastSignInAtBefore` | *Optional\* | :heavy_minus_sign: | Returns users whose last sign-in was before the given date (with millisecond precision).
Example: use 1700690400000 to retrieve users whose last sign-in was before 2023-11-23. | 1700690400000 | -| `lastSignInAtAfter` | *Optional\* | :heavy_minus_sign: | Returns users whose last sign-in was after the given date (with millisecond precision).
Example: use 1700690400000 to retrieve users whose last sign-in was after 2023-11-23. | 1700690400000 | -| `provider` | *Optional\* | :heavy_minus_sign: | Returns users with external accounts for the specified OAuth provider.
Must be used in combination with the `provider_user_id` parameter.
For example, use `provider=oauth_google&provider_user_id=12345` to retrieve a user with Google provider user ID 12345. | | -| `providerUserId` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified provider user IDs for a specific provider.
Must be used in combination with the `provider` parameter.
For example, use `provider=oauth_google&provider_user_id=12345` to retrieve a user with Google provider user ID 12345.
Accepts up to 100 provider user IDs.
Any provider user IDs not found are ignored. | | -| `limit` | *Optional\* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | | -| `offset` | *Optional\* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | | -| `orderBy` | *Optional\* | :heavy_minus_sign: | Allows to return users in a particular order.
At the moment, you can order the returned users by their `created_at`,`updated_at`,`email_address`,`web3wallet`,`first_name`,`last_name`,`phone_number`,`username`,`last_active_at`,`last_sign_in_at`.
In order to specify the direction, you can use the `+/-` symbols prepended in the property to order by.
For example, if you want users to be returned in descending order according to their `created_at` property, you can use `-created_at`.
If you don't use `+` or `-`, then `+` is implied. We only support one `order_by` parameter, and if multiple `order_by` parameters are provided, we will only keep the first one. For example,
if you pass `order_by=username&order_by=created_at`, we will consider only the first `order_by` parameter, which is `username`. The `created_at` parameter will be ignored in this case. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `emailAddress` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified email addresses.
Accepts up to 100 email addresses.
Any email addresses not found are ignored. | | +| `phoneNumber` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified phone numbers.
Accepts up to 100 phone numbers.
Any phone numbers not found are ignored. | | +| `externalId` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified external IDs.
For each external ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective external ID should be included or
excluded from the result set.
Accepts up to 100 external IDs.
Any external IDs not found are ignored. | | +| `username` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified usernames.
Accepts up to 100 usernames.
Any usernames not found are ignored. | | +| `web3Wallet` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified web3 wallet addresses.
Accepts up to 100 web3 wallet addresses.
Any web3 wallet addresses not found are ignored. | | +| `userId` | List\<*String*> | :heavy_minus_sign: | Returns users with the user IDs specified.
For each user ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective user ID should be included or
excluded from the result set.
Accepts up to 100 user IDs.
Any user IDs not found are ignored. | | +| `organizationId` | List\<*String*> | :heavy_minus_sign: | Returns users that have memberships to the
given organizations.
For each organization ID, the `+` and `-` can be
prepended to the ID, which denote whether the
respective organization should be included or
excluded from the result set.
Accepts up to 100 organization IDs. | | +| `query` | *Optional\* | :heavy_minus_sign: | Returns users that match the given query.
For possible matches, we check the email addresses, phone numbers, usernames, web3 wallets, user IDs, first and last names.
The query value doesn't need to match the exact value you are looking for, it is capable of partial matches as well. | | +| `emailAddressQuery` | *Optional\* | :heavy_minus_sign: | Returns users with emails that match the given query, via case-insensitive partial match.
For example, `email_address_query=ello` will match a user with the email `HELLO@example.com`. | | +| `phoneNumberQuery` | *Optional\* | :heavy_minus_sign: | Returns users with phone numbers that match the given query, via case-insensitive partial match.
For example, `phone_number_query=555` will match a user with the phone number `+1555xxxxxxx`. | | +| `usernameQuery` | *Optional\* | :heavy_minus_sign: | Returns users with usernames that match the given query, via case-insensitive partial match.
For example, `username_query=CoolUser` will match a user with the username `SomeCoolUser`. | | +| `nameQuery` | *Optional\* | :heavy_minus_sign: | Returns users with names that match the given query, via case-insensitive partial match. | | +| `banned` | *Optional\* | :heavy_minus_sign: | Returns users which are either banned (`banned=true`) or not banned (`banned=false`). | | +| `lastActiveAtBefore` | *Optional\* | :heavy_minus_sign: | Returns users whose last session activity was before the given date (with millisecond precision).
Example: use 1700690400000 to retrieve users whose last session activity was before 2023-11-23. | 1700690400000 | +| `lastActiveAtAfter` | *Optional\* | :heavy_minus_sign: | Returns users whose last session activity was after the given date (with millisecond precision).
Example: use 1700690400000 to retrieve users whose last session activity was after 2023-11-23. | 1700690400000 | +| ~~`lastActiveAtSince`~~ | *Optional\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Returns users that had session activity since the given date.
Example: use 1700690400000 to retrieve users that had session activity from 2023-11-23 until the current day.
Deprecated in favor of `last_active_at_after`. | 1700690400000 | +| `createdAtBefore` | *Optional\* | :heavy_minus_sign: | Returns users who have been created before the given date (with millisecond precision).
Example: use 1730160000000 to retrieve users who have been created before 2024-10-29. | 1730160000000 | +| `createdAtAfter` | *Optional\* | :heavy_minus_sign: | Returns users who have been created after the given date (with millisecond precision).
Example: use 1730160000000 to retrieve users who have been created after 2024-10-29. | 1730160000000 | +| `lastSignInAtBefore` | *Optional\* | :heavy_minus_sign: | Returns users whose last sign-in was before the given date (with millisecond precision).
Example: use 1700690400000 to retrieve users whose last sign-in was before 2023-11-23. | 1700690400000 | +| `lastSignInAtAfter` | *Optional\* | :heavy_minus_sign: | Returns users whose last sign-in was after the given date (with millisecond precision).
Example: use 1700690400000 to retrieve users whose last sign-in was after 2023-11-23. | 1700690400000 | +| `provider` | *Optional\* | :heavy_minus_sign: | Returns users with external accounts for the specified OAuth provider.
Must be used in combination with the `provider_user_id` parameter.
For example, use `provider=oauth_google&provider_user_id=12345` to retrieve a user with Google provider user ID 12345. | | +| `providerUserId` | List\<*String*> | :heavy_minus_sign: | Returns users with the specified provider user IDs for a specific provider.
Must be used in combination with the `provider` parameter.
For example, use `provider=oauth_google&provider_user_id=12345` to retrieve a user with Google provider user ID 12345.
Accepts up to 100 provider user IDs.
Any provider user IDs not found are ignored. | | +| `limit` | *Optional\* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | | +| `offset` | *Optional\* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | | +| `startingAfter` | *Optional\* | :heavy_minus_sign: | A cursor for pagination: the `id` of the last user on the previous page. Returns the users that follow it.

**Requires ordering by `created_at`** — that is, `order_by` omitted, or set to `created_at`, `+created_at`
or `-created_at`. Any other `order_by` value is rejected with a 422: the other orderings sort by a value
that is neither unique per user nor immutable, so a cursor over them would skip or repeat users.

Cannot be combined with a non-zero `offset`, which is also a 422. Keep every other parameter identical
across requests, and stop when a page returns fewer than `limit` users. | | +| `orderBy` | *Optional\* | :heavy_minus_sign: | Allows to return users in a particular order.
At the moment, you can order the returned users by their `created_at`,`updated_at`,`email_address`,`web3wallet`,`first_name`,`last_name`,`phone_number`,`username`,`last_active_at`,`last_sign_in_at`.
In order to specify the direction, you can use the `+/-` symbols prepended in the property to order by.
For example, if you want users to be returned in descending order according to their `created_at` property, you can use `-created_at`.
If you don't use `+` or `-`, then `+` is implied. We only support one `order_by` parameter, and if multiple `order_by` parameters are provided, we will only keep the first one. For example,
if you pass `order_by=username&order_by=created_at`, we will consider only the first `order_by` parameter, which is `username`. The `created_at` parameter will be ignored in this case.
Only the `created_at` orderings can be combined with `starting_after` cursor pagination; see that parameter. | | \ No newline at end of file diff --git a/docs/models/operations/ListDirectoriesRequest.md b/docs/models/operations/ListDirectoriesRequest.md new file mode 100644 index 00000000..91022a76 --- /dev/null +++ b/docs/models/operations/ListDirectoriesRequest.md @@ -0,0 +1,9 @@ +# ListDirectoriesRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `limit` | *Optional\* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | +| `offset` | *Optional\* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | \ No newline at end of file diff --git a/docs/models/operations/ListDirectoriesResponse.md b/docs/models/operations/ListDirectoriesResponse.md new file mode 100644 index 00000000..6a465f16 --- /dev/null +++ b/docs/models/operations/ListDirectoriesResponse.md @@ -0,0 +1,11 @@ +# ListDirectoriesResponse + + +## 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 | +| `directoryList` | [Optional\](../../models/components/DirectoryList.md) | :heavy_minus_sign: | A list of directories | \ No newline at end of file diff --git a/docs/models/operations/ListDirectoryGroupRoleMappingsRequest.md b/docs/models/operations/ListDirectoryGroupRoleMappingsRequest.md new file mode 100644 index 00000000..86544b9e --- /dev/null +++ b/docs/models/operations/ListDirectoryGroupRoleMappingsRequest.md @@ -0,0 +1,8 @@ +# ListDirectoryGroupRoleMappingsRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory. | \ No newline at end of file diff --git a/docs/models/operations/ListDirectoryGroupRoleMappingsResponse.md b/docs/models/operations/ListDirectoryGroupRoleMappingsResponse.md new file mode 100644 index 00000000..c72b764d --- /dev/null +++ b/docs/models/operations/ListDirectoryGroupRoleMappingsResponse.md @@ -0,0 +1,11 @@ +# ListDirectoryGroupRoleMappingsResponse + + +## 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 | +| `directoryGroupRoleMappingList` | [Optional\](../../models/components/DirectoryGroupRoleMappingList.md) | :heavy_minus_sign: | A list of directory group role mappings, ordered by precedence. | \ No newline at end of file diff --git a/docs/models/operations/ListOAuthApplicationsRequest.md b/docs/models/operations/ListOAuthApplicationsRequest.md index 4d98240f..80f37496 100644 --- a/docs/models/operations/ListOAuthApplicationsRequest.md +++ b/docs/models/operations/ListOAuthApplicationsRequest.md @@ -8,4 +8,4 @@ | `limit` | *Optional\* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | | `offset` | *Optional\* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | | `orderBy` | *Optional\* | :heavy_minus_sign: | Allows to return OAuth applications in a particular order.
At the moment, you can order the returned OAuth applications by their `created_at` and `name`.
In order to specify the direction, you can use the `+/-` symbols prepended in the property to order by.
For example, if you want OAuth applications to be returned in descending order according to their `created_at` property, you can use `-created_at`.
If you don't use `+` or `-`, then `+` is implied. We only support one `order_by` parameter, and if multiple `order_by` parameters are provided, we will only keep the first one. For example,
if you pass `order_by=name&order_by=created_at`, we will consider only the first `order_by` parameter, which is `name`. The `created_at` parameter will be ignored in this case. | -| `nameQuery` | *Optional\* | :heavy_minus_sign: | Returns OAuth applications with names that match the given query, via case-insensitive partial match. | \ No newline at end of file +| `nameQuery` | *Optional\* | :heavy_minus_sign: | Returns OAuth applications with names that match the given query, via case-insensitive partial match.
Also returns the OAuth application whose `client_id` is exactly the given query, which is useful for
resolving a `client_id` to the OAuth application `id` required by the read, update and delete endpoints. | \ No newline at end of file diff --git a/docs/models/operations/ListSCIMDirectoriesResponse.md b/docs/models/operations/ListSCIMDirectoriesResponse.md index d8cce0d0..64943eb2 100644 --- a/docs/models/operations/ListSCIMDirectoriesResponse.md +++ b/docs/models/operations/ListSCIMDirectoriesResponse.md @@ -8,4 +8,4 @@ | `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 | -| `scimDirectoryList` | [Optional\](../../models/components/SCIMDirectoryList.md) | :heavy_minus_sign: | A list of SCIM directories | \ No newline at end of file +| `scimDirectoryList` | [Optional\](../../models/components/SCIMDirectoryList.md) | :heavy_minus_sign: | A list of directories | \ No newline at end of file diff --git a/docs/models/operations/ListSCIMGroupRoleMappingsRequest.md b/docs/models/operations/ListSCIMGroupRoleMappingsRequest.md index 0d2d308f..98e85676 100644 --- a/docs/models/operations/ListSCIMGroupRoleMappingsRequest.md +++ b/docs/models/operations/ListSCIMGroupRoleMappingsRequest.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory. | \ No newline at end of file diff --git a/docs/models/operations/ListUserBiometricCredentialsRequest.md b/docs/models/operations/ListUserBiometricCredentialsRequest.md new file mode 100644 index 00000000..39c0a4f9 --- /dev/null +++ b/docs/models/operations/ListUserBiometricCredentialsRequest.md @@ -0,0 +1,8 @@ +# ListUserBiometricCredentialsRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `userId` | *String* | :heavy_check_mark: | The ID of the user whose biometric credentials are returned | \ No newline at end of file diff --git a/docs/models/operations/ListUserBiometricCredentialsResponse.md b/docs/models/operations/ListUserBiometricCredentialsResponse.md new file mode 100644 index 00000000..603cca76 --- /dev/null +++ b/docs/models/operations/ListUserBiometricCredentialsResponse.md @@ -0,0 +1,11 @@ +# ListUserBiometricCredentialsResponse + + +## 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 | +| `biometricCredentialList` | [Optional\](../../models/components/BiometricCredentialList.md) | :heavy_minus_sign: | Success | \ No newline at end of file diff --git a/docs/models/operations/RemoveBillingSubscriptionItemDiscountRequest.md b/docs/models/operations/RemoveBillingSubscriptionItemDiscountRequest.md new file mode 100644 index 00000000..30efed2c --- /dev/null +++ b/docs/models/operations/RemoveBillingSubscriptionItemDiscountRequest.md @@ -0,0 +1,9 @@ +# RemoveBillingSubscriptionItemDiscountRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `subscriptionItemId` | *String* | :heavy_check_mark: | The ID of the subscription item to remove the discount from | +| `discountId` | *String* | :heavy_check_mark: | The ID of the discount to remove | \ No newline at end of file diff --git a/docs/models/operations/RemoveBillingSubscriptionItemDiscountResponse.md b/docs/models/operations/RemoveBillingSubscriptionItemDiscountResponse.md new file mode 100644 index 00000000..90a05fb3 --- /dev/null +++ b/docs/models/operations/RemoveBillingSubscriptionItemDiscountResponse.md @@ -0,0 +1,11 @@ +# RemoveBillingSubscriptionItemDiscountResponse + + +## 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 | +| `commerceDiscountRedemptionResponse` | [Optional\](../../models/components/CommerceDiscountRedemptionResponse.md) | :heavy_minus_sign: | A commerce discount redemption. | \ No newline at end of file diff --git a/docs/models/operations/ReplaceDirectoryGroupRoleMappingsMappings.md b/docs/models/operations/ReplaceDirectoryGroupRoleMappingsMappings.md new file mode 100644 index 00000000..68316a72 --- /dev/null +++ b/docs/models/operations/ReplaceDirectoryGroupRoleMappingsMappings.md @@ -0,0 +1,10 @@ +# ReplaceDirectoryGroupRoleMappingsMappings + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `directoryGroupId` | *Optional\* | :heavy_minus_sign: | The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is required. | +| `scimGroupId` | *Optional\* | :heavy_minus_sign: | The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both with different values is rejected. | +| `roleId` | *String* | :heavy_check_mark: | The ID of the organization role to assign to members of the group. | \ No newline at end of file diff --git a/docs/models/operations/ReplaceDirectoryGroupRoleMappingsRequest.md b/docs/models/operations/ReplaceDirectoryGroupRoleMappingsRequest.md new file mode 100644 index 00000000..f81f13d2 --- /dev/null +++ b/docs/models/operations/ReplaceDirectoryGroupRoleMappingsRequest.md @@ -0,0 +1,9 @@ +# ReplaceDirectoryGroupRoleMappingsRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory. | +| `requestBody` | [ReplaceDirectoryGroupRoleMappingsRequestBody](../../models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.md b/docs/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.md new file mode 100644 index 00000000..1e5a2d54 --- /dev/null +++ b/docs/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.md @@ -0,0 +1,8 @@ +# ReplaceDirectoryGroupRoleMappingsRequestBody + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `mappings` | List\<[ReplaceDirectoryGroupRoleMappingsMappings](../../models/operations/ReplaceDirectoryGroupRoleMappingsMappings.md)> | :heavy_check_mark: | The desired set of mappings. Array order sets precedence (1-indexed). An empty array clears all mappings. | \ No newline at end of file diff --git a/docs/models/operations/ReplaceDirectoryGroupRoleMappingsResponse.md b/docs/models/operations/ReplaceDirectoryGroupRoleMappingsResponse.md new file mode 100644 index 00000000..b5c5eed0 --- /dev/null +++ b/docs/models/operations/ReplaceDirectoryGroupRoleMappingsResponse.md @@ -0,0 +1,11 @@ +# ReplaceDirectoryGroupRoleMappingsResponse + + +## 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 | +| `directoryGroupRoleMappingList` | [Optional\](../../models/components/DirectoryGroupRoleMappingList.md) | :heavy_minus_sign: | A list of directory group role mappings, ordered by precedence. | \ No newline at end of file diff --git a/docs/models/operations/ReplaceSCIMGroupRoleMappingsRequest.md b/docs/models/operations/ReplaceSCIMGroupRoleMappingsRequest.md index d6b43037..7f300777 100644 --- a/docs/models/operations/ReplaceSCIMGroupRoleMappingsRequest.md +++ b/docs/models/operations/ReplaceSCIMGroupRoleMappingsRequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory. | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory. | | `requestBody` | [ReplaceSCIMGroupRoleMappingsRequestBody](../../models/operations/ReplaceSCIMGroupRoleMappingsRequestBody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/RevokeUserBiometricCredentialRequest.md b/docs/models/operations/RevokeUserBiometricCredentialRequest.md new file mode 100644 index 00000000..18485359 --- /dev/null +++ b/docs/models/operations/RevokeUserBiometricCredentialRequest.md @@ -0,0 +1,9 @@ +# RevokeUserBiometricCredentialRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `userId` | *String* | :heavy_check_mark: | The ID of the user that owns the biometric credential | +| `biometricCredentialId` | *String* | :heavy_check_mark: | The ID of the biometric credential to revoke | \ No newline at end of file diff --git a/docs/models/operations/RevokeUserBiometricCredentialResponse.md b/docs/models/operations/RevokeUserBiometricCredentialResponse.md new file mode 100644 index 00000000..d7450a25 --- /dev/null +++ b/docs/models/operations/RevokeUserBiometricCredentialResponse.md @@ -0,0 +1,11 @@ +# RevokeUserBiometricCredentialResponse + + +## 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 | +| `biometricCredential` | [Optional\](../../models/components/BiometricCredential.md) | :heavy_minus_sign: | Success | \ No newline at end of file diff --git a/docs/models/operations/RotateDirectoryAPIKeyRequest.md b/docs/models/operations/RotateDirectoryAPIKeyRequest.md new file mode 100644 index 00000000..67089db3 --- /dev/null +++ b/docs/models/operations/RotateDirectoryAPIKeyRequest.md @@ -0,0 +1,8 @@ +# RotateDirectoryAPIKeyRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory whose API key to rotate | \ No newline at end of file diff --git a/docs/models/operations/RotateDirectoryAPIKeyResponse.md b/docs/models/operations/RotateDirectoryAPIKeyResponse.md new file mode 100644 index 00000000..eaed7aa2 --- /dev/null +++ b/docs/models/operations/RotateDirectoryAPIKeyResponse.md @@ -0,0 +1,11 @@ +# RotateDirectoryAPIKeyResponse + + +## 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 | +| `directory` | [Optional\](../../models/components/Directory.md) | :heavy_minus_sign: | A directory | \ No newline at end of file diff --git a/docs/models/operations/RotateSCIMDirectoryAPIKeyRequest.md b/docs/models/operations/RotateSCIMDirectoryAPIKeyRequest.md index 052a100f..f3117bed 100644 --- a/docs/models/operations/RotateSCIMDirectoryAPIKeyRequest.md +++ b/docs/models/operations/RotateSCIMDirectoryAPIKeyRequest.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory whose API key to rotate | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory whose API key to rotate | \ No newline at end of file diff --git a/docs/models/operations/RotateSCIMDirectoryAPIKeyResponse.md b/docs/models/operations/RotateSCIMDirectoryAPIKeyResponse.md index 6dd15dd7..67e83583 100644 --- a/docs/models/operations/RotateSCIMDirectoryAPIKeyResponse.md +++ b/docs/models/operations/RotateSCIMDirectoryAPIKeyResponse.md @@ -8,4 +8,4 @@ | `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 | -| `scimDirectory` | [Optional\](../../models/components/SCIMDirectory.md) | :heavy_minus_sign: | A SCIM directory | \ No newline at end of file +| `scimDirectory` | [Optional\](../../models/components/SCIMDirectory.md) | :heavy_minus_sign: | A directory | \ No newline at end of file diff --git a/docs/models/operations/UpdateDirectoryRequest.md b/docs/models/operations/UpdateDirectoryRequest.md new file mode 100644 index 00000000..8eaef714 --- /dev/null +++ b/docs/models/operations/UpdateDirectoryRequest.md @@ -0,0 +1,9 @@ +# UpdateDirectoryRequest + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory to update | +| `requestBody` | [Optional\](../../models/operations/UpdateDirectoryRequestBody.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/UpdateDirectoryRequestBody.md b/docs/models/operations/UpdateDirectoryRequestBody.md new file mode 100644 index 00000000..ce0c5dc9 --- /dev/null +++ b/docs/models/operations/UpdateDirectoryRequestBody.md @@ -0,0 +1,12 @@ +# UpdateDirectoryRequestBody + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *Optional\* | :heavy_minus_sign: | A human-friendly name for the directory. | +| `enabled` | *Optional\* | :heavy_minus_sign: | Whether the directory is enabled. | +| `provider` | *Optional\* | :heavy_minus_sign: | The identity provider for this directory. | +| `attributeMapping` | Map\ | :heavy_minus_sign: | Attribute-to-directory-path entries to merge into the directory's attribute mapping.
Set a key to `null` to remove it from the mapping. | +| `groupRoleMappingEnabled` | *Optional\* | :heavy_minus_sign: | Whether group-to-role mapping is enabled for this directory. | \ No newline at end of file diff --git a/docs/models/operations/UpdateDirectoryResponse.md b/docs/models/operations/UpdateDirectoryResponse.md new file mode 100644 index 00000000..df3f57f6 --- /dev/null +++ b/docs/models/operations/UpdateDirectoryResponse.md @@ -0,0 +1,11 @@ +# UpdateDirectoryResponse + + +## 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 | +| `directory` | [Optional\](../../models/components/Directory.md) | :heavy_minus_sign: | A directory | \ No newline at end of file diff --git a/docs/models/operations/UpdateEnterpriseConnectionCustomAttributes.md b/docs/models/operations/UpdateEnterpriseConnectionCustomAttributes.md index 7b187e2d..45ed2297 100644 --- a/docs/models/operations/UpdateEnterpriseConnectionCustomAttributes.md +++ b/docs/models/operations/UpdateEnterpriseConnectionCustomAttributes.md @@ -9,4 +9,5 @@ | `key` | *String* | :heavy_check_mark: | Key used to store the attribute in the user's metadata | | `ssoPath` | *Optional\* | :heavy_minus_sign: | Path to extract the attribute value from SSO claims | | `scimPath` | *Optional\* | :heavy_minus_sign: | GJSON path to extract the attribute value from SCIM user resources | +| `directoryPath` | *Optional\* | :heavy_minus_sign: | The new name for `scim_path`. Send either one, or both with the same value; sending both with different values is rejected. | | `multiValued` | *Optional\* | :heavy_minus_sign: | When true, the attribute supports multiple values; values from the IdP are written to public_metadata as an array. Defaults to false. | \ No newline at end of file diff --git a/docs/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.md b/docs/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.md index 4a3385e6..699e72a9 100644 --- a/docs/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.md +++ b/docs/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.md @@ -3,11 +3,13 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dynamicOauthClientRegistration` | *JsonNullable\* | :heavy_minus_sign: | Whether dynamic OAuth client registration is enabled for the instance (RFC 7591). | -| `defaultScopes` | List\<*String*> | :heavy_minus_sign: | Default scopes. Set to null to reset to Clerk-provided defaults. | -| `oauthJwtAccessTokens` | *JsonNullable\* | :heavy_minus_sign: | Whether OAuth JWT access tokens are enabled for the instance (disabled indicates opaque access tokens). | -| `clientIdMetadataDocumentsAdvertised` | *JsonNullable\* | :heavy_minus_sign: | Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization server metadata. | -| `clientIdMetadataDocumentsOnlyAllowPreRegisteredClients` | *JsonNullable\* | :heavy_minus_sign: | When true, new unknown CIMD clients are rejected. Previously auto-connected and pre-registered clients remain admitted; deleting a client makes it unknown again. | -| `clientIdMetadataDocumentsBlockImplicitlyAllowedClients` | *JsonNullable\* | :heavy_minus_sign: | When true, recorded implicitly allowed CIMD clients are rejected on future client lookups. Explicitly allowed clients remain accepted. This does not revoke previously issued access tokens. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `dynamicOauthClientRegistration` | *JsonNullable\* | :heavy_minus_sign: | Whether dynamic OAuth client registration is enabled for the instance (RFC 7591). | +| `defaultScopes` | List\<*String*> | :heavy_minus_sign: | Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. Accepts built-in keys and current custom catalog keys. `advertised` does not affect eligibility. Duplicate keys, unknown keys, and `offline_access` are rejected. An empty array or null resets to Clerk-provided defaults.
| +| `oauthJwtAccessTokens` | *JsonNullable\* | :heavy_minus_sign: | Whether OAuth JWT access tokens are enabled for the instance (disabled indicates opaque access tokens). | +| `audClaimEnabled` | *JsonNullable\* | :heavy_minus_sign: | Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. | +| `pkceRequired` | *JsonNullable\* | :heavy_minus_sign: | Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. | +| `clientIdMetadataDocumentsAdvertised` | *JsonNullable\* | :heavy_minus_sign: | Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization server metadata. | +| `clientIdMetadataDocumentsOnlyAllowPreRegisteredClients` | *JsonNullable\* | :heavy_minus_sign: | When true, new unknown CIMD clients are rejected. Previously auto-connected and pre-registered clients remain admitted; deleting a client makes it unknown again. | +| `clientIdMetadataDocumentsBlockImplicitlyAllowedClients` | *JsonNullable\* | :heavy_minus_sign: | When true, recorded implicitly allowed CIMD clients are rejected on future client lookups. Explicitly allowed clients remain accepted. This does not revoke previously issued access tokens. | \ No newline at end of file diff --git a/docs/models/operations/UpdateInstanceProtectRequestBody.md b/docs/models/operations/UpdateInstanceProtectRequestBody.md index 6f6efb6e..7a838c13 100644 --- a/docs/models/operations/UpdateInstanceProtectRequestBody.md +++ b/docs/models/operations/UpdateInstanceProtectRequestBody.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| `rulesEnabled` | *JsonNullable\* | :heavy_minus_sign: | N/A | -| `specterEnabled` | *JsonNullable\* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `rulesEnabled` | *JsonNullable\* | :heavy_minus_sign: | Set true to enforce Protect rules on this instance. Set false to stop enforcing and return the instance to its default posture, where traffic is still evaluated in shadow but nothing is blocked. This does not remove the instance from Protect. | +| `specterEnabled` | *JsonNullable\* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/UpdateInstanceRequestBody.md b/docs/models/operations/UpdateInstanceRequestBody.md index 974233c9..d020e640 100644 --- a/docs/models/operations/UpdateInstanceRequestBody.md +++ b/docs/models/operations/UpdateInstanceRequestBody.md @@ -3,14 +3,16 @@ ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `testMode` | *JsonNullable\* | :heavy_minus_sign: | Toggles test mode for this instance, allowing the use of test email addresses and phone numbers.
Defaults to true for development instances. | -| `hibp` | *JsonNullable\* | :heavy_minus_sign: | Whether the instance should be using the HIBP service to check passwords for breaches | -| `supportEmail` | *JsonNullable\* | :heavy_minus_sign: | N/A | -| `clerkJsVersion` | *JsonNullable\* | :heavy_minus_sign: | N/A | -| `developmentOrigin` | *JsonNullable\* | :heavy_minus_sign: | N/A | -| `allowedOrigins` | List\<*String*> | :heavy_minus_sign: | For browser-like stacks such as browser extensions, Electron (not officially supported), or Capacitor.js (not officially supported), the instance allowed origins need to be updated with the request origin value. For Chrome extensions popup, background, or service worker pages, the origin is chrome-extension://extension_uuid. For Electron apps the default origin is http://localhost:3000. For Capacitor, the origin is capacitor://localhost. | -| ~~`cookielessDev`~~ | *JsonNullable\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Whether the instance should operate in cookieless development mode (i.e. without third-party cookies).
Deprecated: Please use `url_based_session_syncing` instead. | -| `urlBasedSessionSyncing` | *JsonNullable\* | :heavy_minus_sign: | Whether the instance should use URL-based session syncing in development mode (i.e. without third-party cookies). | -| `preferredSignInStrategyWhenPasswordRequired` | [JsonNullable\](../../models/operations/PreferredSignInStrategyWhenPasswordRequired.md) | :heavy_minus_sign: | When password is required at the instance level, sets the preferred sign-in strategy surfaced to Clerk components. Has no effect when password is not required. Defaults to `password`. Set to an empty string to clear the override. | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `testMode` | *JsonNullable\* | :heavy_minus_sign: | Toggles test mode for this instance, allowing the use of test email addresses and phone numbers.
Defaults to true for development instances. | +| `hibp` | *JsonNullable\* | :heavy_minus_sign: | Whether the instance should be using the HIBP service to check passwords for breaches | +| `supportEmail` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `clerkJsVersion` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `developmentOrigin` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `allowedOrigins` | List\<*String*> | :heavy_minus_sign: | For browser-like stacks such as browser extensions, Electron (not officially supported), or Capacitor.js (not officially supported), the instance allowed origins need to be updated with the request origin value. For Chrome extensions popup, background, or service worker pages, the origin is chrome-extension://extension_uuid. For Electron apps the default origin is http://localhost:3000. For Capacitor, the origin is capacitor://localhost.
Send an empty array to remove all allowed origins. A null value leaves the current list unchanged. | +| `allowedSubdomains` | List\<*String*> | :heavy_minus_sign: | Subdomains of the instance's own domains that may originate requests while `subdomain_allowlist_enabled` is true. Each entry is either an exact host (`app.example.com`) or a wildcard anchored on a host beneath one of the instance's domains (`*.preview.example.com`), which covers every host under that anchor but not the anchor itself.
Entries are stored folded to lower case with any trailing dot removed, the form the origin check compares against, so entries differing only in those respects are one entry. Entries already stored are not validated again, so a list read back from the instance can always be written again unchanged. Send an empty array to remove all entries. A null value leaves the current list unchanged. Production instances only. | +| `subdomainAllowlistEnabled` | *JsonNullable\* | :heavy_minus_sign: | Whether requests from subdomains of the instance's own domains are restricted to `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production instances only. | +| ~~`cookielessDev`~~ | *JsonNullable\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Whether the instance should operate in cookieless development mode (i.e. without third-party cookies).
Deprecated: Please use `url_based_session_syncing` instead. | +| `urlBasedSessionSyncing` | *JsonNullable\* | :heavy_minus_sign: | Whether the instance should use URL-based session syncing in development mode (i.e. without third-party cookies). | +| `preferredSignInStrategyWhenPasswordRequired` | [JsonNullable\](../../models/operations/PreferredSignInStrategyWhenPasswordRequired.md) | :heavy_minus_sign: | When password is required at the instance level, sets the preferred sign-in strategy surfaced to Clerk components. Has no effect when password is not required. Defaults to `password`. Set to an empty string to clear the override. | \ No newline at end of file diff --git a/docs/models/operations/UpdateOAuthApplicationRequestBody.md b/docs/models/operations/UpdateOAuthApplicationRequestBody.md index dee48adf..5a63e9fc 100644 --- a/docs/models/operations/UpdateOAuthApplicationRequestBody.md +++ b/docs/models/operations/UpdateOAuthApplicationRequestBody.md @@ -3,12 +3,13 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *JsonNullable\* | :heavy_minus_sign: | The new name of the OAuth application.
Max length: 256 | | -| `redirectUris` | List\<*String*> | :heavy_minus_sign: | An array of redirect URIs of the new OAuth application | | -| ~~`callbackUrl`~~ | *JsonNullable\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The new callback URL of the OAuth application | | -| `scopes` | *JsonNullable\* | :heavy_minus_sign: | Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. Provide the requested scopes as a string, separated by spaces. | profile email public_metadata private_metadata | -| `consentScreenEnabled` | *JsonNullable\* | :heavy_minus_sign: | True to enable a consent screen to display in the authentication flow. This cannot be disabled for dynamically registered OAuth Applications. | | -| `pkceRequired` | *JsonNullable\* | :heavy_minus_sign: | True to require the Proof Key of Code Exchange (PKCE) flow. | | -| `public_` | *JsonNullable\* | :heavy_minus_sign: | If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *JsonNullable\* | :heavy_minus_sign: | The new name of the OAuth application.
Max length: 256 | | +| `redirectUris` | List\<*String*> | :heavy_minus_sign: | An array of redirect URIs of the new OAuth application | | +| ~~`callbackUrl`~~ | *JsonNullable\* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The new callback URL of the OAuth application | | +| `scopes` | *JsonNullable\* | :heavy_minus_sign: | Replace the application's complete built-in and custom scope ceiling. Provide scope keys as a space-delimited string. Custom keys must exist in the instance OAuth scope catalog. Required built-in scopes, such as `offline_access`, must be included in the replacement set, otherwise the request is rejected. Omit this field to leave all scope assignments unchanged. | profile email offline_access public_metadata private_metadata | +| `consentScreenEnabled` | *JsonNullable\* | :heavy_minus_sign: | True to enable a consent screen to display in the authentication flow. This cannot be disabled for dynamically registered OAuth Applications. | | +| `pkceRequired` | *JsonNullable\* | :heavy_minus_sign: | True to require the Proof Key of Code Exchange (PKCE) flow. | | +| `deviceAuthorizationGrantEnabled` | *JsonNullable\* | :heavy_minus_sign: | True to enable the OAuth Device Authorization Grant for this application. Enabling requires the OAuth Device Authorization Grant feature to be enabled for the instance. Omit this field to leave the setting unchanged. | | +| `public_` | *JsonNullable\* | :heavy_minus_sign: | If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. | | \ No newline at end of file diff --git a/docs/models/operations/UpdateOrganizationRequestBody.md b/docs/models/operations/UpdateOrganizationRequestBody.md index c5a53ae2..31fd4b4d 100644 --- a/docs/models/operations/UpdateOrganizationRequestBody.md +++ b/docs/models/operations/UpdateOrganizationRequestBody.md @@ -3,11 +3,12 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *JsonNullable\* | :heavy_minus_sign: | The new name of the organization.
May not contain URLs or HTML.
Max length: 256 | -| `slug` | *JsonNullable\* | :heavy_minus_sign: | The new slug of the organization, which needs to be unique in the instance | -| `maxAllowedMemberships` | *JsonNullable\* | :heavy_minus_sign: | The maximum number of memberships allowed for this organization | -| `adminDeleteEnabled` | *JsonNullable\* | :heavy_minus_sign: | If true, an admin can delete this organization with the Frontend API. | -| `createdAt` | *JsonNullable\* | :heavy_minus_sign: | A custom date/time denoting _when_ the organization was created, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). | -| `roleSetKey` | *JsonNullable\* | :heavy_minus_sign: | The key of the [role set](https://clerk.com/docs/guides/organizations/control-access/role-sets) to assign to this organization. | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *JsonNullable\* | :heavy_minus_sign: | The new name of the organization.
May not contain URLs or HTML.
Max length: 256 | +| `slug` | *JsonNullable\* | :heavy_minus_sign: | The new slug of the organization, which needs to be unique in the instance | +| `maxAllowedMemberships` | *JsonNullable\* | :heavy_minus_sign: | The maximum number of memberships allowed for this organization | +| `adminDeleteEnabled` | *JsonNullable\* | :heavy_minus_sign: | If true, an admin can delete this organization with the Frontend API. | +| `selfServeSsoEnabled` | *JsonNullable\* | :heavy_minus_sign: | Whether this organization can configure self-serve enterprise SSO.
Requires the instance to have the self-serve SSO entitlement enabled. | +| `createdAt` | *JsonNullable\* | :heavy_minus_sign: | A custom date/time denoting _when_ the organization was created, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). | +| `roleSetKey` | *JsonNullable\* | :heavy_minus_sign: | The key of the [role set](https://clerk.com/docs/guides/organizations/control-access/role-sets) to assign to this organization. | \ No newline at end of file diff --git a/docs/models/operations/UpdateSCIMDirectoryRequest.md b/docs/models/operations/UpdateSCIMDirectoryRequest.md index 0d96a0c4..371fdcf4 100644 --- a/docs/models/operations/UpdateSCIMDirectoryRequest.md +++ b/docs/models/operations/UpdateSCIMDirectoryRequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory to update | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory to update | | `requestBody` | [Optional\](../../models/operations/UpdateSCIMDirectoryRequestBody.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/UpdateSCIMDirectoryRequestBody.md b/docs/models/operations/UpdateSCIMDirectoryRequestBody.md index c01180ae..1dc9b2d9 100644 --- a/docs/models/operations/UpdateSCIMDirectoryRequestBody.md +++ b/docs/models/operations/UpdateSCIMDirectoryRequestBody.md @@ -5,8 +5,8 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *Optional\* | :heavy_minus_sign: | A human-friendly name for the SCIM directory. | -| `enabled` | *Optional\* | :heavy_minus_sign: | Whether the SCIM directory is enabled. | -| `provider` | *Optional\* | :heavy_minus_sign: | The identity provider for this SCIM directory. | +| `name` | *Optional\* | :heavy_minus_sign: | A human-friendly name for the directory. | +| `enabled` | *Optional\* | :heavy_minus_sign: | Whether the directory is enabled. | +| `provider` | *Optional\* | :heavy_minus_sign: | The identity provider for this directory. | | `attributeMapping` | Map\ | :heavy_minus_sign: | Attribute-to-SCIM-path entries to merge into the directory's attribute mapping.
Set a key to `null` to remove it from the mapping. | -| `groupRoleMappingEnabled` | *Optional\* | :heavy_minus_sign: | Whether group-to-role mapping is enabled for this SCIM directory. | \ No newline at end of file +| `groupRoleMappingEnabled` | *Optional\* | :heavy_minus_sign: | Whether group-to-role mapping is enabled for this directory. | \ No newline at end of file diff --git a/docs/models/operations/UpdateSCIMDirectoryResponse.md b/docs/models/operations/UpdateSCIMDirectoryResponse.md index 11f18a91..99b04313 100644 --- a/docs/models/operations/UpdateSCIMDirectoryResponse.md +++ b/docs/models/operations/UpdateSCIMDirectoryResponse.md @@ -8,4 +8,4 @@ | `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 | -| `scimDirectory` | [Optional\](../../models/components/SCIMDirectory.md) | :heavy_minus_sign: | A SCIM directory | \ No newline at end of file +| `scimDirectory` | [Optional\](../../models/components/SCIMDirectory.md) | :heavy_minus_sign: | A directory | \ No newline at end of file diff --git a/docs/models/operations/UpdateUserRequestBody.md b/docs/models/operations/UpdateUserRequestBody.md index d7e3cd70..4de44745 100644 --- a/docs/models/operations/UpdateUserRequestBody.md +++ b/docs/models/operations/UpdateUserRequestBody.md @@ -28,4 +28,4 @@ | `skipLegalChecks` | *JsonNullable\* | :heavy_minus_sign: | When set to `true` all legal checks are skipped. | | `createOrganizationsLimit` | *JsonNullable\* | :heavy_minus_sign: | The maximum number of organizations the user can create. 0 means unlimited. | | `createdAt` | *JsonNullable\* | :heavy_minus_sign: | A custom date/time denoting _when_ the user signed up to the application. | -| `bypassClientTrust` | *JsonNullable\* | :heavy_minus_sign: | When set to `true`, the user will bypass client trust checks during sign-in. | \ No newline at end of file +| `bypassClientTrust` | *JsonNullable\* | :heavy_minus_sign: | When set to `true`, the user will bypass Device Trust checks during sign-in. | \ No newline at end of file diff --git a/docs/sdks/actortokens/README.md b/docs/sdks/actortokens/README.md index c2c83366..76c232d7 100644 --- a/docs/sdks/actortokens/README.md +++ b/docs/sdks/actortokens/README.md @@ -63,7 +63,7 @@ public class Application { | Error Type | Status Code | Content Type | | ------------------------- | ------------------------- | ------------------------- | -| models/errors/ClerkErrors | 400, 402, 422 | application/json | +| models/errors/ClerkErrors | 400, 402, 403, 422 | application/json | | models/errors/SDKError | 4XX, 5XX | \*/\* | ## revoke diff --git a/docs/sdks/billing/README.md b/docs/sdks/billing/README.md index 4c317f10..ea2dccfd 100644 --- a/docs/sdks/billing/README.md +++ b/docs/sdks/billing/README.md @@ -11,6 +11,8 @@ * [cancelSubscriptionItem](#cancelsubscriptionitem) - Cancel a subscription item * [extendSubscriptionItemFreeTrial](#extendsubscriptionitemfreetrial) - Extend free trial for a subscription item * [createPriceTransition](#createpricetransition) - Create a price transition for a subscription item +* [applySubscriptionItemDiscount](#applysubscriptionitemdiscount) - Apply a discount to a subscription item +* [removeSubscriptionItemDiscount](#removesubscriptionitemdiscount) - Remove a discount from a subscription item * [listStatements](#liststatements) - List all billing statements * [getStatement](#getstatement) - Retrieve a billing statement * [getStatementPaymentAttempts](#getstatementpaymentattempts) - List payment attempts for a billing statement @@ -419,6 +421,121 @@ public class Application { | models/errors/ClerkErrors | 500 | application/json | | models/errors/SDKError | 4XX, 5XX | \*/\* | +## applySubscriptionItemDiscount + +Applies an existing discount to a subscription item. +Manual application is an override path: self-serve distribution rules are not enforced. +At most one active discount is allowed per subscription item; applying a different +discount replaces the currently active one. Re-applying the same active discount returns a conflict. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.components.ApplyCommerceDiscountRequest; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.ApplyBillingSubscriptionItemDiscountResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + ApplyBillingSubscriptionItemDiscountResponse res = sdk.billing().applySubscriptionItemDiscount() + .subscriptionItemId("") + .applyCommerceDiscountRequest(ApplyCommerceDiscountRequest.builder() + .discountId("") + .build()) + .call(); + + if (res.commerceDiscountRedemptionResponse().isPresent()) { + System.out.println(res.commerceDiscountRedemptionResponse().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `subscriptionItemId` | *String* | :heavy_check_mark: | The ID of the subscription item to apply the discount to | +| `applyCommerceDiscountRequest` | [ApplyCommerceDiscountRequest](../../models/components/ApplyCommerceDiscountRequest.md) | :heavy_check_mark: | Parameters for applying the discount | + +### Response + +**[ApplyBillingSubscriptionItemDiscountResponse](../../models/operations/ApplyBillingSubscriptionItemDiscountResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| models/errors/ClerkErrors | 400, 401, 403, 404, 409, 422 | application/json | +| models/errors/ClerkErrors | 500 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## removeSubscriptionItemDiscount + +Removes the active discount from a subscription item. +The discount_id must match the subscription item's currently active discount. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.RemoveBillingSubscriptionItemDiscountResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + RemoveBillingSubscriptionItemDiscountResponse res = sdk.billing().removeSubscriptionItemDiscount() + .subscriptionItemId("") + .discountId("") + .call(); + + if (res.commerceDiscountRedemptionResponse().isPresent()) { + System.out.println(res.commerceDiscountRedemptionResponse().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `subscriptionItemId` | *String* | :heavy_check_mark: | The ID of the subscription item to remove the discount from | +| `discountId` | *String* | :heavy_check_mark: | The ID of the discount to remove | + +### Response + +**[RemoveBillingSubscriptionItemDiscountResponse](../../models/operations/RemoveBillingSubscriptionItemDiscountResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| models/errors/ClerkErrors | 400, 401, 403, 404, 409, 422 | application/json | +| models/errors/ClerkErrors | 500 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + ## listStatements Returns a list of all billing statements for the instance. The statements are returned sorted by creation date, diff --git a/docs/sdks/directories/README.md b/docs/sdks/directories/README.md new file mode 100644 index 00000000..d8045226 --- /dev/null +++ b/docs/sdks/directories/README.md @@ -0,0 +1,555 @@ +# Directories + +## Overview + +### Available Operations + +* [list](#list) - List all directories +* [create](#create) - Create a directory +* [get](#get) - Retrieve a directory +* [update](#update) - Update a directory +* [delete](#delete) - Delete a directory +* [rotateApiKey](#rotateapikey) - Rotate a directory's API key +* [listGroupRoleMappings](#listgrouprolemappings) - List directory group role mappings +* [createGroupRoleMapping](#creategrouprolemapping) - Create a directory group role mapping +* [replaceGroupRoleMappings](#replacegrouprolemappings) - Replace directory group role mappings +* [deleteGroupRoleMapping](#deletegrouprolemapping) - Delete a directory group role mapping + +## list + +Returns a list of all directories for the instance. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.ListDirectoriesResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + ListDirectoriesResponse res = sdk.directories().list() + .limit(10L) + .offset(0L) + .call(); + + if (res.directoryList().isPresent()) { + System.out.println(res.directoryList().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `limit` | *Optional\* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | +| `offset` | *Optional\* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | + +### Response + +**[ListDirectoriesResponse](../../models/operations/ListDirectoriesResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 401, 403 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## create + +Create a new directory for the instance. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.CreateDirectoryResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + CreateDirectoryResponse res = sdk.directories().create() + .call(); + + if (res.directory().isPresent()) { + System.out.println(res.directory().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `request` | [CreateDirectoryRequestBody](../../models/operations/CreateDirectoryRequestBody.md) | :heavy_check_mark: | The request object to use for the request. | + +### Response + +**[CreateDirectoryResponse](../../models/operations/CreateDirectoryResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 400, 401, 403, 422 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## get + +Returns the details of a directory. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.GetDirectoryResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + GetDirectoryResponse res = sdk.directories().get() + .directoryId("") + .call(); + + if (res.directory().isPresent()) { + System.out.println(res.directory().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory to retrieve | + +### Response + +**[GetDirectoryResponse](../../models/operations/GetDirectoryResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 401, 403, 404 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## update + +Updates a directory. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.UpdateDirectoryResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + UpdateDirectoryResponse res = sdk.directories().update() + .directoryId("") + .call(); + + if (res.directory().isPresent()) { + System.out.println(res.directory().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory to update | +| `requestBody` | [Optional\](../../models/operations/UpdateDirectoryRequestBody.md) | :heavy_minus_sign: | N/A | + +### Response + +**[UpdateDirectoryResponse](../../models/operations/UpdateDirectoryResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 400, 401, 403, 404, 422 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## delete + +Deletes a directory and stops provisioning for it. Provisioning requests authenticated +with the directory's API key are rejected afterwards. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.DeleteDirectoryResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + DeleteDirectoryResponse res = sdk.directories().delete() + .directoryId("") + .call(); + + if (res.deletedObject().isPresent()) { + System.out.println(res.deletedObject().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory to delete | + +### Response + +**[DeleteDirectoryResponse](../../models/operations/DeleteDirectoryResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 401, 403, 404 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## rotateApiKey + +Generates a new API key for the directory and returns it in the `api_key` field. +This is the only way to obtain the key after creation, so make sure to update it in +your identity provider. The previous key remains valid for a short grace period before +it expires. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.RotateDirectoryAPIKeyResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + RotateDirectoryAPIKeyResponse res = sdk.directories().rotateApiKey() + .directoryId("") + .call(); + + if (res.directory().isPresent()) { + System.out.println(res.directory().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory whose API key to rotate | + +### Response + +**[RotateDirectoryAPIKeyResponse](../../models/operations/RotateDirectoryAPIKeyResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 401, 403, 404, 422 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## listGroupRoleMappings + +Returns the list of directory group to organization role mappings for a directory, ordered by precedence. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.ListDirectoryGroupRoleMappingsResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + ListDirectoryGroupRoleMappingsResponse res = sdk.directories().listGroupRoleMappings() + .directoryId("") + .call(); + + if (res.directoryGroupRoleMappingList().isPresent()) { + System.out.println(res.directoryGroupRoleMappingList().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory. | + +### Response + +**[ListDirectoryGroupRoleMappingsResponse](../../models/operations/ListDirectoryGroupRoleMappingsResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 401, 403, 404 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## createGroupRoleMapping + +Creates a new directory group to organization role mapping for a directory. +Mappings can be created while group role mapping is disabled on the +directory, but they only take effect once it is enabled. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.CreateDirectoryGroupRoleMappingRequestBody; +import com.clerk.backend_api.models.operations.CreateDirectoryGroupRoleMappingResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + CreateDirectoryGroupRoleMappingResponse res = sdk.directories().createGroupRoleMapping() + .directoryId("") + .requestBody(CreateDirectoryGroupRoleMappingRequestBody.builder() + .roleId("") + .build()) + .call(); + + if (res.directoryGroupRoleMapping().isPresent()) { + System.out.println(res.directoryGroupRoleMapping().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory. | +| `requestBody` | [CreateDirectoryGroupRoleMappingRequestBody](../../models/operations/CreateDirectoryGroupRoleMappingRequestBody.md) | :heavy_check_mark: | N/A | + +### Response + +**[CreateDirectoryGroupRoleMappingResponse](../../models/operations/CreateDirectoryGroupRoleMappingResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 400, 401, 403, 404, 422 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## replaceGroupRoleMappings + +Replaces the entire set of directory group role mappings for a directory. The position of +each item in the `mappings` array determines its precedence (the first item gets +precedence 1). Passing an empty array removes all mappings. Mappings can be replaced +while group role mapping is disabled on the directory, but they only take effect once +it is enabled. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.*; +import java.lang.Exception; +import java.util.List; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + ReplaceDirectoryGroupRoleMappingsResponse res = sdk.directories().replaceGroupRoleMappings() + .directoryId("") + .requestBody(ReplaceDirectoryGroupRoleMappingsRequestBody.builder() + .mappings(List.of( + ReplaceDirectoryGroupRoleMappingsMappings.builder() + .roleId("") + .build())) + .build()) + .call(); + + if (res.directoryGroupRoleMappingList().isPresent()) { + System.out.println(res.directoryGroupRoleMappingList().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory. | +| `requestBody` | [ReplaceDirectoryGroupRoleMappingsRequestBody](../../models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.md) | :heavy_check_mark: | N/A | + +### Response + +**[ReplaceDirectoryGroupRoleMappingsResponse](../../models/operations/ReplaceDirectoryGroupRoleMappingsResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 400, 401, 403, 404, 422 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## deleteGroupRoleMapping + +Deletes a single directory group role mapping. Mappings can be deleted while group role +mapping is disabled on the directory, but the change only takes effect once it is +enabled. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.DeleteDirectoryGroupRoleMappingResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + DeleteDirectoryGroupRoleMappingResponse res = sdk.directories().deleteGroupRoleMapping() + .directoryId("") + .mappingId("") + .call(); + + if (res.directoryGroupRoleMappingDeleted().isPresent()) { + System.out.println(res.directoryGroupRoleMappingDeleted().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `directoryId` | *String* | :heavy_check_mark: | The ID of the directory. | +| `mappingId` | *String* | :heavy_check_mark: | The ID of the directory group role mapping to delete. | + +### Response + +**[DeleteDirectoryGroupRoleMappingResponse](../../models/operations/DeleteDirectoryGroupRoleMappingResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 400, 401, 403, 404 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/oauthapplications/README.md b/docs/sdks/oauthapplications/README.md index 974edfac..a7a11cf1 100644 --- a/docs/sdks/oauthapplications/README.md +++ b/docs/sdks/oauthapplications/README.md @@ -59,7 +59,7 @@ public class Application { | `limit` | *Optional\* | :heavy_minus_sign: | Applies a limit to the number of results returned.
Can be used for paginating the results together with `offset`. | | `offset` | *Optional\* | :heavy_minus_sign: | Skip the first `offset` results when paginating.
Needs to be an integer greater or equal to zero.
To be used in conjunction with `limit`. | | `orderBy` | *Optional\* | :heavy_minus_sign: | Allows to return OAuth applications in a particular order.
At the moment, you can order the returned OAuth applications by their `created_at` and `name`.
In order to specify the direction, you can use the `+/-` symbols prepended in the property to order by.
For example, if you want OAuth applications to be returned in descending order according to their `created_at` property, you can use `-created_at`.
If you don't use `+` or `-`, then `+` is implied. We only support one `order_by` parameter, and if multiple `order_by` parameters are provided, we will only keep the first one. For example,
if you pass `order_by=name&order_by=created_at`, we will consider only the first `order_by` parameter, which is `name`. The `created_at` parameter will be ignored in this case. | -| `nameQuery` | *Optional\* | :heavy_minus_sign: | Returns OAuth applications with names that match the given query, via case-insensitive partial match. | +| `nameQuery` | *Optional\* | :heavy_minus_sign: | Returns OAuth applications with names that match the given query, via case-insensitive partial match.
Also returns the OAuth application whose `client_id` is exactly the given query, which is useful for
resolving a `client_id` to the OAuth application `id` required by the read, update and delete endpoints. | ### Response diff --git a/docs/sdks/scimdirectories/README.md b/docs/sdks/scimdirectories/README.md index c5e9eb34..d1501247 100644 --- a/docs/sdks/scimdirectories/README.md +++ b/docs/sdks/scimdirectories/README.md @@ -4,12 +4,12 @@ ### Available Operations -* [list](#list) - List all SCIM directories -* [create](#create) - Create a SCIM directory -* [get](#get) - Retrieve a SCIM directory -* [update](#update) - Update a SCIM directory -* [delete](#delete) - Delete a SCIM directory -* [rotateApiKey](#rotateapikey) - Rotate a SCIM directory's API key +* [list](#list) - List all directories +* [create](#create) - Create a directory +* [get](#get) - Retrieve a directory +* [update](#update) - Update a directory +* [delete](#delete) - Delete a directory +* [rotateApiKey](#rotateapikey) - Rotate a directory's API key * [listGroupRoleMappings](#listgrouprolemappings) - List SCIM group role mappings * [createGroupRoleMapping](#creategrouprolemapping) - Create a SCIM group role mapping * [replaceGroupRoleMappings](#replacegrouprolemappings) - Replace SCIM group role mappings @@ -17,7 +17,7 @@ ## list -Returns a list of all SCIM directories for the instance. +Returns a list of all directories for the instance. ### Example Usage @@ -70,7 +70,7 @@ public class Application { ## create -Create a new SCIM directory for the instance. +Create a new directory for the instance. ### Example Usage @@ -120,7 +120,7 @@ public class Application { ## get -Returns the details of a SCIM directory. +Returns the details of a directory. ### Example Usage @@ -154,9 +154,9 @@ public class Application { ### Parameters -| Parameter | Type | Required | Description | -| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory to retrieve | +| Parameter | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory to retrieve | ### Response @@ -171,7 +171,7 @@ public class Application { ## update -Updates a SCIM directory. +Updates a directory. ### Example Usage @@ -207,7 +207,7 @@ public class Application { | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory to update | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory to update | | `requestBody` | [Optional\](../../models/operations/UpdateSCIMDirectoryRequestBody.md) | :heavy_minus_sign: | N/A | ### Response @@ -223,7 +223,7 @@ public class Application { ## delete -Deletes a SCIM directory and stops provisioning for it. SCIM requests authenticated +Deletes a directory and stops provisioning for it. SCIM requests authenticated with the directory's API key are rejected afterwards. ### Example Usage @@ -258,9 +258,9 @@ public class Application { ### Parameters -| Parameter | Type | Required | Description | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory to delete | +| Parameter | Type | Required | Description | +| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory to delete | ### Response @@ -275,7 +275,7 @@ public class Application { ## rotateApiKey -Generates a new API key for the SCIM directory and returns it in the `api_key` field. +Generates a new API key for the directory and returns it in the `api_key` field. This is the only way to obtain the key after creation, so make sure to update it in your identity provider. The previous key remains valid for a short grace period before it expires. @@ -312,9 +312,9 @@ public class Application { ### Parameters -| Parameter | Type | Required | Description | -| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory whose API key to rotate | +| Parameter | Type | Required | Description | +| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory whose API key to rotate | ### Response @@ -324,12 +324,12 @@ public class Application { | Error Type | Status Code | Content Type | | ------------------------- | ------------------------- | ------------------------- | -| models/errors/ClerkErrors | 401, 403, 404 | application/json | +| models/errors/ClerkErrors | 401, 403, 404, 422 | application/json | | models/errors/SDKError | 4XX, 5XX | \*/\* | ## listGroupRoleMappings -Returns the list of SCIM group to organization role mappings for a SCIM directory, ordered by precedence. +Returns the list of SCIM group to organization role mappings for a directory, ordered by precedence. ### Example Usage @@ -363,9 +363,9 @@ public class Application { ### Parameters -| Parameter | Type | Required | Description | -| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory. | +| Parameter | Type | Required | Description | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory. | ### Response @@ -380,8 +380,9 @@ public class Application { ## createGroupRoleMapping -Creates a new SCIM group to organization role mapping for a SCIM directory. -Group role mapping must be enabled on the directory. +Creates a new SCIM group to organization role mapping for a directory. +Mappings can be created while group role mapping is disabled on the +directory, but they only take effect once it is enabled. ### Example Usage @@ -422,7 +423,7 @@ public class Application { | Parameter | Type | Required | Description | | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory. | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory. | | `requestBody` | [CreateSCIMGroupRoleMappingRequestBody](../../models/operations/CreateSCIMGroupRoleMappingRequestBody.md) | :heavy_check_mark: | N/A | ### Response @@ -440,8 +441,9 @@ public class Application { Replaces the entire set of SCIM group role mappings for a directory. The position of each item in the `mappings` array determines its precedence (the first item gets -precedence 1). Passing an empty array removes all mappings. Group role mapping must be -enabled on the directory. +precedence 1). Passing an empty array removes all mappings. Mappings can be replaced +while group role mapping is disabled on the directory, but they only take effect once +it is enabled. ### Example Usage @@ -482,7 +484,7 @@ public class Application { | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory. | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory. | | `requestBody` | [ReplaceSCIMGroupRoleMappingsRequestBody](../../models/operations/ReplaceSCIMGroupRoleMappingsRequestBody.md) | :heavy_check_mark: | N/A | ### Response @@ -498,8 +500,9 @@ public class Application { ## deleteGroupRoleMapping -Deletes a single SCIM group role mapping. Group role mapping must be enabled on the -directory. +Deletes a single SCIM group role mapping. Mappings can be deleted while group role +mapping is disabled on the directory, but the change only takes effect once it is +enabled. ### Example Usage @@ -536,7 +539,7 @@ public class Application { | Parameter | Type | Required | Description | | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | -| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the SCIM directory. | +| `scimDirectoryId` | *String* | :heavy_check_mark: | The ID of the directory. | | `mappingId` | *String* | :heavy_check_mark: | The ID of the SCIM group role mapping to delete. | ### Response diff --git a/docs/sdks/users/README.md b/docs/sdks/users/README.md index dde91100..1f4b7d79 100644 --- a/docs/sdks/users/README.md +++ b/docs/sdks/users/README.md @@ -32,8 +32,10 @@ * [disableMfa](#disablemfa) - Disable a user's MFA methods * [deleteBackupCodes](#deletebackupcodes) - Disable all user's Backup codes * [deletePasskey](#deletepasskey) - Delete a user passkey -* [listTrustedDevices](#listtrusteddevices) - List a user's trusted devices -* [revokeTrustedDevice](#revoketrusteddevice) - Revoke a user's trusted device +* [~~listTrustedDevices~~](#listtrusteddevices) - List a user's trusted devices :warning: **Deprecated** +* [~~revokeTrustedDevice~~](#revoketrusteddevice) - Revoke a user's trusted device :warning: **Deprecated** +* [listBiometricCredentials](#listbiometriccredentials) - List a user's biometric credentials +* [revokeBiometricCredential](#revokebiometriccredential) - Revoke a user's biometric credential * [deleteWeb3Wallet](#deleteweb3wallet) - Delete a user web3 wallet * [deleteTOTP](#deletetotp) - Delete all the user's TOTPs * [deleteExternalAccount](#deleteexternalaccount) - Delete External Account @@ -46,6 +48,11 @@ Returns a list of all users. The users are returned sorted by creation date, with the newest users appearing first. +To walk more than a few pages, paginate with `starting_after` rather than `offset`. +A cursor page costs the same no matter how far into the list it sits, while a large `offset` +has to walk and discard every row before it, so it gets progressively slower and eventually +times out. Cursor pagination requires the `created_at` ordering, which is the default. + ### Example Usage @@ -1598,10 +1605,12 @@ public class Application { | models/errors/ClerkErrors | 500 | application/json | | models/errors/SDKError | 4XX, 5XX | \*/\* | -## listTrustedDevices +## ~~listTrustedDevices~~ Returns the active trusted devices enrolled by the user. +> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible. + ### Example Usage @@ -1650,10 +1659,12 @@ public class Application { | models/errors/ClerkErrors | 500 | application/json | | models/errors/SDKError | 4XX, 5XX | \*/\* | -## revokeTrustedDevice +## ~~revokeTrustedDevice~~ Revokes an active trusted device enrolled by the user. +> :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible. + ### Example Usage @@ -1704,6 +1715,112 @@ public class Application { | models/errors/ClerkErrors | 500 | application/json | | models/errors/SDKError | 4XX, 5XX | \*/\* | +## listBiometricCredentials + +Returns the active biometric credentials enrolled by the user. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.ListUserBiometricCredentialsResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + ListUserBiometricCredentialsResponse res = sdk.users().listBiometricCredentials() + .userId("") + .call(); + + if (res.biometricCredentialList().isPresent()) { + System.out.println(res.biometricCredentialList().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `userId` | *String* | :heavy_check_mark: | The ID of the user whose biometric credentials are returned | + +### Response + +**[ListUserBiometricCredentialsResponse](../../models/operations/ListUserBiometricCredentialsResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 403, 404 | application/json | +| models/errors/ClerkErrors | 500 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## revokeBiometricCredential + +Revokes an active biometric credential enrolled by the user. + +### Example Usage + + +```java +package hello.world; + +import com.clerk.backend_api.Clerk; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.operations.RevokeUserBiometricCredentialResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws ClerkErrors, Exception { + + Clerk sdk = Clerk.builder() + .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", "")) + .build(); + + RevokeUserBiometricCredentialResponse res = sdk.users().revokeBiometricCredential() + .userId("") + .biometricCredentialId("") + .call(); + + if (res.biometricCredential().isPresent()) { + System.out.println(res.biometricCredential().get()); + } + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `userId` | *String* | :heavy_check_mark: | The ID of the user that owns the biometric credential | +| `biometricCredentialId` | *String* | :heavy_check_mark: | The ID of the biometric credential to revoke | + +### Response + +**[RevokeUserBiometricCredentialResponse](../../models/operations/RevokeUserBiometricCredentialResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------- | ------------------------- | ------------------------- | +| models/errors/ClerkErrors | 403, 404 | application/json | +| models/errors/ClerkErrors | 500 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + ## deleteWeb3Wallet Delete the web3 wallet identification for a given user. diff --git a/gradle.properties b/gradle.properties index efdf7cfd..6bc1b685 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ groupId=com.clerk artifactId=backend-api -version=6.0.0 +version=6.1.0 org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g diff --git a/src/main/java/com/clerk/backend_api/Billing.java b/src/main/java/com/clerk/backend_api/Billing.java index 53b3fee0..29999fb6 100644 --- a/src/main/java/com/clerk/backend_api/Billing.java +++ b/src/main/java/com/clerk/backend_api/Billing.java @@ -5,9 +5,13 @@ import static com.clerk.backend_api.operations.Operations.RequestOperation; +import com.clerk.backend_api.models.components.ApplyCommerceDiscountRequest; import com.clerk.backend_api.models.components.CreateBillingPriceRequest; import com.clerk.backend_api.models.components.ExtendFreeTrialRequest; import com.clerk.backend_api.models.components.PriceTransitionRequest; +import com.clerk.backend_api.models.operations.ApplyBillingSubscriptionItemDiscountRequest; +import com.clerk.backend_api.models.operations.ApplyBillingSubscriptionItemDiscountRequestBuilder; +import com.clerk.backend_api.models.operations.ApplyBillingSubscriptionItemDiscountResponse; import com.clerk.backend_api.models.operations.CancelCommerceSubscriptionItemRequest; import com.clerk.backend_api.models.operations.CancelCommerceSubscriptionItemRequestBuilder; import com.clerk.backend_api.models.operations.CancelCommerceSubscriptionItemResponse; @@ -38,6 +42,10 @@ import com.clerk.backend_api.models.operations.GetCommerceSubscriptionItemListRequestBuilder; import com.clerk.backend_api.models.operations.GetCommerceSubscriptionItemListResponse; import com.clerk.backend_api.models.operations.PayerType; +import com.clerk.backend_api.models.operations.RemoveBillingSubscriptionItemDiscountRequest; +import com.clerk.backend_api.models.operations.RemoveBillingSubscriptionItemDiscountRequestBuilder; +import com.clerk.backend_api.models.operations.RemoveBillingSubscriptionItemDiscountResponse; +import com.clerk.backend_api.operations.ApplyBillingSubscriptionItemDiscount; import com.clerk.backend_api.operations.CancelCommerceSubscriptionItem; import com.clerk.backend_api.operations.CreateBillingPrice; import com.clerk.backend_api.operations.CreateBillingPriceTransition; @@ -48,6 +56,7 @@ import com.clerk.backend_api.operations.GetBillingStatementPaymentAttempts; import com.clerk.backend_api.operations.GetCommercePlanList; import com.clerk.backend_api.operations.GetCommerceSubscriptionItemList; +import com.clerk.backend_api.operations.RemoveBillingSubscriptionItemDiscount; import com.clerk.backend_api.utils.Headers; import com.clerk.backend_api.utils.Options; import java.lang.Boolean; @@ -465,6 +474,118 @@ public CreateBillingPriceTransitionResponse createPriceTransition( return operation.handleResponse(operation.doRequest(request)); } + /** + * Apply a discount to a subscription item + * + *

Applies an existing discount to a subscription item. + * Manual application is an override path: self-serve distribution rules are not enforced. + * At most one active discount is allowed per subscription item; applying a different + * discount replaces the currently active one. Re-applying the same active discount returns a conflict. + * + * @return The call builder + */ + public ApplyBillingSubscriptionItemDiscountRequestBuilder applySubscriptionItemDiscount() { + return new ApplyBillingSubscriptionItemDiscountRequestBuilder(sdkConfiguration); + } + + /** + * Apply a discount to a subscription item + * + *

Applies an existing discount to a subscription item. + * Manual application is an override path: self-serve distribution rules are not enforced. + * At most one active discount is allowed per subscription item; applying a different + * discount replaces the currently active one. Re-applying the same active discount returns a conflict. + * + * @param subscriptionItemId The ID of the subscription item to apply the discount to + * @param applyCommerceDiscountRequest + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ApplyBillingSubscriptionItemDiscountResponse applySubscriptionItemDiscount(String subscriptionItemId, ApplyCommerceDiscountRequest applyCommerceDiscountRequest) { + return applySubscriptionItemDiscount(subscriptionItemId, applyCommerceDiscountRequest, Optional.empty()); + } + + /** + * Apply a discount to a subscription item + * + *

Applies an existing discount to a subscription item. + * Manual application is an override path: self-serve distribution rules are not enforced. + * At most one active discount is allowed per subscription item; applying a different + * discount replaces the currently active one. Re-applying the same active discount returns a conflict. + * + * @param subscriptionItemId The ID of the subscription item to apply the discount to + * @param applyCommerceDiscountRequest + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ApplyBillingSubscriptionItemDiscountResponse applySubscriptionItemDiscount( + String subscriptionItemId, ApplyCommerceDiscountRequest applyCommerceDiscountRequest, + Optional options) { + ApplyBillingSubscriptionItemDiscountRequest request = + ApplyBillingSubscriptionItemDiscountRequest + .builder() + .subscriptionItemId(subscriptionItemId) + .applyCommerceDiscountRequest(applyCommerceDiscountRequest) + .build(); + RequestOperation operation + = new ApplyBillingSubscriptionItemDiscount.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Remove a discount from a subscription item + * + *

Removes the active discount from a subscription item. + * The discount_id must match the subscription item's currently active discount. + * + * @return The call builder + */ + public RemoveBillingSubscriptionItemDiscountRequestBuilder removeSubscriptionItemDiscount() { + return new RemoveBillingSubscriptionItemDiscountRequestBuilder(sdkConfiguration); + } + + /** + * Remove a discount from a subscription item + * + *

Removes the active discount from a subscription item. + * The discount_id must match the subscription item's currently active discount. + * + * @param subscriptionItemId The ID of the subscription item to remove the discount from + * @param discountId The ID of the discount to remove + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public RemoveBillingSubscriptionItemDiscountResponse removeSubscriptionItemDiscount(String subscriptionItemId, String discountId) { + return removeSubscriptionItemDiscount(subscriptionItemId, discountId, Optional.empty()); + } + + /** + * Remove a discount from a subscription item + * + *

Removes the active discount from a subscription item. + * The discount_id must match the subscription item's currently active discount. + * + * @param subscriptionItemId The ID of the subscription item to remove the discount from + * @param discountId The ID of the discount to remove + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public RemoveBillingSubscriptionItemDiscountResponse removeSubscriptionItemDiscount( + String subscriptionItemId, String discountId, + Optional options) { + RemoveBillingSubscriptionItemDiscountRequest request = + RemoveBillingSubscriptionItemDiscountRequest + .builder() + .subscriptionItemId(subscriptionItemId) + .discountId(discountId) + .build(); + RequestOperation operation + = new RemoveBillingSubscriptionItemDiscount.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + /** * List all billing statements * diff --git a/src/main/java/com/clerk/backend_api/Clerk.java b/src/main/java/com/clerk/backend_api/Clerk.java index 54389ef4..abb85d98 100644 --- a/src/main/java/com/clerk/backend_api/Clerk.java +++ b/src/main/java/com/clerk/backend_api/Clerk.java @@ -162,6 +162,9 @@ public class Clerk { private final ScimDirectories scimDirectories; + private final Directories directories; + + private final AdminPortalLinkTokens adminPortalLinkTokens; /** @@ -373,6 +376,11 @@ public ScimDirectories scimDirectories() { } + public Directories directories() { + return directories; + } + + public AdminPortalLinkTokens adminPortalLinkTokens() { return adminPortalLinkTokens; } @@ -581,6 +589,7 @@ private Clerk(SDKConfiguration sdkConfiguration) { this.organizationPermissions = new OrganizationPermissions(sdkConfiguration); this.roleSets = new RoleSets(sdkConfiguration); this.scimDirectories = new ScimDirectories(sdkConfiguration); + this.directories = new Directories(sdkConfiguration); this.adminPortalLinkTokens = new AdminPortalLinkTokens(sdkConfiguration); this.apiKeys = new APIKeys(sdkConfiguration); this.m2m = new M2m(sdkConfiguration); diff --git a/src/main/java/com/clerk/backend_api/Directories.java b/src/main/java/com/clerk/backend_api/Directories.java new file mode 100644 index 00000000..50dd3cc8 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/Directories.java @@ -0,0 +1,574 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.models.operations.CreateDirectoryGroupRoleMappingRequest; +import com.clerk.backend_api.models.operations.CreateDirectoryGroupRoleMappingRequestBody; +import com.clerk.backend_api.models.operations.CreateDirectoryGroupRoleMappingRequestBuilder; +import com.clerk.backend_api.models.operations.CreateDirectoryGroupRoleMappingResponse; +import com.clerk.backend_api.models.operations.CreateDirectoryRequestBody; +import com.clerk.backend_api.models.operations.CreateDirectoryRequestBuilder; +import com.clerk.backend_api.models.operations.CreateDirectoryResponse; +import com.clerk.backend_api.models.operations.DeleteDirectoryGroupRoleMappingRequest; +import com.clerk.backend_api.models.operations.DeleteDirectoryGroupRoleMappingRequestBuilder; +import com.clerk.backend_api.models.operations.DeleteDirectoryGroupRoleMappingResponse; +import com.clerk.backend_api.models.operations.DeleteDirectoryRequest; +import com.clerk.backend_api.models.operations.DeleteDirectoryRequestBuilder; +import com.clerk.backend_api.models.operations.DeleteDirectoryResponse; +import com.clerk.backend_api.models.operations.GetDirectoryRequest; +import com.clerk.backend_api.models.operations.GetDirectoryRequestBuilder; +import com.clerk.backend_api.models.operations.GetDirectoryResponse; +import com.clerk.backend_api.models.operations.ListDirectoriesRequest; +import com.clerk.backend_api.models.operations.ListDirectoriesRequestBuilder; +import com.clerk.backend_api.models.operations.ListDirectoriesResponse; +import com.clerk.backend_api.models.operations.ListDirectoryGroupRoleMappingsRequest; +import com.clerk.backend_api.models.operations.ListDirectoryGroupRoleMappingsRequestBuilder; +import com.clerk.backend_api.models.operations.ListDirectoryGroupRoleMappingsResponse; +import com.clerk.backend_api.models.operations.ReplaceDirectoryGroupRoleMappingsRequest; +import com.clerk.backend_api.models.operations.ReplaceDirectoryGroupRoleMappingsRequestBody; +import com.clerk.backend_api.models.operations.ReplaceDirectoryGroupRoleMappingsRequestBuilder; +import com.clerk.backend_api.models.operations.ReplaceDirectoryGroupRoleMappingsResponse; +import com.clerk.backend_api.models.operations.RotateDirectoryAPIKeyRequest; +import com.clerk.backend_api.models.operations.RotateDirectoryAPIKeyRequestBuilder; +import com.clerk.backend_api.models.operations.RotateDirectoryAPIKeyResponse; +import com.clerk.backend_api.models.operations.UpdateDirectoryRequest; +import com.clerk.backend_api.models.operations.UpdateDirectoryRequestBody; +import com.clerk.backend_api.models.operations.UpdateDirectoryRequestBuilder; +import com.clerk.backend_api.models.operations.UpdateDirectoryResponse; +import com.clerk.backend_api.operations.CreateDirectory; +import com.clerk.backend_api.operations.CreateDirectoryGroupRoleMapping; +import com.clerk.backend_api.operations.DeleteDirectory; +import com.clerk.backend_api.operations.DeleteDirectoryGroupRoleMapping; +import com.clerk.backend_api.operations.GetDirectory; +import com.clerk.backend_api.operations.ListDirectories; +import com.clerk.backend_api.operations.ListDirectoryGroupRoleMappings; +import com.clerk.backend_api.operations.ReplaceDirectoryGroupRoleMappings; +import com.clerk.backend_api.operations.RotateDirectoryAPIKey; +import com.clerk.backend_api.operations.UpdateDirectory; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import java.lang.Long; +import java.lang.String; +import java.util.Optional; + + +public class Directories { + private static final Headers _headers = Headers.EMPTY; + private final SDKConfiguration sdkConfiguration; + + Directories(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * List all directories + * + *

Returns a list of all directories for the instance. + * + * @return The call builder + */ + public ListDirectoriesRequestBuilder list() { + return new ListDirectoriesRequestBuilder(sdkConfiguration); + } + + /** + * List all directories + * + *

Returns a list of all directories for the instance. + * + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ListDirectoriesResponse listDirect() { + return list(Optional.empty(), Optional.empty(), Optional.empty()); + } + + /** + * List all directories + * + *

Returns a list of all directories for the instance. + * + * @param limit Applies a limit to the number of results returned. + * Can be used for paginating the results together with `offset`. + * @param offset Skip the first `offset` results when paginating. + * Needs to be an integer greater or equal to zero. + * To be used in conjunction with `limit`. + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ListDirectoriesResponse list( + Optional limit, Optional offset, + Optional options) { + ListDirectoriesRequest request = + ListDirectoriesRequest + .builder() + .limit(limit) + .offset(offset) + .build(); + RequestOperation operation + = new ListDirectories.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Create a directory + * + *

Create a new directory for the instance. + * + * @return The call builder + */ + public CreateDirectoryRequestBuilder create() { + return new CreateDirectoryRequestBuilder(sdkConfiguration); + } + + /** + * Create a directory + * + *

Create a new directory for the instance. + * + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public CreateDirectoryResponse createDirect() { + return create(Optional.empty(), Optional.empty()); + } + + /** + * Create a directory + * + *

Create a new directory for the instance. + * + * @param request The request object containing all the parameters for the API call. + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public CreateDirectoryResponse create(Optional request, Optional options) { + RequestOperation, CreateDirectoryResponse> operation + = new CreateDirectory.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Retrieve a directory + * + *

Returns the details of a directory. + * + * @return The call builder + */ + public GetDirectoryRequestBuilder get() { + return new GetDirectoryRequestBuilder(sdkConfiguration); + } + + /** + * Retrieve a directory + * + *

Returns the details of a directory. + * + * @param directoryId The ID of the directory to retrieve + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public GetDirectoryResponse get(String directoryId) { + return get(directoryId, Optional.empty()); + } + + /** + * Retrieve a directory + * + *

Returns the details of a directory. + * + * @param directoryId The ID of the directory to retrieve + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public GetDirectoryResponse get(String directoryId, Optional options) { + GetDirectoryRequest request = + GetDirectoryRequest + .builder() + .directoryId(directoryId) + .build(); + RequestOperation operation + = new GetDirectory.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Update a directory + * + *

Updates a directory. + * + * @return The call builder + */ + public UpdateDirectoryRequestBuilder update() { + return new UpdateDirectoryRequestBuilder(sdkConfiguration); + } + + /** + * Update a directory + * + *

Updates a directory. + * + * @param directoryId The ID of the directory to update + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public UpdateDirectoryResponse update(String directoryId) { + return update(directoryId, Optional.empty(), Optional.empty()); + } + + /** + * Update a directory + * + *

Updates a directory. + * + * @param directoryId The ID of the directory to update + * @param requestBody + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public UpdateDirectoryResponse update( + String directoryId, Optional requestBody, + Optional options) { + UpdateDirectoryRequest request = + UpdateDirectoryRequest + .builder() + .directoryId(directoryId) + .requestBody(requestBody) + .build(); + RequestOperation operation + = new UpdateDirectory.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Delete a directory + * + *

Deletes a directory and stops provisioning for it. Provisioning requests authenticated + * with the directory's API key are rejected afterwards. + * + * @return The call builder + */ + public DeleteDirectoryRequestBuilder delete() { + return new DeleteDirectoryRequestBuilder(sdkConfiguration); + } + + /** + * Delete a directory + * + *

Deletes a directory and stops provisioning for it. Provisioning requests authenticated + * with the directory's API key are rejected afterwards. + * + * @param directoryId The ID of the directory to delete + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public DeleteDirectoryResponse delete(String directoryId) { + return delete(directoryId, Optional.empty()); + } + + /** + * Delete a directory + * + *

Deletes a directory and stops provisioning for it. Provisioning requests authenticated + * with the directory's API key are rejected afterwards. + * + * @param directoryId The ID of the directory to delete + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public DeleteDirectoryResponse delete(String directoryId, Optional options) { + DeleteDirectoryRequest request = + DeleteDirectoryRequest + .builder() + .directoryId(directoryId) + .build(); + RequestOperation operation + = new DeleteDirectory.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Rotate a directory's API key + * + *

Generates a new API key for the directory and returns it in the `api_key` field. + * This is the only way to obtain the key after creation, so make sure to update it in + * your identity provider. The previous key remains valid for a short grace period before + * it expires. + * + * @return The call builder + */ + public RotateDirectoryAPIKeyRequestBuilder rotateApiKey() { + return new RotateDirectoryAPIKeyRequestBuilder(sdkConfiguration); + } + + /** + * Rotate a directory's API key + * + *

Generates a new API key for the directory and returns it in the `api_key` field. + * This is the only way to obtain the key after creation, so make sure to update it in + * your identity provider. The previous key remains valid for a short grace period before + * it expires. + * + * @param directoryId The ID of the directory whose API key to rotate + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public RotateDirectoryAPIKeyResponse rotateApiKey(String directoryId) { + return rotateApiKey(directoryId, Optional.empty()); + } + + /** + * Rotate a directory's API key + * + *

Generates a new API key for the directory and returns it in the `api_key` field. + * This is the only way to obtain the key after creation, so make sure to update it in + * your identity provider. The previous key remains valid for a short grace period before + * it expires. + * + * @param directoryId The ID of the directory whose API key to rotate + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public RotateDirectoryAPIKeyResponse rotateApiKey(String directoryId, Optional options) { + RotateDirectoryAPIKeyRequest request = + RotateDirectoryAPIKeyRequest + .builder() + .directoryId(directoryId) + .build(); + RequestOperation operation + = new RotateDirectoryAPIKey.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * List directory group role mappings + * + *

Returns the list of directory group to organization role mappings for a directory, ordered by + * precedence. + * + * @return The call builder + */ + public ListDirectoryGroupRoleMappingsRequestBuilder listGroupRoleMappings() { + return new ListDirectoryGroupRoleMappingsRequestBuilder(sdkConfiguration); + } + + /** + * List directory group role mappings + * + *

Returns the list of directory group to organization role mappings for a directory, ordered by + * precedence. + * + * @param directoryId The ID of the directory. + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ListDirectoryGroupRoleMappingsResponse listGroupRoleMappings(String directoryId) { + return listGroupRoleMappings(directoryId, Optional.empty()); + } + + /** + * List directory group role mappings + * + *

Returns the list of directory group to organization role mappings for a directory, ordered by + * precedence. + * + * @param directoryId The ID of the directory. + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ListDirectoryGroupRoleMappingsResponse listGroupRoleMappings(String directoryId, Optional options) { + ListDirectoryGroupRoleMappingsRequest request = + ListDirectoryGroupRoleMappingsRequest + .builder() + .directoryId(directoryId) + .build(); + RequestOperation operation + = new ListDirectoryGroupRoleMappings.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Create a directory group role mapping + * + *

Creates a new directory group to organization role mapping for a directory. + * Mappings can be created while group role mapping is disabled on the + * directory, but they only take effect once it is enabled. + * + * @return The call builder + */ + public CreateDirectoryGroupRoleMappingRequestBuilder createGroupRoleMapping() { + return new CreateDirectoryGroupRoleMappingRequestBuilder(sdkConfiguration); + } + + /** + * Create a directory group role mapping + * + *

Creates a new directory group to organization role mapping for a directory. + * Mappings can be created while group role mapping is disabled on the + * directory, but they only take effect once it is enabled. + * + * @param directoryId The ID of the directory. + * @param requestBody + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public CreateDirectoryGroupRoleMappingResponse createGroupRoleMapping(String directoryId, CreateDirectoryGroupRoleMappingRequestBody requestBody) { + return createGroupRoleMapping(directoryId, requestBody, Optional.empty()); + } + + /** + * Create a directory group role mapping + * + *

Creates a new directory group to organization role mapping for a directory. + * Mappings can be created while group role mapping is disabled on the + * directory, but they only take effect once it is enabled. + * + * @param directoryId The ID of the directory. + * @param requestBody + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public CreateDirectoryGroupRoleMappingResponse createGroupRoleMapping( + String directoryId, CreateDirectoryGroupRoleMappingRequestBody requestBody, + Optional options) { + CreateDirectoryGroupRoleMappingRequest request = + CreateDirectoryGroupRoleMappingRequest + .builder() + .directoryId(directoryId) + .requestBody(requestBody) + .build(); + RequestOperation operation + = new CreateDirectoryGroupRoleMapping.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Replace directory group role mappings + * + *

Replaces the entire set of directory group role mappings for a directory. The position of + * each item in the `mappings` array determines its precedence (the first item gets + * precedence 1). Passing an empty array removes all mappings. Mappings can be replaced + * while group role mapping is disabled on the directory, but they only take effect once + * it is enabled. + * + * @return The call builder + */ + public ReplaceDirectoryGroupRoleMappingsRequestBuilder replaceGroupRoleMappings() { + return new ReplaceDirectoryGroupRoleMappingsRequestBuilder(sdkConfiguration); + } + + /** + * Replace directory group role mappings + * + *

Replaces the entire set of directory group role mappings for a directory. The position of + * each item in the `mappings` array determines its precedence (the first item gets + * precedence 1). Passing an empty array removes all mappings. Mappings can be replaced + * while group role mapping is disabled on the directory, but they only take effect once + * it is enabled. + * + * @param directoryId The ID of the directory. + * @param requestBody + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ReplaceDirectoryGroupRoleMappingsResponse replaceGroupRoleMappings(String directoryId, ReplaceDirectoryGroupRoleMappingsRequestBody requestBody) { + return replaceGroupRoleMappings(directoryId, requestBody, Optional.empty()); + } + + /** + * Replace directory group role mappings + * + *

Replaces the entire set of directory group role mappings for a directory. The position of + * each item in the `mappings` array determines its precedence (the first item gets + * precedence 1). Passing an empty array removes all mappings. Mappings can be replaced + * while group role mapping is disabled on the directory, but they only take effect once + * it is enabled. + * + * @param directoryId The ID of the directory. + * @param requestBody + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ReplaceDirectoryGroupRoleMappingsResponse replaceGroupRoleMappings( + String directoryId, ReplaceDirectoryGroupRoleMappingsRequestBody requestBody, + Optional options) { + ReplaceDirectoryGroupRoleMappingsRequest request = + ReplaceDirectoryGroupRoleMappingsRequest + .builder() + .directoryId(directoryId) + .requestBody(requestBody) + .build(); + RequestOperation operation + = new ReplaceDirectoryGroupRoleMappings.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Delete a directory group role mapping + * + *

Deletes a single directory group role mapping. Mappings can be deleted while group role + * mapping is disabled on the directory, but the change only takes effect once it is + * enabled. + * + * @return The call builder + */ + public DeleteDirectoryGroupRoleMappingRequestBuilder deleteGroupRoleMapping() { + return new DeleteDirectoryGroupRoleMappingRequestBuilder(sdkConfiguration); + } + + /** + * Delete a directory group role mapping + * + *

Deletes a single directory group role mapping. Mappings can be deleted while group role + * mapping is disabled on the directory, but the change only takes effect once it is + * enabled. + * + * @param directoryId The ID of the directory. + * @param mappingId The ID of the directory group role mapping to delete. + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public DeleteDirectoryGroupRoleMappingResponse deleteGroupRoleMapping(String directoryId, String mappingId) { + return deleteGroupRoleMapping(directoryId, mappingId, Optional.empty()); + } + + /** + * Delete a directory group role mapping + * + *

Deletes a single directory group role mapping. Mappings can be deleted while group role + * mapping is disabled on the directory, but the change only takes effect once it is + * enabled. + * + * @param directoryId The ID of the directory. + * @param mappingId The ID of the directory group role mapping to delete. + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public DeleteDirectoryGroupRoleMappingResponse deleteGroupRoleMapping( + String directoryId, String mappingId, + Optional options) { + DeleteDirectoryGroupRoleMappingRequest request = + DeleteDirectoryGroupRoleMappingRequest + .builder() + .directoryId(directoryId) + .mappingId(mappingId) + .build(); + RequestOperation operation + = new DeleteDirectoryGroupRoleMapping.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + +} diff --git a/src/main/java/com/clerk/backend_api/OauthApplications.java b/src/main/java/com/clerk/backend_api/OauthApplications.java index 939293e4..fdab2c41 100644 --- a/src/main/java/com/clerk/backend_api/OauthApplications.java +++ b/src/main/java/com/clerk/backend_api/OauthApplications.java @@ -105,6 +105,8 @@ public ListOAuthApplicationsResponse listDirect() { * If you don't use `+` or `-`, then `+` is implied. We only support one `order_by` parameter, and if multiple `order_by` parameters are provided, we will only keep the first one. For example, * if you pass `order_by=name&order_by=created_at`, we will consider only the first `order_by` parameter, which is `name`. The `created_at` parameter will be ignored in this case. * @param nameQuery Returns OAuth applications with names that match the given query, via case-insensitive partial match. + * Also returns the OAuth application whose `client_id` is exactly the given query, which is useful for + * resolving a `client_id` to the OAuth application `id` required by the read, update and delete endpoints. * @param options additional options * @return The response from the API call * @throws RuntimeException subclass if the API call fails diff --git a/src/main/java/com/clerk/backend_api/SDKConfiguration.java b/src/main/java/com/clerk/backend_api/SDKConfiguration.java index 7bbfa3c6..963220be 100644 --- a/src/main/java/com/clerk/backend_api/SDKConfiguration.java +++ b/src/main/java/com/clerk/backend_api/SDKConfiguration.java @@ -16,8 +16,8 @@ public class SDKConfiguration { private static final String LANGUAGE = "java"; public static final String OPENAPI_DOC_VERSION = "2026-05-12"; - public static final String SDK_VERSION = "6.0.0"; - public static final String GEN_VERSION = "2.928.0"; + public static final String SDK_VERSION = "6.1.0"; + public static final String GEN_VERSION = "2.937.18"; private static final String BASE_PACKAGE = "com.clerk.backend_api"; public static final String USER_AGENT = String.format("speakeasy-sdk/%s %s %s %s %s", diff --git a/src/main/java/com/clerk/backend_api/ScimDirectories.java b/src/main/java/com/clerk/backend_api/ScimDirectories.java index 56c22e5d..68de3ee9 100644 --- a/src/main/java/com/clerk/backend_api/ScimDirectories.java +++ b/src/main/java/com/clerk/backend_api/ScimDirectories.java @@ -64,9 +64,9 @@ public class ScimDirectories { } /** - * List all SCIM directories + * List all directories * - *

Returns a list of all SCIM directories for the instance. + *

Returns a list of all directories for the instance. * * @return The call builder */ @@ -75,9 +75,9 @@ public ListSCIMDirectoriesRequestBuilder list() { } /** - * List all SCIM directories + * List all directories * - *

Returns a list of all SCIM directories for the instance. + *

Returns a list of all directories for the instance. * * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -87,9 +87,9 @@ public ListSCIMDirectoriesResponse listDirect() { } /** - * List all SCIM directories + * List all directories * - *

Returns a list of all SCIM directories for the instance. + *

Returns a list of all directories for the instance. * * @param limit Applies a limit to the number of results returned. * Can be used for paginating the results together with `offset`. @@ -115,9 +115,9 @@ public ListSCIMDirectoriesResponse list( } /** - * Create a SCIM directory + * Create a directory * - *

Create a new SCIM directory for the instance. + *

Create a new directory for the instance. * * @return The call builder */ @@ -126,9 +126,9 @@ public CreateSCIMDirectoryRequestBuilder create() { } /** - * Create a SCIM directory + * Create a directory * - *

Create a new SCIM directory for the instance. + *

Create a new directory for the instance. * * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -138,9 +138,9 @@ public CreateSCIMDirectoryResponse createDirect() { } /** - * Create a SCIM directory + * Create a directory * - *

Create a new SCIM directory for the instance. + *

Create a new directory for the instance. * * @param request The request object containing all the parameters for the API call. * @param options additional options @@ -154,9 +154,9 @@ public CreateSCIMDirectoryResponse create(OptionalReturns the details of a SCIM directory. + *

Returns the details of a directory. * * @return The call builder */ @@ -165,11 +165,11 @@ public GetSCIMDirectoryRequestBuilder get() { } /** - * Retrieve a SCIM directory + * Retrieve a directory * - *

Returns the details of a SCIM directory. + *

Returns the details of a directory. * - * @param scimDirectoryId The ID of the SCIM directory to retrieve + * @param scimDirectoryId The ID of the directory to retrieve * @return The response from the API call * @throws RuntimeException subclass if the API call fails */ @@ -178,11 +178,11 @@ public GetSCIMDirectoryResponse get(String scimDirectoryId) { } /** - * Retrieve a SCIM directory + * Retrieve a directory * - *

Returns the details of a SCIM directory. + *

Returns the details of a directory. * - * @param scimDirectoryId The ID of the SCIM directory to retrieve + * @param scimDirectoryId The ID of the directory to retrieve * @param options additional options * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -199,9 +199,9 @@ public GetSCIMDirectoryResponse get(String scimDirectoryId, Optional op } /** - * Update a SCIM directory + * Update a directory * - *

Updates a SCIM directory. + *

Updates a directory. * * @return The call builder */ @@ -210,11 +210,11 @@ public UpdateSCIMDirectoryRequestBuilder update() { } /** - * Update a SCIM directory + * Update a directory * - *

Updates a SCIM directory. + *

Updates a directory. * - * @param scimDirectoryId The ID of the SCIM directory to update + * @param scimDirectoryId The ID of the directory to update * @return The response from the API call * @throws RuntimeException subclass if the API call fails */ @@ -223,11 +223,11 @@ public UpdateSCIMDirectoryResponse update(String scimDirectoryId) { } /** - * Update a SCIM directory + * Update a directory * - *

Updates a SCIM directory. + *

Updates a directory. * - * @param scimDirectoryId The ID of the SCIM directory to update + * @param scimDirectoryId The ID of the directory to update * @param requestBody * @param options additional options * @return The response from the API call @@ -248,9 +248,9 @@ public UpdateSCIMDirectoryResponse update( } /** - * Delete a SCIM directory + * Delete a directory * - *

Deletes a SCIM directory and stops provisioning for it. SCIM requests authenticated + *

Deletes a directory and stops provisioning for it. SCIM requests authenticated * with the directory's API key are rejected afterwards. * * @return The call builder @@ -260,12 +260,12 @@ public DeleteSCIMDirectoryRequestBuilder delete() { } /** - * Delete a SCIM directory + * Delete a directory * - *

Deletes a SCIM directory and stops provisioning for it. SCIM requests authenticated + *

Deletes a directory and stops provisioning for it. SCIM requests authenticated * with the directory's API key are rejected afterwards. * - * @param scimDirectoryId The ID of the SCIM directory to delete + * @param scimDirectoryId The ID of the directory to delete * @return The response from the API call * @throws RuntimeException subclass if the API call fails */ @@ -274,12 +274,12 @@ public DeleteSCIMDirectoryResponse delete(String scimDirectoryId) { } /** - * Delete a SCIM directory + * Delete a directory * - *

Deletes a SCIM directory and stops provisioning for it. SCIM requests authenticated + *

Deletes a directory and stops provisioning for it. SCIM requests authenticated * with the directory's API key are rejected afterwards. * - * @param scimDirectoryId The ID of the SCIM directory to delete + * @param scimDirectoryId The ID of the directory to delete * @param options additional options * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -296,9 +296,9 @@ public DeleteSCIMDirectoryResponse delete(String scimDirectoryId, OptionalGenerates a new API key for the SCIM directory and returns it in the `api_key` field. + *

Generates a new API key for the directory and returns it in the `api_key` field. * This is the only way to obtain the key after creation, so make sure to update it in * your identity provider. The previous key remains valid for a short grace period before * it expires. @@ -310,14 +310,14 @@ public RotateSCIMDirectoryAPIKeyRequestBuilder rotateApiKey() { } /** - * Rotate a SCIM directory's API key + * Rotate a directory's API key * - *

Generates a new API key for the SCIM directory and returns it in the `api_key` field. + *

Generates a new API key for the directory and returns it in the `api_key` field. * This is the only way to obtain the key after creation, so make sure to update it in * your identity provider. The previous key remains valid for a short grace period before * it expires. * - * @param scimDirectoryId The ID of the SCIM directory whose API key to rotate + * @param scimDirectoryId The ID of the directory whose API key to rotate * @return The response from the API call * @throws RuntimeException subclass if the API call fails */ @@ -326,14 +326,14 @@ public RotateSCIMDirectoryAPIKeyResponse rotateApiKey(String scimDirectoryId) { } /** - * Rotate a SCIM directory's API key + * Rotate a directory's API key * - *

Generates a new API key for the SCIM directory and returns it in the `api_key` field. + *

Generates a new API key for the directory and returns it in the `api_key` field. * This is the only way to obtain the key after creation, so make sure to update it in * your identity provider. The previous key remains valid for a short grace period before * it expires. * - * @param scimDirectoryId The ID of the SCIM directory whose API key to rotate + * @param scimDirectoryId The ID of the directory whose API key to rotate * @param options additional options * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -352,8 +352,7 @@ public RotateSCIMDirectoryAPIKeyResponse rotateApiKey(String scimDirectoryId, Op /** * List SCIM group role mappings * - *

Returns the list of SCIM group to organization role mappings for a SCIM directory, ordered by - * precedence. + *

Returns the list of SCIM group to organization role mappings for a directory, ordered by precedence. * * @return The call builder */ @@ -364,10 +363,9 @@ public ListSCIMGroupRoleMappingsRequestBuilder listGroupRoleMappings() { /** * List SCIM group role mappings * - *

Returns the list of SCIM group to organization role mappings for a SCIM directory, ordered by - * precedence. + *

Returns the list of SCIM group to organization role mappings for a directory, ordered by precedence. * - * @param scimDirectoryId The ID of the SCIM directory. + * @param scimDirectoryId The ID of the directory. * @return The response from the API call * @throws RuntimeException subclass if the API call fails */ @@ -378,10 +376,9 @@ public ListSCIMGroupRoleMappingsResponse listGroupRoleMappings(String scimDirect /** * List SCIM group role mappings * - *

Returns the list of SCIM group to organization role mappings for a SCIM directory, ordered by - * precedence. + *

Returns the list of SCIM group to organization role mappings for a directory, ordered by precedence. * - * @param scimDirectoryId The ID of the SCIM directory. + * @param scimDirectoryId The ID of the directory. * @param options additional options * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -400,8 +397,9 @@ public ListSCIMGroupRoleMappingsResponse listGroupRoleMappings(String scimDirect /** * Create a SCIM group role mapping * - *

Creates a new SCIM group to organization role mapping for a SCIM directory. - * Group role mapping must be enabled on the directory. + *

Creates a new SCIM group to organization role mapping for a directory. + * Mappings can be created while group role mapping is disabled on the + * directory, but they only take effect once it is enabled. * * @return The call builder */ @@ -412,10 +410,11 @@ public CreateSCIMGroupRoleMappingRequestBuilder createGroupRoleMapping() { /** * Create a SCIM group role mapping * - *

Creates a new SCIM group to organization role mapping for a SCIM directory. - * Group role mapping must be enabled on the directory. + *

Creates a new SCIM group to organization role mapping for a directory. + * Mappings can be created while group role mapping is disabled on the + * directory, but they only take effect once it is enabled. * - * @param scimDirectoryId The ID of the SCIM directory. + * @param scimDirectoryId The ID of the directory. * @param requestBody * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -427,10 +426,11 @@ public CreateSCIMGroupRoleMappingResponse createGroupRoleMapping(String scimDire /** * Create a SCIM group role mapping * - *

Creates a new SCIM group to organization role mapping for a SCIM directory. - * Group role mapping must be enabled on the directory. + *

Creates a new SCIM group to organization role mapping for a directory. + * Mappings can be created while group role mapping is disabled on the + * directory, but they only take effect once it is enabled. * - * @param scimDirectoryId The ID of the SCIM directory. + * @param scimDirectoryId The ID of the directory. * @param requestBody * @param options additional options * @return The response from the API call @@ -455,8 +455,9 @@ public CreateSCIMGroupRoleMappingResponse createGroupRoleMapping( * *

Replaces the entire set of SCIM group role mappings for a directory. The position of * each item in the `mappings` array determines its precedence (the first item gets - * precedence 1). Passing an empty array removes all mappings. Group role mapping must be - * enabled on the directory. + * precedence 1). Passing an empty array removes all mappings. Mappings can be replaced + * while group role mapping is disabled on the directory, but they only take effect once + * it is enabled. * * @return The call builder */ @@ -469,10 +470,11 @@ public ReplaceSCIMGroupRoleMappingsRequestBuilder replaceGroupRoleMappings() { * *

Replaces the entire set of SCIM group role mappings for a directory. The position of * each item in the `mappings` array determines its precedence (the first item gets - * precedence 1). Passing an empty array removes all mappings. Group role mapping must be - * enabled on the directory. + * precedence 1). Passing an empty array removes all mappings. Mappings can be replaced + * while group role mapping is disabled on the directory, but they only take effect once + * it is enabled. * - * @param scimDirectoryId The ID of the SCIM directory. + * @param scimDirectoryId The ID of the directory. * @param requestBody * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -486,10 +488,11 @@ public ReplaceSCIMGroupRoleMappingsResponse replaceGroupRoleMappings(String scim * *

Replaces the entire set of SCIM group role mappings for a directory. The position of * each item in the `mappings` array determines its precedence (the first item gets - * precedence 1). Passing an empty array removes all mappings. Group role mapping must be - * enabled on the directory. + * precedence 1). Passing an empty array removes all mappings. Mappings can be replaced + * while group role mapping is disabled on the directory, but they only take effect once + * it is enabled. * - * @param scimDirectoryId The ID of the SCIM directory. + * @param scimDirectoryId The ID of the directory. * @param requestBody * @param options additional options * @return The response from the API call @@ -512,8 +515,9 @@ public ReplaceSCIMGroupRoleMappingsResponse replaceGroupRoleMappings( /** * Delete a SCIM group role mapping * - *

Deletes a single SCIM group role mapping. Group role mapping must be enabled on the - * directory. + *

Deletes a single SCIM group role mapping. Mappings can be deleted while group role + * mapping is disabled on the directory, but the change only takes effect once it is + * enabled. * * @return The call builder */ @@ -524,10 +528,11 @@ public DeleteSCIMGroupRoleMappingRequestBuilder deleteGroupRoleMapping() { /** * Delete a SCIM group role mapping * - *

Deletes a single SCIM group role mapping. Group role mapping must be enabled on the - * directory. + *

Deletes a single SCIM group role mapping. Mappings can be deleted while group role + * mapping is disabled on the directory, but the change only takes effect once it is + * enabled. * - * @param scimDirectoryId The ID of the SCIM directory. + * @param scimDirectoryId The ID of the directory. * @param mappingId The ID of the SCIM group role mapping to delete. * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -539,10 +544,11 @@ public DeleteSCIMGroupRoleMappingResponse deleteGroupRoleMapping(String scimDire /** * Delete a SCIM group role mapping * - *

Deletes a single SCIM group role mapping. Group role mapping must be enabled on the - * directory. + *

Deletes a single SCIM group role mapping. Mappings can be deleted while group role + * mapping is disabled on the directory, but the change only takes effect once it is + * enabled. * - * @param scimDirectoryId The ID of the SCIM directory. + * @param scimDirectoryId The ID of the directory. * @param mappingId The ID of the SCIM group role mapping to delete. * @param options additional options * @return The response from the API call diff --git a/src/main/java/com/clerk/backend_api/Users.java b/src/main/java/com/clerk/backend_api/Users.java index 1c456baa..c0fe9642 100644 --- a/src/main/java/com/clerk/backend_api/Users.java +++ b/src/main/java/com/clerk/backend_api/Users.java @@ -54,6 +54,9 @@ import com.clerk.backend_api.models.operations.InstanceGetOrganizationMembershipsRequest; import com.clerk.backend_api.models.operations.InstanceGetOrganizationMembershipsRequestBuilder; import com.clerk.backend_api.models.operations.InstanceGetOrganizationMembershipsResponse; +import com.clerk.backend_api.models.operations.ListUserBiometricCredentialsRequest; +import com.clerk.backend_api.models.operations.ListUserBiometricCredentialsRequestBuilder; +import com.clerk.backend_api.models.operations.ListUserBiometricCredentialsResponse; import com.clerk.backend_api.models.operations.ListUserTrustedDevicesRequest; import com.clerk.backend_api.models.operations.ListUserTrustedDevicesRequestBuilder; import com.clerk.backend_api.models.operations.ListUserTrustedDevicesResponse; @@ -69,6 +72,9 @@ import com.clerk.backend_api.models.operations.ReplaceUserMetadataRequestBody; import com.clerk.backend_api.models.operations.ReplaceUserMetadataRequestBuilder; import com.clerk.backend_api.models.operations.ReplaceUserMetadataResponse; +import com.clerk.backend_api.models.operations.RevokeUserBiometricCredentialRequest; +import com.clerk.backend_api.models.operations.RevokeUserBiometricCredentialRequestBuilder; +import com.clerk.backend_api.models.operations.RevokeUserBiometricCredentialResponse; import com.clerk.backend_api.models.operations.RevokeUserTrustedDeviceRequest; import com.clerk.backend_api.models.operations.RevokeUserTrustedDeviceRequestBuilder; import com.clerk.backend_api.models.operations.RevokeUserTrustedDeviceResponse; @@ -139,10 +145,12 @@ import com.clerk.backend_api.operations.GetUserList; import com.clerk.backend_api.operations.GetUsersCount; import com.clerk.backend_api.operations.InstanceGetOrganizationMemberships; +import com.clerk.backend_api.operations.ListUserBiometricCredentials; import com.clerk.backend_api.operations.ListUserTrustedDevices; import com.clerk.backend_api.operations.LockUser; import com.clerk.backend_api.operations.RemoveUserPassword; import com.clerk.backend_api.operations.ReplaceUserMetadata; +import com.clerk.backend_api.operations.RevokeUserBiometricCredential; import com.clerk.backend_api.operations.RevokeUserTrustedDevice; import com.clerk.backend_api.operations.SetUserPasswordCompromised; import com.clerk.backend_api.operations.SetUserProfileImage; @@ -161,6 +169,7 @@ import com.clerk.backend_api.operations.VerifyTOTP; import com.clerk.backend_api.utils.Headers; import com.clerk.backend_api.utils.Options; +import java.lang.Deprecated; import java.lang.Long; import java.lang.String; import java.util.Optional; @@ -180,6 +189,11 @@ public class Users { *

Returns a list of all users. * The users are returned sorted by creation date, with the newest users appearing first. * + *

To walk more than a few pages, paginate with `starting_after` rather than `offset`. + * A cursor page costs the same no matter how far into the list it sits, while a large `offset` + * has to walk and discard every row before it, so it gets progressively slower and eventually + * times out. Cursor pagination requires the `created_at` ordering, which is the default. + * * @return The call builder */ public GetUserListRequestBuilder list() { @@ -192,6 +206,11 @@ public GetUserListRequestBuilder list() { *

Returns a list of all users. * The users are returned sorted by creation date, with the newest users appearing first. * + *

To walk more than a few pages, paginate with `starting_after` rather than `offset`. + * A cursor page costs the same no matter how far into the list it sits, while a large `offset` + * has to walk and discard every row before it, so it gets progressively slower and eventually + * times out. Cursor pagination requires the `created_at` ordering, which is the default. + * * @param request The request object containing all the parameters for the API call. * @return The response from the API call * @throws RuntimeException subclass if the API call fails @@ -206,6 +225,11 @@ public GetUserListResponse list(GetUserListRequest request) { *

Returns a list of all users. * The users are returned sorted by creation date, with the newest users appearing first. * + *

To walk more than a few pages, paginate with `starting_after` rather than `offset`. + * A cursor page costs the same no matter how far into the list it sits, while a large `offset` + * has to walk and discard every row before it, so it gets progressively slower and eventually + * times out. Cursor pagination requires the `created_at` ordering, which is the default. + * * @param request The request object containing all the parameters for the API call. * @param options additional options * @return The response from the API call @@ -1662,7 +1686,9 @@ public UserPasskeyDeleteResponse deletePasskey( *

Returns the active trusted devices enrolled by the user. * * @return The call builder + * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public ListUserTrustedDevicesRequestBuilder listTrustedDevices() { return new ListUserTrustedDevicesRequestBuilder(sdkConfiguration); } @@ -1675,7 +1701,9 @@ public ListUserTrustedDevicesRequestBuilder listTrustedDevices() { * @param userId The ID of the user whose trusted devices are returned * @return The response from the API call * @throws RuntimeException subclass if the API call fails + * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public ListUserTrustedDevicesResponse listTrustedDevices(String userId) { return listTrustedDevices(userId, Optional.empty()); } @@ -1689,7 +1717,9 @@ public ListUserTrustedDevicesResponse listTrustedDevices(String userId) { * @param options additional options * @return The response from the API call * @throws RuntimeException subclass if the API call fails + * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public ListUserTrustedDevicesResponse listTrustedDevices(String userId, Optional options) { ListUserTrustedDevicesRequest request = ListUserTrustedDevicesRequest @@ -1707,7 +1737,9 @@ public ListUserTrustedDevicesResponse listTrustedDevices(String userId, Optional *

Revokes an active trusted device enrolled by the user. * * @return The call builder + * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public RevokeUserTrustedDeviceRequestBuilder revokeTrustedDevice() { return new RevokeUserTrustedDeviceRequestBuilder(sdkConfiguration); } @@ -1721,7 +1753,9 @@ public RevokeUserTrustedDeviceRequestBuilder revokeTrustedDevice() { * @param trustedDeviceId The ID of the trusted device to revoke * @return The response from the API call * @throws RuntimeException subclass if the API call fails + * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public RevokeUserTrustedDeviceResponse revokeTrustedDevice(String userId, String trustedDeviceId) { return revokeTrustedDevice(userId, trustedDeviceId, Optional.empty()); } @@ -1736,7 +1770,9 @@ public RevokeUserTrustedDeviceResponse revokeTrustedDevice(String userId, String * @param options additional options * @return The response from the API call * @throws RuntimeException subclass if the API call fails + * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. */ + @Deprecated public RevokeUserTrustedDeviceResponse revokeTrustedDevice( String userId, String trustedDeviceId, Optional options) { @@ -1751,6 +1787,101 @@ public RevokeUserTrustedDeviceResponse revokeTrustedDevice( return operation.handleResponse(operation.doRequest(request)); } + /** + * List a user's biometric credentials + * + *

Returns the active biometric credentials enrolled by the user. + * + * @return The call builder + */ + public ListUserBiometricCredentialsRequestBuilder listBiometricCredentials() { + return new ListUserBiometricCredentialsRequestBuilder(sdkConfiguration); + } + + /** + * List a user's biometric credentials + * + *

Returns the active biometric credentials enrolled by the user. + * + * @param userId The ID of the user whose biometric credentials are returned + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ListUserBiometricCredentialsResponse listBiometricCredentials(String userId) { + return listBiometricCredentials(userId, Optional.empty()); + } + + /** + * List a user's biometric credentials + * + *

Returns the active biometric credentials enrolled by the user. + * + * @param userId The ID of the user whose biometric credentials are returned + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public ListUserBiometricCredentialsResponse listBiometricCredentials(String userId, Optional options) { + ListUserBiometricCredentialsRequest request = + ListUserBiometricCredentialsRequest + .builder() + .userId(userId) + .build(); + RequestOperation operation + = new ListUserBiometricCredentials.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + + /** + * Revoke a user's biometric credential + * + *

Revokes an active biometric credential enrolled by the user. + * + * @return The call builder + */ + public RevokeUserBiometricCredentialRequestBuilder revokeBiometricCredential() { + return new RevokeUserBiometricCredentialRequestBuilder(sdkConfiguration); + } + + /** + * Revoke a user's biometric credential + * + *

Revokes an active biometric credential enrolled by the user. + * + * @param userId The ID of the user that owns the biometric credential + * @param biometricCredentialId The ID of the biometric credential to revoke + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public RevokeUserBiometricCredentialResponse revokeBiometricCredential(String userId, String biometricCredentialId) { + return revokeBiometricCredential(userId, biometricCredentialId, Optional.empty()); + } + + /** + * Revoke a user's biometric credential + * + *

Revokes an active biometric credential enrolled by the user. + * + * @param userId The ID of the user that owns the biometric credential + * @param biometricCredentialId The ID of the biometric credential to revoke + * @param options additional options + * @return The response from the API call + * @throws RuntimeException subclass if the API call fails + */ + public RevokeUserBiometricCredentialResponse revokeBiometricCredential( + String userId, String biometricCredentialId, + Optional options) { + RevokeUserBiometricCredentialRequest request = + RevokeUserBiometricCredentialRequest + .builder() + .userId(userId) + .biometricCredentialId(biometricCredentialId) + .build(); + RequestOperation operation + = new RevokeUserBiometricCredential.Sync(sdkConfiguration, options, _headers); + return operation.handleResponse(operation.doRequest(request)); + } + /** * Delete a user web3 wallet * diff --git a/src/main/java/com/clerk/backend_api/models/components/AmountOff.java b/src/main/java/com/clerk/backend_api/models/components/AmountOff.java new file mode 100644 index 00000000..cd762f0c --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/AmountOff.java @@ -0,0 +1,228 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; + +/** + * AmountOff + * + *

Fixed amount off when the effect is fixed_amount. + */ +public class AmountOff { + /** + * The amount in cents. + */ + @JsonProperty("amount") + private long amount; + + /** + * The formatted amount as a string (e.g., "$49.99"). + */ + @JsonProperty("amount_formatted") + private String amountFormatted; + + /** + * The currency code (e.g., "USD"). + */ + @JsonProperty("currency") + private String currency; + + /** + * The currency symbol (e.g., "$"). + */ + @JsonProperty("currency_symbol") + private String currencySymbol; + + @JsonCreator + public AmountOff( + @JsonProperty("amount") long amount, + @JsonProperty("amount_formatted") String amountFormatted, + @JsonProperty("currency") String currency, + @JsonProperty("currency_symbol") String currencySymbol) { + Utils.checkNotNull(amount, "amount"); + Utils.checkNotNull(amountFormatted, "amountFormatted"); + Utils.checkNotNull(currency, "currency"); + Utils.checkNotNull(currencySymbol, "currencySymbol"); + this.amount = amount; + this.amountFormatted = amountFormatted; + this.currency = currency; + this.currencySymbol = currencySymbol; + } + + /** + * The amount in cents. + */ + @JsonIgnore + public long amount() { + return amount; + } + + /** + * The formatted amount as a string (e.g., "$49.99"). + */ + @JsonIgnore + public String amountFormatted() { + return amountFormatted; + } + + /** + * The currency code (e.g., "USD"). + */ + @JsonIgnore + public String currency() { + return currency; + } + + /** + * The currency symbol (e.g., "$"). + */ + @JsonIgnore + public String currencySymbol() { + return currencySymbol; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The amount in cents. + */ + public AmountOff withAmount(long amount) { + Utils.checkNotNull(amount, "amount"); + this.amount = amount; + return this; + } + + /** + * The formatted amount as a string (e.g., "$49.99"). + */ + public AmountOff withAmountFormatted(String amountFormatted) { + Utils.checkNotNull(amountFormatted, "amountFormatted"); + this.amountFormatted = amountFormatted; + return this; + } + + /** + * The currency code (e.g., "USD"). + */ + public AmountOff withCurrency(String currency) { + Utils.checkNotNull(currency, "currency"); + this.currency = currency; + return this; + } + + /** + * The currency symbol (e.g., "$"). + */ + public AmountOff withCurrencySymbol(String currencySymbol) { + Utils.checkNotNull(currencySymbol, "currencySymbol"); + this.currencySymbol = currencySymbol; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AmountOff other = (AmountOff) o; + return + Utils.enhancedDeepEquals(this.amount, other.amount) && + Utils.enhancedDeepEquals(this.amountFormatted, other.amountFormatted) && + Utils.enhancedDeepEquals(this.currency, other.currency) && + Utils.enhancedDeepEquals(this.currencySymbol, other.currencySymbol); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + amount, amountFormatted, currency, + currencySymbol); + } + + @Override + public String toString() { + return Utils.toString(AmountOff.class, + "amount", amount, + "amountFormatted", amountFormatted, + "currency", currency, + "currencySymbol", currencySymbol); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private Long amount; + + private String amountFormatted; + + private String currency; + + private String currencySymbol; + + private Builder() { + // force use of static builder() method + } + + + /** + * The amount in cents. + */ + public Builder amount(long amount) { + Utils.checkNotNull(amount, "amount"); + this.amount = amount; + return this; + } + + + /** + * The formatted amount as a string (e.g., "$49.99"). + */ + public Builder amountFormatted(String amountFormatted) { + Utils.checkNotNull(amountFormatted, "amountFormatted"); + this.amountFormatted = amountFormatted; + return this; + } + + + /** + * The currency code (e.g., "USD"). + */ + public Builder currency(String currency) { + Utils.checkNotNull(currency, "currency"); + this.currency = currency; + return this; + } + + + /** + * The currency symbol (e.g., "$"). + */ + public Builder currencySymbol(String currencySymbol) { + Utils.checkNotNull(currencySymbol, "currencySymbol"); + this.currencySymbol = currencySymbol; + return this; + } + + public AmountOff build() { + + return new AmountOff( + amount, amountFormatted, currency, + currencySymbol); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/ApplyCommerceDiscountRequest.java b/src/main/java/com/clerk/backend_api/models/components/ApplyCommerceDiscountRequest.java new file mode 100644 index 00000000..6e96cc13 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/ApplyCommerceDiscountRequest.java @@ -0,0 +1,101 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.lang.Override; +import java.lang.String; + + +public class ApplyCommerceDiscountRequest { + /** + * The ID of the discount to apply to the subscription item. + */ + @JsonProperty("discount_id") + private String discountId; + + @JsonCreator + public ApplyCommerceDiscountRequest( + @JsonProperty("discount_id") String discountId) { + Utils.checkNotNull(discountId, "discountId"); + this.discountId = discountId; + } + + /** + * The ID of the discount to apply to the subscription item. + */ + @JsonIgnore + public String discountId() { + return discountId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the discount to apply to the subscription item. + */ + public ApplyCommerceDiscountRequest withDiscountId(String discountId) { + Utils.checkNotNull(discountId, "discountId"); + this.discountId = discountId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ApplyCommerceDiscountRequest other = (ApplyCommerceDiscountRequest) o; + return + Utils.enhancedDeepEquals(this.discountId, other.discountId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + discountId); + } + + @Override + public String toString() { + return Utils.toString(ApplyCommerceDiscountRequest.class, + "discountId", discountId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String discountId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the discount to apply to the subscription item. + */ + public Builder discountId(String discountId) { + Utils.checkNotNull(discountId, "discountId"); + this.discountId = discountId; + return this; + } + + public ApplyCommerceDiscountRequest build() { + + return new ApplyCommerceDiscountRequest( + discountId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/AutomationDisposition.java b/src/main/java/com/clerk/backend_api/models/components/AutomationDisposition.java new file mode 100644 index 00000000..4714e9cc --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/AutomationDisposition.java @@ -0,0 +1,36 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +public enum AutomationDisposition { + ALREADY_SATISFIED("already_satisfied"), + SAFE_TO_CREATE("safe_to_create"), + MANUAL_RESOLUTION_REQUIRED("manual_resolution_required"); + + @JsonValue + private final String value; + + AutomationDisposition(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (AutomationDisposition o: AutomationDisposition.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/BiometricCredential.java b/src/main/java/com/clerk/backend_api/models/components/BiometricCredential.java new file mode 100644 index 00000000..1ac3249f --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/BiometricCredential.java @@ -0,0 +1,511 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Long; +import java.lang.Override; +import java.lang.String; +import org.openapitools.jackson.nullable.JsonNullable; + + +public class BiometricCredential { + /** + * String representing the object's type. + */ + @JsonProperty("object") + private BiometricCredentialObject object; + + + @JsonProperty("id") + private String id; + + + @JsonProperty("platform") + private BiometricCredentialPlatform platform; + + + @JsonProperty("app_identifier") + private String appIdentifier; + + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + private JsonNullable name; + + + @JsonProperty("algorithm") + private BiometricCredentialAlgorithm algorithm; + + + @JsonProperty("status") + private BiometricCredentialStatus status; + + /** + * Unix timestamp of creation in milliseconds. + */ + @JsonProperty("created_at") + private long createdAt; + + /** + * Unix timestamp of the last update in milliseconds. + */ + @JsonProperty("updated_at") + private long updatedAt; + + /** + * Unix timestamp of the last use in milliseconds. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("last_used_at") + private JsonNullable lastUsedAt; + + /** + * Unix timestamp of revocation in milliseconds. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("revoked_at") + private JsonNullable revokedAt; + + @JsonCreator + public BiometricCredential( + @JsonProperty("object") BiometricCredentialObject object, + @JsonProperty("id") String id, + @JsonProperty("platform") BiometricCredentialPlatform platform, + @JsonProperty("app_identifier") String appIdentifier, + @JsonProperty("name") JsonNullable name, + @JsonProperty("algorithm") BiometricCredentialAlgorithm algorithm, + @JsonProperty("status") BiometricCredentialStatus status, + @JsonProperty("created_at") long createdAt, + @JsonProperty("updated_at") long updatedAt, + @JsonProperty("last_used_at") JsonNullable lastUsedAt, + @JsonProperty("revoked_at") JsonNullable revokedAt) { + Utils.checkNotNull(object, "object"); + Utils.checkNotNull(id, "id"); + Utils.checkNotNull(platform, "platform"); + Utils.checkNotNull(appIdentifier, "appIdentifier"); + Utils.checkNotNull(name, "name"); + Utils.checkNotNull(algorithm, "algorithm"); + Utils.checkNotNull(status, "status"); + Utils.checkNotNull(createdAt, "createdAt"); + Utils.checkNotNull(updatedAt, "updatedAt"); + Utils.checkNotNull(lastUsedAt, "lastUsedAt"); + Utils.checkNotNull(revokedAt, "revokedAt"); + this.object = object; + this.id = id; + this.platform = platform; + this.appIdentifier = appIdentifier; + this.name = name; + this.algorithm = algorithm; + this.status = status; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.lastUsedAt = lastUsedAt; + this.revokedAt = revokedAt; + } + + public BiometricCredential( + BiometricCredentialObject object, + String id, + BiometricCredentialPlatform platform, + String appIdentifier, + BiometricCredentialAlgorithm algorithm, + BiometricCredentialStatus status, + long createdAt, + long updatedAt) { + this(object, id, platform, + appIdentifier, JsonNullable.undefined(), algorithm, + status, createdAt, updatedAt, + JsonNullable.undefined(), JsonNullable.undefined()); + } + + /** + * String representing the object's type. + */ + @JsonIgnore + public BiometricCredentialObject object() { + return object; + } + + @JsonIgnore + public String id() { + return id; + } + + @JsonIgnore + public BiometricCredentialPlatform platform() { + return platform; + } + + @JsonIgnore + public String appIdentifier() { + return appIdentifier; + } + + @JsonIgnore + public JsonNullable name() { + return name; + } + + @JsonIgnore + public BiometricCredentialAlgorithm algorithm() { + return algorithm; + } + + @JsonIgnore + public BiometricCredentialStatus status() { + return status; + } + + /** + * Unix timestamp of creation in milliseconds. + */ + @JsonIgnore + public long createdAt() { + return createdAt; + } + + /** + * Unix timestamp of the last update in milliseconds. + */ + @JsonIgnore + public long updatedAt() { + return updatedAt; + } + + /** + * Unix timestamp of the last use in milliseconds. + */ + @JsonIgnore + public JsonNullable lastUsedAt() { + return lastUsedAt; + } + + /** + * Unix timestamp of revocation in milliseconds. + */ + @JsonIgnore + public JsonNullable revokedAt() { + return revokedAt; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * String representing the object's type. + */ + public BiometricCredential withObject(BiometricCredentialObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + public BiometricCredential withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + public BiometricCredential withPlatform(BiometricCredentialPlatform platform) { + Utils.checkNotNull(platform, "platform"); + this.platform = platform; + return this; + } + + public BiometricCredential withAppIdentifier(String appIdentifier) { + Utils.checkNotNull(appIdentifier, "appIdentifier"); + this.appIdentifier = appIdentifier; + return this; + } + + public BiometricCredential withName(String name) { + Utils.checkNotNull(name, "name"); + this.name = JsonNullable.of(name); + return this; + } + + public BiometricCredential withName(JsonNullable name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + public BiometricCredential withAlgorithm(BiometricCredentialAlgorithm algorithm) { + Utils.checkNotNull(algorithm, "algorithm"); + this.algorithm = algorithm; + return this; + } + + public BiometricCredential withStatus(BiometricCredentialStatus status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + /** + * Unix timestamp of creation in milliseconds. + */ + public BiometricCredential withCreatedAt(long createdAt) { + Utils.checkNotNull(createdAt, "createdAt"); + this.createdAt = createdAt; + return this; + } + + /** + * Unix timestamp of the last update in milliseconds. + */ + public BiometricCredential withUpdatedAt(long updatedAt) { + Utils.checkNotNull(updatedAt, "updatedAt"); + this.updatedAt = updatedAt; + return this; + } + + /** + * Unix timestamp of the last use in milliseconds. + */ + public BiometricCredential withLastUsedAt(long lastUsedAt) { + Utils.checkNotNull(lastUsedAt, "lastUsedAt"); + this.lastUsedAt = JsonNullable.of(lastUsedAt); + return this; + } + + /** + * Unix timestamp of the last use in milliseconds. + */ + public BiometricCredential withLastUsedAt(JsonNullable lastUsedAt) { + Utils.checkNotNull(lastUsedAt, "lastUsedAt"); + this.lastUsedAt = lastUsedAt; + return this; + } + + /** + * Unix timestamp of revocation in milliseconds. + */ + public BiometricCredential withRevokedAt(long revokedAt) { + Utils.checkNotNull(revokedAt, "revokedAt"); + this.revokedAt = JsonNullable.of(revokedAt); + return this; + } + + /** + * Unix timestamp of revocation in milliseconds. + */ + public BiometricCredential withRevokedAt(JsonNullable revokedAt) { + Utils.checkNotNull(revokedAt, "revokedAt"); + this.revokedAt = revokedAt; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BiometricCredential other = (BiometricCredential) o; + return + Utils.enhancedDeepEquals(this.object, other.object) && + Utils.enhancedDeepEquals(this.id, other.id) && + Utils.enhancedDeepEquals(this.platform, other.platform) && + Utils.enhancedDeepEquals(this.appIdentifier, other.appIdentifier) && + Utils.enhancedDeepEquals(this.name, other.name) && + Utils.enhancedDeepEquals(this.algorithm, other.algorithm) && + Utils.enhancedDeepEquals(this.status, other.status) && + Utils.enhancedDeepEquals(this.createdAt, other.createdAt) && + Utils.enhancedDeepEquals(this.updatedAt, other.updatedAt) && + Utils.enhancedDeepEquals(this.lastUsedAt, other.lastUsedAt) && + Utils.enhancedDeepEquals(this.revokedAt, other.revokedAt); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + object, id, platform, + appIdentifier, name, algorithm, + status, createdAt, updatedAt, + lastUsedAt, revokedAt); + } + + @Override + public String toString() { + return Utils.toString(BiometricCredential.class, + "object", object, + "id", id, + "platform", platform, + "appIdentifier", appIdentifier, + "name", name, + "algorithm", algorithm, + "status", status, + "createdAt", createdAt, + "updatedAt", updatedAt, + "lastUsedAt", lastUsedAt, + "revokedAt", revokedAt); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private BiometricCredentialObject object; + + private String id; + + private BiometricCredentialPlatform platform; + + private String appIdentifier; + + private JsonNullable name = JsonNullable.undefined(); + + private BiometricCredentialAlgorithm algorithm; + + private BiometricCredentialStatus status; + + private Long createdAt; + + private Long updatedAt; + + private JsonNullable lastUsedAt = JsonNullable.undefined(); + + private JsonNullable revokedAt = JsonNullable.undefined(); + + private Builder() { + // force use of static builder() method + } + + + /** + * String representing the object's type. + */ + public Builder object(BiometricCredentialObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + + public Builder platform(BiometricCredentialPlatform platform) { + Utils.checkNotNull(platform, "platform"); + this.platform = platform; + return this; + } + + + public Builder appIdentifier(String appIdentifier) { + Utils.checkNotNull(appIdentifier, "appIdentifier"); + this.appIdentifier = appIdentifier; + return this; + } + + + public Builder name(String name) { + Utils.checkNotNull(name, "name"); + this.name = JsonNullable.of(name); + return this; + } + + public Builder name(JsonNullable name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + + public Builder algorithm(BiometricCredentialAlgorithm algorithm) { + Utils.checkNotNull(algorithm, "algorithm"); + this.algorithm = algorithm; + return this; + } + + + public Builder status(BiometricCredentialStatus status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + + /** + * Unix timestamp of creation in milliseconds. + */ + public Builder createdAt(long createdAt) { + Utils.checkNotNull(createdAt, "createdAt"); + this.createdAt = createdAt; + return this; + } + + + /** + * Unix timestamp of the last update in milliseconds. + */ + public Builder updatedAt(long updatedAt) { + Utils.checkNotNull(updatedAt, "updatedAt"); + this.updatedAt = updatedAt; + return this; + } + + + /** + * Unix timestamp of the last use in milliseconds. + */ + public Builder lastUsedAt(long lastUsedAt) { + Utils.checkNotNull(lastUsedAt, "lastUsedAt"); + this.lastUsedAt = JsonNullable.of(lastUsedAt); + return this; + } + + /** + * Unix timestamp of the last use in milliseconds. + */ + public Builder lastUsedAt(JsonNullable lastUsedAt) { + Utils.checkNotNull(lastUsedAt, "lastUsedAt"); + this.lastUsedAt = lastUsedAt; + return this; + } + + + /** + * Unix timestamp of revocation in milliseconds. + */ + public Builder revokedAt(long revokedAt) { + Utils.checkNotNull(revokedAt, "revokedAt"); + this.revokedAt = JsonNullable.of(revokedAt); + return this; + } + + /** + * Unix timestamp of revocation in milliseconds. + */ + public Builder revokedAt(JsonNullable revokedAt) { + Utils.checkNotNull(revokedAt, "revokedAt"); + this.revokedAt = revokedAt; + return this; + } + + public BiometricCredential build() { + + return new BiometricCredential( + object, id, platform, + appIdentifier, name, algorithm, + status, createdAt, updatedAt, + lastUsedAt, revokedAt); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialAlgorithm.java b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialAlgorithm.java new file mode 100644 index 00000000..99265f0e --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialAlgorithm.java @@ -0,0 +1,34 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +public enum BiometricCredentialAlgorithm { + ES256("ES256"); + + @JsonValue + private final String value; + + BiometricCredentialAlgorithm(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (BiometricCredentialAlgorithm o: BiometricCredentialAlgorithm.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialList.java b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialList.java new file mode 100644 index 00000000..4fa8fe83 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialList.java @@ -0,0 +1,136 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.util.List; + +/** + * BiometricCredentialList + * + *

Success + */ +public class BiometricCredentialList { + + @JsonProperty("data") + private List data; + + /** + * Total number of biometric credentials + */ + @JsonProperty("total_count") + private long totalCount; + + @JsonCreator + public BiometricCredentialList( + @JsonProperty("data") List data, + @JsonProperty("total_count") long totalCount) { + Utils.checkNotNull(data, "data"); + Utils.checkNotNull(totalCount, "totalCount"); + this.data = data; + this.totalCount = totalCount; + } + + @JsonIgnore + public List data() { + return data; + } + + /** + * Total number of biometric credentials + */ + @JsonIgnore + public long totalCount() { + return totalCount; + } + + public static Builder builder() { + return new Builder(); + } + + + public BiometricCredentialList withData(List data) { + Utils.checkNotNull(data, "data"); + this.data = data; + return this; + } + + /** + * Total number of biometric credentials + */ + public BiometricCredentialList withTotalCount(long totalCount) { + Utils.checkNotNull(totalCount, "totalCount"); + this.totalCount = totalCount; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BiometricCredentialList other = (BiometricCredentialList) o; + return + Utils.enhancedDeepEquals(this.data, other.data) && + Utils.enhancedDeepEquals(this.totalCount, other.totalCount); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + data, totalCount); + } + + @Override + public String toString() { + return Utils.toString(BiometricCredentialList.class, + "data", data, + "totalCount", totalCount); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private List data; + + private Long totalCount; + + private Builder() { + // force use of static builder() method + } + + + public Builder data(List data) { + Utils.checkNotNull(data, "data"); + this.data = data; + return this; + } + + + /** + * Total number of biometric credentials + */ + public Builder totalCount(long totalCount) { + Utils.checkNotNull(totalCount, "totalCount"); + this.totalCount = totalCount; + return this; + } + + public BiometricCredentialList build() { + + return new BiometricCredentialList( + data, totalCount); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialObject.java b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialObject.java new file mode 100644 index 00000000..cdb2953d --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialObject.java @@ -0,0 +1,39 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +/** + * BiometricCredentialObject + * + *

String representing the object's type. + */ +public enum BiometricCredentialObject { + TRUSTED_DEVICE("trusted_device"); + + @JsonValue + private final String value; + + BiometricCredentialObject(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (BiometricCredentialObject o: BiometricCredentialObject.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialPlatform.java b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialPlatform.java new file mode 100644 index 00000000..691a75d4 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialPlatform.java @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +public enum BiometricCredentialPlatform { + IOS("ios"), + ANDROID("android"); + + @JsonValue + private final String value; + + BiometricCredentialPlatform(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (BiometricCredentialPlatform o: BiometricCredentialPlatform.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialStatus.java b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialStatus.java new file mode 100644 index 00000000..f9ab90cc --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/BiometricCredentialStatus.java @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +public enum BiometricCredentialStatus { + ACTIVE("active"), + REVOKED("revoked"); + + @JsonValue + private final String value; + + BiometricCredentialStatus(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (BiometricCredentialStatus o: BiometricCredentialStatus.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponse.java b/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponse.java new file mode 100644 index 00000000..eb6f1033 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponse.java @@ -0,0 +1,926 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Double; +import java.lang.Integer; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.Optional; +import org.openapitools.jackson.nullable.JsonNullable; + +/** + * CommerceDiscountRedemptionResponse + * + *

A commerce discount redemption. + */ +public class CommerceDiscountRedemptionResponse { + /** + * String representing the object's type. Objects of the same type share the same value. + */ + @JsonProperty("object") + private CommerceDiscountRedemptionResponseObject object; + + /** + * Unique identifier for the discount redemption. + */ + @JsonProperty("id") + private String id; + + /** + * Unique identifier for the subscription item the discount was applied to. + */ + @JsonProperty("subscription_item_id") + private String subscriptionItemId; + + /** + * Unique identifier for the discount that was applied. + */ + @JsonProperty("discount_id") + private String discountId; + + /** + * The display name of the discount. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + private Optional name; + + /** + * How the discount was applied to the subscription item. + */ + @JsonProperty("source") + private Source source; + + /** + * The promo code used to redeem the discount, when applicable. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("promo_code") + private Optional promoCode; + + /** + * The snapshotted discount effect. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("effect") + private Optional effect; + + /** + * Percent off when the effect is percentage. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("percent_off") + private JsonNullable percentOff; + + /** + * Fixed amount off when the effect is fixed_amount. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("amount_off") + private JsonNullable amountOff; + + /** + * How much this discount takes off the subscription item's next renewal charge. + * Present for either effect when next-payment data is available. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("amount") + private JsonNullable amount; + + /** + * Remaining billing cycles the discount applies to. Null means the discount lasts forever. + */ + @JsonInclude(Include.ALWAYS) + @JsonProperty("cycles_remaining") + private Optional cyclesRemaining; + + /** + * Number of billing cycles the discount has already been applied to. + */ + @JsonProperty("cycles_applied") + private int cyclesApplied; + + /** + * Current status of the discount redemption. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + private Optional status; + + /** + * Unix timestamp (in milliseconds) when the discount was redeemed. + */ + @JsonProperty("redeemed_at") + private long redeemedAt; + + /** + * Identifier of the actor that redeemed the discount, when available. + */ + @JsonInclude(Include.ALWAYS) + @JsonProperty("redeemed_by") + private Optional redeemedBy; + + @JsonCreator + public CommerceDiscountRedemptionResponse( + @JsonProperty("object") CommerceDiscountRedemptionResponseObject object, + @JsonProperty("id") String id, + @JsonProperty("subscription_item_id") String subscriptionItemId, + @JsonProperty("discount_id") String discountId, + @JsonProperty("name") Optional name, + @JsonProperty("source") Source source, + @JsonProperty("promo_code") Optional promoCode, + @JsonProperty("effect") Optional effect, + @JsonProperty("percent_off") JsonNullable percentOff, + @JsonProperty("amount_off") JsonNullable amountOff, + @JsonProperty("amount") JsonNullable amount, + @JsonProperty("cycles_remaining") Optional cyclesRemaining, + @JsonProperty("cycles_applied") int cyclesApplied, + @JsonProperty("status") Optional status, + @JsonProperty("redeemed_at") long redeemedAt, + @JsonProperty("redeemed_by") Optional redeemedBy) { + Utils.checkNotNull(object, "object"); + Utils.checkNotNull(id, "id"); + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + Utils.checkNotNull(discountId, "discountId"); + Utils.checkNotNull(name, "name"); + Utils.checkNotNull(source, "source"); + Utils.checkNotNull(promoCode, "promoCode"); + Utils.checkNotNull(effect, "effect"); + Utils.checkNotNull(percentOff, "percentOff"); + Utils.checkNotNull(amountOff, "amountOff"); + Utils.checkNotNull(amount, "amount"); + Utils.checkNotNull(cyclesRemaining, "cyclesRemaining"); + Utils.checkNotNull(cyclesApplied, "cyclesApplied"); + Utils.checkNotNull(status, "status"); + Utils.checkNotNull(redeemedAt, "redeemedAt"); + Utils.checkNotNull(redeemedBy, "redeemedBy"); + this.object = object; + this.id = id; + this.subscriptionItemId = subscriptionItemId; + this.discountId = discountId; + this.name = name; + this.source = source; + this.promoCode = promoCode; + this.effect = effect; + this.percentOff = percentOff; + this.amountOff = amountOff; + this.amount = amount; + this.cyclesRemaining = cyclesRemaining; + this.cyclesApplied = cyclesApplied; + this.status = status; + this.redeemedAt = redeemedAt; + this.redeemedBy = redeemedBy; + } + + public CommerceDiscountRedemptionResponse( + CommerceDiscountRedemptionResponseObject object, + String id, + String subscriptionItemId, + String discountId, + Source source, + int cyclesApplied, + long redeemedAt) { + this(object, id, subscriptionItemId, + discountId, Optional.empty(), source, + Optional.empty(), Optional.empty(), JsonNullable.undefined(), + JsonNullable.undefined(), JsonNullable.undefined(), Optional.empty(), + cyclesApplied, Optional.empty(), redeemedAt, + Optional.empty()); + } + + /** + * String representing the object's type. Objects of the same type share the same value. + */ + @JsonIgnore + public CommerceDiscountRedemptionResponseObject object() { + return object; + } + + /** + * Unique identifier for the discount redemption. + */ + @JsonIgnore + public String id() { + return id; + } + + /** + * Unique identifier for the subscription item the discount was applied to. + */ + @JsonIgnore + public String subscriptionItemId() { + return subscriptionItemId; + } + + /** + * Unique identifier for the discount that was applied. + */ + @JsonIgnore + public String discountId() { + return discountId; + } + + /** + * The display name of the discount. + */ + @JsonIgnore + public Optional name() { + return name; + } + + /** + * How the discount was applied to the subscription item. + */ + @JsonIgnore + public Source source() { + return source; + } + + /** + * The promo code used to redeem the discount, when applicable. + */ + @JsonIgnore + public Optional promoCode() { + return promoCode; + } + + /** + * The snapshotted discount effect. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional effect() { + return (Optional) effect; + } + + /** + * Percent off when the effect is percentage. + */ + @JsonIgnore + public JsonNullable percentOff() { + return percentOff; + } + + /** + * Fixed amount off when the effect is fixed_amount. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public JsonNullable amountOff() { + return (JsonNullable) amountOff; + } + + /** + * How much this discount takes off the subscription item's next renewal charge. + * Present for either effect when next-payment data is available. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public JsonNullable amount() { + return (JsonNullable) amount; + } + + /** + * Remaining billing cycles the discount applies to. Null means the discount lasts forever. + */ + @JsonIgnore + public Optional cyclesRemaining() { + return cyclesRemaining; + } + + /** + * Number of billing cycles the discount has already been applied to. + */ + @JsonIgnore + public int cyclesApplied() { + return cyclesApplied; + } + + /** + * Current status of the discount redemption. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional status() { + return (Optional) status; + } + + /** + * Unix timestamp (in milliseconds) when the discount was redeemed. + */ + @JsonIgnore + public long redeemedAt() { + return redeemedAt; + } + + /** + * Identifier of the actor that redeemed the discount, when available. + */ + @JsonIgnore + public Optional redeemedBy() { + return redeemedBy; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * String representing the object's type. Objects of the same type share the same value. + */ + public CommerceDiscountRedemptionResponse withObject(CommerceDiscountRedemptionResponseObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + /** + * Unique identifier for the discount redemption. + */ + public CommerceDiscountRedemptionResponse withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + /** + * Unique identifier for the subscription item the discount was applied to. + */ + public CommerceDiscountRedemptionResponse withSubscriptionItemId(String subscriptionItemId) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + this.subscriptionItemId = subscriptionItemId; + return this; + } + + /** + * Unique identifier for the discount that was applied. + */ + public CommerceDiscountRedemptionResponse withDiscountId(String discountId) { + Utils.checkNotNull(discountId, "discountId"); + this.discountId = discountId; + return this; + } + + /** + * The display name of the discount. + */ + public CommerceDiscountRedemptionResponse withName(String name) { + Utils.checkNotNull(name, "name"); + this.name = Optional.ofNullable(name); + return this; + } + + + /** + * The display name of the discount. + */ + public CommerceDiscountRedemptionResponse withName(Optional name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + /** + * How the discount was applied to the subscription item. + */ + public CommerceDiscountRedemptionResponse withSource(Source source) { + Utils.checkNotNull(source, "source"); + this.source = source; + return this; + } + + /** + * The promo code used to redeem the discount, when applicable. + */ + public CommerceDiscountRedemptionResponse withPromoCode(String promoCode) { + Utils.checkNotNull(promoCode, "promoCode"); + this.promoCode = Optional.ofNullable(promoCode); + return this; + } + + + /** + * The promo code used to redeem the discount, when applicable. + */ + public CommerceDiscountRedemptionResponse withPromoCode(Optional promoCode) { + Utils.checkNotNull(promoCode, "promoCode"); + this.promoCode = promoCode; + return this; + } + + /** + * The snapshotted discount effect. + */ + public CommerceDiscountRedemptionResponse withEffect(Effect effect) { + Utils.checkNotNull(effect, "effect"); + this.effect = Optional.ofNullable(effect); + return this; + } + + + /** + * The snapshotted discount effect. + */ + public CommerceDiscountRedemptionResponse withEffect(Optional effect) { + Utils.checkNotNull(effect, "effect"); + this.effect = effect; + return this; + } + + /** + * Percent off when the effect is percentage. + */ + public CommerceDiscountRedemptionResponse withPercentOff(double percentOff) { + Utils.checkNotNull(percentOff, "percentOff"); + this.percentOff = JsonNullable.of(percentOff); + return this; + } + + /** + * Percent off when the effect is percentage. + */ + public CommerceDiscountRedemptionResponse withPercentOff(JsonNullable percentOff) { + Utils.checkNotNull(percentOff, "percentOff"); + this.percentOff = percentOff; + return this; + } + + /** + * Fixed amount off when the effect is fixed_amount. + */ + public CommerceDiscountRedemptionResponse withAmountOff(AmountOff amountOff) { + Utils.checkNotNull(amountOff, "amountOff"); + this.amountOff = JsonNullable.of(amountOff); + return this; + } + + /** + * Fixed amount off when the effect is fixed_amount. + */ + public CommerceDiscountRedemptionResponse withAmountOff(JsonNullable amountOff) { + Utils.checkNotNull(amountOff, "amountOff"); + this.amountOff = amountOff; + return this; + } + + /** + * How much this discount takes off the subscription item's next renewal charge. + * Present for either effect when next-payment data is available. + */ + public CommerceDiscountRedemptionResponse withAmount(CommerceDiscountRedemptionResponseAmount amount) { + Utils.checkNotNull(amount, "amount"); + this.amount = JsonNullable.of(amount); + return this; + } + + /** + * How much this discount takes off the subscription item's next renewal charge. + * Present for either effect when next-payment data is available. + */ + public CommerceDiscountRedemptionResponse withAmount(JsonNullable amount) { + Utils.checkNotNull(amount, "amount"); + this.amount = amount; + return this; + } + + /** + * Remaining billing cycles the discount applies to. Null means the discount lasts forever. + */ + public CommerceDiscountRedemptionResponse withCyclesRemaining(int cyclesRemaining) { + Utils.checkNotNull(cyclesRemaining, "cyclesRemaining"); + this.cyclesRemaining = Optional.ofNullable(cyclesRemaining); + return this; + } + + + /** + * Remaining billing cycles the discount applies to. Null means the discount lasts forever. + */ + public CommerceDiscountRedemptionResponse withCyclesRemaining(Optional cyclesRemaining) { + Utils.checkNotNull(cyclesRemaining, "cyclesRemaining"); + this.cyclesRemaining = cyclesRemaining; + return this; + } + + /** + * Number of billing cycles the discount has already been applied to. + */ + public CommerceDiscountRedemptionResponse withCyclesApplied(int cyclesApplied) { + Utils.checkNotNull(cyclesApplied, "cyclesApplied"); + this.cyclesApplied = cyclesApplied; + return this; + } + + /** + * Current status of the discount redemption. + */ + public CommerceDiscountRedemptionResponse withStatus(CommerceDiscountRedemptionResponseStatus status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + + /** + * Current status of the discount redemption. + */ + public CommerceDiscountRedemptionResponse withStatus(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + /** + * Unix timestamp (in milliseconds) when the discount was redeemed. + */ + public CommerceDiscountRedemptionResponse withRedeemedAt(long redeemedAt) { + Utils.checkNotNull(redeemedAt, "redeemedAt"); + this.redeemedAt = redeemedAt; + return this; + } + + /** + * Identifier of the actor that redeemed the discount, when available. + */ + public CommerceDiscountRedemptionResponse withRedeemedBy(String redeemedBy) { + Utils.checkNotNull(redeemedBy, "redeemedBy"); + this.redeemedBy = Optional.ofNullable(redeemedBy); + return this; + } + + + /** + * Identifier of the actor that redeemed the discount, when available. + */ + public CommerceDiscountRedemptionResponse withRedeemedBy(Optional redeemedBy) { + Utils.checkNotNull(redeemedBy, "redeemedBy"); + this.redeemedBy = redeemedBy; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommerceDiscountRedemptionResponse other = (CommerceDiscountRedemptionResponse) o; + return + Utils.enhancedDeepEquals(this.object, other.object) && + Utils.enhancedDeepEquals(this.id, other.id) && + Utils.enhancedDeepEquals(this.subscriptionItemId, other.subscriptionItemId) && + Utils.enhancedDeepEquals(this.discountId, other.discountId) && + Utils.enhancedDeepEquals(this.name, other.name) && + Utils.enhancedDeepEquals(this.source, other.source) && + Utils.enhancedDeepEquals(this.promoCode, other.promoCode) && + Utils.enhancedDeepEquals(this.effect, other.effect) && + Utils.enhancedDeepEquals(this.percentOff, other.percentOff) && + Utils.enhancedDeepEquals(this.amountOff, other.amountOff) && + Utils.enhancedDeepEquals(this.amount, other.amount) && + Utils.enhancedDeepEquals(this.cyclesRemaining, other.cyclesRemaining) && + Utils.enhancedDeepEquals(this.cyclesApplied, other.cyclesApplied) && + Utils.enhancedDeepEquals(this.status, other.status) && + Utils.enhancedDeepEquals(this.redeemedAt, other.redeemedAt) && + Utils.enhancedDeepEquals(this.redeemedBy, other.redeemedBy); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + object, id, subscriptionItemId, + discountId, name, source, + promoCode, effect, percentOff, + amountOff, amount, cyclesRemaining, + cyclesApplied, status, redeemedAt, + redeemedBy); + } + + @Override + public String toString() { + return Utils.toString(CommerceDiscountRedemptionResponse.class, + "object", object, + "id", id, + "subscriptionItemId", subscriptionItemId, + "discountId", discountId, + "name", name, + "source", source, + "promoCode", promoCode, + "effect", effect, + "percentOff", percentOff, + "amountOff", amountOff, + "amount", amount, + "cyclesRemaining", cyclesRemaining, + "cyclesApplied", cyclesApplied, + "status", status, + "redeemedAt", redeemedAt, + "redeemedBy", redeemedBy); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private CommerceDiscountRedemptionResponseObject object; + + private String id; + + private String subscriptionItemId; + + private String discountId; + + private Optional name = Optional.empty(); + + private Source source; + + private Optional promoCode = Optional.empty(); + + private Optional effect = Optional.empty(); + + private JsonNullable percentOff = JsonNullable.undefined(); + + private JsonNullable amountOff = JsonNullable.undefined(); + + private JsonNullable amount = JsonNullable.undefined(); + + private Optional cyclesRemaining = Optional.empty(); + + private Integer cyclesApplied; + + private Optional status = Optional.empty(); + + private Long redeemedAt; + + private Optional redeemedBy = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * String representing the object's type. Objects of the same type share the same value. + */ + public Builder object(CommerceDiscountRedemptionResponseObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + + /** + * Unique identifier for the discount redemption. + */ + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + + /** + * Unique identifier for the subscription item the discount was applied to. + */ + public Builder subscriptionItemId(String subscriptionItemId) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + this.subscriptionItemId = subscriptionItemId; + return this; + } + + + /** + * Unique identifier for the discount that was applied. + */ + public Builder discountId(String discountId) { + Utils.checkNotNull(discountId, "discountId"); + this.discountId = discountId; + return this; + } + + + /** + * The display name of the discount. + */ + public Builder name(String name) { + Utils.checkNotNull(name, "name"); + this.name = Optional.ofNullable(name); + return this; + } + + /** + * The display name of the discount. + */ + public Builder name(Optional name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + + /** + * How the discount was applied to the subscription item. + */ + public Builder source(Source source) { + Utils.checkNotNull(source, "source"); + this.source = source; + return this; + } + + + /** + * The promo code used to redeem the discount, when applicable. + */ + public Builder promoCode(String promoCode) { + Utils.checkNotNull(promoCode, "promoCode"); + this.promoCode = Optional.ofNullable(promoCode); + return this; + } + + /** + * The promo code used to redeem the discount, when applicable. + */ + public Builder promoCode(Optional promoCode) { + Utils.checkNotNull(promoCode, "promoCode"); + this.promoCode = promoCode; + return this; + } + + + /** + * The snapshotted discount effect. + */ + public Builder effect(Effect effect) { + Utils.checkNotNull(effect, "effect"); + this.effect = Optional.ofNullable(effect); + return this; + } + + /** + * The snapshotted discount effect. + */ + public Builder effect(Optional effect) { + Utils.checkNotNull(effect, "effect"); + this.effect = effect; + return this; + } + + + /** + * Percent off when the effect is percentage. + */ + public Builder percentOff(double percentOff) { + Utils.checkNotNull(percentOff, "percentOff"); + this.percentOff = JsonNullable.of(percentOff); + return this; + } + + /** + * Percent off when the effect is percentage. + */ + public Builder percentOff(JsonNullable percentOff) { + Utils.checkNotNull(percentOff, "percentOff"); + this.percentOff = percentOff; + return this; + } + + + /** + * Fixed amount off when the effect is fixed_amount. + */ + public Builder amountOff(AmountOff amountOff) { + Utils.checkNotNull(amountOff, "amountOff"); + this.amountOff = JsonNullable.of(amountOff); + return this; + } + + /** + * Fixed amount off when the effect is fixed_amount. + */ + public Builder amountOff(JsonNullable amountOff) { + Utils.checkNotNull(amountOff, "amountOff"); + this.amountOff = amountOff; + return this; + } + + + /** + * How much this discount takes off the subscription item's next renewal charge. + * Present for either effect when next-payment data is available. + */ + public Builder amount(CommerceDiscountRedemptionResponseAmount amount) { + Utils.checkNotNull(amount, "amount"); + this.amount = JsonNullable.of(amount); + return this; + } + + /** + * How much this discount takes off the subscription item's next renewal charge. + * Present for either effect when next-payment data is available. + */ + public Builder amount(JsonNullable amount) { + Utils.checkNotNull(amount, "amount"); + this.amount = amount; + return this; + } + + + /** + * Remaining billing cycles the discount applies to. Null means the discount lasts forever. + */ + public Builder cyclesRemaining(int cyclesRemaining) { + Utils.checkNotNull(cyclesRemaining, "cyclesRemaining"); + this.cyclesRemaining = Optional.ofNullable(cyclesRemaining); + return this; + } + + /** + * Remaining billing cycles the discount applies to. Null means the discount lasts forever. + */ + public Builder cyclesRemaining(Optional cyclesRemaining) { + Utils.checkNotNull(cyclesRemaining, "cyclesRemaining"); + this.cyclesRemaining = cyclesRemaining; + return this; + } + + + /** + * Number of billing cycles the discount has already been applied to. + */ + public Builder cyclesApplied(int cyclesApplied) { + Utils.checkNotNull(cyclesApplied, "cyclesApplied"); + this.cyclesApplied = cyclesApplied; + return this; + } + + + /** + * Current status of the discount redemption. + */ + public Builder status(CommerceDiscountRedemptionResponseStatus status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + /** + * Current status of the discount redemption. + */ + public Builder status(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + + /** + * Unix timestamp (in milliseconds) when the discount was redeemed. + */ + public Builder redeemedAt(long redeemedAt) { + Utils.checkNotNull(redeemedAt, "redeemedAt"); + this.redeemedAt = redeemedAt; + return this; + } + + + /** + * Identifier of the actor that redeemed the discount, when available. + */ + public Builder redeemedBy(String redeemedBy) { + Utils.checkNotNull(redeemedBy, "redeemedBy"); + this.redeemedBy = Optional.ofNullable(redeemedBy); + return this; + } + + /** + * Identifier of the actor that redeemed the discount, when available. + */ + public Builder redeemedBy(Optional redeemedBy) { + Utils.checkNotNull(redeemedBy, "redeemedBy"); + this.redeemedBy = redeemedBy; + return this; + } + + public CommerceDiscountRedemptionResponse build() { + + return new CommerceDiscountRedemptionResponse( + object, id, subscriptionItemId, + discountId, name, source, + promoCode, effect, percentOff, + amountOff, amount, cyclesRemaining, + cyclesApplied, status, redeemedAt, + redeemedBy); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseAmount.java b/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseAmount.java new file mode 100644 index 00000000..1a0d4bd5 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseAmount.java @@ -0,0 +1,229 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; + +/** + * CommerceDiscountRedemptionResponseAmount + * + *

How much this discount takes off the subscription item's next renewal charge. + * Present for either effect when next-payment data is available. + */ +public class CommerceDiscountRedemptionResponseAmount { + /** + * The amount in cents. + */ + @JsonProperty("amount") + private long amount; + + /** + * The formatted amount as a string (e.g., "$49.99"). + */ + @JsonProperty("amount_formatted") + private String amountFormatted; + + /** + * The currency code (e.g., "USD"). + */ + @JsonProperty("currency") + private String currency; + + /** + * The currency symbol (e.g., "$"). + */ + @JsonProperty("currency_symbol") + private String currencySymbol; + + @JsonCreator + public CommerceDiscountRedemptionResponseAmount( + @JsonProperty("amount") long amount, + @JsonProperty("amount_formatted") String amountFormatted, + @JsonProperty("currency") String currency, + @JsonProperty("currency_symbol") String currencySymbol) { + Utils.checkNotNull(amount, "amount"); + Utils.checkNotNull(amountFormatted, "amountFormatted"); + Utils.checkNotNull(currency, "currency"); + Utils.checkNotNull(currencySymbol, "currencySymbol"); + this.amount = amount; + this.amountFormatted = amountFormatted; + this.currency = currency; + this.currencySymbol = currencySymbol; + } + + /** + * The amount in cents. + */ + @JsonIgnore + public long amount() { + return amount; + } + + /** + * The formatted amount as a string (e.g., "$49.99"). + */ + @JsonIgnore + public String amountFormatted() { + return amountFormatted; + } + + /** + * The currency code (e.g., "USD"). + */ + @JsonIgnore + public String currency() { + return currency; + } + + /** + * The currency symbol (e.g., "$"). + */ + @JsonIgnore + public String currencySymbol() { + return currencySymbol; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The amount in cents. + */ + public CommerceDiscountRedemptionResponseAmount withAmount(long amount) { + Utils.checkNotNull(amount, "amount"); + this.amount = amount; + return this; + } + + /** + * The formatted amount as a string (e.g., "$49.99"). + */ + public CommerceDiscountRedemptionResponseAmount withAmountFormatted(String amountFormatted) { + Utils.checkNotNull(amountFormatted, "amountFormatted"); + this.amountFormatted = amountFormatted; + return this; + } + + /** + * The currency code (e.g., "USD"). + */ + public CommerceDiscountRedemptionResponseAmount withCurrency(String currency) { + Utils.checkNotNull(currency, "currency"); + this.currency = currency; + return this; + } + + /** + * The currency symbol (e.g., "$"). + */ + public CommerceDiscountRedemptionResponseAmount withCurrencySymbol(String currencySymbol) { + Utils.checkNotNull(currencySymbol, "currencySymbol"); + this.currencySymbol = currencySymbol; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CommerceDiscountRedemptionResponseAmount other = (CommerceDiscountRedemptionResponseAmount) o; + return + Utils.enhancedDeepEquals(this.amount, other.amount) && + Utils.enhancedDeepEquals(this.amountFormatted, other.amountFormatted) && + Utils.enhancedDeepEquals(this.currency, other.currency) && + Utils.enhancedDeepEquals(this.currencySymbol, other.currencySymbol); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + amount, amountFormatted, currency, + currencySymbol); + } + + @Override + public String toString() { + return Utils.toString(CommerceDiscountRedemptionResponseAmount.class, + "amount", amount, + "amountFormatted", amountFormatted, + "currency", currency, + "currencySymbol", currencySymbol); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private Long amount; + + private String amountFormatted; + + private String currency; + + private String currencySymbol; + + private Builder() { + // force use of static builder() method + } + + + /** + * The amount in cents. + */ + public Builder amount(long amount) { + Utils.checkNotNull(amount, "amount"); + this.amount = amount; + return this; + } + + + /** + * The formatted amount as a string (e.g., "$49.99"). + */ + public Builder amountFormatted(String amountFormatted) { + Utils.checkNotNull(amountFormatted, "amountFormatted"); + this.amountFormatted = amountFormatted; + return this; + } + + + /** + * The currency code (e.g., "USD"). + */ + public Builder currency(String currency) { + Utils.checkNotNull(currency, "currency"); + this.currency = currency; + return this; + } + + + /** + * The currency symbol (e.g., "$"). + */ + public Builder currencySymbol(String currencySymbol) { + Utils.checkNotNull(currencySymbol, "currencySymbol"); + this.currencySymbol = currencySymbol; + return this; + } + + public CommerceDiscountRedemptionResponseAmount build() { + + return new CommerceDiscountRedemptionResponseAmount( + amount, amountFormatted, currency, + currencySymbol); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseObject.java b/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseObject.java new file mode 100644 index 00000000..95cc3229 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseObject.java @@ -0,0 +1,39 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +/** + * CommerceDiscountRedemptionResponseObject + * + *

String representing the object's type. Objects of the same type share the same value. + */ +public enum CommerceDiscountRedemptionResponseObject { + COMMERCE_DISCOUNT_REDEMPTION("commerce_discount_redemption"); + + @JsonValue + private final String value; + + CommerceDiscountRedemptionResponseObject(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (CommerceDiscountRedemptionResponseObject o: CommerceDiscountRedemptionResponseObject.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseStatus.java b/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseStatus.java new file mode 100644 index 00000000..adbaa486 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/CommerceDiscountRedemptionResponseStatus.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +/** + * CommerceDiscountRedemptionResponseStatus + * + *

Current status of the discount redemption. + */ +public enum CommerceDiscountRedemptionResponseStatus { + ACTIVE("active"), + EXHAUSTED("exhausted"), + REMOVED("removed"); + + @JsonValue + private final String value; + + CommerceDiscountRedemptionResponseStatus(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (CommerceDiscountRedemptionResponseStatus o: CommerceDiscountRedemptionResponseStatus.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/CreateBillingPriceRequest.java b/src/main/java/com/clerk/backend_api/models/components/CreateBillingPriceRequest.java index f98fea66..6d235a9a 100644 --- a/src/main/java/com/clerk/backend_api/models/components/CreateBillingPriceRequest.java +++ b/src/main/java/com/clerk/backend_api/models/components/CreateBillingPriceRequest.java @@ -34,14 +34,16 @@ public class CreateBillingPriceRequest { private Optional currency; /** - * The monthly amount in cents. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents. Use `0` for a complimentary price. Positive amounts must be at least $1 + * (100 cents). */ @JsonInclude(Include.ALWAYS) @JsonProperty("amount") private Optional amount; /** - * The monthly amount in cents when billed annually. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents when billed annually. Use `0` for a complimentary price. Positive + * amounts must be at least $1 (100 cents). */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("annual_monthly_amount") @@ -106,7 +108,8 @@ public Optional currency() { } /** - * The monthly amount in cents. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents. Use `0` for a complimentary price. Positive amounts must be at least $1 + * (100 cents). */ @JsonIgnore public Optional amount() { @@ -114,7 +117,8 @@ public Optional amount() { } /** - * The monthly amount in cents when billed annually. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents when billed annually. Use `0` for a complimentary price. Positive + * amounts must be at least $1 (100 cents). */ @JsonIgnore public JsonNullable annualMonthlyAmount() { @@ -172,7 +176,8 @@ public CreateBillingPriceRequest withCurrency(Optional currency) { } /** - * The monthly amount in cents. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents. Use `0` for a complimentary price. Positive amounts must be at least $1 + * (100 cents). */ public CreateBillingPriceRequest withAmount(long amount) { Utils.checkNotNull(amount, "amount"); @@ -182,7 +187,8 @@ public CreateBillingPriceRequest withAmount(long amount) { /** - * The monthly amount in cents. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents. Use `0` for a complimentary price. Positive amounts must be at least $1 + * (100 cents). */ public CreateBillingPriceRequest withAmount(Optional amount) { Utils.checkNotNull(amount, "amount"); @@ -191,7 +197,8 @@ public CreateBillingPriceRequest withAmount(Optional amount) { } /** - * The monthly amount in cents when billed annually. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents when billed annually. Use `0` for a complimentary price. Positive + * amounts must be at least $1 (100 cents). */ public CreateBillingPriceRequest withAnnualMonthlyAmount(long annualMonthlyAmount) { Utils.checkNotNull(annualMonthlyAmount, "annualMonthlyAmount"); @@ -200,7 +207,8 @@ public CreateBillingPriceRequest withAnnualMonthlyAmount(long annualMonthlyAmoun } /** - * The monthly amount in cents when billed annually. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents when billed annually. Use `0` for a complimentary price. Positive + * amounts must be at least $1 (100 cents). */ public CreateBillingPriceRequest withAnnualMonthlyAmount(JsonNullable annualMonthlyAmount) { Utils.checkNotNull(annualMonthlyAmount, "annualMonthlyAmount"); @@ -332,7 +340,8 @@ public Builder currency(Optional currency) { /** - * The monthly amount in cents. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents. Use `0` for a complimentary price. Positive amounts must be at least $1 + * (100 cents). */ public Builder amount(long amount) { Utils.checkNotNull(amount, "amount"); @@ -341,7 +350,8 @@ public Builder amount(long amount) { } /** - * The monthly amount in cents. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents. Use `0` for a complimentary price. Positive amounts must be at least $1 + * (100 cents). */ public Builder amount(Optional amount) { Utils.checkNotNull(amount, "amount"); @@ -351,7 +361,8 @@ public Builder amount(Optional amount) { /** - * The monthly amount in cents when billed annually. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents when billed annually. Use `0` for a complimentary price. Positive + * amounts must be at least $1 (100 cents). */ public Builder annualMonthlyAmount(long annualMonthlyAmount) { Utils.checkNotNull(annualMonthlyAmount, "annualMonthlyAmount"); @@ -360,7 +371,8 @@ public Builder annualMonthlyAmount(long annualMonthlyAmount) { } /** - * The monthly amount in cents when billed annually. Must be at least $1 (100 cents) if not null. + * The monthly amount in cents when billed annually. Use `0` for a complimentary price. Positive + * amounts must be at least $1 (100 cents). */ public Builder annualMonthlyAmount(JsonNullable annualMonthlyAmount) { Utils.checkNotNull(annualMonthlyAmount, "annualMonthlyAmount"); diff --git a/src/main/java/com/clerk/backend_api/models/components/CustomAttributes.java b/src/main/java/com/clerk/backend_api/models/components/CustomAttributes.java index 8664e8cd..eca201dd 100644 --- a/src/main/java/com/clerk/backend_api/models/components/CustomAttributes.java +++ b/src/main/java/com/clerk/backend_api/models/components/CustomAttributes.java @@ -42,6 +42,14 @@ public class CustomAttributes { @JsonProperty("scim_path") private Optional scimPath; + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory_path") + private Optional directoryPath; + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -56,16 +64,19 @@ public CustomAttributes( @JsonProperty("key") String key, @JsonProperty("sso_path") Optional ssoPath, @JsonProperty("scim_path") Optional scimPath, + @JsonProperty("directory_path") Optional directoryPath, @JsonProperty("multi_valued") Optional multiValued) { Utils.checkNotNull(name, "name"); Utils.checkNotNull(key, "key"); Utils.checkNotNull(ssoPath, "ssoPath"); Utils.checkNotNull(scimPath, "scimPath"); + Utils.checkNotNull(directoryPath, "directoryPath"); Utils.checkNotNull(multiValued, "multiValued"); this.name = name; this.key = key; this.ssoPath = ssoPath; this.scimPath = scimPath; + this.directoryPath = directoryPath; this.multiValued = multiValued; } @@ -73,7 +84,7 @@ public CustomAttributes( String name, String key) { this(name, key, Optional.empty(), - Optional.empty(), Optional.empty()); + Optional.empty(), Optional.empty(), Optional.empty()); } /** @@ -108,6 +119,15 @@ public Optional scimPath() { return scimPath; } + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + @JsonIgnore + public Optional directoryPath() { + return directoryPath; + } + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -178,6 +198,27 @@ public CustomAttributes withScimPath(Optional scimPath) { return this; } + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + public CustomAttributes withDirectoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + public CustomAttributes withDirectoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -213,6 +254,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.key, other.key) && Utils.enhancedDeepEquals(this.ssoPath, other.ssoPath) && Utils.enhancedDeepEquals(this.scimPath, other.scimPath) && + Utils.enhancedDeepEquals(this.directoryPath, other.directoryPath) && Utils.enhancedDeepEquals(this.multiValued, other.multiValued); } @@ -220,7 +262,7 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Utils.enhancedHash( name, key, ssoPath, - scimPath, multiValued); + scimPath, directoryPath, multiValued); } @Override @@ -230,6 +272,7 @@ public String toString() { "key", key, "ssoPath", ssoPath, "scimPath", scimPath, + "directoryPath", directoryPath, "multiValued", multiValued); } @@ -244,6 +287,8 @@ public final static class Builder { private Optional scimPath = Optional.empty(); + private Optional directoryPath = Optional.empty(); + private Optional multiValued = Optional.empty(); private Builder() { @@ -309,6 +354,27 @@ public Builder scimPath(Optional scimPath) { } + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + public Builder directoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + public Builder directoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -333,7 +399,7 @@ public CustomAttributes build() { return new CustomAttributes( name, key, ssoPath, - scimPath, multiValued); + scimPath, directoryPath, multiValued); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/DNSTarget.java b/src/main/java/com/clerk/backend_api/models/components/DNSTarget.java new file mode 100644 index 00000000..3e611f4c --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/DNSTarget.java @@ -0,0 +1,252 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Boolean; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.Optional; + + +public class DNSTarget { + + @JsonProperty("host") + private String host; + + + @JsonProperty("value") + private String value; + + + @JsonProperty("record_type") + private RecordType recordType; + + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("automation_disposition") + private Optional automationDisposition; + + /** + * Denotes whether this DNS target is required to be set in order for the domain to be considered + * deployed. + */ + @JsonProperty("required") + private boolean required; + + @JsonCreator + public DNSTarget( + @JsonProperty("host") String host, + @JsonProperty("value") String value, + @JsonProperty("record_type") RecordType recordType, + @JsonProperty("automation_disposition") Optional automationDisposition, + @JsonProperty("required") boolean required) { + Utils.checkNotNull(host, "host"); + Utils.checkNotNull(value, "value"); + Utils.checkNotNull(recordType, "recordType"); + Utils.checkNotNull(automationDisposition, "automationDisposition"); + Utils.checkNotNull(required, "required"); + this.host = host; + this.value = value; + this.recordType = recordType; + this.automationDisposition = automationDisposition; + this.required = required; + } + + public DNSTarget( + String host, + String value, + RecordType recordType, + boolean required) { + this(host, value, recordType, + Optional.empty(), required); + } + + @JsonIgnore + public String host() { + return host; + } + + @JsonIgnore + public String value() { + return value; + } + + @JsonIgnore + public RecordType recordType() { + return recordType; + } + + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional automationDisposition() { + return (Optional) automationDisposition; + } + + /** + * Denotes whether this DNS target is required to be set in order for the domain to be considered + * deployed. + */ + @JsonIgnore + public boolean required() { + return required; + } + + public static Builder builder() { + return new Builder(); + } + + + public DNSTarget withHost(String host) { + Utils.checkNotNull(host, "host"); + this.host = host; + return this; + } + + public DNSTarget withValue(String value) { + Utils.checkNotNull(value, "value"); + this.value = value; + return this; + } + + public DNSTarget withRecordType(RecordType recordType) { + Utils.checkNotNull(recordType, "recordType"); + this.recordType = recordType; + return this; + } + + public DNSTarget withAutomationDisposition(AutomationDisposition automationDisposition) { + Utils.checkNotNull(automationDisposition, "automationDisposition"); + this.automationDisposition = Optional.ofNullable(automationDisposition); + return this; + } + + + public DNSTarget withAutomationDisposition(Optional automationDisposition) { + Utils.checkNotNull(automationDisposition, "automationDisposition"); + this.automationDisposition = automationDisposition; + return this; + } + + /** + * Denotes whether this DNS target is required to be set in order for the domain to be considered + * deployed. + */ + public DNSTarget withRequired(boolean required) { + Utils.checkNotNull(required, "required"); + this.required = required; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DNSTarget other = (DNSTarget) o; + return + Utils.enhancedDeepEquals(this.host, other.host) && + Utils.enhancedDeepEquals(this.value, other.value) && + Utils.enhancedDeepEquals(this.recordType, other.recordType) && + Utils.enhancedDeepEquals(this.automationDisposition, other.automationDisposition) && + Utils.enhancedDeepEquals(this.required, other.required); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + host, value, recordType, + automationDisposition, required); + } + + @Override + public String toString() { + return Utils.toString(DNSTarget.class, + "host", host, + "value", value, + "recordType", recordType, + "automationDisposition", automationDisposition, + "required", required); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String host; + + private String value; + + private RecordType recordType; + + private Optional automationDisposition = Optional.empty(); + + private Boolean required; + + private Builder() { + // force use of static builder() method + } + + + public Builder host(String host) { + Utils.checkNotNull(host, "host"); + this.host = host; + return this; + } + + + public Builder value(String value) { + Utils.checkNotNull(value, "value"); + this.value = value; + return this; + } + + + public Builder recordType(RecordType recordType) { + Utils.checkNotNull(recordType, "recordType"); + this.recordType = recordType; + return this; + } + + + public Builder automationDisposition(AutomationDisposition automationDisposition) { + Utils.checkNotNull(automationDisposition, "automationDisposition"); + this.automationDisposition = Optional.ofNullable(automationDisposition); + return this; + } + + public Builder automationDisposition(Optional automationDisposition) { + Utils.checkNotNull(automationDisposition, "automationDisposition"); + this.automationDisposition = automationDisposition; + return this; + } + + + /** + * Denotes whether this DNS target is required to be set in order for the domain to be considered + * deployed. + */ + public Builder required(boolean required) { + Utils.checkNotNull(required, "required"); + this.required = required; + return this; + } + + public DNSTarget build() { + + return new DNSTarget( + host, value, recordType, + automationDisposition, required); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/Directory.java b/src/main/java/com/clerk/backend_api/models/components/Directory.java new file mode 100644 index 00000000..44f522fd --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/Directory.java @@ -0,0 +1,692 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Boolean; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import org.openapitools.jackson.nullable.JsonNullable; + +/** + * Directory + * + *

A directory configuration for provisioning users from an identity provider. + */ +public class Directory { + /** + * String representing the object's type. Always "directory". + */ + @JsonProperty("object") + private DirectoryObject object; + + /** + * Unique identifier for the directory. + */ + @JsonProperty("id") + private String id; + + /** + * A human-friendly name for the directory. + */ + @JsonProperty("name") + private String name; + + /** + * The ID of the associated enterprise connection. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("enterprise_connection_id") + private JsonNullable enterpriseConnectionId; + + /** + * The provisioning endpoint URL for this directory. + */ + @JsonProperty("endpoint_url") + private String endpointUrl; + + /** + * The identity provider for this directory. + */ + @JsonProperty("provider") + private String provider; + + /** + * Whether the directory is enabled. + */ + @JsonProperty("enabled") + private boolean enabled; + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + @JsonProperty("group_role_mapping_enabled") + private boolean groupRoleMappingEnabled; + + /** + * Mapping of user attributes to the directory attribute paths they are extracted from. + */ + @JsonProperty("attribute_mapping") + private Map attributeMapping; + + /** + * Custom attributes to map from the IdP to the user's profile via directory sync. Requires the custom + * attributes feature to be enabled for the instance. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("custom_attributes") + private Optional> customAttributes; + + /** + * The API key for authenticating provisioning requests. Only returned when the directory is created or + * the key is rotated. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("api_key") + private JsonNullable apiKey; + + /** + * Unix timestamp when the directory was created. + */ + @JsonProperty("created_at") + private long createdAt; + + /** + * Unix timestamp when the directory was last updated. + */ + @JsonProperty("updated_at") + private long updatedAt; + + @JsonCreator + public Directory( + @JsonProperty("object") DirectoryObject object, + @JsonProperty("id") String id, + @JsonProperty("name") String name, + @JsonProperty("enterprise_connection_id") JsonNullable enterpriseConnectionId, + @JsonProperty("endpoint_url") String endpointUrl, + @JsonProperty("provider") String provider, + @JsonProperty("enabled") boolean enabled, + @JsonProperty("group_role_mapping_enabled") boolean groupRoleMappingEnabled, + @JsonProperty("attribute_mapping") Map attributeMapping, + @JsonProperty("custom_attributes") Optional> customAttributes, + @JsonProperty("api_key") JsonNullable apiKey, + @JsonProperty("created_at") long createdAt, + @JsonProperty("updated_at") long updatedAt) { + Utils.checkNotNull(object, "object"); + Utils.checkNotNull(id, "id"); + Utils.checkNotNull(name, "name"); + Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); + Utils.checkNotNull(endpointUrl, "endpointUrl"); + Utils.checkNotNull(provider, "provider"); + Utils.checkNotNull(enabled, "enabled"); + Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); + attributeMapping = Utils.emptyMapIfNull(attributeMapping); + Utils.checkNotNull(attributeMapping, "attributeMapping"); + Utils.checkNotNull(customAttributes, "customAttributes"); + Utils.checkNotNull(apiKey, "apiKey"); + Utils.checkNotNull(createdAt, "createdAt"); + Utils.checkNotNull(updatedAt, "updatedAt"); + this.object = object; + this.id = id; + this.name = name; + this.enterpriseConnectionId = enterpriseConnectionId; + this.endpointUrl = endpointUrl; + this.provider = provider; + this.enabled = enabled; + this.groupRoleMappingEnabled = groupRoleMappingEnabled; + this.attributeMapping = attributeMapping; + this.customAttributes = customAttributes; + this.apiKey = apiKey; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + } + + public Directory( + DirectoryObject object, + String id, + String name, + String endpointUrl, + String provider, + boolean enabled, + boolean groupRoleMappingEnabled, + Map attributeMapping, + long createdAt, + long updatedAt) { + this(object, id, name, + JsonNullable.undefined(), endpointUrl, provider, + enabled, groupRoleMappingEnabled, attributeMapping, + Optional.empty(), JsonNullable.undefined(), createdAt, + updatedAt); + } + + /** + * String representing the object's type. Always "directory". + */ + @JsonIgnore + public DirectoryObject object() { + return object; + } + + /** + * Unique identifier for the directory. + */ + @JsonIgnore + public String id() { + return id; + } + + /** + * A human-friendly name for the directory. + */ + @JsonIgnore + public String name() { + return name; + } + + /** + * The ID of the associated enterprise connection. + */ + @JsonIgnore + public JsonNullable enterpriseConnectionId() { + return enterpriseConnectionId; + } + + /** + * The provisioning endpoint URL for this directory. + */ + @JsonIgnore + public String endpointUrl() { + return endpointUrl; + } + + /** + * The identity provider for this directory. + */ + @JsonIgnore + public String provider() { + return provider; + } + + /** + * Whether the directory is enabled. + */ + @JsonIgnore + public boolean enabled() { + return enabled; + } + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + @JsonIgnore + public boolean groupRoleMappingEnabled() { + return groupRoleMappingEnabled; + } + + /** + * Mapping of user attributes to the directory attribute paths they are extracted from. + */ + @JsonIgnore + public Map attributeMapping() { + return attributeMapping; + } + + /** + * Custom attributes to map from the IdP to the user's profile via directory sync. Requires the custom + * attributes feature to be enabled for the instance. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional> customAttributes() { + return (Optional>) customAttributes; + } + + /** + * The API key for authenticating provisioning requests. Only returned when the directory is created or + * the key is rotated. + */ + @JsonIgnore + public JsonNullable apiKey() { + return apiKey; + } + + /** + * Unix timestamp when the directory was created. + */ + @JsonIgnore + public long createdAt() { + return createdAt; + } + + /** + * Unix timestamp when the directory was last updated. + */ + @JsonIgnore + public long updatedAt() { + return updatedAt; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * String representing the object's type. Always "directory". + */ + public Directory withObject(DirectoryObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + /** + * Unique identifier for the directory. + */ + public Directory withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + /** + * A human-friendly name for the directory. + */ + public Directory withName(String name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + /** + * The ID of the associated enterprise connection. + */ + public Directory withEnterpriseConnectionId(String enterpriseConnectionId) { + Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); + this.enterpriseConnectionId = JsonNullable.of(enterpriseConnectionId); + return this; + } + + /** + * The ID of the associated enterprise connection. + */ + public Directory withEnterpriseConnectionId(JsonNullable enterpriseConnectionId) { + Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); + this.enterpriseConnectionId = enterpriseConnectionId; + return this; + } + + /** + * The provisioning endpoint URL for this directory. + */ + public Directory withEndpointUrl(String endpointUrl) { + Utils.checkNotNull(endpointUrl, "endpointUrl"); + this.endpointUrl = endpointUrl; + return this; + } + + /** + * The identity provider for this directory. + */ + public Directory withProvider(String provider) { + Utils.checkNotNull(provider, "provider"); + this.provider = provider; + return this; + } + + /** + * Whether the directory is enabled. + */ + public Directory withEnabled(boolean enabled) { + Utils.checkNotNull(enabled, "enabled"); + this.enabled = enabled; + return this; + } + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + public Directory withGroupRoleMappingEnabled(boolean groupRoleMappingEnabled) { + Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); + this.groupRoleMappingEnabled = groupRoleMappingEnabled; + return this; + } + + /** + * Mapping of user attributes to the directory attribute paths they are extracted from. + */ + public Directory withAttributeMapping(Map attributeMapping) { + Utils.checkNotNull(attributeMapping, "attributeMapping"); + this.attributeMapping = attributeMapping; + return this; + } + + /** + * Custom attributes to map from the IdP to the user's profile via directory sync. Requires the custom + * attributes feature to be enabled for the instance. + */ + public Directory withCustomAttributes(List customAttributes) { + Utils.checkNotNull(customAttributes, "customAttributes"); + this.customAttributes = Optional.ofNullable(customAttributes); + return this; + } + + + /** + * Custom attributes to map from the IdP to the user's profile via directory sync. Requires the custom + * attributes feature to be enabled for the instance. + */ + public Directory withCustomAttributes(Optional> customAttributes) { + Utils.checkNotNull(customAttributes, "customAttributes"); + this.customAttributes = customAttributes; + return this; + } + + /** + * The API key for authenticating provisioning requests. Only returned when the directory is created or + * the key is rotated. + */ + public Directory withApiKey(String apiKey) { + Utils.checkNotNull(apiKey, "apiKey"); + this.apiKey = JsonNullable.of(apiKey); + return this; + } + + /** + * The API key for authenticating provisioning requests. Only returned when the directory is created or + * the key is rotated. + */ + public Directory withApiKey(JsonNullable apiKey) { + Utils.checkNotNull(apiKey, "apiKey"); + this.apiKey = apiKey; + return this; + } + + /** + * Unix timestamp when the directory was created. + */ + public Directory withCreatedAt(long createdAt) { + Utils.checkNotNull(createdAt, "createdAt"); + this.createdAt = createdAt; + return this; + } + + /** + * Unix timestamp when the directory was last updated. + */ + public Directory withUpdatedAt(long updatedAt) { + Utils.checkNotNull(updatedAt, "updatedAt"); + this.updatedAt = updatedAt; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Directory other = (Directory) o; + return + Utils.enhancedDeepEquals(this.object, other.object) && + Utils.enhancedDeepEquals(this.id, other.id) && + Utils.enhancedDeepEquals(this.name, other.name) && + Utils.enhancedDeepEquals(this.enterpriseConnectionId, other.enterpriseConnectionId) && + Utils.enhancedDeepEquals(this.endpointUrl, other.endpointUrl) && + Utils.enhancedDeepEquals(this.provider, other.provider) && + Utils.enhancedDeepEquals(this.enabled, other.enabled) && + Utils.enhancedDeepEquals(this.groupRoleMappingEnabled, other.groupRoleMappingEnabled) && + Utils.enhancedDeepEquals(this.attributeMapping, other.attributeMapping) && + Utils.enhancedDeepEquals(this.customAttributes, other.customAttributes) && + Utils.enhancedDeepEquals(this.apiKey, other.apiKey) && + Utils.enhancedDeepEquals(this.createdAt, other.createdAt) && + Utils.enhancedDeepEquals(this.updatedAt, other.updatedAt); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + object, id, name, + enterpriseConnectionId, endpointUrl, provider, + enabled, groupRoleMappingEnabled, attributeMapping, + customAttributes, apiKey, createdAt, + updatedAt); + } + + @Override + public String toString() { + return Utils.toString(Directory.class, + "object", object, + "id", id, + "name", name, + "enterpriseConnectionId", enterpriseConnectionId, + "endpointUrl", endpointUrl, + "provider", provider, + "enabled", enabled, + "groupRoleMappingEnabled", groupRoleMappingEnabled, + "attributeMapping", attributeMapping, + "customAttributes", customAttributes, + "apiKey", apiKey, + "createdAt", createdAt, + "updatedAt", updatedAt); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private DirectoryObject object; + + private String id; + + private String name; + + private JsonNullable enterpriseConnectionId = JsonNullable.undefined(); + + private String endpointUrl; + + private String provider; + + private Boolean enabled; + + private Boolean groupRoleMappingEnabled; + + private Map attributeMapping; + + private Optional> customAttributes = Optional.empty(); + + private JsonNullable apiKey = JsonNullable.undefined(); + + private Long createdAt; + + private Long updatedAt; + + private Builder() { + // force use of static builder() method + } + + + /** + * String representing the object's type. Always "directory". + */ + public Builder object(DirectoryObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + + /** + * Unique identifier for the directory. + */ + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + + /** + * A human-friendly name for the directory. + */ + public Builder name(String name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + + /** + * The ID of the associated enterprise connection. + */ + public Builder enterpriseConnectionId(String enterpriseConnectionId) { + Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); + this.enterpriseConnectionId = JsonNullable.of(enterpriseConnectionId); + return this; + } + + /** + * The ID of the associated enterprise connection. + */ + public Builder enterpriseConnectionId(JsonNullable enterpriseConnectionId) { + Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); + this.enterpriseConnectionId = enterpriseConnectionId; + return this; + } + + + /** + * The provisioning endpoint URL for this directory. + */ + public Builder endpointUrl(String endpointUrl) { + Utils.checkNotNull(endpointUrl, "endpointUrl"); + this.endpointUrl = endpointUrl; + return this; + } + + + /** + * The identity provider for this directory. + */ + public Builder provider(String provider) { + Utils.checkNotNull(provider, "provider"); + this.provider = provider; + return this; + } + + + /** + * Whether the directory is enabled. + */ + public Builder enabled(boolean enabled) { + Utils.checkNotNull(enabled, "enabled"); + this.enabled = enabled; + return this; + } + + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + public Builder groupRoleMappingEnabled(boolean groupRoleMappingEnabled) { + Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); + this.groupRoleMappingEnabled = groupRoleMappingEnabled; + return this; + } + + + /** + * Mapping of user attributes to the directory attribute paths they are extracted from. + */ + public Builder attributeMapping(Map attributeMapping) { + Utils.checkNotNull(attributeMapping, "attributeMapping"); + this.attributeMapping = attributeMapping; + return this; + } + + + /** + * Custom attributes to map from the IdP to the user's profile via directory sync. Requires the custom + * attributes feature to be enabled for the instance. + */ + public Builder customAttributes(List customAttributes) { + Utils.checkNotNull(customAttributes, "customAttributes"); + this.customAttributes = Optional.ofNullable(customAttributes); + return this; + } + + /** + * Custom attributes to map from the IdP to the user's profile via directory sync. Requires the custom + * attributes feature to be enabled for the instance. + */ + public Builder customAttributes(Optional> customAttributes) { + Utils.checkNotNull(customAttributes, "customAttributes"); + this.customAttributes = customAttributes; + return this; + } + + + /** + * The API key for authenticating provisioning requests. Only returned when the directory is created or + * the key is rotated. + */ + public Builder apiKey(String apiKey) { + Utils.checkNotNull(apiKey, "apiKey"); + this.apiKey = JsonNullable.of(apiKey); + return this; + } + + /** + * The API key for authenticating provisioning requests. Only returned when the directory is created or + * the key is rotated. + */ + public Builder apiKey(JsonNullable apiKey) { + Utils.checkNotNull(apiKey, "apiKey"); + this.apiKey = apiKey; + return this; + } + + + /** + * Unix timestamp when the directory was created. + */ + public Builder createdAt(long createdAt) { + Utils.checkNotNull(createdAt, "createdAt"); + this.createdAt = createdAt; + return this; + } + + + /** + * Unix timestamp when the directory was last updated. + */ + public Builder updatedAt(long updatedAt) { + Utils.checkNotNull(updatedAt, "updatedAt"); + this.updatedAt = updatedAt; + return this; + } + + public Directory build() { + + return new Directory( + object, id, name, + enterpriseConnectionId, endpointUrl, provider, + enabled, groupRoleMappingEnabled, attributeMapping, + customAttributes, apiKey, createdAt, + updatedAt); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/DirectoryCustomAttributes.java b/src/main/java/com/clerk/backend_api/models/components/DirectoryCustomAttributes.java new file mode 100644 index 00000000..7ddb4305 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/DirectoryCustomAttributes.java @@ -0,0 +1,438 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Boolean; +import java.lang.Override; +import java.lang.String; +import java.util.Optional; + + +public class DirectoryCustomAttributes { + /** + * Display name for the custom attribute + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + private Optional name; + + /** + * Key used to store the attribute in the user's public/private/unsafe metadata + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + private Optional key; + + /** + * Path to extract the attribute value from SSO claims (SAML assertions or OIDC claims) + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("sso_path") + private Optional ssoPath; + + /** + * The legacy name for `directory_path`. Carries the same value. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("scim_path") + private Optional scimPath; + + /** + * GJSON path to extract the attribute value from directory sync user resources + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory_path") + private Optional directoryPath; + + /** + * When true, the attribute supports multiple values; values from the IdP are written to + * public_metadata as an array. Defaults to false. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("multi_valued") + private Optional multiValued; + + @JsonCreator + public DirectoryCustomAttributes( + @JsonProperty("name") Optional name, + @JsonProperty("key") Optional key, + @JsonProperty("sso_path") Optional ssoPath, + @JsonProperty("scim_path") Optional scimPath, + @JsonProperty("directory_path") Optional directoryPath, + @JsonProperty("multi_valued") Optional multiValued) { + Utils.checkNotNull(name, "name"); + Utils.checkNotNull(key, "key"); + Utils.checkNotNull(ssoPath, "ssoPath"); + Utils.checkNotNull(scimPath, "scimPath"); + Utils.checkNotNull(directoryPath, "directoryPath"); + Utils.checkNotNull(multiValued, "multiValued"); + this.name = name; + this.key = key; + this.ssoPath = ssoPath; + this.scimPath = scimPath; + this.directoryPath = directoryPath; + this.multiValued = multiValued; + } + + public DirectoryCustomAttributes() { + this(Optional.empty(), Optional.empty(), Optional.empty(), + Optional.empty(), Optional.empty(), Optional.empty()); + } + + /** + * Display name for the custom attribute + */ + @JsonIgnore + public Optional name() { + return name; + } + + /** + * Key used to store the attribute in the user's public/private/unsafe metadata + */ + @JsonIgnore + public Optional key() { + return key; + } + + /** + * Path to extract the attribute value from SSO claims (SAML assertions or OIDC claims) + */ + @JsonIgnore + public Optional ssoPath() { + return ssoPath; + } + + /** + * The legacy name for `directory_path`. Carries the same value. + */ + @JsonIgnore + public Optional scimPath() { + return scimPath; + } + + /** + * GJSON path to extract the attribute value from directory sync user resources + */ + @JsonIgnore + public Optional directoryPath() { + return directoryPath; + } + + /** + * When true, the attribute supports multiple values; values from the IdP are written to + * public_metadata as an array. Defaults to false. + */ + @JsonIgnore + public Optional multiValued() { + return multiValued; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * Display name for the custom attribute + */ + public DirectoryCustomAttributes withName(String name) { + Utils.checkNotNull(name, "name"); + this.name = Optional.ofNullable(name); + return this; + } + + + /** + * Display name for the custom attribute + */ + public DirectoryCustomAttributes withName(Optional name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + /** + * Key used to store the attribute in the user's public/private/unsafe metadata + */ + public DirectoryCustomAttributes withKey(String key) { + Utils.checkNotNull(key, "key"); + this.key = Optional.ofNullable(key); + return this; + } + + + /** + * Key used to store the attribute in the user's public/private/unsafe metadata + */ + public DirectoryCustomAttributes withKey(Optional key) { + Utils.checkNotNull(key, "key"); + this.key = key; + return this; + } + + /** + * Path to extract the attribute value from SSO claims (SAML assertions or OIDC claims) + */ + public DirectoryCustomAttributes withSsoPath(String ssoPath) { + Utils.checkNotNull(ssoPath, "ssoPath"); + this.ssoPath = Optional.ofNullable(ssoPath); + return this; + } + + + /** + * Path to extract the attribute value from SSO claims (SAML assertions or OIDC claims) + */ + public DirectoryCustomAttributes withSsoPath(Optional ssoPath) { + Utils.checkNotNull(ssoPath, "ssoPath"); + this.ssoPath = ssoPath; + return this; + } + + /** + * The legacy name for `directory_path`. Carries the same value. + */ + public DirectoryCustomAttributes withScimPath(String scimPath) { + Utils.checkNotNull(scimPath, "scimPath"); + this.scimPath = Optional.ofNullable(scimPath); + return this; + } + + + /** + * The legacy name for `directory_path`. Carries the same value. + */ + public DirectoryCustomAttributes withScimPath(Optional scimPath) { + Utils.checkNotNull(scimPath, "scimPath"); + this.scimPath = scimPath; + return this; + } + + /** + * GJSON path to extract the attribute value from directory sync user resources + */ + public DirectoryCustomAttributes withDirectoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + + /** + * GJSON path to extract the attribute value from directory sync user resources + */ + public DirectoryCustomAttributes withDirectoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + + /** + * When true, the attribute supports multiple values; values from the IdP are written to + * public_metadata as an array. Defaults to false. + */ + public DirectoryCustomAttributes withMultiValued(boolean multiValued) { + Utils.checkNotNull(multiValued, "multiValued"); + this.multiValued = Optional.ofNullable(multiValued); + return this; + } + + + /** + * When true, the attribute supports multiple values; values from the IdP are written to + * public_metadata as an array. Defaults to false. + */ + public DirectoryCustomAttributes withMultiValued(Optional multiValued) { + Utils.checkNotNull(multiValued, "multiValued"); + this.multiValued = multiValued; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DirectoryCustomAttributes other = (DirectoryCustomAttributes) o; + return + Utils.enhancedDeepEquals(this.name, other.name) && + Utils.enhancedDeepEquals(this.key, other.key) && + Utils.enhancedDeepEquals(this.ssoPath, other.ssoPath) && + Utils.enhancedDeepEquals(this.scimPath, other.scimPath) && + Utils.enhancedDeepEquals(this.directoryPath, other.directoryPath) && + Utils.enhancedDeepEquals(this.multiValued, other.multiValued); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + name, key, ssoPath, + scimPath, directoryPath, multiValued); + } + + @Override + public String toString() { + return Utils.toString(DirectoryCustomAttributes.class, + "name", name, + "key", key, + "ssoPath", ssoPath, + "scimPath", scimPath, + "directoryPath", directoryPath, + "multiValued", multiValued); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private Optional name = Optional.empty(); + + private Optional key = Optional.empty(); + + private Optional ssoPath = Optional.empty(); + + private Optional scimPath = Optional.empty(); + + private Optional directoryPath = Optional.empty(); + + private Optional multiValued = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * Display name for the custom attribute + */ + public Builder name(String name) { + Utils.checkNotNull(name, "name"); + this.name = Optional.ofNullable(name); + return this; + } + + /** + * Display name for the custom attribute + */ + public Builder name(Optional name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + + /** + * Key used to store the attribute in the user's public/private/unsafe metadata + */ + public Builder key(String key) { + Utils.checkNotNull(key, "key"); + this.key = Optional.ofNullable(key); + return this; + } + + /** + * Key used to store the attribute in the user's public/private/unsafe metadata + */ + public Builder key(Optional key) { + Utils.checkNotNull(key, "key"); + this.key = key; + return this; + } + + + /** + * Path to extract the attribute value from SSO claims (SAML assertions or OIDC claims) + */ + public Builder ssoPath(String ssoPath) { + Utils.checkNotNull(ssoPath, "ssoPath"); + this.ssoPath = Optional.ofNullable(ssoPath); + return this; + } + + /** + * Path to extract the attribute value from SSO claims (SAML assertions or OIDC claims) + */ + public Builder ssoPath(Optional ssoPath) { + Utils.checkNotNull(ssoPath, "ssoPath"); + this.ssoPath = ssoPath; + return this; + } + + + /** + * The legacy name for `directory_path`. Carries the same value. + */ + public Builder scimPath(String scimPath) { + Utils.checkNotNull(scimPath, "scimPath"); + this.scimPath = Optional.ofNullable(scimPath); + return this; + } + + /** + * The legacy name for `directory_path`. Carries the same value. + */ + public Builder scimPath(Optional scimPath) { + Utils.checkNotNull(scimPath, "scimPath"); + this.scimPath = scimPath; + return this; + } + + + /** + * GJSON path to extract the attribute value from directory sync user resources + */ + public Builder directoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + /** + * GJSON path to extract the attribute value from directory sync user resources + */ + public Builder directoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + + + /** + * When true, the attribute supports multiple values; values from the IdP are written to + * public_metadata as an array. Defaults to false. + */ + public Builder multiValued(boolean multiValued) { + Utils.checkNotNull(multiValued, "multiValued"); + this.multiValued = Optional.ofNullable(multiValued); + return this; + } + + /** + * When true, the attribute supports multiple values; values from the IdP are written to + * public_metadata as an array. Defaults to false. + */ + public Builder multiValued(Optional multiValued) { + Utils.checkNotNull(multiValued, "multiValued"); + this.multiValued = multiValued; + return this; + } + + public DirectoryCustomAttributes build() { + + return new DirectoryCustomAttributes( + name, key, ssoPath, + scimPath, directoryPath, multiValued); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMapping.java b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMapping.java new file mode 100644 index 00000000..72ddaca1 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMapping.java @@ -0,0 +1,583 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.Optional; + +/** + * DirectoryGroupRoleMapping + * + *

A mapping from a directory group to an organization role. Members of the group are assigned the + * role; the lowest-precedence match wins when a user belongs to multiple mapped groups. + */ +public class DirectoryGroupRoleMapping { + /** + * String representing the object's type. Always "directory_group_role_mapping". + */ + @JsonProperty("object") + private DirectoryGroupRoleMappingObject object; + + /** + * Unique identifier for the directory group role mapping. + */ + @JsonProperty("id") + private String id; + + /** + * The ID of the directory this mapping belongs to. + */ + @JsonProperty("directory_id") + private String directoryId; + + /** + * The legacy name for `directory_id`. Carries the same value. + */ + @JsonProperty("scim_directory_id") + private String scimDirectoryId; + + /** + * The group ID from the identity provider. + */ + @JsonProperty("directory_group_id") + private String directoryGroupId; + + /** + * The legacy name for `directory_group_id`. Carries the same value. + */ + @JsonProperty("scim_group_id") + private String scimGroupId; + + /** + * The display name of the group, as reported by the identity provider. + */ + @JsonProperty("directory_group_display_name") + private String directoryGroupDisplayName; + + /** + * The legacy name for `directory_group_display_name`. Carries the same value. + */ + @JsonProperty("scim_group_display_name") + private String scimGroupDisplayName; + + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("role") + private Optional role; + + /** + * Mapping precedence, starting at 1. Lower values take priority when a user belongs to multiple mapped + * groups. + */ + @JsonProperty("precedence") + private long precedence; + + /** + * Unix timestamp (milliseconds) of when the mapping was created. + */ + @JsonProperty("created_at") + private long createdAt; + + /** + * Unix timestamp (milliseconds) of when the mapping was last updated. + */ + @JsonProperty("updated_at") + private long updatedAt; + + @JsonCreator + public DirectoryGroupRoleMapping( + @JsonProperty("object") DirectoryGroupRoleMappingObject object, + @JsonProperty("id") String id, + @JsonProperty("directory_id") String directoryId, + @JsonProperty("scim_directory_id") String scimDirectoryId, + @JsonProperty("directory_group_id") String directoryGroupId, + @JsonProperty("scim_group_id") String scimGroupId, + @JsonProperty("directory_group_display_name") String directoryGroupDisplayName, + @JsonProperty("scim_group_display_name") String scimGroupDisplayName, + @JsonProperty("role") Optional role, + @JsonProperty("precedence") long precedence, + @JsonProperty("created_at") long createdAt, + @JsonProperty("updated_at") long updatedAt) { + Utils.checkNotNull(object, "object"); + Utils.checkNotNull(id, "id"); + Utils.checkNotNull(directoryId, "directoryId"); + Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + Utils.checkNotNull(scimGroupId, "scimGroupId"); + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + Utils.checkNotNull(scimGroupDisplayName, "scimGroupDisplayName"); + Utils.checkNotNull(role, "role"); + Utils.checkNotNull(precedence, "precedence"); + Utils.checkNotNull(createdAt, "createdAt"); + Utils.checkNotNull(updatedAt, "updatedAt"); + this.object = object; + this.id = id; + this.directoryId = directoryId; + this.scimDirectoryId = scimDirectoryId; + this.directoryGroupId = directoryGroupId; + this.scimGroupId = scimGroupId; + this.directoryGroupDisplayName = directoryGroupDisplayName; + this.scimGroupDisplayName = scimGroupDisplayName; + this.role = role; + this.precedence = precedence; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + } + + public DirectoryGroupRoleMapping( + DirectoryGroupRoleMappingObject object, + String id, + String directoryId, + String scimDirectoryId, + String directoryGroupId, + String scimGroupId, + String directoryGroupDisplayName, + String scimGroupDisplayName, + long precedence, + long createdAt, + long updatedAt) { + this(object, id, directoryId, + scimDirectoryId, directoryGroupId, scimGroupId, + directoryGroupDisplayName, scimGroupDisplayName, Optional.empty(), + precedence, createdAt, updatedAt); + } + + /** + * String representing the object's type. Always "directory_group_role_mapping". + */ + @JsonIgnore + public DirectoryGroupRoleMappingObject object() { + return object; + } + + /** + * Unique identifier for the directory group role mapping. + */ + @JsonIgnore + public String id() { + return id; + } + + /** + * The ID of the directory this mapping belongs to. + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + + /** + * The legacy name for `directory_id`. Carries the same value. + */ + @JsonIgnore + public String scimDirectoryId() { + return scimDirectoryId; + } + + /** + * The group ID from the identity provider. + */ + @JsonIgnore + public String directoryGroupId() { + return directoryGroupId; + } + + /** + * The legacy name for `directory_group_id`. Carries the same value. + */ + @JsonIgnore + public String scimGroupId() { + return scimGroupId; + } + + /** + * The display name of the group, as reported by the identity provider. + */ + @JsonIgnore + public String directoryGroupDisplayName() { + return directoryGroupDisplayName; + } + + /** + * The legacy name for `directory_group_display_name`. Carries the same value. + */ + @JsonIgnore + public String scimGroupDisplayName() { + return scimGroupDisplayName; + } + + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional role() { + return (Optional) role; + } + + /** + * Mapping precedence, starting at 1. Lower values take priority when a user belongs to multiple mapped + * groups. + */ + @JsonIgnore + public long precedence() { + return precedence; + } + + /** + * Unix timestamp (milliseconds) of when the mapping was created. + */ + @JsonIgnore + public long createdAt() { + return createdAt; + } + + /** + * Unix timestamp (milliseconds) of when the mapping was last updated. + */ + @JsonIgnore + public long updatedAt() { + return updatedAt; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * String representing the object's type. Always "directory_group_role_mapping". + */ + public DirectoryGroupRoleMapping withObject(DirectoryGroupRoleMappingObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + /** + * Unique identifier for the directory group role mapping. + */ + public DirectoryGroupRoleMapping withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + /** + * The ID of the directory this mapping belongs to. + */ + public DirectoryGroupRoleMapping withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + /** + * The legacy name for `directory_id`. Carries the same value. + */ + public DirectoryGroupRoleMapping withScimDirectoryId(String scimDirectoryId) { + Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); + this.scimDirectoryId = scimDirectoryId; + return this; + } + + /** + * The group ID from the identity provider. + */ + public DirectoryGroupRoleMapping withDirectoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + + /** + * The legacy name for `directory_group_id`. Carries the same value. + */ + public DirectoryGroupRoleMapping withScimGroupId(String scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = scimGroupId; + return this; + } + + /** + * The display name of the group, as reported by the identity provider. + */ + public DirectoryGroupRoleMapping withDirectoryGroupDisplayName(String directoryGroupDisplayName) { + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + this.directoryGroupDisplayName = directoryGroupDisplayName; + return this; + } + + /** + * The legacy name for `directory_group_display_name`. Carries the same value. + */ + public DirectoryGroupRoleMapping withScimGroupDisplayName(String scimGroupDisplayName) { + Utils.checkNotNull(scimGroupDisplayName, "scimGroupDisplayName"); + this.scimGroupDisplayName = scimGroupDisplayName; + return this; + } + + public DirectoryGroupRoleMapping withRole(Role role) { + Utils.checkNotNull(role, "role"); + this.role = Optional.ofNullable(role); + return this; + } + + + public DirectoryGroupRoleMapping withRole(Optional role) { + Utils.checkNotNull(role, "role"); + this.role = role; + return this; + } + + /** + * Mapping precedence, starting at 1. Lower values take priority when a user belongs to multiple mapped + * groups. + */ + public DirectoryGroupRoleMapping withPrecedence(long precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = precedence; + return this; + } + + /** + * Unix timestamp (milliseconds) of when the mapping was created. + */ + public DirectoryGroupRoleMapping withCreatedAt(long createdAt) { + Utils.checkNotNull(createdAt, "createdAt"); + this.createdAt = createdAt; + return this; + } + + /** + * Unix timestamp (milliseconds) of when the mapping was last updated. + */ + public DirectoryGroupRoleMapping withUpdatedAt(long updatedAt) { + Utils.checkNotNull(updatedAt, "updatedAt"); + this.updatedAt = updatedAt; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DirectoryGroupRoleMapping other = (DirectoryGroupRoleMapping) o; + return + Utils.enhancedDeepEquals(this.object, other.object) && + Utils.enhancedDeepEquals(this.id, other.id) && + Utils.enhancedDeepEquals(this.directoryId, other.directoryId) && + Utils.enhancedDeepEquals(this.scimDirectoryId, other.scimDirectoryId) && + Utils.enhancedDeepEquals(this.directoryGroupId, other.directoryGroupId) && + Utils.enhancedDeepEquals(this.scimGroupId, other.scimGroupId) && + Utils.enhancedDeepEquals(this.directoryGroupDisplayName, other.directoryGroupDisplayName) && + Utils.enhancedDeepEquals(this.scimGroupDisplayName, other.scimGroupDisplayName) && + Utils.enhancedDeepEquals(this.role, other.role) && + Utils.enhancedDeepEquals(this.precedence, other.precedence) && + Utils.enhancedDeepEquals(this.createdAt, other.createdAt) && + Utils.enhancedDeepEquals(this.updatedAt, other.updatedAt); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + object, id, directoryId, + scimDirectoryId, directoryGroupId, scimGroupId, + directoryGroupDisplayName, scimGroupDisplayName, role, + precedence, createdAt, updatedAt); + } + + @Override + public String toString() { + return Utils.toString(DirectoryGroupRoleMapping.class, + "object", object, + "id", id, + "directoryId", directoryId, + "scimDirectoryId", scimDirectoryId, + "directoryGroupId", directoryGroupId, + "scimGroupId", scimGroupId, + "directoryGroupDisplayName", directoryGroupDisplayName, + "scimGroupDisplayName", scimGroupDisplayName, + "role", role, + "precedence", precedence, + "createdAt", createdAt, + "updatedAt", updatedAt); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private DirectoryGroupRoleMappingObject object; + + private String id; + + private String directoryId; + + private String scimDirectoryId; + + private String directoryGroupId; + + private String scimGroupId; + + private String directoryGroupDisplayName; + + private String scimGroupDisplayName; + + private Optional role = Optional.empty(); + + private Long precedence; + + private Long createdAt; + + private Long updatedAt; + + private Builder() { + // force use of static builder() method + } + + + /** + * String representing the object's type. Always "directory_group_role_mapping". + */ + public Builder object(DirectoryGroupRoleMappingObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + + /** + * Unique identifier for the directory group role mapping. + */ + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + + /** + * The ID of the directory this mapping belongs to. + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + + /** + * The legacy name for `directory_id`. Carries the same value. + */ + public Builder scimDirectoryId(String scimDirectoryId) { + Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); + this.scimDirectoryId = scimDirectoryId; + return this; + } + + + /** + * The group ID from the identity provider. + */ + public Builder directoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + + + /** + * The legacy name for `directory_group_id`. Carries the same value. + */ + public Builder scimGroupId(String scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = scimGroupId; + return this; + } + + + /** + * The display name of the group, as reported by the identity provider. + */ + public Builder directoryGroupDisplayName(String directoryGroupDisplayName) { + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + this.directoryGroupDisplayName = directoryGroupDisplayName; + return this; + } + + + /** + * The legacy name for `directory_group_display_name`. Carries the same value. + */ + public Builder scimGroupDisplayName(String scimGroupDisplayName) { + Utils.checkNotNull(scimGroupDisplayName, "scimGroupDisplayName"); + this.scimGroupDisplayName = scimGroupDisplayName; + return this; + } + + + public Builder role(Role role) { + Utils.checkNotNull(role, "role"); + this.role = Optional.ofNullable(role); + return this; + } + + public Builder role(Optional role) { + Utils.checkNotNull(role, "role"); + this.role = role; + return this; + } + + + /** + * Mapping precedence, starting at 1. Lower values take priority when a user belongs to multiple mapped + * groups. + */ + public Builder precedence(long precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = precedence; + return this; + } + + + /** + * Unix timestamp (milliseconds) of when the mapping was created. + */ + public Builder createdAt(long createdAt) { + Utils.checkNotNull(createdAt, "createdAt"); + this.createdAt = createdAt; + return this; + } + + + /** + * Unix timestamp (milliseconds) of when the mapping was last updated. + */ + public Builder updatedAt(long updatedAt) { + Utils.checkNotNull(updatedAt, "updatedAt"); + this.updatedAt = updatedAt; + return this; + } + + public DirectoryGroupRoleMapping build() { + + return new DirectoryGroupRoleMapping( + object, id, directoryId, + scimDirectoryId, directoryGroupId, scimGroupId, + directoryGroupDisplayName, scimGroupDisplayName, role, + precedence, createdAt, updatedAt); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingDeleted.java b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingDeleted.java new file mode 100644 index 00000000..2ac59a60 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingDeleted.java @@ -0,0 +1,171 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.LazySingletonValue; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.type.TypeReference; +import java.lang.Boolean; +import java.lang.Override; +import java.lang.String; + +/** + * DirectoryGroupRoleMappingDeleted + * + *

A directory group role mapping was deleted. + */ +public class DirectoryGroupRoleMappingDeleted { + /** + * String representing the object's type. + */ + @JsonProperty("object") + private DirectoryGroupRoleMappingDeletedObject object; + + /** + * The ID of the deleted directory group role mapping. + */ + @JsonProperty("id") + private String id; + + /** + * Whether the directory group role mapping was successfully deleted. + */ + @JsonProperty("deleted") + private boolean deleted; + + @JsonCreator + public DirectoryGroupRoleMappingDeleted( + @JsonProperty("object") DirectoryGroupRoleMappingDeletedObject object, + @JsonProperty("id") String id) { + Utils.checkNotNull(object, "object"); + Utils.checkNotNull(id, "id"); + this.object = object; + this.id = id; + this.deleted = Builder._SINGLETON_VALUE_Deleted.value(); + } + + /** + * String representing the object's type. + */ + @JsonIgnore + public DirectoryGroupRoleMappingDeletedObject object() { + return object; + } + + /** + * The ID of the deleted directory group role mapping. + */ + @JsonIgnore + public String id() { + return id; + } + + /** + * Whether the directory group role mapping was successfully deleted. + */ + @JsonIgnore + public boolean deleted() { + return deleted; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * String representing the object's type. + */ + public DirectoryGroupRoleMappingDeleted withObject(DirectoryGroupRoleMappingDeletedObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + /** + * The ID of the deleted directory group role mapping. + */ + public DirectoryGroupRoleMappingDeleted withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DirectoryGroupRoleMappingDeleted other = (DirectoryGroupRoleMappingDeleted) o; + return + Utils.enhancedDeepEquals(this.object, other.object) && + Utils.enhancedDeepEquals(this.id, other.id) && + Utils.enhancedDeepEquals(this.deleted, other.deleted); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + object, id, deleted); + } + + @Override + public String toString() { + return Utils.toString(DirectoryGroupRoleMappingDeleted.class, + "object", object, + "id", id, + "deleted", deleted); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private DirectoryGroupRoleMappingDeletedObject object; + + private String id; + + private Builder() { + // force use of static builder() method + } + + + /** + * String representing the object's type. + */ + public Builder object(DirectoryGroupRoleMappingDeletedObject object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + + /** + * The ID of the deleted directory group role mapping. + */ + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + public DirectoryGroupRoleMappingDeleted build() { + + return new DirectoryGroupRoleMappingDeleted( + object, id); + } + + + private static final LazySingletonValue _SINGLETON_VALUE_Deleted = + new LazySingletonValue<>( + "deleted", + "true", + new TypeReference() {}); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingDeletedObject.java b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingDeletedObject.java new file mode 100644 index 00000000..bd494c69 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingDeletedObject.java @@ -0,0 +1,39 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +/** + * DirectoryGroupRoleMappingDeletedObject + * + *

String representing the object's type. + */ +public enum DirectoryGroupRoleMappingDeletedObject { + DIRECTORY_GROUP_ROLE_MAPPING("directory_group_role_mapping"); + + @JsonValue + private final String value; + + DirectoryGroupRoleMappingDeletedObject(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (DirectoryGroupRoleMappingDeletedObject o: DirectoryGroupRoleMappingDeletedObject.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingList.java b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingList.java new file mode 100644 index 00000000..d49a9b08 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingList.java @@ -0,0 +1,136 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.util.List; + +/** + * DirectoryGroupRoleMappingList + * + *

A list of directory group role mappings, ordered by precedence. + */ +public class DirectoryGroupRoleMappingList { + + @JsonProperty("data") + private List data; + + /** + * Total number of directory group role mappings in the directory. + */ + @JsonProperty("total_count") + private long totalCount; + + @JsonCreator + public DirectoryGroupRoleMappingList( + @JsonProperty("data") List data, + @JsonProperty("total_count") long totalCount) { + Utils.checkNotNull(data, "data"); + Utils.checkNotNull(totalCount, "totalCount"); + this.data = data; + this.totalCount = totalCount; + } + + @JsonIgnore + public List data() { + return data; + } + + /** + * Total number of directory group role mappings in the directory. + */ + @JsonIgnore + public long totalCount() { + return totalCount; + } + + public static Builder builder() { + return new Builder(); + } + + + public DirectoryGroupRoleMappingList withData(List data) { + Utils.checkNotNull(data, "data"); + this.data = data; + return this; + } + + /** + * Total number of directory group role mappings in the directory. + */ + public DirectoryGroupRoleMappingList withTotalCount(long totalCount) { + Utils.checkNotNull(totalCount, "totalCount"); + this.totalCount = totalCount; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DirectoryGroupRoleMappingList other = (DirectoryGroupRoleMappingList) o; + return + Utils.enhancedDeepEquals(this.data, other.data) && + Utils.enhancedDeepEquals(this.totalCount, other.totalCount); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + data, totalCount); + } + + @Override + public String toString() { + return Utils.toString(DirectoryGroupRoleMappingList.class, + "data", data, + "totalCount", totalCount); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private List data; + + private Long totalCount; + + private Builder() { + // force use of static builder() method + } + + + public Builder data(List data) { + Utils.checkNotNull(data, "data"); + this.data = data; + return this; + } + + + /** + * Total number of directory group role mappings in the directory. + */ + public Builder totalCount(long totalCount) { + Utils.checkNotNull(totalCount, "totalCount"); + this.totalCount = totalCount; + return this; + } + + public DirectoryGroupRoleMappingList build() { + + return new DirectoryGroupRoleMappingList( + data, totalCount); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingObject.java b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingObject.java new file mode 100644 index 00000000..d44a3834 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/DirectoryGroupRoleMappingObject.java @@ -0,0 +1,39 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +/** + * DirectoryGroupRoleMappingObject + * + *

String representing the object's type. Always "directory_group_role_mapping". + */ +public enum DirectoryGroupRoleMappingObject { + DIRECTORY_GROUP_ROLE_MAPPING("directory_group_role_mapping"); + + @JsonValue + private final String value; + + DirectoryGroupRoleMappingObject(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (DirectoryGroupRoleMappingObject o: DirectoryGroupRoleMappingObject.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/DirectoryList.java b/src/main/java/com/clerk/backend_api/models/components/DirectoryList.java new file mode 100644 index 00000000..3077e9b7 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/DirectoryList.java @@ -0,0 +1,136 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.util.List; + +/** + * DirectoryList + * + *

A list of directories + */ +public class DirectoryList { + + @JsonProperty("data") + private List data; + + /** + * Total number of directories. + */ + @JsonProperty("total_count") + private long totalCount; + + @JsonCreator + public DirectoryList( + @JsonProperty("data") List data, + @JsonProperty("total_count") long totalCount) { + Utils.checkNotNull(data, "data"); + Utils.checkNotNull(totalCount, "totalCount"); + this.data = data; + this.totalCount = totalCount; + } + + @JsonIgnore + public List data() { + return data; + } + + /** + * Total number of directories. + */ + @JsonIgnore + public long totalCount() { + return totalCount; + } + + public static Builder builder() { + return new Builder(); + } + + + public DirectoryList withData(List data) { + Utils.checkNotNull(data, "data"); + this.data = data; + return this; + } + + /** + * Total number of directories. + */ + public DirectoryList withTotalCount(long totalCount) { + Utils.checkNotNull(totalCount, "totalCount"); + this.totalCount = totalCount; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DirectoryList other = (DirectoryList) o; + return + Utils.enhancedDeepEquals(this.data, other.data) && + Utils.enhancedDeepEquals(this.totalCount, other.totalCount); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + data, totalCount); + } + + @Override + public String toString() { + return Utils.toString(DirectoryList.class, + "data", data, + "totalCount", totalCount); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private List data; + + private Long totalCount; + + private Builder() { + // force use of static builder() method + } + + + public Builder data(List data) { + Utils.checkNotNull(data, "data"); + this.data = data; + return this; + } + + + /** + * Total number of directories. + */ + public Builder totalCount(long totalCount) { + Utils.checkNotNull(totalCount, "totalCount"); + this.totalCount = totalCount; + return this; + } + + public DirectoryList build() { + + return new DirectoryList( + data, totalCount); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/components/DirectoryObject.java b/src/main/java/com/clerk/backend_api/models/components/DirectoryObject.java new file mode 100644 index 00000000..350ba23a --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/DirectoryObject.java @@ -0,0 +1,39 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +/** + * DirectoryObject + * + *

String representing the object's type. Always "directory". + */ +public enum DirectoryObject { + DIRECTORY("directory"); + + @JsonValue + private final String value; + + DirectoryObject(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (DirectoryObject o: DirectoryObject.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/Domain.java b/src/main/java/com/clerk/backend_api/models/components/Domain.java index 039dd8a1..2c5e9958 100644 --- a/src/main/java/com/clerk/backend_api/models/components/Domain.java +++ b/src/main/java/com/clerk/backend_api/models/components/Domain.java @@ -54,11 +54,21 @@ public class Domain { @JsonProperty("development_origin") private String developmentOrigin; - + /** + * Legacy CNAME-only DNS targets. Prefer `dns_targets` when present. + */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("cname_targets") private JsonNullable> cnameTargets; + /** + * The complete typed DNS contract. Consumers should use this field instead of merging it with + * `cname_targets`. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("dns_targets") + private JsonNullable> dnsTargets; + @JsonCreator public Domain( @JsonProperty("object") DomainObject object, @@ -69,7 +79,8 @@ public Domain( @JsonProperty("accounts_portal_url") JsonNullable accountsPortalUrl, @JsonProperty("proxy_url") JsonNullable proxyUrl, @JsonProperty("development_origin") String developmentOrigin, - @JsonProperty("cname_targets") JsonNullable> cnameTargets) { + @JsonProperty("cname_targets") JsonNullable> cnameTargets, + @JsonProperty("dns_targets") JsonNullable> dnsTargets) { Utils.checkNotNull(object, "object"); Utils.checkNotNull(id, "id"); Utils.checkNotNull(name, "name"); @@ -79,6 +90,7 @@ public Domain( Utils.checkNotNull(proxyUrl, "proxyUrl"); Utils.checkNotNull(developmentOrigin, "developmentOrigin"); Utils.checkNotNull(cnameTargets, "cnameTargets"); + Utils.checkNotNull(dnsTargets, "dnsTargets"); this.object = object; this.id = id; this.name = name; @@ -88,6 +100,7 @@ public Domain( this.proxyUrl = proxyUrl; this.developmentOrigin = developmentOrigin; this.cnameTargets = cnameTargets; + this.dnsTargets = dnsTargets; } public Domain( @@ -99,7 +112,8 @@ public Domain( String developmentOrigin) { this(object, id, name, isSatellite, frontendApiUrl, JsonNullable.undefined(), - JsonNullable.undefined(), developmentOrigin, JsonNullable.undefined()); + JsonNullable.undefined(), developmentOrigin, JsonNullable.undefined(), + JsonNullable.undefined()); } @JsonIgnore @@ -145,12 +159,25 @@ public String developmentOrigin() { return developmentOrigin; } + /** + * Legacy CNAME-only DNS targets. Prefer `dns_targets` when present. + */ @SuppressWarnings("unchecked") @JsonIgnore public JsonNullable> cnameTargets() { return (JsonNullable>) cnameTargets; } + /** + * The complete typed DNS contract. Consumers should use this field instead of merging it with + * `cname_targets`. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public JsonNullable> dnsTargets() { + return (JsonNullable>) dnsTargets; + } + public static Builder builder() { return new Builder(); } @@ -222,18 +249,44 @@ public Domain withDevelopmentOrigin(String developmentOrigin) { return this; } + /** + * Legacy CNAME-only DNS targets. Prefer `dns_targets` when present. + */ public Domain withCnameTargets(List cnameTargets) { Utils.checkNotNull(cnameTargets, "cnameTargets"); this.cnameTargets = JsonNullable.of(cnameTargets); return this; } + /** + * Legacy CNAME-only DNS targets. Prefer `dns_targets` when present. + */ public Domain withCnameTargets(JsonNullable> cnameTargets) { Utils.checkNotNull(cnameTargets, "cnameTargets"); this.cnameTargets = cnameTargets; return this; } + /** + * The complete typed DNS contract. Consumers should use this field instead of merging it with + * `cname_targets`. + */ + public Domain withDnsTargets(List dnsTargets) { + Utils.checkNotNull(dnsTargets, "dnsTargets"); + this.dnsTargets = JsonNullable.of(dnsTargets); + return this; + } + + /** + * The complete typed DNS contract. Consumers should use this field instead of merging it with + * `cname_targets`. + */ + public Domain withDnsTargets(JsonNullable> dnsTargets) { + Utils.checkNotNull(dnsTargets, "dnsTargets"); + this.dnsTargets = dnsTargets; + return this; + } + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -252,7 +305,8 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.accountsPortalUrl, other.accountsPortalUrl) && Utils.enhancedDeepEquals(this.proxyUrl, other.proxyUrl) && Utils.enhancedDeepEquals(this.developmentOrigin, other.developmentOrigin) && - Utils.enhancedDeepEquals(this.cnameTargets, other.cnameTargets); + Utils.enhancedDeepEquals(this.cnameTargets, other.cnameTargets) && + Utils.enhancedDeepEquals(this.dnsTargets, other.dnsTargets); } @Override @@ -260,7 +314,8 @@ public int hashCode() { return Utils.enhancedHash( object, id, name, isSatellite, frontendApiUrl, accountsPortalUrl, - proxyUrl, developmentOrigin, cnameTargets); + proxyUrl, developmentOrigin, cnameTargets, + dnsTargets); } @Override @@ -274,7 +329,8 @@ public String toString() { "accountsPortalUrl", accountsPortalUrl, "proxyUrl", proxyUrl, "developmentOrigin", developmentOrigin, - "cnameTargets", cnameTargets); + "cnameTargets", cnameTargets, + "dnsTargets", dnsTargets); } @SuppressWarnings("UnusedReturnValue") @@ -298,6 +354,8 @@ public final static class Builder { private JsonNullable> cnameTargets = JsonNullable.undefined(); + private JsonNullable> dnsTargets = JsonNullable.undefined(); + private Builder() { // force use of static builder() method } @@ -377,24 +435,52 @@ public Builder developmentOrigin(String developmentOrigin) { } + /** + * Legacy CNAME-only DNS targets. Prefer `dns_targets` when present. + */ public Builder cnameTargets(List cnameTargets) { Utils.checkNotNull(cnameTargets, "cnameTargets"); this.cnameTargets = JsonNullable.of(cnameTargets); return this; } + /** + * Legacy CNAME-only DNS targets. Prefer `dns_targets` when present. + */ public Builder cnameTargets(JsonNullable> cnameTargets) { Utils.checkNotNull(cnameTargets, "cnameTargets"); this.cnameTargets = cnameTargets; return this; } + + /** + * The complete typed DNS contract. Consumers should use this field instead of merging it with + * `cname_targets`. + */ + public Builder dnsTargets(List dnsTargets) { + Utils.checkNotNull(dnsTargets, "dnsTargets"); + this.dnsTargets = JsonNullable.of(dnsTargets); + return this; + } + + /** + * The complete typed DNS contract. Consumers should use this field instead of merging it with + * `cname_targets`. + */ + public Builder dnsTargets(JsonNullable> dnsTargets) { + Utils.checkNotNull(dnsTargets, "dnsTargets"); + this.dnsTargets = dnsTargets; + return this; + } + public Domain build() { return new Domain( object, id, name, isSatellite, frontendApiUrl, accountsPortalUrl, - proxyUrl, developmentOrigin, cnameTargets); + proxyUrl, developmentOrigin, cnameTargets, + dnsTargets); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/Effect.java b/src/main/java/com/clerk/backend_api/models/components/Effect.java new file mode 100644 index 00000000..95737678 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/Effect.java @@ -0,0 +1,40 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +/** + * Effect + * + *

The snapshotted discount effect. + */ +public enum Effect { + PERCENTAGE("percentage"), + FIXED_AMOUNT("fixed_amount"); + + @JsonValue + private final String value; + + Effect(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (Effect o: Effect.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/Instance.java b/src/main/java/com/clerk/backend_api/models/components/Instance.java index 56d7ea42..4d1effb7 100644 --- a/src/main/java/com/clerk/backend_api/models/components/Instance.java +++ b/src/main/java/com/clerk/backend_api/models/components/Instance.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; +import java.lang.Boolean; import java.lang.Override; import java.lang.String; import java.lang.SuppressWarnings; @@ -40,27 +41,62 @@ public class Instance { @JsonProperty("allowed_origins") private Optional> allowedOrigins; + /** + * Subdomains of the instance's own domains that may originate requests, when the subdomain allowlist + * is enabled. Production instances only; always empty on a development instance. + */ + @JsonProperty("allowed_subdomains") + private List allowedSubdomains; + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only; always false on a development instance. + */ + @JsonProperty("subdomain_allowlist_enabled") + private boolean subdomainAllowlistEnabled; + + /** + * The ID of the Clerk workspace that owns the instance's application. It is null when the application + * has no owner. + */ + @JsonInclude(Include.ALWAYS) + @JsonProperty("workspace_id") + private Optional workspaceId; + @JsonCreator public Instance( @JsonProperty("object") InstanceObject object, @JsonProperty("id") String id, @JsonProperty("environment_type") String environmentType, - @JsonProperty("allowed_origins") Optional> allowedOrigins) { + @JsonProperty("allowed_origins") Optional> allowedOrigins, + @JsonProperty("allowed_subdomains") List allowedSubdomains, + @JsonProperty("subdomain_allowlist_enabled") boolean subdomainAllowlistEnabled, + @JsonProperty("workspace_id") Optional workspaceId) { Utils.checkNotNull(object, "object"); Utils.checkNotNull(id, "id"); Utils.checkNotNull(environmentType, "environmentType"); Utils.checkNotNull(allowedOrigins, "allowedOrigins"); + Utils.checkNotNull(allowedSubdomains, "allowedSubdomains"); + Utils.checkNotNull(subdomainAllowlistEnabled, "subdomainAllowlistEnabled"); + Utils.checkNotNull(workspaceId, "workspaceId"); this.object = object; this.id = id; this.environmentType = environmentType; this.allowedOrigins = allowedOrigins; + this.allowedSubdomains = allowedSubdomains; + this.subdomainAllowlistEnabled = subdomainAllowlistEnabled; + this.workspaceId = workspaceId; } public Instance( InstanceObject object, String id, - String environmentType) { + String environmentType, + List allowedSubdomains, + boolean subdomainAllowlistEnabled) { this(object, id, environmentType, + Optional.empty(), allowedSubdomains, subdomainAllowlistEnabled, Optional.empty()); } @@ -88,6 +124,34 @@ public Optional> allowedOrigins() { return (Optional>) allowedOrigins; } + /** + * Subdomains of the instance's own domains that may originate requests, when the subdomain allowlist + * is enabled. Production instances only; always empty on a development instance. + */ + @JsonIgnore + public List allowedSubdomains() { + return allowedSubdomains; + } + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only; always false on a development instance. + */ + @JsonIgnore + public boolean subdomainAllowlistEnabled() { + return subdomainAllowlistEnabled; + } + + /** + * The ID of the Clerk workspace that owns the instance's application. It is null when the application + * has no owner. + */ + @JsonIgnore + public Optional workspaceId() { + return workspaceId; + } + public static Builder builder() { return new Builder(); } @@ -127,6 +191,48 @@ public Instance withAllowedOrigins(Optional> allowedOrigi return this; } + /** + * Subdomains of the instance's own domains that may originate requests, when the subdomain allowlist + * is enabled. Production instances only; always empty on a development instance. + */ + public Instance withAllowedSubdomains(List allowedSubdomains) { + Utils.checkNotNull(allowedSubdomains, "allowedSubdomains"); + this.allowedSubdomains = allowedSubdomains; + return this; + } + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only; always false on a development instance. + */ + public Instance withSubdomainAllowlistEnabled(boolean subdomainAllowlistEnabled) { + Utils.checkNotNull(subdomainAllowlistEnabled, "subdomainAllowlistEnabled"); + this.subdomainAllowlistEnabled = subdomainAllowlistEnabled; + return this; + } + + /** + * The ID of the Clerk workspace that owns the instance's application. It is null when the application + * has no owner. + */ + public Instance withWorkspaceId(String workspaceId) { + Utils.checkNotNull(workspaceId, "workspaceId"); + this.workspaceId = Optional.ofNullable(workspaceId); + return this; + } + + + /** + * The ID of the Clerk workspace that owns the instance's application. It is null when the application + * has no owner. + */ + public Instance withWorkspaceId(Optional workspaceId) { + Utils.checkNotNull(workspaceId, "workspaceId"); + this.workspaceId = workspaceId; + return this; + } + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -140,14 +246,18 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.object, other.object) && Utils.enhancedDeepEquals(this.id, other.id) && Utils.enhancedDeepEquals(this.environmentType, other.environmentType) && - Utils.enhancedDeepEquals(this.allowedOrigins, other.allowedOrigins); + Utils.enhancedDeepEquals(this.allowedOrigins, other.allowedOrigins) && + Utils.enhancedDeepEquals(this.allowedSubdomains, other.allowedSubdomains) && + Utils.enhancedDeepEquals(this.subdomainAllowlistEnabled, other.subdomainAllowlistEnabled) && + Utils.enhancedDeepEquals(this.workspaceId, other.workspaceId); } @Override public int hashCode() { return Utils.enhancedHash( object, id, environmentType, - allowedOrigins); + allowedOrigins, allowedSubdomains, subdomainAllowlistEnabled, + workspaceId); } @Override @@ -156,7 +266,10 @@ public String toString() { "object", object, "id", id, "environmentType", environmentType, - "allowedOrigins", allowedOrigins); + "allowedOrigins", allowedOrigins, + "allowedSubdomains", allowedSubdomains, + "subdomainAllowlistEnabled", subdomainAllowlistEnabled, + "workspaceId", workspaceId); } @SuppressWarnings("UnusedReturnValue") @@ -170,6 +283,12 @@ public final static class Builder { private Optional> allowedOrigins = Optional.empty(); + private List allowedSubdomains; + + private Boolean subdomainAllowlistEnabled; + + private Optional workspaceId = Optional.empty(); + private Builder() { // force use of static builder() method } @@ -211,11 +330,56 @@ public Builder allowedOrigins(Optional> allowedOrigins) { return this; } + + /** + * Subdomains of the instance's own domains that may originate requests, when the subdomain allowlist + * is enabled. Production instances only; always empty on a development instance. + */ + public Builder allowedSubdomains(List allowedSubdomains) { + Utils.checkNotNull(allowedSubdomains, "allowedSubdomains"); + this.allowedSubdomains = allowedSubdomains; + return this; + } + + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only; always false on a development instance. + */ + public Builder subdomainAllowlistEnabled(boolean subdomainAllowlistEnabled) { + Utils.checkNotNull(subdomainAllowlistEnabled, "subdomainAllowlistEnabled"); + this.subdomainAllowlistEnabled = subdomainAllowlistEnabled; + return this; + } + + + /** + * The ID of the Clerk workspace that owns the instance's application. It is null when the application + * has no owner. + */ + public Builder workspaceId(String workspaceId) { + Utils.checkNotNull(workspaceId, "workspaceId"); + this.workspaceId = Optional.ofNullable(workspaceId); + return this; + } + + /** + * The ID of the Clerk workspace that owns the instance's application. It is null when the application + * has no owner. + */ + public Builder workspaceId(Optional workspaceId) { + Utils.checkNotNull(workspaceId, "workspaceId"); + this.workspaceId = workspaceId; + return this; + } + public Instance build() { return new Instance( object, id, environmentType, - allowedOrigins); + allowedOrigins, allowedSubdomains, subdomainAllowlistEnabled, + workspaceId); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/InstanceProtect.java b/src/main/java/com/clerk/backend_api/models/components/InstanceProtect.java index fbd14116..3fe02b79 100644 --- a/src/main/java/com/clerk/backend_api/models/components/InstanceProtect.java +++ b/src/main/java/com/clerk/backend_api/models/components/InstanceProtect.java @@ -21,7 +21,11 @@ public class InstanceProtect { @JsonProperty("object") private InstanceProtectObject object; - + /** + * Whether Protect rules are enforced on this instance. False does not mean the instance is outside + * Protect — by default it is still evaluated in shadow, where rules are scored and recorded but never + * block. + */ @JsonProperty("rules_enabled") private boolean rulesEnabled; @@ -36,20 +40,40 @@ public class InstanceProtect { @JsonProperty("checks_bypassed") private boolean checksBypassed; + /** + * Whether the Protect system has verified the instance's prerequisite checks. Protect rules are gated + * on checks being verified, bypassed or exempt. + */ + @JsonProperty("checks_verified") + private boolean checksVerified; + + /** + * Whether the instance was created into Protect and so was never subject to the prerequisite checks at + * all. + */ + @JsonProperty("checks_exempt") + private boolean checksExempt; + @JsonCreator public InstanceProtect( @JsonProperty("object") InstanceProtectObject object, @JsonProperty("rules_enabled") boolean rulesEnabled, @JsonProperty("specter_enabled") boolean specterEnabled, - @JsonProperty("checks_bypassed") boolean checksBypassed) { + @JsonProperty("checks_bypassed") boolean checksBypassed, + @JsonProperty("checks_verified") boolean checksVerified, + @JsonProperty("checks_exempt") boolean checksExempt) { Utils.checkNotNull(object, "object"); Utils.checkNotNull(rulesEnabled, "rulesEnabled"); Utils.checkNotNull(specterEnabled, "specterEnabled"); Utils.checkNotNull(checksBypassed, "checksBypassed"); + Utils.checkNotNull(checksVerified, "checksVerified"); + Utils.checkNotNull(checksExempt, "checksExempt"); this.object = object; this.rulesEnabled = rulesEnabled; this.specterEnabled = specterEnabled; this.checksBypassed = checksBypassed; + this.checksVerified = checksVerified; + this.checksExempt = checksExempt; } @JsonIgnore @@ -57,6 +81,11 @@ public InstanceProtectObject object() { return object; } + /** + * Whether Protect rules are enforced on this instance. False does not mean the instance is outside + * Protect — by default it is still evaluated in shadow, where rules are scored and recorded but never + * block. + */ @JsonIgnore public boolean rulesEnabled() { return rulesEnabled; @@ -76,6 +105,24 @@ public boolean checksBypassed() { return checksBypassed; } + /** + * Whether the Protect system has verified the instance's prerequisite checks. Protect rules are gated + * on checks being verified, bypassed or exempt. + */ + @JsonIgnore + public boolean checksVerified() { + return checksVerified; + } + + /** + * Whether the instance was created into Protect and so was never subject to the prerequisite checks at + * all. + */ + @JsonIgnore + public boolean checksExempt() { + return checksExempt; + } + public static Builder builder() { return new Builder(); } @@ -87,6 +134,11 @@ public InstanceProtect withObject(InstanceProtectObject object) { return this; } + /** + * Whether Protect rules are enforced on this instance. False does not mean the instance is outside + * Protect — by default it is still evaluated in shadow, where rules are scored and recorded but never + * block. + */ public InstanceProtect withRulesEnabled(boolean rulesEnabled) { Utils.checkNotNull(rulesEnabled, "rulesEnabled"); this.rulesEnabled = rulesEnabled; @@ -109,6 +161,26 @@ public InstanceProtect withChecksBypassed(boolean checksBypassed) { return this; } + /** + * Whether the Protect system has verified the instance's prerequisite checks. Protect rules are gated + * on checks being verified, bypassed or exempt. + */ + public InstanceProtect withChecksVerified(boolean checksVerified) { + Utils.checkNotNull(checksVerified, "checksVerified"); + this.checksVerified = checksVerified; + return this; + } + + /** + * Whether the instance was created into Protect and so was never subject to the prerequisite checks at + * all. + */ + public InstanceProtect withChecksExempt(boolean checksExempt) { + Utils.checkNotNull(checksExempt, "checksExempt"); + this.checksExempt = checksExempt; + return this; + } + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -122,14 +194,16 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.object, other.object) && Utils.enhancedDeepEquals(this.rulesEnabled, other.rulesEnabled) && Utils.enhancedDeepEquals(this.specterEnabled, other.specterEnabled) && - Utils.enhancedDeepEquals(this.checksBypassed, other.checksBypassed); + Utils.enhancedDeepEquals(this.checksBypassed, other.checksBypassed) && + Utils.enhancedDeepEquals(this.checksVerified, other.checksVerified) && + Utils.enhancedDeepEquals(this.checksExempt, other.checksExempt); } @Override public int hashCode() { return Utils.enhancedHash( object, rulesEnabled, specterEnabled, - checksBypassed); + checksBypassed, checksVerified, checksExempt); } @Override @@ -138,7 +212,9 @@ public String toString() { "object", object, "rulesEnabled", rulesEnabled, "specterEnabled", specterEnabled, - "checksBypassed", checksBypassed); + "checksBypassed", checksBypassed, + "checksVerified", checksVerified, + "checksExempt", checksExempt); } @SuppressWarnings("UnusedReturnValue") @@ -152,6 +228,10 @@ public final static class Builder { private Boolean checksBypassed; + private Boolean checksVerified; + + private Boolean checksExempt; + private Builder() { // force use of static builder() method } @@ -164,6 +244,11 @@ public Builder object(InstanceProtectObject object) { } + /** + * Whether Protect rules are enforced on this instance. False does not mean the instance is outside + * Protect — by default it is still evaluated in shadow, where rules are scored and recorded but never + * block. + */ public Builder rulesEnabled(boolean rulesEnabled) { Utils.checkNotNull(rulesEnabled, "rulesEnabled"); this.rulesEnabled = rulesEnabled; @@ -188,11 +273,33 @@ public Builder checksBypassed(boolean checksBypassed) { return this; } + + /** + * Whether the Protect system has verified the instance's prerequisite checks. Protect rules are gated + * on checks being verified, bypassed or exempt. + */ + public Builder checksVerified(boolean checksVerified) { + Utils.checkNotNull(checksVerified, "checksVerified"); + this.checksVerified = checksVerified; + return this; + } + + + /** + * Whether the instance was created into Protect and so was never subject to the prerequisite checks at + * all. + */ + public Builder checksExempt(boolean checksExempt) { + Utils.checkNotNull(checksExempt, "checksExempt"); + this.checksExempt = checksExempt; + return this; + } + public InstanceProtect build() { return new InstanceProtect( object, rulesEnabled, specterEnabled, - checksBypassed); + checksBypassed, checksVerified, checksExempt); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/InstanceSettings.java b/src/main/java/com/clerk/backend_api/models/components/InstanceSettings.java index 6676160c..efc0523e 100644 --- a/src/main/java/com/clerk/backend_api/models/components/InstanceSettings.java +++ b/src/main/java/com/clerk/backend_api/models/components/InstanceSettings.java @@ -50,9 +50,9 @@ public class InstanceSettings { private Optional progressiveSignUp; /** - * Deprecated. When enabled, production authentication emails for this instance are sent through - * Clerk's legacy managed email delivery path. This setting is being retired; use the instance's - * configured email sending domain instead. + * Deprecated. This setting is retired and no longer affects email delivery; all email is sent through + * the instance's configured email sending domain. The field is preserved for API compatibility only + * and will be removed in a future version. * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ @@ -118,9 +118,9 @@ public Optional progressiveSignUp() { } /** - * Deprecated. When enabled, production authentication emails for this instance are sent through - * Clerk's legacy managed email delivery path. This setting is being retired; use the instance's - * configured email sending domain instead. + * Deprecated. This setting is retired and no longer affects email delivery; all email is sent through + * the instance's configured email sending domain. The field is preserved for API compatibility only + * and will be removed in a future version. * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ @@ -207,9 +207,9 @@ public InstanceSettings withProgressiveSignUp(Optional progressiveSignU } /** - * Deprecated. When enabled, production authentication emails for this instance are sent through - * Clerk's legacy managed email delivery path. This setting is being retired; use the instance's - * configured email sending domain instead. + * Deprecated. This setting is retired and no longer affects email delivery; all email is sent through + * the instance's configured email sending domain. The field is preserved for API compatibility only + * and will be removed in a future version. * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ @@ -222,9 +222,9 @@ public InstanceSettings withEnhancedEmailDeliverability(boolean enhancedEmailDel /** - * Deprecated. When enabled, production authentication emails for this instance are sent through - * Clerk's legacy managed email delivery path. This setting is being retired; use the instance's - * configured email sending domain instead. + * Deprecated. This setting is retired and no longer affects email delivery; all email is sent through + * the instance's configured email sending domain. The field is preserved for API compatibility only + * and will be removed in a future version. * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ @@ -364,9 +364,9 @@ public Builder progressiveSignUp(Optional progressiveSignUp) { /** - * Deprecated. When enabled, production authentication emails for this instance are sent through - * Clerk's legacy managed email delivery path. This setting is being retired; use the instance's - * configured email sending domain instead. + * Deprecated. This setting is retired and no longer affects email delivery; all email is sent through + * the instance's configured email sending domain. The field is preserved for API compatibility only + * and will be removed in a future version. * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ @@ -378,9 +378,9 @@ public Builder enhancedEmailDeliverability(boolean enhancedEmailDeliverability) } /** - * Deprecated. When enabled, production authentication emails for this instance are sent through - * Clerk's legacy managed email delivery path. This setting is being retired; use the instance's - * configured email sending domain instead. + * Deprecated. This setting is retired and no longer affects email delivery; all email is sent through + * the instance's configured email sending domain. The field is preserved for API compatibility only + * and will be removed in a future version. * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ diff --git a/src/main/java/com/clerk/backend_api/models/components/OAuthApplication.java b/src/main/java/com/clerk/backend_api/models/components/OAuthApplication.java index 22834b45..5b0a02c1 100644 --- a/src/main/java/com/clerk/backend_api/models/components/OAuthApplication.java +++ b/src/main/java/com/clerk/backend_api/models/components/OAuthApplication.java @@ -62,10 +62,17 @@ public class OAuthApplication { private boolean pkceRequired; + @JsonProperty("device_authorization_grant_enabled") + private boolean deviceAuthorizationGrantEnabled; + + @JsonProperty("public") private boolean public_; - + /** + * The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and + * assigned custom scope keys. + */ @JsonProperty("scopes") private String scopes; @@ -126,6 +133,7 @@ public OAuthApplication( @JsonProperty("dynamically_registered") boolean dynamicallyRegistered, @JsonProperty("consent_screen_enabled") boolean consentScreenEnabled, @JsonProperty("pkce_required") boolean pkceRequired, + @JsonProperty("device_authorization_grant_enabled") boolean deviceAuthorizationGrantEnabled, @JsonProperty("public") boolean public_, @JsonProperty("scopes") String scopes, @JsonProperty("redirect_uris") List redirectUris, @@ -147,6 +155,7 @@ public OAuthApplication( Utils.checkNotNull(dynamicallyRegistered, "dynamicallyRegistered"); Utils.checkNotNull(consentScreenEnabled, "consentScreenEnabled"); Utils.checkNotNull(pkceRequired, "pkceRequired"); + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); Utils.checkNotNull(public_, "public_"); Utils.checkNotNull(scopes, "scopes"); Utils.checkNotNull(redirectUris, "redirectUris"); @@ -168,6 +177,7 @@ public OAuthApplication( this.dynamicallyRegistered = dynamicallyRegistered; this.consentScreenEnabled = consentScreenEnabled; this.pkceRequired = pkceRequired; + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; this.public_ = public_; this.scopes = scopes; this.redirectUris = redirectUris; @@ -190,6 +200,7 @@ public OAuthApplication( boolean dynamicallyRegistered, boolean consentScreenEnabled, boolean pkceRequired, + boolean deviceAuthorizationGrantEnabled, boolean public_, String scopes, List redirectUris, @@ -204,10 +215,11 @@ public OAuthApplication( this(object, id, instanceId, name, clientId, Optional.empty(), Optional.empty(), dynamicallyRegistered, consentScreenEnabled, - pkceRequired, public_, scopes, - redirectUris, callbackUrl, authorizeUrl, - tokenFetchUrl, userInfoUrl, discoveryUrl, - tokenIntrospectionUrl, createdAt, updatedAt); + pkceRequired, deviceAuthorizationGrantEnabled, public_, + scopes, redirectUris, callbackUrl, + authorizeUrl, tokenFetchUrl, userInfoUrl, + discoveryUrl, tokenIntrospectionUrl, createdAt, + updatedAt); } @JsonIgnore @@ -260,11 +272,20 @@ public boolean pkceRequired() { return pkceRequired; } + @JsonIgnore + public boolean deviceAuthorizationGrantEnabled() { + return deviceAuthorizationGrantEnabled; + } + @JsonIgnore public boolean public_() { return public_; } + /** + * The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and + * assigned custom scope keys. + */ @JsonIgnore public String scopes() { return scopes; @@ -406,12 +427,22 @@ public OAuthApplication withPkceRequired(boolean pkceRequired) { return this; } + public OAuthApplication withDeviceAuthorizationGrantEnabled(boolean deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; + return this; + } + public OAuthApplication withPublic(boolean public_) { Utils.checkNotNull(public_, "public_"); this.public_ = public_; return this; } + /** + * The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and + * assigned custom scope keys. + */ public OAuthApplication withScopes(String scopes) { Utils.checkNotNull(scopes, "scopes"); this.scopes = scopes; @@ -504,6 +535,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.dynamicallyRegistered, other.dynamicallyRegistered) && Utils.enhancedDeepEquals(this.consentScreenEnabled, other.consentScreenEnabled) && Utils.enhancedDeepEquals(this.pkceRequired, other.pkceRequired) && + Utils.enhancedDeepEquals(this.deviceAuthorizationGrantEnabled, other.deviceAuthorizationGrantEnabled) && Utils.enhancedDeepEquals(this.public_, other.public_) && Utils.enhancedDeepEquals(this.scopes, other.scopes) && Utils.enhancedDeepEquals(this.redirectUris, other.redirectUris) && @@ -523,10 +555,11 @@ public int hashCode() { object, id, instanceId, name, clientId, clientUri, clientImageUrl, dynamicallyRegistered, consentScreenEnabled, - pkceRequired, public_, scopes, - redirectUris, callbackUrl, authorizeUrl, - tokenFetchUrl, userInfoUrl, discoveryUrl, - tokenIntrospectionUrl, createdAt, updatedAt); + pkceRequired, deviceAuthorizationGrantEnabled, public_, + scopes, redirectUris, callbackUrl, + authorizeUrl, tokenFetchUrl, userInfoUrl, + discoveryUrl, tokenIntrospectionUrl, createdAt, + updatedAt); } @Override @@ -542,6 +575,7 @@ public String toString() { "dynamicallyRegistered", dynamicallyRegistered, "consentScreenEnabled", consentScreenEnabled, "pkceRequired", pkceRequired, + "deviceAuthorizationGrantEnabled", deviceAuthorizationGrantEnabled, "public_", public_, "scopes", scopes, "redirectUris", redirectUris, @@ -578,6 +612,8 @@ public final static class Builder { private Boolean pkceRequired; + private Boolean deviceAuthorizationGrantEnabled; + private Boolean public_; private String scopes; @@ -688,6 +724,13 @@ public Builder pkceRequired(boolean pkceRequired) { } + public Builder deviceAuthorizationGrantEnabled(boolean deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; + return this; + } + + public Builder public_(boolean public_) { Utils.checkNotNull(public_, "public_"); this.public_ = public_; @@ -695,6 +738,10 @@ public Builder public_(boolean public_) { } + /** + * The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and + * assigned custom scope keys. + */ public Builder scopes(String scopes) { Utils.checkNotNull(scopes, "scopes"); this.scopes = scopes; @@ -782,10 +829,11 @@ public OAuthApplication build() { object, id, instanceId, name, clientId, clientUri, clientImageUrl, dynamicallyRegistered, consentScreenEnabled, - pkceRequired, public_, scopes, - redirectUris, callbackUrl, authorizeUrl, - tokenFetchUrl, userInfoUrl, discoveryUrl, - tokenIntrospectionUrl, createdAt, updatedAt); + pkceRequired, deviceAuthorizationGrantEnabled, public_, + scopes, redirectUris, callbackUrl, + authorizeUrl, tokenFetchUrl, userInfoUrl, + discoveryUrl, tokenIntrospectionUrl, createdAt, + updatedAt); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/OAuthApplicationSettings.java b/src/main/java/com/clerk/backend_api/models/components/OAuthApplicationSettings.java index 33658c34..965a46fa 100644 --- a/src/main/java/com/clerk/backend_api/models/components/OAuthApplicationSettings.java +++ b/src/main/java/com/clerk/backend_api/models/components/OAuthApplicationSettings.java @@ -35,7 +35,10 @@ public class OAuthApplicationSettings { private boolean dynamicOauthClientRegistration; /** - * Default scopes. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Contains built-in keys and custom catalog keys. Null means Clerk-provided defaults. + * + *

`advertised` does not affect eligibility. An empty input array is stored and returned as null. */ @JsonInclude(Include.ALWAYS) @JsonProperty("default_scopes") @@ -48,6 +51,18 @@ public class OAuthApplicationSettings { @JsonProperty("oauth_jwt_access_tokens") private boolean oauthJwtAccessTokens; + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + @JsonProperty("aud_claim_enabled") + private boolean audClaimEnabled; + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + @JsonProperty("pkce_required") + private boolean pkceRequired; + /** * Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization * server metadata. @@ -75,6 +90,8 @@ public OAuthApplicationSettings( @JsonProperty("dynamic_oauth_client_registration") boolean dynamicOauthClientRegistration, @JsonProperty("default_scopes") Optional> defaultScopes, @JsonProperty("oauth_jwt_access_tokens") boolean oauthJwtAccessTokens, + @JsonProperty("aud_claim_enabled") boolean audClaimEnabled, + @JsonProperty("pkce_required") boolean pkceRequired, @JsonProperty("client_id_metadata_documents_advertised") boolean clientIdMetadataDocumentsAdvertised, @JsonProperty("client_id_metadata_documents_only_allow_pre_registered_clients") boolean clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, @JsonProperty("client_id_metadata_documents_block_implicitly_allowed_clients") boolean clientIdMetadataDocumentsBlockImplicitlyAllowedClients) { @@ -82,6 +99,8 @@ public OAuthApplicationSettings( Utils.checkNotNull(dynamicOauthClientRegistration, "dynamicOauthClientRegistration"); Utils.checkNotNull(defaultScopes, "defaultScopes"); Utils.checkNotNull(oauthJwtAccessTokens, "oauthJwtAccessTokens"); + Utils.checkNotNull(audClaimEnabled, "audClaimEnabled"); + Utils.checkNotNull(pkceRequired, "pkceRequired"); Utils.checkNotNull(clientIdMetadataDocumentsAdvertised, "clientIdMetadataDocumentsAdvertised"); Utils.checkNotNull(clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, "clientIdMetadataDocumentsOnlyAllowPreRegisteredClients"); Utils.checkNotNull(clientIdMetadataDocumentsBlockImplicitlyAllowedClients, "clientIdMetadataDocumentsBlockImplicitlyAllowedClients"); @@ -89,6 +108,8 @@ public OAuthApplicationSettings( this.dynamicOauthClientRegistration = dynamicOauthClientRegistration; this.defaultScopes = defaultScopes; this.oauthJwtAccessTokens = oauthJwtAccessTokens; + this.audClaimEnabled = audClaimEnabled; + this.pkceRequired = pkceRequired; this.clientIdMetadataDocumentsAdvertised = clientIdMetadataDocumentsAdvertised; this.clientIdMetadataDocumentsOnlyAllowPreRegisteredClients = clientIdMetadataDocumentsOnlyAllowPreRegisteredClients; this.clientIdMetadataDocumentsBlockImplicitlyAllowedClients = clientIdMetadataDocumentsBlockImplicitlyAllowedClients; @@ -98,12 +119,14 @@ public OAuthApplicationSettings( OAuthApplicationSettingsObject object, boolean dynamicOauthClientRegistration, boolean oauthJwtAccessTokens, + boolean audClaimEnabled, + boolean pkceRequired, boolean clientIdMetadataDocumentsAdvertised, boolean clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, boolean clientIdMetadataDocumentsBlockImplicitlyAllowedClients) { this(object, dynamicOauthClientRegistration, Optional.empty(), - oauthJwtAccessTokens, clientIdMetadataDocumentsAdvertised, clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, - clientIdMetadataDocumentsBlockImplicitlyAllowedClients); + oauthJwtAccessTokens, audClaimEnabled, pkceRequired, + clientIdMetadataDocumentsAdvertised, clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, clientIdMetadataDocumentsBlockImplicitlyAllowedClients); } /** @@ -123,7 +146,10 @@ public boolean dynamicOauthClientRegistration() { } /** - * Default scopes. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Contains built-in keys and custom catalog keys. Null means Clerk-provided defaults. + * + *

`advertised` does not affect eligibility. An empty input array is stored and returned as null. */ @SuppressWarnings("unchecked") @JsonIgnore @@ -140,6 +166,22 @@ public boolean oauthJwtAccessTokens() { return oauthJwtAccessTokens; } + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + @JsonIgnore + public boolean audClaimEnabled() { + return audClaimEnabled; + } + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + @JsonIgnore + public boolean pkceRequired() { + return pkceRequired; + } + /** * Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization * server metadata. @@ -191,7 +233,10 @@ public OAuthApplicationSettings withDynamicOauthClientRegistration(boolean dynam } /** - * Default scopes. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Contains built-in keys and custom catalog keys. Null means Clerk-provided defaults. + * + *

`advertised` does not affect eligibility. An empty input array is stored and returned as null. */ public OAuthApplicationSettings withDefaultScopes(List defaultScopes) { Utils.checkNotNull(defaultScopes, "defaultScopes"); @@ -201,7 +246,10 @@ public OAuthApplicationSettings withDefaultScopes(List defaultScopes) { /** - * Default scopes. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Contains built-in keys and custom catalog keys. Null means Clerk-provided defaults. + * + *

`advertised` does not affect eligibility. An empty input array is stored and returned as null. */ public OAuthApplicationSettings withDefaultScopes(Optional> defaultScopes) { Utils.checkNotNull(defaultScopes, "defaultScopes"); @@ -219,6 +267,24 @@ public OAuthApplicationSettings withOauthJwtAccessTokens(boolean oauthJwtAccessT return this; } + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + public OAuthApplicationSettings withAudClaimEnabled(boolean audClaimEnabled) { + Utils.checkNotNull(audClaimEnabled, "audClaimEnabled"); + this.audClaimEnabled = audClaimEnabled; + return this; + } + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + public OAuthApplicationSettings withPkceRequired(boolean pkceRequired) { + Utils.checkNotNull(pkceRequired, "pkceRequired"); + this.pkceRequired = pkceRequired; + return this; + } + /** * Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization * server metadata. @@ -263,6 +329,8 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.dynamicOauthClientRegistration, other.dynamicOauthClientRegistration) && Utils.enhancedDeepEquals(this.defaultScopes, other.defaultScopes) && Utils.enhancedDeepEquals(this.oauthJwtAccessTokens, other.oauthJwtAccessTokens) && + Utils.enhancedDeepEquals(this.audClaimEnabled, other.audClaimEnabled) && + Utils.enhancedDeepEquals(this.pkceRequired, other.pkceRequired) && Utils.enhancedDeepEquals(this.clientIdMetadataDocumentsAdvertised, other.clientIdMetadataDocumentsAdvertised) && Utils.enhancedDeepEquals(this.clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, other.clientIdMetadataDocumentsOnlyAllowPreRegisteredClients) && Utils.enhancedDeepEquals(this.clientIdMetadataDocumentsBlockImplicitlyAllowedClients, other.clientIdMetadataDocumentsBlockImplicitlyAllowedClients); @@ -272,8 +340,8 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Utils.enhancedHash( object, dynamicOauthClientRegistration, defaultScopes, - oauthJwtAccessTokens, clientIdMetadataDocumentsAdvertised, clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, - clientIdMetadataDocumentsBlockImplicitlyAllowedClients); + oauthJwtAccessTokens, audClaimEnabled, pkceRequired, + clientIdMetadataDocumentsAdvertised, clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, clientIdMetadataDocumentsBlockImplicitlyAllowedClients); } @Override @@ -283,6 +351,8 @@ public String toString() { "dynamicOauthClientRegistration", dynamicOauthClientRegistration, "defaultScopes", defaultScopes, "oauthJwtAccessTokens", oauthJwtAccessTokens, + "audClaimEnabled", audClaimEnabled, + "pkceRequired", pkceRequired, "clientIdMetadataDocumentsAdvertised", clientIdMetadataDocumentsAdvertised, "clientIdMetadataDocumentsOnlyAllowPreRegisteredClients", clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, "clientIdMetadataDocumentsBlockImplicitlyAllowedClients", clientIdMetadataDocumentsBlockImplicitlyAllowedClients); @@ -299,6 +369,10 @@ public final static class Builder { private Boolean oauthJwtAccessTokens; + private Boolean audClaimEnabled; + + private Boolean pkceRequired; + private Boolean clientIdMetadataDocumentsAdvertised; private Boolean clientIdMetadataDocumentsOnlyAllowPreRegisteredClients; @@ -331,7 +405,10 @@ public Builder dynamicOauthClientRegistration(boolean dynamicOauthClientRegistra /** - * Default scopes. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Contains built-in keys and custom catalog keys. Null means Clerk-provided defaults. + * + *

`advertised` does not affect eligibility. An empty input array is stored and returned as null. */ public Builder defaultScopes(List defaultScopes) { Utils.checkNotNull(defaultScopes, "defaultScopes"); @@ -340,7 +417,10 @@ public Builder defaultScopes(List defaultScopes) { } /** - * Default scopes. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Contains built-in keys and custom catalog keys. Null means Clerk-provided defaults. + * + *

`advertised` does not affect eligibility. An empty input array is stored and returned as null. */ public Builder defaultScopes(Optional> defaultScopes) { Utils.checkNotNull(defaultScopes, "defaultScopes"); @@ -360,6 +440,26 @@ public Builder oauthJwtAccessTokens(boolean oauthJwtAccessTokens) { } + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + public Builder audClaimEnabled(boolean audClaimEnabled) { + Utils.checkNotNull(audClaimEnabled, "audClaimEnabled"); + this.audClaimEnabled = audClaimEnabled; + return this; + } + + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + public Builder pkceRequired(boolean pkceRequired) { + Utils.checkNotNull(pkceRequired, "pkceRequired"); + this.pkceRequired = pkceRequired; + return this; + } + + /** * Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization * server metadata. @@ -396,8 +496,8 @@ public OAuthApplicationSettings build() { return new OAuthApplicationSettings( object, dynamicOauthClientRegistration, defaultScopes, - oauthJwtAccessTokens, clientIdMetadataDocumentsAdvertised, clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, - clientIdMetadataDocumentsBlockImplicitlyAllowedClients); + oauthJwtAccessTokens, audClaimEnabled, pkceRequired, + clientIdMetadataDocumentsAdvertised, clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, clientIdMetadataDocumentsBlockImplicitlyAllowedClients); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/OAuthApplicationWithSecret.java b/src/main/java/com/clerk/backend_api/models/components/OAuthApplicationWithSecret.java index 5ac9f008..9e6c12c2 100644 --- a/src/main/java/com/clerk/backend_api/models/components/OAuthApplicationWithSecret.java +++ b/src/main/java/com/clerk/backend_api/models/components/OAuthApplicationWithSecret.java @@ -62,10 +62,17 @@ public class OAuthApplicationWithSecret { private boolean pkceRequired; + @JsonProperty("device_authorization_grant_enabled") + private boolean deviceAuthorizationGrantEnabled; + + @JsonProperty("public") private boolean public_; - + /** + * The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and + * assigned custom scope keys. + */ @JsonProperty("scopes") private String scopes; @@ -133,6 +140,7 @@ public OAuthApplicationWithSecret( @JsonProperty("dynamically_registered") boolean dynamicallyRegistered, @JsonProperty("consent_screen_enabled") boolean consentScreenEnabled, @JsonProperty("pkce_required") boolean pkceRequired, + @JsonProperty("device_authorization_grant_enabled") boolean deviceAuthorizationGrantEnabled, @JsonProperty("public") boolean public_, @JsonProperty("scopes") String scopes, @JsonProperty("redirect_uris") List redirectUris, @@ -155,6 +163,7 @@ public OAuthApplicationWithSecret( Utils.checkNotNull(dynamicallyRegistered, "dynamicallyRegistered"); Utils.checkNotNull(consentScreenEnabled, "consentScreenEnabled"); Utils.checkNotNull(pkceRequired, "pkceRequired"); + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); Utils.checkNotNull(public_, "public_"); Utils.checkNotNull(scopes, "scopes"); Utils.checkNotNull(redirectUris, "redirectUris"); @@ -177,6 +186,7 @@ public OAuthApplicationWithSecret( this.dynamicallyRegistered = dynamicallyRegistered; this.consentScreenEnabled = consentScreenEnabled; this.pkceRequired = pkceRequired; + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; this.public_ = public_; this.scopes = scopes; this.redirectUris = redirectUris; @@ -200,6 +210,7 @@ public OAuthApplicationWithSecret( boolean dynamicallyRegistered, boolean consentScreenEnabled, boolean pkceRequired, + boolean deviceAuthorizationGrantEnabled, boolean public_, String scopes, List redirectUris, @@ -214,11 +225,11 @@ public OAuthApplicationWithSecret( this(object, id, instanceId, name, clientId, Optional.empty(), Optional.empty(), dynamicallyRegistered, consentScreenEnabled, - pkceRequired, public_, scopes, - redirectUris, callbackUrl, authorizeUrl, - tokenFetchUrl, userInfoUrl, discoveryUrl, - tokenIntrospectionUrl, createdAt, updatedAt, - Optional.empty()); + pkceRequired, deviceAuthorizationGrantEnabled, public_, + scopes, redirectUris, callbackUrl, + authorizeUrl, tokenFetchUrl, userInfoUrl, + discoveryUrl, tokenIntrospectionUrl, createdAt, + updatedAt, Optional.empty()); } @JsonIgnore @@ -271,11 +282,20 @@ public boolean pkceRequired() { return pkceRequired; } + @JsonIgnore + public boolean deviceAuthorizationGrantEnabled() { + return deviceAuthorizationGrantEnabled; + } + @JsonIgnore public boolean public_() { return public_; } + /** + * The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and + * assigned custom scope keys. + */ @JsonIgnore public String scopes() { return scopes; @@ -425,12 +445,22 @@ public OAuthApplicationWithSecret withPkceRequired(boolean pkceRequired) { return this; } + public OAuthApplicationWithSecret withDeviceAuthorizationGrantEnabled(boolean deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; + return this; + } + public OAuthApplicationWithSecret withPublic(boolean public_) { Utils.checkNotNull(public_, "public_"); this.public_ = public_; return this; } + /** + * The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and + * assigned custom scope keys. + */ public OAuthApplicationWithSecret withScopes(String scopes) { Utils.checkNotNull(scopes, "scopes"); this.scopes = scopes; @@ -542,6 +572,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.dynamicallyRegistered, other.dynamicallyRegistered) && Utils.enhancedDeepEquals(this.consentScreenEnabled, other.consentScreenEnabled) && Utils.enhancedDeepEquals(this.pkceRequired, other.pkceRequired) && + Utils.enhancedDeepEquals(this.deviceAuthorizationGrantEnabled, other.deviceAuthorizationGrantEnabled) && Utils.enhancedDeepEquals(this.public_, other.public_) && Utils.enhancedDeepEquals(this.scopes, other.scopes) && Utils.enhancedDeepEquals(this.redirectUris, other.redirectUris) && @@ -562,11 +593,11 @@ public int hashCode() { object, id, instanceId, name, clientId, clientUri, clientImageUrl, dynamicallyRegistered, consentScreenEnabled, - pkceRequired, public_, scopes, - redirectUris, callbackUrl, authorizeUrl, - tokenFetchUrl, userInfoUrl, discoveryUrl, - tokenIntrospectionUrl, createdAt, updatedAt, - clientSecret); + pkceRequired, deviceAuthorizationGrantEnabled, public_, + scopes, redirectUris, callbackUrl, + authorizeUrl, tokenFetchUrl, userInfoUrl, + discoveryUrl, tokenIntrospectionUrl, createdAt, + updatedAt, clientSecret); } @Override @@ -582,6 +613,7 @@ public String toString() { "dynamicallyRegistered", dynamicallyRegistered, "consentScreenEnabled", consentScreenEnabled, "pkceRequired", pkceRequired, + "deviceAuthorizationGrantEnabled", deviceAuthorizationGrantEnabled, "public_", public_, "scopes", scopes, "redirectUris", redirectUris, @@ -619,6 +651,8 @@ public final static class Builder { private Boolean pkceRequired; + private Boolean deviceAuthorizationGrantEnabled; + private Boolean public_; private String scopes; @@ -731,6 +765,13 @@ public Builder pkceRequired(boolean pkceRequired) { } + public Builder deviceAuthorizationGrantEnabled(boolean deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; + return this; + } + + public Builder public_(boolean public_) { Utils.checkNotNull(public_, "public_"); this.public_ = public_; @@ -738,6 +779,10 @@ public Builder public_(boolean public_) { } + /** + * The complete scope ceiling for the OAuth application, as a space-delimited list of built-in and + * assigned custom scope keys. + */ public Builder scopes(String scopes) { Utils.checkNotNull(scopes, "scopes"); this.scopes = scopes; @@ -844,11 +889,11 @@ public OAuthApplicationWithSecret build() { object, id, instanceId, name, clientId, clientUri, clientImageUrl, dynamicallyRegistered, consentScreenEnabled, - pkceRequired, public_, scopes, - redirectUris, callbackUrl, authorizeUrl, - tokenFetchUrl, userInfoUrl, discoveryUrl, - tokenIntrospectionUrl, createdAt, updatedAt, - clientSecret); + pkceRequired, deviceAuthorizationGrantEnabled, public_, + scopes, redirectUris, callbackUrl, + authorizeUrl, tokenFetchUrl, userInfoUrl, + discoveryUrl, tokenIntrospectionUrl, createdAt, + updatedAt, clientSecret); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/Organization.java b/src/main/java/com/clerk/backend_api/models/components/Organization.java index 02978ea5..1b7be30e 100644 --- a/src/main/java/com/clerk/backend_api/models/components/Organization.java +++ b/src/main/java/com/clerk/backend_api/models/components/Organization.java @@ -69,6 +69,13 @@ public class Organization { @JsonProperty("admin_delete_enabled") private boolean adminDeleteEnabled; + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("self_serve_sso_enabled") + private JsonNullable selfServeSsoEnabled; + @JsonProperty("public_metadata") private Map publicMetadata; @@ -123,6 +130,7 @@ public Organization( @JsonProperty("pending_invitations_count") Optional pendingInvitationsCount, @JsonProperty("max_allowed_memberships") long maxAllowedMemberships, @JsonProperty("admin_delete_enabled") boolean adminDeleteEnabled, + @JsonProperty("self_serve_sso_enabled") JsonNullable selfServeSsoEnabled, @JsonProperty("public_metadata") Map publicMetadata, @JsonProperty("private_metadata") Optional> privateMetadata, @JsonProperty("created_by") Optional createdBy, @@ -141,6 +149,7 @@ public Organization( Utils.checkNotNull(pendingInvitationsCount, "pendingInvitationsCount"); Utils.checkNotNull(maxAllowedMemberships, "maxAllowedMemberships"); Utils.checkNotNull(adminDeleteEnabled, "adminDeleteEnabled"); + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); publicMetadata = Utils.emptyMapIfNull(publicMetadata); Utils.checkNotNull(publicMetadata, "publicMetadata"); Utils.checkNotNull(privateMetadata, "privateMetadata"); @@ -160,6 +169,7 @@ public Organization( this.pendingInvitationsCount = pendingInvitationsCount; this.maxAllowedMemberships = maxAllowedMemberships; this.adminDeleteEnabled = adminDeleteEnabled; + this.selfServeSsoEnabled = selfServeSsoEnabled; this.publicMetadata = publicMetadata; this.privateMetadata = privateMetadata; this.createdBy = createdBy; @@ -183,9 +193,10 @@ public Organization( this(object, id, name, slug, Optional.empty(), hasImage, Optional.empty(), Optional.empty(), Optional.empty(), - maxAllowedMemberships, adminDeleteEnabled, publicMetadata, - Optional.empty(), Optional.empty(), createdAt, - updatedAt, Optional.empty(), JsonNullable.undefined()); + maxAllowedMemberships, adminDeleteEnabled, JsonNullable.undefined(), + publicMetadata, Optional.empty(), Optional.empty(), + createdAt, updatedAt, Optional.empty(), + JsonNullable.undefined()); } @JsonIgnore @@ -243,6 +254,14 @@ public boolean adminDeleteEnabled() { return adminDeleteEnabled; } + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + @JsonIgnore + public JsonNullable selfServeSsoEnabled() { + return selfServeSsoEnabled; + } + @JsonIgnore public Map publicMetadata() { return publicMetadata; @@ -391,6 +410,24 @@ public Organization withAdminDeleteEnabled(boolean adminDeleteEnabled) { return this; } + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public Organization withSelfServeSsoEnabled(boolean selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = JsonNullable.of(selfServeSsoEnabled); + return this; + } + + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public Organization withSelfServeSsoEnabled(JsonNullable selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = selfServeSsoEnabled; + return this; + } + public Organization withPublicMetadata(Map publicMetadata) { Utils.checkNotNull(publicMetadata, "publicMetadata"); this.publicMetadata = publicMetadata; @@ -501,6 +538,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.pendingInvitationsCount, other.pendingInvitationsCount) && Utils.enhancedDeepEquals(this.maxAllowedMemberships, other.maxAllowedMemberships) && Utils.enhancedDeepEquals(this.adminDeleteEnabled, other.adminDeleteEnabled) && + Utils.enhancedDeepEquals(this.selfServeSsoEnabled, other.selfServeSsoEnabled) && Utils.enhancedDeepEquals(this.publicMetadata, other.publicMetadata) && Utils.enhancedDeepEquals(this.privateMetadata, other.privateMetadata) && Utils.enhancedDeepEquals(this.createdBy, other.createdBy) && @@ -516,9 +554,10 @@ public int hashCode() { object, id, name, slug, imageUrl, hasImage, membersCount, missingMemberWithElevatedPermissions, pendingInvitationsCount, - maxAllowedMemberships, adminDeleteEnabled, publicMetadata, - privateMetadata, createdBy, createdAt, - updatedAt, lastActiveAt, roleSetKey); + maxAllowedMemberships, adminDeleteEnabled, selfServeSsoEnabled, + publicMetadata, privateMetadata, createdBy, + createdAt, updatedAt, lastActiveAt, + roleSetKey); } @Override @@ -535,6 +574,7 @@ public String toString() { "pendingInvitationsCount", pendingInvitationsCount, "maxAllowedMemberships", maxAllowedMemberships, "adminDeleteEnabled", adminDeleteEnabled, + "selfServeSsoEnabled", selfServeSsoEnabled, "publicMetadata", publicMetadata, "privateMetadata", privateMetadata, "createdBy", createdBy, @@ -569,6 +609,8 @@ public final static class Builder { private Boolean adminDeleteEnabled; + private JsonNullable selfServeSsoEnabled = JsonNullable.undefined(); + private Map publicMetadata; private Optional> privateMetadata = Optional.empty(); @@ -689,6 +731,25 @@ public Builder adminDeleteEnabled(boolean adminDeleteEnabled) { } + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public Builder selfServeSsoEnabled(boolean selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = JsonNullable.of(selfServeSsoEnabled); + return this; + } + + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public Builder selfServeSsoEnabled(JsonNullable selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = selfServeSsoEnabled; + return this; + } + + public Builder publicMetadata(Map publicMetadata) { Utils.checkNotNull(publicMetadata, "publicMetadata"); this.publicMetadata = publicMetadata; @@ -787,9 +848,10 @@ public Organization build() { object, id, name, slug, imageUrl, hasImage, membersCount, missingMemberWithElevatedPermissions, pendingInvitationsCount, - maxAllowedMemberships, adminDeleteEnabled, publicMetadata, - privateMetadata, createdBy, createdAt, - updatedAt, lastActiveAt, roleSetKey); + maxAllowedMemberships, adminDeleteEnabled, selfServeSsoEnabled, + publicMetadata, privateMetadata, createdBy, + createdAt, updatedAt, lastActiveAt, + roleSetKey); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/OrganizationMembershipOrganization.java b/src/main/java/com/clerk/backend_api/models/components/OrganizationMembershipOrganization.java index eb9c4be4..ed1462c3 100644 --- a/src/main/java/com/clerk/backend_api/models/components/OrganizationMembershipOrganization.java +++ b/src/main/java/com/clerk/backend_api/models/components/OrganizationMembershipOrganization.java @@ -69,6 +69,13 @@ public class OrganizationMembershipOrganization { @JsonProperty("admin_delete_enabled") private boolean adminDeleteEnabled; + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("self_serve_sso_enabled") + private JsonNullable selfServeSsoEnabled; + @JsonProperty("public_metadata") private Map publicMetadata; @@ -123,6 +130,7 @@ public OrganizationMembershipOrganization( @JsonProperty("pending_invitations_count") Optional pendingInvitationsCount, @JsonProperty("max_allowed_memberships") long maxAllowedMemberships, @JsonProperty("admin_delete_enabled") boolean adminDeleteEnabled, + @JsonProperty("self_serve_sso_enabled") JsonNullable selfServeSsoEnabled, @JsonProperty("public_metadata") Map publicMetadata, @JsonProperty("private_metadata") Optional> privateMetadata, @JsonProperty("created_by") Optional createdBy, @@ -141,6 +149,7 @@ public OrganizationMembershipOrganization( Utils.checkNotNull(pendingInvitationsCount, "pendingInvitationsCount"); Utils.checkNotNull(maxAllowedMemberships, "maxAllowedMemberships"); Utils.checkNotNull(adminDeleteEnabled, "adminDeleteEnabled"); + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); publicMetadata = Utils.emptyMapIfNull(publicMetadata); Utils.checkNotNull(publicMetadata, "publicMetadata"); Utils.checkNotNull(privateMetadata, "privateMetadata"); @@ -160,6 +169,7 @@ public OrganizationMembershipOrganization( this.pendingInvitationsCount = pendingInvitationsCount; this.maxAllowedMemberships = maxAllowedMemberships; this.adminDeleteEnabled = adminDeleteEnabled; + this.selfServeSsoEnabled = selfServeSsoEnabled; this.publicMetadata = publicMetadata; this.privateMetadata = privateMetadata; this.createdBy = createdBy; @@ -183,9 +193,10 @@ public OrganizationMembershipOrganization( this(object, id, name, slug, Optional.empty(), hasImage, Optional.empty(), Optional.empty(), Optional.empty(), - maxAllowedMemberships, adminDeleteEnabled, publicMetadata, - Optional.empty(), Optional.empty(), createdAt, - updatedAt, Optional.empty(), JsonNullable.undefined()); + maxAllowedMemberships, adminDeleteEnabled, JsonNullable.undefined(), + publicMetadata, Optional.empty(), Optional.empty(), + createdAt, updatedAt, Optional.empty(), + JsonNullable.undefined()); } @JsonIgnore @@ -243,6 +254,14 @@ public boolean adminDeleteEnabled() { return adminDeleteEnabled; } + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + @JsonIgnore + public JsonNullable selfServeSsoEnabled() { + return selfServeSsoEnabled; + } + @JsonIgnore public Map publicMetadata() { return publicMetadata; @@ -391,6 +410,24 @@ public OrganizationMembershipOrganization withAdminDeleteEnabled(boolean adminDe return this; } + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public OrganizationMembershipOrganization withSelfServeSsoEnabled(boolean selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = JsonNullable.of(selfServeSsoEnabled); + return this; + } + + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public OrganizationMembershipOrganization withSelfServeSsoEnabled(JsonNullable selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = selfServeSsoEnabled; + return this; + } + public OrganizationMembershipOrganization withPublicMetadata(Map publicMetadata) { Utils.checkNotNull(publicMetadata, "publicMetadata"); this.publicMetadata = publicMetadata; @@ -501,6 +538,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.pendingInvitationsCount, other.pendingInvitationsCount) && Utils.enhancedDeepEquals(this.maxAllowedMemberships, other.maxAllowedMemberships) && Utils.enhancedDeepEquals(this.adminDeleteEnabled, other.adminDeleteEnabled) && + Utils.enhancedDeepEquals(this.selfServeSsoEnabled, other.selfServeSsoEnabled) && Utils.enhancedDeepEquals(this.publicMetadata, other.publicMetadata) && Utils.enhancedDeepEquals(this.privateMetadata, other.privateMetadata) && Utils.enhancedDeepEquals(this.createdBy, other.createdBy) && @@ -516,9 +554,10 @@ public int hashCode() { object, id, name, slug, imageUrl, hasImage, membersCount, missingMemberWithElevatedPermissions, pendingInvitationsCount, - maxAllowedMemberships, adminDeleteEnabled, publicMetadata, - privateMetadata, createdBy, createdAt, - updatedAt, lastActiveAt, roleSetKey); + maxAllowedMemberships, adminDeleteEnabled, selfServeSsoEnabled, + publicMetadata, privateMetadata, createdBy, + createdAt, updatedAt, lastActiveAt, + roleSetKey); } @Override @@ -535,6 +574,7 @@ public String toString() { "pendingInvitationsCount", pendingInvitationsCount, "maxAllowedMemberships", maxAllowedMemberships, "adminDeleteEnabled", adminDeleteEnabled, + "selfServeSsoEnabled", selfServeSsoEnabled, "publicMetadata", publicMetadata, "privateMetadata", privateMetadata, "createdBy", createdBy, @@ -569,6 +609,8 @@ public final static class Builder { private Boolean adminDeleteEnabled; + private JsonNullable selfServeSsoEnabled = JsonNullable.undefined(); + private Map publicMetadata; private Optional> privateMetadata = Optional.empty(); @@ -689,6 +731,25 @@ public Builder adminDeleteEnabled(boolean adminDeleteEnabled) { } + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public Builder selfServeSsoEnabled(boolean selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = JsonNullable.of(selfServeSsoEnabled); + return this; + } + + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public Builder selfServeSsoEnabled(JsonNullable selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = selfServeSsoEnabled; + return this; + } + + public Builder publicMetadata(Map publicMetadata) { Utils.checkNotNull(publicMetadata, "publicMetadata"); this.publicMetadata = publicMetadata; @@ -787,9 +848,10 @@ public OrganizationMembershipOrganization build() { object, id, name, slug, imageUrl, hasImage, membersCount, missingMemberWithElevatedPermissions, pendingInvitationsCount, - maxAllowedMemberships, adminDeleteEnabled, publicMetadata, - privateMetadata, createdBy, createdAt, - updatedAt, lastActiveAt, roleSetKey); + maxAllowedMemberships, adminDeleteEnabled, selfServeSsoEnabled, + publicMetadata, privateMetadata, createdBy, + createdAt, updatedAt, lastActiveAt, + roleSetKey); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/OrganizationWithLogo.java b/src/main/java/com/clerk/backend_api/models/components/OrganizationWithLogo.java index 1b617e8e..b45b5c21 100644 --- a/src/main/java/com/clerk/backend_api/models/components/OrganizationWithLogo.java +++ b/src/main/java/com/clerk/backend_api/models/components/OrganizationWithLogo.java @@ -69,6 +69,13 @@ public class OrganizationWithLogo { @JsonProperty("admin_delete_enabled") private boolean adminDeleteEnabled; + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("self_serve_sso_enabled") + private JsonNullable selfServeSsoEnabled; + @JsonProperty("public_metadata") private Map publicMetadata; @@ -132,6 +139,7 @@ public OrganizationWithLogo( @JsonProperty("pending_invitations_count") Optional pendingInvitationsCount, @JsonProperty("max_allowed_memberships") long maxAllowedMemberships, @JsonProperty("admin_delete_enabled") boolean adminDeleteEnabled, + @JsonProperty("self_serve_sso_enabled") JsonNullable selfServeSsoEnabled, @JsonProperty("public_metadata") Map publicMetadata, @JsonProperty("private_metadata") Optional> privateMetadata, @JsonProperty("created_by") Optional createdBy, @@ -151,6 +159,7 @@ public OrganizationWithLogo( Utils.checkNotNull(pendingInvitationsCount, "pendingInvitationsCount"); Utils.checkNotNull(maxAllowedMemberships, "maxAllowedMemberships"); Utils.checkNotNull(adminDeleteEnabled, "adminDeleteEnabled"); + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); publicMetadata = Utils.emptyMapIfNull(publicMetadata); Utils.checkNotNull(publicMetadata, "publicMetadata"); Utils.checkNotNull(privateMetadata, "privateMetadata"); @@ -171,6 +180,7 @@ public OrganizationWithLogo( this.pendingInvitationsCount = pendingInvitationsCount; this.maxAllowedMemberships = maxAllowedMemberships; this.adminDeleteEnabled = adminDeleteEnabled; + this.selfServeSsoEnabled = selfServeSsoEnabled; this.publicMetadata = publicMetadata; this.privateMetadata = privateMetadata; this.createdBy = createdBy; @@ -196,10 +206,10 @@ public OrganizationWithLogo( this(object, id, name, slug, imageUrl, hasImage, Optional.empty(), Optional.empty(), Optional.empty(), - maxAllowedMemberships, adminDeleteEnabled, publicMetadata, - Optional.empty(), Optional.empty(), createdAt, - updatedAt, Optional.empty(), JsonNullable.undefined(), - Optional.empty()); + maxAllowedMemberships, adminDeleteEnabled, JsonNullable.undefined(), + publicMetadata, Optional.empty(), Optional.empty(), + createdAt, updatedAt, Optional.empty(), + JsonNullable.undefined(), Optional.empty()); } @JsonIgnore @@ -257,6 +267,14 @@ public boolean adminDeleteEnabled() { return adminDeleteEnabled; } + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + @JsonIgnore + public JsonNullable selfServeSsoEnabled() { + return selfServeSsoEnabled; + } + @JsonIgnore public Map publicMetadata() { return publicMetadata; @@ -408,6 +426,24 @@ public OrganizationWithLogo withAdminDeleteEnabled(boolean adminDeleteEnabled) { return this; } + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public OrganizationWithLogo withSelfServeSsoEnabled(boolean selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = JsonNullable.of(selfServeSsoEnabled); + return this; + } + + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public OrganizationWithLogo withSelfServeSsoEnabled(JsonNullable selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = selfServeSsoEnabled; + return this; + } + public OrganizationWithLogo withPublicMetadata(Map publicMetadata) { Utils.checkNotNull(publicMetadata, "publicMetadata"); this.publicMetadata = publicMetadata; @@ -541,6 +577,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.pendingInvitationsCount, other.pendingInvitationsCount) && Utils.enhancedDeepEquals(this.maxAllowedMemberships, other.maxAllowedMemberships) && Utils.enhancedDeepEquals(this.adminDeleteEnabled, other.adminDeleteEnabled) && + Utils.enhancedDeepEquals(this.selfServeSsoEnabled, other.selfServeSsoEnabled) && Utils.enhancedDeepEquals(this.publicMetadata, other.publicMetadata) && Utils.enhancedDeepEquals(this.privateMetadata, other.privateMetadata) && Utils.enhancedDeepEquals(this.createdBy, other.createdBy) && @@ -557,10 +594,10 @@ public int hashCode() { object, id, name, slug, imageUrl, hasImage, membersCount, missingMemberWithElevatedPermissions, pendingInvitationsCount, - maxAllowedMemberships, adminDeleteEnabled, publicMetadata, - privateMetadata, createdBy, createdAt, - updatedAt, lastActiveAt, roleSetKey, - logoUrl); + maxAllowedMemberships, adminDeleteEnabled, selfServeSsoEnabled, + publicMetadata, privateMetadata, createdBy, + createdAt, updatedAt, lastActiveAt, + roleSetKey, logoUrl); } @Override @@ -577,6 +614,7 @@ public String toString() { "pendingInvitationsCount", pendingInvitationsCount, "maxAllowedMemberships", maxAllowedMemberships, "adminDeleteEnabled", adminDeleteEnabled, + "selfServeSsoEnabled", selfServeSsoEnabled, "publicMetadata", publicMetadata, "privateMetadata", privateMetadata, "createdBy", createdBy, @@ -612,6 +650,8 @@ public final static class Builder { private Boolean adminDeleteEnabled; + private JsonNullable selfServeSsoEnabled = JsonNullable.undefined(); + private Map publicMetadata; private Optional> privateMetadata = Optional.empty(); @@ -729,6 +769,25 @@ public Builder adminDeleteEnabled(boolean adminDeleteEnabled) { } + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public Builder selfServeSsoEnabled(boolean selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = JsonNullable.of(selfServeSsoEnabled); + return this; + } + + /** + * Whether this organization can configure self-serve enterprise SSO. + */ + public Builder selfServeSsoEnabled(JsonNullable selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = selfServeSsoEnabled; + return this; + } + + public Builder publicMetadata(Map publicMetadata) { Utils.checkNotNull(publicMetadata, "publicMetadata"); this.publicMetadata = publicMetadata; @@ -850,10 +909,10 @@ public OrganizationWithLogo build() { object, id, name, slug, imageUrl, hasImage, membersCount, missingMemberWithElevatedPermissions, pendingInvitationsCount, - maxAllowedMemberships, adminDeleteEnabled, publicMetadata, - privateMetadata, createdBy, createdAt, - updatedAt, lastActiveAt, roleSetKey, - logoUrl); + maxAllowedMemberships, adminDeleteEnabled, selfServeSsoEnabled, + publicMetadata, privateMetadata, createdBy, + createdAt, updatedAt, lastActiveAt, + roleSetKey, logoUrl); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/RecordType.java b/src/main/java/com/clerk/backend_api/models/components/RecordType.java new file mode 100644 index 00000000..30a53108 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/RecordType.java @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +public enum RecordType { + CNAME("CNAME"), + TXT("TXT"); + + @JsonValue + private final String value; + + RecordType(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (RecordType o: RecordType.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/SCIMDirectory.java b/src/main/java/com/clerk/backend_api/models/components/SCIMDirectory.java index a3e3597d..e53ebd6e 100644 --- a/src/main/java/com/clerk/backend_api/models/components/SCIMDirectory.java +++ b/src/main/java/com/clerk/backend_api/models/components/SCIMDirectory.java @@ -22,7 +22,7 @@ /** * SCIMDirectory * - *

A SCIM directory configuration for provisioning users via SCIM protocol. + *

A directory configuration for provisioning users via SCIM protocol. */ public class SCIMDirectory { /** @@ -32,13 +32,13 @@ public class SCIMDirectory { private SCIMDirectoryObject object; /** - * Unique identifier for the SCIM directory. + * Unique identifier for the directory. */ @JsonProperty("id") private String id; /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ @JsonProperty("name") private String name; @@ -57,19 +57,19 @@ public class SCIMDirectory { private String endpointUrl; /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ @JsonProperty("provider") private String provider; /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ @JsonProperty("enabled") private boolean enabled; /** - * Whether group-to-role mapping is enabled for this SCIM directory. + * Whether group-to-role mapping is enabled for this directory. */ @JsonProperty("group_role_mapping_enabled") private boolean groupRoleMappingEnabled; @@ -97,13 +97,13 @@ public class SCIMDirectory { private JsonNullable apiKey; /** - * Unix timestamp when the SCIM directory was created. + * Unix timestamp when the directory was created. */ @JsonProperty("created_at") private long createdAt; /** - * Unix timestamp when the SCIM directory was last updated. + * Unix timestamp when the directory was last updated. */ @JsonProperty("updated_at") private long updatedAt; @@ -179,7 +179,7 @@ public SCIMDirectoryObject object() { } /** - * Unique identifier for the SCIM directory. + * Unique identifier for the directory. */ @JsonIgnore public String id() { @@ -187,7 +187,7 @@ public String id() { } /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ @JsonIgnore public String name() { @@ -211,7 +211,7 @@ public String endpointUrl() { } /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ @JsonIgnore public String provider() { @@ -219,7 +219,7 @@ public String provider() { } /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ @JsonIgnore public boolean enabled() { @@ -227,7 +227,7 @@ public boolean enabled() { } /** - * Whether group-to-role mapping is enabled for this SCIM directory. + * Whether group-to-role mapping is enabled for this directory. */ @JsonIgnore public boolean groupRoleMappingEnabled() { @@ -262,7 +262,7 @@ public JsonNullable apiKey() { } /** - * Unix timestamp when the SCIM directory was created. + * Unix timestamp when the directory was created. */ @JsonIgnore public long createdAt() { @@ -270,7 +270,7 @@ public long createdAt() { } /** - * Unix timestamp when the SCIM directory was last updated. + * Unix timestamp when the directory was last updated. */ @JsonIgnore public long updatedAt() { @@ -292,7 +292,7 @@ public SCIMDirectory withObject(SCIMDirectoryObject object) { } /** - * Unique identifier for the SCIM directory. + * Unique identifier for the directory. */ public SCIMDirectory withId(String id) { Utils.checkNotNull(id, "id"); @@ -301,7 +301,7 @@ public SCIMDirectory withId(String id) { } /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public SCIMDirectory withName(String name) { Utils.checkNotNull(name, "name"); @@ -337,7 +337,7 @@ public SCIMDirectory withEndpointUrl(String endpointUrl) { } /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ public SCIMDirectory withProvider(String provider) { Utils.checkNotNull(provider, "provider"); @@ -346,7 +346,7 @@ public SCIMDirectory withProvider(String provider) { } /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ public SCIMDirectory withEnabled(boolean enabled) { Utils.checkNotNull(enabled, "enabled"); @@ -355,7 +355,7 @@ public SCIMDirectory withEnabled(boolean enabled) { } /** - * Whether group-to-role mapping is enabled for this SCIM directory. + * Whether group-to-role mapping is enabled for this directory. */ public SCIMDirectory withGroupRoleMappingEnabled(boolean groupRoleMappingEnabled) { Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); @@ -414,7 +414,7 @@ public SCIMDirectory withApiKey(JsonNullable apiKey) { } /** - * Unix timestamp when the SCIM directory was created. + * Unix timestamp when the directory was created. */ public SCIMDirectory withCreatedAt(long createdAt) { Utils.checkNotNull(createdAt, "createdAt"); @@ -423,7 +423,7 @@ public SCIMDirectory withCreatedAt(long createdAt) { } /** - * Unix timestamp when the SCIM directory was last updated. + * Unix timestamp when the directory was last updated. */ public SCIMDirectory withUpdatedAt(long updatedAt) { Utils.checkNotNull(updatedAt, "updatedAt"); @@ -529,7 +529,7 @@ public Builder object(SCIMDirectoryObject object) { /** - * Unique identifier for the SCIM directory. + * Unique identifier for the directory. */ public Builder id(String id) { Utils.checkNotNull(id, "id"); @@ -539,7 +539,7 @@ public Builder id(String id) { /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public Builder name(String name) { Utils.checkNotNull(name, "name"); @@ -578,7 +578,7 @@ public Builder endpointUrl(String endpointUrl) { /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ public Builder provider(String provider) { Utils.checkNotNull(provider, "provider"); @@ -588,7 +588,7 @@ public Builder provider(String provider) { /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ public Builder enabled(boolean enabled) { Utils.checkNotNull(enabled, "enabled"); @@ -598,7 +598,7 @@ public Builder enabled(boolean enabled) { /** - * Whether group-to-role mapping is enabled for this SCIM directory. + * Whether group-to-role mapping is enabled for this directory. */ public Builder groupRoleMappingEnabled(boolean groupRoleMappingEnabled) { Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); @@ -660,7 +660,7 @@ public Builder apiKey(JsonNullable apiKey) { /** - * Unix timestamp when the SCIM directory was created. + * Unix timestamp when the directory was created. */ public Builder createdAt(long createdAt) { Utils.checkNotNull(createdAt, "createdAt"); @@ -670,7 +670,7 @@ public Builder createdAt(long createdAt) { /** - * Unix timestamp when the SCIM directory was last updated. + * Unix timestamp when the directory was last updated. */ public Builder updatedAt(long updatedAt) { Utils.checkNotNull(updatedAt, "updatedAt"); diff --git a/src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryCustomAttributes.java b/src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryCustomAttributes.java index e63ee7d5..aeb85e9f 100644 --- a/src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryCustomAttributes.java +++ b/src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryCustomAttributes.java @@ -44,6 +44,14 @@ public class SCIMDirectoryCustomAttributes { @JsonProperty("scim_path") private Optional scimPath; + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory_path") + private Optional directoryPath; + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -58,22 +66,25 @@ public SCIMDirectoryCustomAttributes( @JsonProperty("key") Optional key, @JsonProperty("sso_path") Optional ssoPath, @JsonProperty("scim_path") Optional scimPath, + @JsonProperty("directory_path") Optional directoryPath, @JsonProperty("multi_valued") Optional multiValued) { Utils.checkNotNull(name, "name"); Utils.checkNotNull(key, "key"); Utils.checkNotNull(ssoPath, "ssoPath"); Utils.checkNotNull(scimPath, "scimPath"); + Utils.checkNotNull(directoryPath, "directoryPath"); Utils.checkNotNull(multiValued, "multiValued"); this.name = name; this.key = key; this.ssoPath = ssoPath; this.scimPath = scimPath; + this.directoryPath = directoryPath; this.multiValued = multiValued; } public SCIMDirectoryCustomAttributes() { this(Optional.empty(), Optional.empty(), Optional.empty(), - Optional.empty(), Optional.empty()); + Optional.empty(), Optional.empty(), Optional.empty()); } /** @@ -108,6 +119,15 @@ public Optional scimPath() { return scimPath; } + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + @JsonIgnore + public Optional directoryPath() { + return directoryPath; + } + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -198,6 +218,27 @@ public SCIMDirectoryCustomAttributes withScimPath(Optional scimPath) { return this; } + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + public SCIMDirectoryCustomAttributes withDirectoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + public SCIMDirectoryCustomAttributes withDirectoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -233,6 +274,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.key, other.key) && Utils.enhancedDeepEquals(this.ssoPath, other.ssoPath) && Utils.enhancedDeepEquals(this.scimPath, other.scimPath) && + Utils.enhancedDeepEquals(this.directoryPath, other.directoryPath) && Utils.enhancedDeepEquals(this.multiValued, other.multiValued); } @@ -240,7 +282,7 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Utils.enhancedHash( name, key, ssoPath, - scimPath, multiValued); + scimPath, directoryPath, multiValued); } @Override @@ -250,6 +292,7 @@ public String toString() { "key", key, "ssoPath", ssoPath, "scimPath", scimPath, + "directoryPath", directoryPath, "multiValued", multiValued); } @@ -264,6 +307,8 @@ public final static class Builder { private Optional scimPath = Optional.empty(); + private Optional directoryPath = Optional.empty(); + private Optional multiValued = Optional.empty(); private Builder() { @@ -347,6 +392,27 @@ public Builder scimPath(Optional scimPath) { } + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + public Builder directoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + /** + * GJSON path to extract the attribute value from directory sync user resources. Same value as + * `scim_path`. + */ + public Builder directoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -371,7 +437,7 @@ public SCIMDirectoryCustomAttributes build() { return new SCIMDirectoryCustomAttributes( name, key, ssoPath, - scimPath, multiValued); + scimPath, directoryPath, multiValued); } } diff --git a/src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryList.java b/src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryList.java index 9d8bec1f..eac09c91 100644 --- a/src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryList.java +++ b/src/main/java/com/clerk/backend_api/models/components/SCIMDirectoryList.java @@ -15,7 +15,7 @@ /** * SCIMDirectoryList * - *

A list of SCIM directories + *

A list of directories */ public class SCIMDirectoryList { @@ -23,7 +23,7 @@ public class SCIMDirectoryList { private List data; /** - * Total number of SCIM directories. + * Total number of directories. */ @JsonProperty("total_count") private long totalCount; @@ -44,7 +44,7 @@ public List data() { } /** - * Total number of SCIM directories. + * Total number of directories. */ @JsonIgnore public long totalCount() { @@ -63,7 +63,7 @@ public SCIMDirectoryList withData(List data) { } /** - * Total number of SCIM directories. + * Total number of directories. */ public SCIMDirectoryList withTotalCount(long totalCount) { Utils.checkNotNull(totalCount, "totalCount"); @@ -118,7 +118,7 @@ public Builder data(List data) { /** - * Total number of SCIM directories. + * Total number of directories. */ public Builder totalCount(long totalCount) { Utils.checkNotNull(totalCount, "totalCount"); diff --git a/src/main/java/com/clerk/backend_api/models/components/SCIMGroupRoleMapping.java b/src/main/java/com/clerk/backend_api/models/components/SCIMGroupRoleMapping.java index c2305a75..ce7d8d0a 100644 --- a/src/main/java/com/clerk/backend_api/models/components/SCIMGroupRoleMapping.java +++ b/src/main/java/com/clerk/backend_api/models/components/SCIMGroupRoleMapping.java @@ -35,23 +35,42 @@ public class SCIMGroupRoleMapping { private String id; /** - * The ID of the SCIM directory this mapping belongs to. + * The ID of the directory this mapping belongs to. */ @JsonProperty("scim_directory_id") private String scimDirectoryId; + /** + * The ID of the directory this mapping belongs to. Same value as `scim_directory_id`. + */ + @JsonProperty("directory_id") + private String directoryId; + /** * The SCIM group ID from the identity provider. */ @JsonProperty("scim_group_id") private String scimGroupId; + /** + * The group ID from the identity provider. Same value as `scim_group_id`. + */ + @JsonProperty("directory_group_id") + private String directoryGroupId; + /** * The display name of the SCIM group, as reported by the identity provider. */ @JsonProperty("scim_group_display_name") private String scimGroupDisplayName; + /** + * The display name of the group, as reported by the identity provider. Same value as + * `scim_group_display_name`. + */ + @JsonProperty("directory_group_display_name") + private String directoryGroupDisplayName; + @JsonInclude(Include.NON_ABSENT) @JsonProperty("role") @@ -81,8 +100,11 @@ public SCIMGroupRoleMapping( @JsonProperty("object") SCIMGroupRoleMappingObject object, @JsonProperty("id") String id, @JsonProperty("scim_directory_id") String scimDirectoryId, + @JsonProperty("directory_id") String directoryId, @JsonProperty("scim_group_id") String scimGroupId, + @JsonProperty("directory_group_id") String directoryGroupId, @JsonProperty("scim_group_display_name") String scimGroupDisplayName, + @JsonProperty("directory_group_display_name") String directoryGroupDisplayName, @JsonProperty("role") Optional role, @JsonProperty("precedence") long precedence, @JsonProperty("created_at") long createdAt, @@ -90,8 +112,11 @@ public SCIMGroupRoleMapping( Utils.checkNotNull(object, "object"); Utils.checkNotNull(id, "id"); Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); + Utils.checkNotNull(directoryId, "directoryId"); Utils.checkNotNull(scimGroupId, "scimGroupId"); + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); Utils.checkNotNull(scimGroupDisplayName, "scimGroupDisplayName"); + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); Utils.checkNotNull(role, "role"); Utils.checkNotNull(precedence, "precedence"); Utils.checkNotNull(createdAt, "createdAt"); @@ -99,8 +124,11 @@ public SCIMGroupRoleMapping( this.object = object; this.id = id; this.scimDirectoryId = scimDirectoryId; + this.directoryId = directoryId; this.scimGroupId = scimGroupId; + this.directoryGroupId = directoryGroupId; this.scimGroupDisplayName = scimGroupDisplayName; + this.directoryGroupDisplayName = directoryGroupDisplayName; this.role = role; this.precedence = precedence; this.createdAt = createdAt; @@ -111,13 +139,17 @@ public SCIMGroupRoleMapping( SCIMGroupRoleMappingObject object, String id, String scimDirectoryId, + String directoryId, String scimGroupId, + String directoryGroupId, String scimGroupDisplayName, + String directoryGroupDisplayName, long precedence, long createdAt, long updatedAt) { this(object, id, scimDirectoryId, - scimGroupId, scimGroupDisplayName, Optional.empty(), + directoryId, scimGroupId, directoryGroupId, + scimGroupDisplayName, directoryGroupDisplayName, Optional.empty(), precedence, createdAt, updatedAt); } @@ -138,13 +170,21 @@ public String id() { } /** - * The ID of the SCIM directory this mapping belongs to. + * The ID of the directory this mapping belongs to. */ @JsonIgnore public String scimDirectoryId() { return scimDirectoryId; } + /** + * The ID of the directory this mapping belongs to. Same value as `scim_directory_id`. + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + /** * The SCIM group ID from the identity provider. */ @@ -153,6 +193,14 @@ public String scimGroupId() { return scimGroupId; } + /** + * The group ID from the identity provider. Same value as `scim_group_id`. + */ + @JsonIgnore + public String directoryGroupId() { + return directoryGroupId; + } + /** * The display name of the SCIM group, as reported by the identity provider. */ @@ -161,6 +209,15 @@ public String scimGroupDisplayName() { return scimGroupDisplayName; } + /** + * The display name of the group, as reported by the identity provider. Same value as + * `scim_group_display_name`. + */ + @JsonIgnore + public String directoryGroupDisplayName() { + return directoryGroupDisplayName; + } + @SuppressWarnings("unchecked") @JsonIgnore public Optional role() { @@ -216,7 +273,7 @@ public SCIMGroupRoleMapping withId(String id) { } /** - * The ID of the SCIM directory this mapping belongs to. + * The ID of the directory this mapping belongs to. */ public SCIMGroupRoleMapping withScimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -224,6 +281,15 @@ public SCIMGroupRoleMapping withScimDirectoryId(String scimDirectoryId) { return this; } + /** + * The ID of the directory this mapping belongs to. Same value as `scim_directory_id`. + */ + public SCIMGroupRoleMapping withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + /** * The SCIM group ID from the identity provider. */ @@ -233,6 +299,15 @@ public SCIMGroupRoleMapping withScimGroupId(String scimGroupId) { return this; } + /** + * The group ID from the identity provider. Same value as `scim_group_id`. + */ + public SCIMGroupRoleMapping withDirectoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + /** * The display name of the SCIM group, as reported by the identity provider. */ @@ -242,6 +317,16 @@ public SCIMGroupRoleMapping withScimGroupDisplayName(String scimGroupDisplayName return this; } + /** + * The display name of the group, as reported by the identity provider. Same value as + * `scim_group_display_name`. + */ + public SCIMGroupRoleMapping withDirectoryGroupDisplayName(String directoryGroupDisplayName) { + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + this.directoryGroupDisplayName = directoryGroupDisplayName; + return this; + } + public SCIMGroupRoleMapping withRole(Role role) { Utils.checkNotNull(role, "role"); this.role = Optional.ofNullable(role); @@ -296,8 +381,11 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.object, other.object) && Utils.enhancedDeepEquals(this.id, other.id) && Utils.enhancedDeepEquals(this.scimDirectoryId, other.scimDirectoryId) && + Utils.enhancedDeepEquals(this.directoryId, other.directoryId) && Utils.enhancedDeepEquals(this.scimGroupId, other.scimGroupId) && + Utils.enhancedDeepEquals(this.directoryGroupId, other.directoryGroupId) && Utils.enhancedDeepEquals(this.scimGroupDisplayName, other.scimGroupDisplayName) && + Utils.enhancedDeepEquals(this.directoryGroupDisplayName, other.directoryGroupDisplayName) && Utils.enhancedDeepEquals(this.role, other.role) && Utils.enhancedDeepEquals(this.precedence, other.precedence) && Utils.enhancedDeepEquals(this.createdAt, other.createdAt) && @@ -308,7 +396,8 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Utils.enhancedHash( object, id, scimDirectoryId, - scimGroupId, scimGroupDisplayName, role, + directoryId, scimGroupId, directoryGroupId, + scimGroupDisplayName, directoryGroupDisplayName, role, precedence, createdAt, updatedAt); } @@ -318,8 +407,11 @@ public String toString() { "object", object, "id", id, "scimDirectoryId", scimDirectoryId, + "directoryId", directoryId, "scimGroupId", scimGroupId, + "directoryGroupId", directoryGroupId, "scimGroupDisplayName", scimGroupDisplayName, + "directoryGroupDisplayName", directoryGroupDisplayName, "role", role, "precedence", precedence, "createdAt", createdAt, @@ -335,10 +427,16 @@ public final static class Builder { private String scimDirectoryId; + private String directoryId; + private String scimGroupId; + private String directoryGroupId; + private String scimGroupDisplayName; + private String directoryGroupDisplayName; + private Optional role = Optional.empty(); private Long precedence; @@ -373,7 +471,7 @@ public Builder id(String id) { /** - * The ID of the SCIM directory this mapping belongs to. + * The ID of the directory this mapping belongs to. */ public Builder scimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -382,6 +480,16 @@ public Builder scimDirectoryId(String scimDirectoryId) { } + /** + * The ID of the directory this mapping belongs to. Same value as `scim_directory_id`. + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + /** * The SCIM group ID from the identity provider. */ @@ -392,6 +500,16 @@ public Builder scimGroupId(String scimGroupId) { } + /** + * The group ID from the identity provider. Same value as `scim_group_id`. + */ + public Builder directoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + + /** * The display name of the SCIM group, as reported by the identity provider. */ @@ -402,6 +520,17 @@ public Builder scimGroupDisplayName(String scimGroupDisplayName) { } + /** + * The display name of the group, as reported by the identity provider. Same value as + * `scim_group_display_name`. + */ + public Builder directoryGroupDisplayName(String directoryGroupDisplayName) { + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + this.directoryGroupDisplayName = directoryGroupDisplayName; + return this; + } + + public Builder role(Role role) { Utils.checkNotNull(role, "role"); this.role = Optional.ofNullable(role); @@ -449,7 +578,8 @@ public SCIMGroupRoleMapping build() { return new SCIMGroupRoleMapping( object, id, scimDirectoryId, - scimGroupId, scimGroupDisplayName, role, + directoryId, scimGroupId, directoryGroupId, + scimGroupDisplayName, directoryGroupDisplayName, role, precedence, createdAt, updatedAt); } diff --git a/src/main/java/com/clerk/backend_api/models/components/Scim.java b/src/main/java/com/clerk/backend_api/models/components/Scim.java index 33344e51..a7742dda 100644 --- a/src/main/java/com/clerk/backend_api/models/components/Scim.java +++ b/src/main/java/com/clerk/backend_api/models/components/Scim.java @@ -17,26 +17,26 @@ /** * Scim * - *

Metadata describing a user's linkage to a SCIM directory. This object is only delivered on - * `user.created` and `user.updated` webhook events, and only when the user is provisioned through a - * SCIM directory. Its absence does not necessarily mean the user is not SCIM-managed. + *

Metadata describing a user's linkage to a directory. This object is only delivered on `user.created` + * and `user.updated` webhook events, and only when the user is provisioned through a directory. Its + * absence does not necessarily mean the user is not managed by a directory. */ public class Scim { /** - * The ID of the SCIM directory the user is provisioned from. + * The ID of the directory the user is provisioned from. */ @JsonProperty("directory_id") private String directoryId; /** - * Whether the SCIM directory is currently enabled. Omitted when false. + * Whether the directory is currently enabled. Omitted when false. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("directory_enabled") private Optional directoryEnabled; /** - * The user's external ID as reported by the SCIM directory, if any. + * The user's external ID as reported by the directory, if any. */ @JsonInclude(Include.ALWAYS) @JsonProperty("external_id") @@ -61,7 +61,7 @@ public Scim( } /** - * The ID of the SCIM directory the user is provisioned from. + * The ID of the directory the user is provisioned from. */ @JsonIgnore public String directoryId() { @@ -69,7 +69,7 @@ public String directoryId() { } /** - * Whether the SCIM directory is currently enabled. Omitted when false. + * Whether the directory is currently enabled. Omitted when false. */ @JsonIgnore public Optional directoryEnabled() { @@ -77,7 +77,7 @@ public Optional directoryEnabled() { } /** - * The user's external ID as reported by the SCIM directory, if any. + * The user's external ID as reported by the directory, if any. */ @JsonIgnore public Optional externalId() { @@ -90,7 +90,7 @@ public static Builder builder() { /** - * The ID of the SCIM directory the user is provisioned from. + * The ID of the directory the user is provisioned from. */ public Scim withDirectoryId(String directoryId) { Utils.checkNotNull(directoryId, "directoryId"); @@ -99,7 +99,7 @@ public Scim withDirectoryId(String directoryId) { } /** - * Whether the SCIM directory is currently enabled. Omitted when false. + * Whether the directory is currently enabled. Omitted when false. */ public Scim withDirectoryEnabled(boolean directoryEnabled) { Utils.checkNotNull(directoryEnabled, "directoryEnabled"); @@ -109,7 +109,7 @@ public Scim withDirectoryEnabled(boolean directoryEnabled) { /** - * Whether the SCIM directory is currently enabled. Omitted when false. + * Whether the directory is currently enabled. Omitted when false. */ public Scim withDirectoryEnabled(Optional directoryEnabled) { Utils.checkNotNull(directoryEnabled, "directoryEnabled"); @@ -118,7 +118,7 @@ public Scim withDirectoryEnabled(Optional directoryEnabled) { } /** - * The user's external ID as reported by the SCIM directory, if any. + * The user's external ID as reported by the directory, if any. */ public Scim withExternalId(String externalId) { Utils.checkNotNull(externalId, "externalId"); @@ -128,7 +128,7 @@ public Scim withExternalId(String externalId) { /** - * The user's external ID as reported by the SCIM directory, if any. + * The user's external ID as reported by the directory, if any. */ public Scim withExternalId(Optional externalId) { Utils.checkNotNull(externalId, "externalId"); @@ -180,7 +180,7 @@ private Builder() { /** - * The ID of the SCIM directory the user is provisioned from. + * The ID of the directory the user is provisioned from. */ public Builder directoryId(String directoryId) { Utils.checkNotNull(directoryId, "directoryId"); @@ -190,7 +190,7 @@ public Builder directoryId(String directoryId) { /** - * Whether the SCIM directory is currently enabled. Omitted when false. + * Whether the directory is currently enabled. Omitted when false. */ public Builder directoryEnabled(boolean directoryEnabled) { Utils.checkNotNull(directoryEnabled, "directoryEnabled"); @@ -199,7 +199,7 @@ public Builder directoryEnabled(boolean directoryEnabled) { } /** - * Whether the SCIM directory is currently enabled. Omitted when false. + * Whether the directory is currently enabled. Omitted when false. */ public Builder directoryEnabled(Optional directoryEnabled) { Utils.checkNotNull(directoryEnabled, "directoryEnabled"); @@ -209,7 +209,7 @@ public Builder directoryEnabled(Optional directoryEnabled) { /** - * The user's external ID as reported by the SCIM directory, if any. + * The user's external ID as reported by the directory, if any. */ public Builder externalId(String externalId) { Utils.checkNotNull(externalId, "externalId"); @@ -218,7 +218,7 @@ public Builder externalId(String externalId) { } /** - * The user's external ID as reported by the SCIM directory, if any. + * The user's external ID as reported by the directory, if any. */ public Builder externalId(Optional externalId) { Utils.checkNotNull(externalId, "externalId"); diff --git a/src/main/java/com/clerk/backend_api/models/components/Source.java b/src/main/java/com/clerk/backend_api/models/components/Source.java new file mode 100644 index 00000000..272748d6 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/components/Source.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +/** + * Source + * + *

How the discount was applied to the subscription item. + */ +public enum Source { + PROMOTION("promotion"), + MANUAL("manual"), + PROMO_CODE("promo_code"); + + @JsonValue + private final String value; + + Source(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (Source o: Source.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/clerk/backend_api/models/components/User.java b/src/main/java/com/clerk/backend_api/models/components/User.java index e9466480..5eb46c43 100644 --- a/src/main/java/com/clerk/backend_api/models/components/User.java +++ b/src/main/java/com/clerk/backend_api/models/components/User.java @@ -272,7 +272,7 @@ public class User { private Optional legalAcceptedAt; /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("bypass_client_trust") @@ -751,7 +751,7 @@ public Optional legalAcceptedAt() { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ @JsonIgnore public Optional bypassClientTrust() { @@ -1292,7 +1292,7 @@ public User withLegalAcceptedAt(Optional legalAcceptedAt) { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public User withBypassClientTrust(boolean bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -1302,7 +1302,7 @@ public User withBypassClientTrust(boolean bypassClientTrust) { /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public User withBypassClientTrust(Optional bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -2101,7 +2101,7 @@ public Builder legalAcceptedAt(Optional legalAcceptedAt) { /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public Builder bypassClientTrust(boolean bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -2110,7 +2110,7 @@ public Builder bypassClientTrust(boolean bypassClientTrust) { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public Builder bypassClientTrust(Optional bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); diff --git a/src/main/java/com/clerk/backend_api/models/errors/ClerkErrors.java b/src/main/java/com/clerk/backend_api/models/errors/ClerkErrors.java index ea75353a..e8a786c3 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/ClerkErrors.java +++ b/src/main/java/com/clerk/backend_api/models/errors/ClerkErrors.java @@ -47,12 +47,17 @@ public ClerkErrors( * the resulting ClerkErrors instance will have a null data() value and a non-null deserializationException(). */ public static ClerkErrors from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new ClerkErrors(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new ClerkErrors(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new ClerkErrors(response.statusCode(), null, response, null, e); + return new ClerkErrors(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/CreateAPIKeyAPIKeysResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/CreateAPIKeyAPIKeysResponseBody.java index 2c1a461c..1506e635 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/CreateAPIKeyAPIKeysResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/CreateAPIKeyAPIKeysResponseBody.java @@ -43,12 +43,17 @@ public CreateAPIKeyAPIKeysResponseBody( * the resulting CreateAPIKeyAPIKeysResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static CreateAPIKeyAPIKeysResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new CreateAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new CreateAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new CreateAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + return new CreateAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody.java index 346575b5..979983c3 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody.java @@ -43,12 +43,17 @@ public CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody( * the resulting CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody(response.statusCode(), null, response, null, e); + return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponse409ResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java index 54b88a8a..d12d2015 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java @@ -43,12 +43,17 @@ public CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody( * the resulting CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody(response.statusCode(), null, response, null, e); + return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java index 7944375e..818162b3 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java @@ -43,12 +43,17 @@ public CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody( * the resulting CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody(response.statusCode(), null, response, null, e); + return new CreateAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenResponseBody.java index 8e0151ad..d51ec480 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/CreateAdminPortalLinkTokenResponseBody.java @@ -43,12 +43,17 @@ public CreateAdminPortalLinkTokenResponseBody( * the resulting CreateAdminPortalLinkTokenResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static CreateAdminPortalLinkTokenResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new CreateAdminPortalLinkTokenResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new CreateAdminPortalLinkTokenResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new CreateAdminPortalLinkTokenResponseBody(response.statusCode(), null, response, null, e); + return new CreateAdminPortalLinkTokenResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/CreateApiKeyResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/CreateApiKeyResponseBody.java index 91d79288..d319011d 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/CreateApiKeyResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/CreateApiKeyResponseBody.java @@ -43,12 +43,17 @@ public CreateApiKeyResponseBody( * the resulting CreateApiKeyResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static CreateApiKeyResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new CreateApiKeyResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new CreateApiKeyResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new CreateApiKeyResponseBody(response.statusCode(), null, response, null, e); + return new CreateApiKeyResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenM2mResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenM2mResponseBody.java index 3f5057bc..aa1308e4 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenM2mResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenM2mResponseBody.java @@ -43,12 +43,17 @@ public CreateM2MTokenM2mResponseBody( * the resulting CreateM2MTokenM2mResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static CreateM2MTokenM2mResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new CreateM2MTokenM2mResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new CreateM2MTokenM2mResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new CreateM2MTokenM2mResponseBody(response.statusCode(), null, response, null, e); + return new CreateM2MTokenM2mResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenResponseBody.java index 49f53423..7c4bbf27 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/CreateM2MTokenResponseBody.java @@ -43,12 +43,17 @@ public CreateM2MTokenResponseBody( * the resulting CreateM2MTokenResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static CreateM2MTokenResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new CreateM2MTokenResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new CreateM2MTokenResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new CreateM2MTokenResponseBody(response.statusCode(), null, response, null, e); + return new CreateM2MTokenResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/DeleteAPIKeyAPIKeysResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/DeleteAPIKeyAPIKeysResponseBody.java index b93cafa5..833a0fbf 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/DeleteAPIKeyAPIKeysResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/DeleteAPIKeyAPIKeysResponseBody.java @@ -43,12 +43,17 @@ public DeleteAPIKeyAPIKeysResponseBody( * the resulting DeleteAPIKeyAPIKeysResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static DeleteAPIKeyAPIKeysResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new DeleteAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new DeleteAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new DeleteAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + return new DeleteAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/DeleteApiKeyResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/DeleteApiKeyResponseBody.java index 67fb4977..3bed1514 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/DeleteApiKeyResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/DeleteApiKeyResponseBody.java @@ -43,12 +43,17 @@ public DeleteApiKeyResponseBody( * the resulting DeleteApiKeyResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static DeleteApiKeyResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new DeleteApiKeyResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new DeleteApiKeyResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new DeleteApiKeyResponseBody(response.statusCode(), null, response, null, e); + return new DeleteApiKeyResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeyAPIKeysResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeyAPIKeysResponseBody.java index 4d9c234d..e223bcaf 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeyAPIKeysResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeyAPIKeysResponseBody.java @@ -43,12 +43,17 @@ public GetAPIKeyAPIKeysResponseBody( * the resulting GetAPIKeyAPIKeysResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static GetAPIKeyAPIKeysResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new GetAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new GetAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new GetAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + return new GetAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeySecretAPIKeysResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeySecretAPIKeysResponseBody.java index 096e8137..cdb5d6b6 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeySecretAPIKeysResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeySecretAPIKeysResponseBody.java @@ -43,12 +43,17 @@ public GetAPIKeySecretAPIKeysResponseBody( * the resulting GetAPIKeySecretAPIKeysResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static GetAPIKeySecretAPIKeysResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new GetAPIKeySecretAPIKeysResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new GetAPIKeySecretAPIKeysResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new GetAPIKeySecretAPIKeysResponseBody(response.statusCode(), null, response, null, e); + return new GetAPIKeySecretAPIKeysResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeysAPIKeysResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeysAPIKeysResponseBody.java index 046ff249..f6f87cda 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeysAPIKeysResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/GetAPIKeysAPIKeysResponseBody.java @@ -43,12 +43,17 @@ public GetAPIKeysAPIKeysResponseBody( * the resulting GetAPIKeysAPIKeysResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static GetAPIKeysAPIKeysResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new GetAPIKeysAPIKeysResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new GetAPIKeysAPIKeysResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new GetAPIKeysAPIKeysResponseBody(response.statusCode(), null, response, null, e); + return new GetAPIKeysAPIKeysResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/GetApiKeyResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/GetApiKeyResponseBody.java index a50168ae..2f71a51f 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/GetApiKeyResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/GetApiKeyResponseBody.java @@ -43,12 +43,17 @@ public GetApiKeyResponseBody( * the resulting GetApiKeyResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static GetApiKeyResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new GetApiKeyResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new GetApiKeyResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new GetApiKeyResponseBody(response.statusCode(), null, response, null, e); + return new GetApiKeyResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/GetApiKeySecretResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/GetApiKeySecretResponseBody.java index 039d36b2..a1dfe5f5 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/GetApiKeySecretResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/GetApiKeySecretResponseBody.java @@ -43,12 +43,17 @@ public GetApiKeySecretResponseBody( * the resulting GetApiKeySecretResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static GetApiKeySecretResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new GetApiKeySecretResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new GetApiKeySecretResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new GetApiKeySecretResponseBody(response.statusCode(), null, response, null, e); + return new GetApiKeySecretResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/GetApiKeysResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/GetApiKeysResponseBody.java index 1d298882..2366a85c 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/GetApiKeysResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/GetApiKeysResponseBody.java @@ -43,12 +43,17 @@ public GetApiKeysResponseBody( * the resulting GetApiKeysResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static GetApiKeysResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new GetApiKeysResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new GetApiKeysResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new GetApiKeysResponseBody(response.statusCode(), null, response, null, e); + return new GetApiKeysResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseBody.java index a91391aa..b8ff2021 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseBody.java @@ -43,12 +43,17 @@ public GetM2MTokensM2mResponseBody( * the resulting GetM2MTokensM2mResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static GetM2MTokensM2mResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new GetM2MTokensM2mResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new GetM2MTokensM2mResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new GetM2MTokensM2mResponseBody(response.statusCode(), null, response, null, e); + return new GetM2MTokensM2mResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseResponseBody.java index 8770d72c..e4c34abf 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensM2mResponseResponseBody.java @@ -43,12 +43,17 @@ public GetM2MTokensM2mResponseResponseBody( * the resulting GetM2MTokensM2mResponseResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static GetM2MTokensM2mResponseResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new GetM2MTokensM2mResponseResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new GetM2MTokensM2mResponseResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new GetM2MTokensM2mResponseResponseBody(response.statusCode(), null, response, null, e); + return new GetM2MTokensM2mResponseResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensResponseBody.java index 8b4d88a2..f485a573 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/GetM2MTokensResponseBody.java @@ -43,12 +43,17 @@ public GetM2MTokensResponseBody( * the resulting GetM2MTokensResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static GetM2MTokensResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new GetM2MTokensResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new GetM2MTokensResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new GetM2MTokensResponseBody(response.statusCode(), null, response, null, e); + return new GetM2MTokensResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/RevokeAPIKeyAPIKeysResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/RevokeAPIKeyAPIKeysResponseBody.java index f4b89b10..206ec7e3 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/RevokeAPIKeyAPIKeysResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/RevokeAPIKeyAPIKeysResponseBody.java @@ -43,12 +43,17 @@ public RevokeAPIKeyAPIKeysResponseBody( * the resulting RevokeAPIKeyAPIKeysResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static RevokeAPIKeyAPIKeysResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new RevokeAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new RevokeAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new RevokeAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + return new RevokeAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody.java index 39f529fa..bfca37a1 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody.java @@ -43,12 +43,17 @@ public RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody( * the resulting RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody(response.statusCode(), null, response, null, e); + return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponse404ResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java index 1435bb47..c224c583 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody.java @@ -43,12 +43,17 @@ public RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody( * the resulting RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody(response.statusCode(), null, response, null, e); + return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java index 5e2fc217..6d5ee2b3 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody.java @@ -43,12 +43,17 @@ public RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody( * the resulting RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody(response.statusCode(), null, response, null, e); + return new RevokeAdminPortalLinkTokenAdminPortalLinkTokensResponseResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenResponseBody.java index 13328be2..be2020ef 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/RevokeAdminPortalLinkTokenResponseBody.java @@ -43,12 +43,17 @@ public RevokeAdminPortalLinkTokenResponseBody( * the resulting RevokeAdminPortalLinkTokenResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static RevokeAdminPortalLinkTokenResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new RevokeAdminPortalLinkTokenResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new RevokeAdminPortalLinkTokenResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new RevokeAdminPortalLinkTokenResponseBody(response.statusCode(), null, response, null, e); + return new RevokeAdminPortalLinkTokenResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/RevokeApiKeyResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/RevokeApiKeyResponseBody.java index c763ffc5..cd0b68b5 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/RevokeApiKeyResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/RevokeApiKeyResponseBody.java @@ -43,12 +43,17 @@ public RevokeApiKeyResponseBody( * the resulting RevokeApiKeyResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static RevokeApiKeyResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new RevokeApiKeyResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new RevokeApiKeyResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new RevokeApiKeyResponseBody(response.statusCode(), null, response, null, e); + return new RevokeApiKeyResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenM2mResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenM2mResponseBody.java index 8a2c1b54..d7ecfa19 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenM2mResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenM2mResponseBody.java @@ -43,12 +43,17 @@ public RevokeM2MTokenM2mResponseBody( * the resulting RevokeM2MTokenM2mResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static RevokeM2MTokenM2mResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new RevokeM2MTokenM2mResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new RevokeM2MTokenM2mResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new RevokeM2MTokenM2mResponseBody(response.statusCode(), null, response, null, e); + return new RevokeM2MTokenM2mResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenResponseBody.java index c6214dfc..d598838f 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/RevokeM2MTokenResponseBody.java @@ -43,12 +43,17 @@ public RevokeM2MTokenResponseBody( * the resulting RevokeM2MTokenResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static RevokeM2MTokenResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new RevokeM2MTokenResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new RevokeM2MTokenResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new RevokeM2MTokenResponseBody(response.statusCode(), null, response, null, e); + return new RevokeM2MTokenResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/UpdateAPIKeyAPIKeysResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/UpdateAPIKeyAPIKeysResponseBody.java index 5fc6d91f..dad5760b 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/UpdateAPIKeyAPIKeysResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/UpdateAPIKeyAPIKeysResponseBody.java @@ -43,12 +43,17 @@ public UpdateAPIKeyAPIKeysResponseBody( * the resulting UpdateAPIKeyAPIKeysResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static UpdateAPIKeyAPIKeysResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new UpdateAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new UpdateAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new UpdateAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + return new UpdateAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/UpdateApiKeyResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/UpdateApiKeyResponseBody.java index c0719f57..437aa78f 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/UpdateApiKeyResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/UpdateApiKeyResponseBody.java @@ -43,12 +43,17 @@ public UpdateApiKeyResponseBody( * the resulting UpdateApiKeyResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static UpdateApiKeyResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new UpdateApiKeyResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new UpdateApiKeyResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new UpdateApiKeyResponseBody(response.statusCode(), null, response, null, e); + return new UpdateApiKeyResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/VerifyAPIKeyAPIKeysResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/VerifyAPIKeyAPIKeysResponseBody.java index 55590cdc..409fa91b 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/VerifyAPIKeyAPIKeysResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/VerifyAPIKeyAPIKeysResponseBody.java @@ -43,12 +43,17 @@ public VerifyAPIKeyAPIKeysResponseBody( * the resulting VerifyAPIKeyAPIKeysResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static VerifyAPIKeyAPIKeysResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new VerifyAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new VerifyAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new VerifyAPIKeyAPIKeysResponseBody(response.statusCode(), null, response, null, e); + return new VerifyAPIKeyAPIKeysResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/VerifyApiKeyResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/VerifyApiKeyResponseBody.java index 6286ef0e..3e7e8a10 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/VerifyApiKeyResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/VerifyApiKeyResponseBody.java @@ -43,12 +43,17 @@ public VerifyApiKeyResponseBody( * the resulting VerifyApiKeyResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static VerifyApiKeyResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new VerifyApiKeyResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new VerifyApiKeyResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new VerifyApiKeyResponseBody(response.statusCode(), null, response, null, e); + return new VerifyApiKeyResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenM2mResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenM2mResponseBody.java index e26614d1..65282903 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenM2mResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenM2mResponseBody.java @@ -43,12 +43,17 @@ public VerifyM2MTokenM2mResponseBody( * the resulting VerifyM2MTokenM2mResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static VerifyM2MTokenM2mResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new VerifyM2MTokenM2mResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new VerifyM2MTokenM2mResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new VerifyM2MTokenM2mResponseBody(response.statusCode(), null, response, null, e); + return new VerifyM2MTokenM2mResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenResponseBody.java index f64edb59..1481e544 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/VerifyM2MTokenResponseBody.java @@ -43,12 +43,17 @@ public VerifyM2MTokenResponseBody( * the resulting VerifyM2MTokenResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static VerifyM2MTokenResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new VerifyM2MTokenResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new VerifyM2MTokenResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new VerifyM2MTokenResponseBody(response.statusCode(), null, response, null, e); + return new VerifyM2MTokenResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.java index b01fc9b5..5e372435 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenOauthAccessTokensResponseBody.java @@ -43,12 +43,17 @@ public VerifyOAuthAccessTokenOauthAccessTokensResponseBody( * the resulting VerifyOAuthAccessTokenOauthAccessTokensResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static VerifyOAuthAccessTokenOauthAccessTokensResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new VerifyOAuthAccessTokenOauthAccessTokensResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new VerifyOAuthAccessTokenOauthAccessTokensResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new VerifyOAuthAccessTokenOauthAccessTokensResponseBody(response.statusCode(), null, response, null, e); + return new VerifyOAuthAccessTokenOauthAccessTokensResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenResponseBody.java b/src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenResponseBody.java index 3428786f..2f23fbb7 100644 --- a/src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenResponseBody.java +++ b/src/main/java/com/clerk/backend_api/models/errors/VerifyOAuthAccessTokenResponseBody.java @@ -43,12 +43,17 @@ public VerifyOAuthAccessTokenResponseBody( * the resulting VerifyOAuthAccessTokenResponseBody instance will have a null data() value and a non-null deserializationException(). */ public static VerifyOAuthAccessTokenResponseBody from(HttpResponse response) { + byte[] bytes; + try { + bytes = Utils.extractByteArrayFromBody(response); + } catch (Exception e) { + return new VerifyOAuthAccessTokenResponseBody(response.statusCode(), null, response, null, e); + } try { - byte[] bytes = Utils.extractByteArrayFromBody(response); Data data = Utils.mapper().readValue(bytes, Data.class); return new VerifyOAuthAccessTokenResponseBody(response.statusCode(), bytes, response, data, null); } catch (Exception e) { - return new VerifyOAuthAccessTokenResponseBody(response.statusCode(), null, response, null, e); + return new VerifyOAuthAccessTokenResponseBody(response.statusCode(), bytes, response, null, e); } } diff --git a/src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountRequest.java b/src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountRequest.java new file mode 100644 index 00000000..beb4677e --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountRequest.java @@ -0,0 +1,142 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.ApplyCommerceDiscountRequest; +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class ApplyBillingSubscriptionItemDiscountRequest { + /** + * The ID of the subscription item to apply the discount to + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=subscription_item_id") + private String subscriptionItemId; + + /** + * Parameters for applying the discount + */ + @SpeakeasyMetadata("request:mediaType=application/json") + private ApplyCommerceDiscountRequest applyCommerceDiscountRequest; + + @JsonCreator + public ApplyBillingSubscriptionItemDiscountRequest( + String subscriptionItemId, + ApplyCommerceDiscountRequest applyCommerceDiscountRequest) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + Utils.checkNotNull(applyCommerceDiscountRequest, "applyCommerceDiscountRequest"); + this.subscriptionItemId = subscriptionItemId; + this.applyCommerceDiscountRequest = applyCommerceDiscountRequest; + } + + /** + * The ID of the subscription item to apply the discount to + */ + @JsonIgnore + public String subscriptionItemId() { + return subscriptionItemId; + } + + /** + * Parameters for applying the discount + */ + @JsonIgnore + public ApplyCommerceDiscountRequest applyCommerceDiscountRequest() { + return applyCommerceDiscountRequest; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the subscription item to apply the discount to + */ + public ApplyBillingSubscriptionItemDiscountRequest withSubscriptionItemId(String subscriptionItemId) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + this.subscriptionItemId = subscriptionItemId; + return this; + } + + /** + * Parameters for applying the discount + */ + public ApplyBillingSubscriptionItemDiscountRequest withApplyCommerceDiscountRequest(ApplyCommerceDiscountRequest applyCommerceDiscountRequest) { + Utils.checkNotNull(applyCommerceDiscountRequest, "applyCommerceDiscountRequest"); + this.applyCommerceDiscountRequest = applyCommerceDiscountRequest; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ApplyBillingSubscriptionItemDiscountRequest other = (ApplyBillingSubscriptionItemDiscountRequest) o; + return + Utils.enhancedDeepEquals(this.subscriptionItemId, other.subscriptionItemId) && + Utils.enhancedDeepEquals(this.applyCommerceDiscountRequest, other.applyCommerceDiscountRequest); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + subscriptionItemId, applyCommerceDiscountRequest); + } + + @Override + public String toString() { + return Utils.toString(ApplyBillingSubscriptionItemDiscountRequest.class, + "subscriptionItemId", subscriptionItemId, + "applyCommerceDiscountRequest", applyCommerceDiscountRequest); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String subscriptionItemId; + + private ApplyCommerceDiscountRequest applyCommerceDiscountRequest; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the subscription item to apply the discount to + */ + public Builder subscriptionItemId(String subscriptionItemId) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + this.subscriptionItemId = subscriptionItemId; + return this; + } + + + /** + * Parameters for applying the discount + */ + public Builder applyCommerceDiscountRequest(ApplyCommerceDiscountRequest applyCommerceDiscountRequest) { + Utils.checkNotNull(applyCommerceDiscountRequest, "applyCommerceDiscountRequest"); + this.applyCommerceDiscountRequest = applyCommerceDiscountRequest; + return this; + } + + public ApplyBillingSubscriptionItemDiscountRequest build() { + + return new ApplyBillingSubscriptionItemDiscountRequest( + subscriptionItemId, applyCommerceDiscountRequest); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountRequestBuilder.java new file mode 100644 index 00000000..73506823 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountRequestBuilder.java @@ -0,0 +1,74 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.models.components.ApplyCommerceDiscountRequest; +import com.clerk.backend_api.operations.ApplyBillingSubscriptionItemDiscount; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class ApplyBillingSubscriptionItemDiscountRequestBuilder { + + private String subscriptionItemId; + private ApplyCommerceDiscountRequest applyCommerceDiscountRequest; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public ApplyBillingSubscriptionItemDiscountRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public ApplyBillingSubscriptionItemDiscountRequestBuilder subscriptionItemId(String subscriptionItemId) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + this.subscriptionItemId = subscriptionItemId; + return this; + } + + public ApplyBillingSubscriptionItemDiscountRequestBuilder applyCommerceDiscountRequest(ApplyCommerceDiscountRequest applyCommerceDiscountRequest) { + Utils.checkNotNull(applyCommerceDiscountRequest, "applyCommerceDiscountRequest"); + this.applyCommerceDiscountRequest = applyCommerceDiscountRequest; + return this; + } + + public ApplyBillingSubscriptionItemDiscountRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public ApplyBillingSubscriptionItemDiscountRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private ApplyBillingSubscriptionItemDiscountRequest buildRequest() { + + ApplyBillingSubscriptionItemDiscountRequest request = new ApplyBillingSubscriptionItemDiscountRequest(subscriptionItemId, + applyCommerceDiscountRequest); + + return request; + } + + public ApplyBillingSubscriptionItemDiscountResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new ApplyBillingSubscriptionItemDiscount.Sync(sdkConfiguration, options, _headers); + ApplyBillingSubscriptionItemDiscountRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountResponse.java b/src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountResponse.java new file mode 100644 index 00000000..e7ac2289 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ApplyBillingSubscriptionItemDiscountResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.CommerceDiscountRedemptionResponse; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 ApplyBillingSubscriptionItemDiscountResponse 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; + + /** + * A commerce discount redemption. + */ + private Optional commerceDiscountRedemptionResponse; + + @JsonCreator + public ApplyBillingSubscriptionItemDiscountResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional commerceDiscountRedemptionResponse) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.commerceDiscountRedemptionResponse = commerceDiscountRedemptionResponse; + } + + public ApplyBillingSubscriptionItemDiscountResponse( + 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; + } + + /** + * A commerce discount redemption. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional commerceDiscountRedemptionResponse() { + return (Optional) commerceDiscountRedemptionResponse; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public ApplyBillingSubscriptionItemDiscountResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public ApplyBillingSubscriptionItemDiscountResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public ApplyBillingSubscriptionItemDiscountResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A commerce discount redemption. + */ + public ApplyBillingSubscriptionItemDiscountResponse withCommerceDiscountRedemptionResponse(CommerceDiscountRedemptionResponse commerceDiscountRedemptionResponse) { + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.commerceDiscountRedemptionResponse = Optional.ofNullable(commerceDiscountRedemptionResponse); + return this; + } + + + /** + * A commerce discount redemption. + */ + public ApplyBillingSubscriptionItemDiscountResponse withCommerceDiscountRedemptionResponse(Optional commerceDiscountRedemptionResponse) { + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.commerceDiscountRedemptionResponse = commerceDiscountRedemptionResponse; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ApplyBillingSubscriptionItemDiscountResponse other = (ApplyBillingSubscriptionItemDiscountResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.commerceDiscountRedemptionResponse, other.commerceDiscountRedemptionResponse); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + commerceDiscountRedemptionResponse); + } + + @Override + public String toString() { + return Utils.toString(ApplyBillingSubscriptionItemDiscountResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "commerceDiscountRedemptionResponse", commerceDiscountRedemptionResponse); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional commerceDiscountRedemptionResponse = 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; + } + + + /** + * A commerce discount redemption. + */ + public Builder commerceDiscountRedemptionResponse(CommerceDiscountRedemptionResponse commerceDiscountRedemptionResponse) { + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.commerceDiscountRedemptionResponse = Optional.ofNullable(commerceDiscountRedemptionResponse); + return this; + } + + /** + * A commerce discount redemption. + */ + public Builder commerceDiscountRedemptionResponse(Optional commerceDiscountRedemptionResponse) { + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.commerceDiscountRedemptionResponse = commerceDiscountRedemptionResponse; + return this; + } + + public ApplyBillingSubscriptionItemDiscountResponse build() { + + return new ApplyBillingSubscriptionItemDiscountResponse( + contentType, statusCode, rawResponse, + commerceDiscountRedemptionResponse); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequest.java b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequest.java new file mode 100644 index 00000000..b043d0de --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequest.java @@ -0,0 +1,130 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class CreateDirectoryGroupRoleMappingRequest { + /** + * The ID of the directory. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=directory_id") + private String directoryId; + + + @SpeakeasyMetadata("request:mediaType=application/json") + private CreateDirectoryGroupRoleMappingRequestBody requestBody; + + @JsonCreator + public CreateDirectoryGroupRoleMappingRequest( + String directoryId, + CreateDirectoryGroupRoleMappingRequestBody requestBody) { + Utils.checkNotNull(directoryId, "directoryId"); + Utils.checkNotNull(requestBody, "requestBody"); + this.directoryId = directoryId; + this.requestBody = requestBody; + } + + /** + * The ID of the directory. + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + + @JsonIgnore + public CreateDirectoryGroupRoleMappingRequestBody requestBody() { + return requestBody; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the directory. + */ + public CreateDirectoryGroupRoleMappingRequest withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public CreateDirectoryGroupRoleMappingRequest withRequestBody(CreateDirectoryGroupRoleMappingRequestBody requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = requestBody; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateDirectoryGroupRoleMappingRequest other = (CreateDirectoryGroupRoleMappingRequest) o; + return + Utils.enhancedDeepEquals(this.directoryId, other.directoryId) && + Utils.enhancedDeepEquals(this.requestBody, other.requestBody); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryId, requestBody); + } + + @Override + public String toString() { + return Utils.toString(CreateDirectoryGroupRoleMappingRequest.class, + "directoryId", directoryId, + "requestBody", requestBody); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String directoryId; + + private CreateDirectoryGroupRoleMappingRequestBody requestBody; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the directory. + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + + public Builder requestBody(CreateDirectoryGroupRoleMappingRequestBody requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = requestBody; + return this; + } + + public CreateDirectoryGroupRoleMappingRequest build() { + + return new CreateDirectoryGroupRoleMappingRequest( + directoryId, requestBody); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequestBody.java new file mode 100644 index 00000000..c0f1582b --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequestBody.java @@ -0,0 +1,317 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.util.Optional; + + +public class CreateDirectoryGroupRoleMappingRequestBody { + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory_group_id") + private Optional directoryGroupId; + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("scim_group_id") + private Optional scimGroupId; + + /** + * The ID of the organization role to assign to members of the group. + */ + @JsonProperty("role_id") + private String roleId; + + /** + * The precedence for this mapping. Lower values take priority when a user belongs + * to multiple mapped groups. If omitted, the mapping is appended with the + * next-highest precedence. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("precedence") + private Optional precedence; + + @JsonCreator + public CreateDirectoryGroupRoleMappingRequestBody( + @JsonProperty("directory_group_id") Optional directoryGroupId, + @JsonProperty("scim_group_id") Optional scimGroupId, + @JsonProperty("role_id") String roleId, + @JsonProperty("precedence") Optional precedence) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + Utils.checkNotNull(scimGroupId, "scimGroupId"); + Utils.checkNotNull(roleId, "roleId"); + Utils.checkNotNull(precedence, "precedence"); + this.directoryGroupId = directoryGroupId; + this.scimGroupId = scimGroupId; + this.roleId = roleId; + this.precedence = precedence; + } + + public CreateDirectoryGroupRoleMappingRequestBody( + String roleId) { + this(Optional.empty(), Optional.empty(), roleId, + Optional.empty()); + } + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + @JsonIgnore + public Optional directoryGroupId() { + return directoryGroupId; + } + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + @JsonIgnore + public Optional scimGroupId() { + return scimGroupId; + } + + /** + * The ID of the organization role to assign to members of the group. + */ + @JsonIgnore + public String roleId() { + return roleId; + } + + /** + * The precedence for this mapping. Lower values take priority when a user belongs + * to multiple mapped groups. If omitted, the mapping is appended with the + * next-highest precedence. + */ + @JsonIgnore + public Optional precedence() { + return precedence; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public CreateDirectoryGroupRoleMappingRequestBody withDirectoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = Optional.ofNullable(directoryGroupId); + return this; + } + + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public CreateDirectoryGroupRoleMappingRequestBody withDirectoryGroupId(Optional directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public CreateDirectoryGroupRoleMappingRequestBody withScimGroupId(String scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = Optional.ofNullable(scimGroupId); + return this; + } + + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public CreateDirectoryGroupRoleMappingRequestBody withScimGroupId(Optional scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = scimGroupId; + return this; + } + + /** + * The ID of the organization role to assign to members of the group. + */ + public CreateDirectoryGroupRoleMappingRequestBody withRoleId(String roleId) { + Utils.checkNotNull(roleId, "roleId"); + this.roleId = roleId; + return this; + } + + /** + * The precedence for this mapping. Lower values take priority when a user belongs + * to multiple mapped groups. If omitted, the mapping is appended with the + * next-highest precedence. + */ + public CreateDirectoryGroupRoleMappingRequestBody withPrecedence(long precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = Optional.ofNullable(precedence); + return this; + } + + + /** + * The precedence for this mapping. Lower values take priority when a user belongs + * to multiple mapped groups. If omitted, the mapping is appended with the + * next-highest precedence. + */ + public CreateDirectoryGroupRoleMappingRequestBody withPrecedence(Optional precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = precedence; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateDirectoryGroupRoleMappingRequestBody other = (CreateDirectoryGroupRoleMappingRequestBody) o; + return + Utils.enhancedDeepEquals(this.directoryGroupId, other.directoryGroupId) && + Utils.enhancedDeepEquals(this.scimGroupId, other.scimGroupId) && + Utils.enhancedDeepEquals(this.roleId, other.roleId) && + Utils.enhancedDeepEquals(this.precedence, other.precedence); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryGroupId, scimGroupId, roleId, + precedence); + } + + @Override + public String toString() { + return Utils.toString(CreateDirectoryGroupRoleMappingRequestBody.class, + "directoryGroupId", directoryGroupId, + "scimGroupId", scimGroupId, + "roleId", roleId, + "precedence", precedence); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private Optional directoryGroupId = Optional.empty(); + + private Optional scimGroupId = Optional.empty(); + + private String roleId; + + private Optional precedence = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public Builder directoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = Optional.ofNullable(directoryGroupId); + return this; + } + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public Builder directoryGroupId(Optional directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public Builder scimGroupId(String scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = Optional.ofNullable(scimGroupId); + return this; + } + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public Builder scimGroupId(Optional scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = scimGroupId; + return this; + } + + + /** + * The ID of the organization role to assign to members of the group. + */ + public Builder roleId(String roleId) { + Utils.checkNotNull(roleId, "roleId"); + this.roleId = roleId; + return this; + } + + + /** + * The precedence for this mapping. Lower values take priority when a user belongs + * to multiple mapped groups. If omitted, the mapping is appended with the + * next-highest precedence. + */ + public Builder precedence(long precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = Optional.ofNullable(precedence); + return this; + } + + /** + * The precedence for this mapping. Lower values take priority when a user belongs + * to multiple mapped groups. If omitted, the mapping is appended with the + * next-highest precedence. + */ + public Builder precedence(Optional precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = precedence; + return this; + } + + public CreateDirectoryGroupRoleMappingRequestBody build() { + + return new CreateDirectoryGroupRoleMappingRequestBody( + directoryGroupId, scimGroupId, roleId, + precedence); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequestBuilder.java new file mode 100644 index 00000000..7f2672c5 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingRequestBuilder.java @@ -0,0 +1,73 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.CreateDirectoryGroupRoleMapping; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class CreateDirectoryGroupRoleMappingRequestBuilder { + + private String directoryId; + private CreateDirectoryGroupRoleMappingRequestBody requestBody; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public CreateDirectoryGroupRoleMappingRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public CreateDirectoryGroupRoleMappingRequestBuilder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public CreateDirectoryGroupRoleMappingRequestBuilder requestBody(CreateDirectoryGroupRoleMappingRequestBody requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = requestBody; + return this; + } + + public CreateDirectoryGroupRoleMappingRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public CreateDirectoryGroupRoleMappingRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private CreateDirectoryGroupRoleMappingRequest buildRequest() { + + CreateDirectoryGroupRoleMappingRequest request = new CreateDirectoryGroupRoleMappingRequest(directoryId, + requestBody); + + return request; + } + + public CreateDirectoryGroupRoleMappingResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new CreateDirectoryGroupRoleMapping.Sync(sdkConfiguration, options, _headers); + CreateDirectoryGroupRoleMappingRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingResponse.java b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingResponse.java new file mode 100644 index 00000000..cd3765b2 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappingResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.DirectoryGroupRoleMapping; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 CreateDirectoryGroupRoleMappingResponse 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; + + /** + * A directory group role mapping + */ + private Optional directoryGroupRoleMapping; + + @JsonCreator + public CreateDirectoryGroupRoleMappingResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional directoryGroupRoleMapping) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(directoryGroupRoleMapping, "directoryGroupRoleMapping"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.directoryGroupRoleMapping = directoryGroupRoleMapping; + } + + public CreateDirectoryGroupRoleMappingResponse( + 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; + } + + /** + * A directory group role mapping + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional directoryGroupRoleMapping() { + return (Optional) directoryGroupRoleMapping; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public CreateDirectoryGroupRoleMappingResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public CreateDirectoryGroupRoleMappingResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public CreateDirectoryGroupRoleMappingResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A directory group role mapping + */ + public CreateDirectoryGroupRoleMappingResponse withDirectoryGroupRoleMapping(DirectoryGroupRoleMapping directoryGroupRoleMapping) { + Utils.checkNotNull(directoryGroupRoleMapping, "directoryGroupRoleMapping"); + this.directoryGroupRoleMapping = Optional.ofNullable(directoryGroupRoleMapping); + return this; + } + + + /** + * A directory group role mapping + */ + public CreateDirectoryGroupRoleMappingResponse withDirectoryGroupRoleMapping(Optional directoryGroupRoleMapping) { + Utils.checkNotNull(directoryGroupRoleMapping, "directoryGroupRoleMapping"); + this.directoryGroupRoleMapping = directoryGroupRoleMapping; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateDirectoryGroupRoleMappingResponse other = (CreateDirectoryGroupRoleMappingResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.directoryGroupRoleMapping, other.directoryGroupRoleMapping); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + directoryGroupRoleMapping); + } + + @Override + public String toString() { + return Utils.toString(CreateDirectoryGroupRoleMappingResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "directoryGroupRoleMapping", directoryGroupRoleMapping); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional directoryGroupRoleMapping = 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; + } + + + /** + * A directory group role mapping + */ + public Builder directoryGroupRoleMapping(DirectoryGroupRoleMapping directoryGroupRoleMapping) { + Utils.checkNotNull(directoryGroupRoleMapping, "directoryGroupRoleMapping"); + this.directoryGroupRoleMapping = Optional.ofNullable(directoryGroupRoleMapping); + return this; + } + + /** + * A directory group role mapping + */ + public Builder directoryGroupRoleMapping(Optional directoryGroupRoleMapping) { + Utils.checkNotNull(directoryGroupRoleMapping, "directoryGroupRoleMapping"); + this.directoryGroupRoleMapping = directoryGroupRoleMapping; + return this; + } + + public CreateDirectoryGroupRoleMappingResponse build() { + + return new CreateDirectoryGroupRoleMappingResponse( + contentType, statusCode, rawResponse, + directoryGroupRoleMapping); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappings.java b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappings.java new file mode 100644 index 00000000..9f6dbac7 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryGroupRoleMappings.java @@ -0,0 +1,431 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.util.Optional; + + +public class CreateDirectoryGroupRoleMappings { + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory_group_id") + private Optional directoryGroupId; + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("scim_group_id") + private Optional scimGroupId; + + /** + * Optional display name for the group. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory_group_display_name") + private Optional directoryGroupDisplayName; + + /** + * The legacy name for `directory_group_display_name`. Send either one, or both with the same value; + * sending both with different values is rejected. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("scim_group_display_name") + private Optional scimGroupDisplayName; + + /** + * The organization role ID to assign to members of the group. + */ + @JsonProperty("role_id") + private String roleId; + + /** + * The precedence for this mapping. If omitted, precedence is assigned by array order. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("precedence") + private Optional precedence; + + @JsonCreator + public CreateDirectoryGroupRoleMappings( + @JsonProperty("directory_group_id") Optional directoryGroupId, + @JsonProperty("scim_group_id") Optional scimGroupId, + @JsonProperty("directory_group_display_name") Optional directoryGroupDisplayName, + @JsonProperty("scim_group_display_name") Optional scimGroupDisplayName, + @JsonProperty("role_id") String roleId, + @JsonProperty("precedence") Optional precedence) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + Utils.checkNotNull(scimGroupId, "scimGroupId"); + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + Utils.checkNotNull(scimGroupDisplayName, "scimGroupDisplayName"); + Utils.checkNotNull(roleId, "roleId"); + Utils.checkNotNull(precedence, "precedence"); + this.directoryGroupId = directoryGroupId; + this.scimGroupId = scimGroupId; + this.directoryGroupDisplayName = directoryGroupDisplayName; + this.scimGroupDisplayName = scimGroupDisplayName; + this.roleId = roleId; + this.precedence = precedence; + } + + public CreateDirectoryGroupRoleMappings( + String roleId) { + this(Optional.empty(), Optional.empty(), Optional.empty(), + Optional.empty(), roleId, Optional.empty()); + } + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + @JsonIgnore + public Optional directoryGroupId() { + return directoryGroupId; + } + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + @JsonIgnore + public Optional scimGroupId() { + return scimGroupId; + } + + /** + * Optional display name for the group. + */ + @JsonIgnore + public Optional directoryGroupDisplayName() { + return directoryGroupDisplayName; + } + + /** + * The legacy name for `directory_group_display_name`. Send either one, or both with the same value; + * sending both with different values is rejected. + */ + @JsonIgnore + public Optional scimGroupDisplayName() { + return scimGroupDisplayName; + } + + /** + * The organization role ID to assign to members of the group. + */ + @JsonIgnore + public String roleId() { + return roleId; + } + + /** + * The precedence for this mapping. If omitted, precedence is assigned by array order. + */ + @JsonIgnore + public Optional precedence() { + return precedence; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public CreateDirectoryGroupRoleMappings withDirectoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = Optional.ofNullable(directoryGroupId); + return this; + } + + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public CreateDirectoryGroupRoleMappings withDirectoryGroupId(Optional directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public CreateDirectoryGroupRoleMappings withScimGroupId(String scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = Optional.ofNullable(scimGroupId); + return this; + } + + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public CreateDirectoryGroupRoleMappings withScimGroupId(Optional scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = scimGroupId; + return this; + } + + /** + * Optional display name for the group. + */ + public CreateDirectoryGroupRoleMappings withDirectoryGroupDisplayName(String directoryGroupDisplayName) { + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + this.directoryGroupDisplayName = Optional.ofNullable(directoryGroupDisplayName); + return this; + } + + + /** + * Optional display name for the group. + */ + public CreateDirectoryGroupRoleMappings withDirectoryGroupDisplayName(Optional directoryGroupDisplayName) { + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + this.directoryGroupDisplayName = directoryGroupDisplayName; + return this; + } + + /** + * The legacy name for `directory_group_display_name`. Send either one, or both with the same value; + * sending both with different values is rejected. + */ + public CreateDirectoryGroupRoleMappings withScimGroupDisplayName(String scimGroupDisplayName) { + Utils.checkNotNull(scimGroupDisplayName, "scimGroupDisplayName"); + this.scimGroupDisplayName = Optional.ofNullable(scimGroupDisplayName); + return this; + } + + + /** + * The legacy name for `directory_group_display_name`. Send either one, or both with the same value; + * sending both with different values is rejected. + */ + public CreateDirectoryGroupRoleMappings withScimGroupDisplayName(Optional scimGroupDisplayName) { + Utils.checkNotNull(scimGroupDisplayName, "scimGroupDisplayName"); + this.scimGroupDisplayName = scimGroupDisplayName; + return this; + } + + /** + * The organization role ID to assign to members of the group. + */ + public CreateDirectoryGroupRoleMappings withRoleId(String roleId) { + Utils.checkNotNull(roleId, "roleId"); + this.roleId = roleId; + return this; + } + + /** + * The precedence for this mapping. If omitted, precedence is assigned by array order. + */ + public CreateDirectoryGroupRoleMappings withPrecedence(long precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = Optional.ofNullable(precedence); + return this; + } + + + /** + * The precedence for this mapping. If omitted, precedence is assigned by array order. + */ + public CreateDirectoryGroupRoleMappings withPrecedence(Optional precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = precedence; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateDirectoryGroupRoleMappings other = (CreateDirectoryGroupRoleMappings) o; + return + Utils.enhancedDeepEquals(this.directoryGroupId, other.directoryGroupId) && + Utils.enhancedDeepEquals(this.scimGroupId, other.scimGroupId) && + Utils.enhancedDeepEquals(this.directoryGroupDisplayName, other.directoryGroupDisplayName) && + Utils.enhancedDeepEquals(this.scimGroupDisplayName, other.scimGroupDisplayName) && + Utils.enhancedDeepEquals(this.roleId, other.roleId) && + Utils.enhancedDeepEquals(this.precedence, other.precedence); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryGroupId, scimGroupId, directoryGroupDisplayName, + scimGroupDisplayName, roleId, precedence); + } + + @Override + public String toString() { + return Utils.toString(CreateDirectoryGroupRoleMappings.class, + "directoryGroupId", directoryGroupId, + "scimGroupId", scimGroupId, + "directoryGroupDisplayName", directoryGroupDisplayName, + "scimGroupDisplayName", scimGroupDisplayName, + "roleId", roleId, + "precedence", precedence); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private Optional directoryGroupId = Optional.empty(); + + private Optional scimGroupId = Optional.empty(); + + private Optional directoryGroupDisplayName = Optional.empty(); + + private Optional scimGroupDisplayName = Optional.empty(); + + private String roleId; + + private Optional precedence = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public Builder directoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = Optional.ofNullable(directoryGroupId); + return this; + } + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public Builder directoryGroupId(Optional directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public Builder scimGroupId(String scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = Optional.ofNullable(scimGroupId); + return this; + } + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public Builder scimGroupId(Optional scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = scimGroupId; + return this; + } + + + /** + * Optional display name for the group. + */ + public Builder directoryGroupDisplayName(String directoryGroupDisplayName) { + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + this.directoryGroupDisplayName = Optional.ofNullable(directoryGroupDisplayName); + return this; + } + + /** + * Optional display name for the group. + */ + public Builder directoryGroupDisplayName(Optional directoryGroupDisplayName) { + Utils.checkNotNull(directoryGroupDisplayName, "directoryGroupDisplayName"); + this.directoryGroupDisplayName = directoryGroupDisplayName; + return this; + } + + + /** + * The legacy name for `directory_group_display_name`. Send either one, or both with the same value; + * sending both with different values is rejected. + */ + public Builder scimGroupDisplayName(String scimGroupDisplayName) { + Utils.checkNotNull(scimGroupDisplayName, "scimGroupDisplayName"); + this.scimGroupDisplayName = Optional.ofNullable(scimGroupDisplayName); + return this; + } + + /** + * The legacy name for `directory_group_display_name`. Send either one, or both with the same value; + * sending both with different values is rejected. + */ + public Builder scimGroupDisplayName(Optional scimGroupDisplayName) { + Utils.checkNotNull(scimGroupDisplayName, "scimGroupDisplayName"); + this.scimGroupDisplayName = scimGroupDisplayName; + return this; + } + + + /** + * The organization role ID to assign to members of the group. + */ + public Builder roleId(String roleId) { + Utils.checkNotNull(roleId, "roleId"); + this.roleId = roleId; + return this; + } + + + /** + * The precedence for this mapping. If omitted, precedence is assigned by array order. + */ + public Builder precedence(long precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = Optional.ofNullable(precedence); + return this; + } + + /** + * The precedence for this mapping. If omitted, precedence is assigned by array order. + */ + public Builder precedence(Optional precedence) { + Utils.checkNotNull(precedence, "precedence"); + this.precedence = precedence; + return this; + } + + public CreateDirectoryGroupRoleMappings build() { + + return new CreateDirectoryGroupRoleMappings( + directoryGroupId, scimGroupId, directoryGroupDisplayName, + scimGroupDisplayName, roleId, precedence); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryRequestBody.java new file mode 100644 index 00000000..9fd5a935 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryRequestBody.java @@ -0,0 +1,276 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.List; +import java.util.Optional; + + +public class CreateDirectoryRequestBody { + /** + * The ID of the enterprise connection to associate with this directory. + */ + @JsonProperty("enterprise_connection_id") + private String enterpriseConnectionId; + + /** + * A human-friendly name for the directory. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + private Optional name; + + /** + * The identity provider for this directory. + */ + @JsonProperty("provider") + private String provider; + + /** + * Optional directory group to organization role mappings to create with the directory. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("group_role_mappings") + private Optional> groupRoleMappings; + + @JsonCreator + public CreateDirectoryRequestBody( + @JsonProperty("enterprise_connection_id") String enterpriseConnectionId, + @JsonProperty("name") Optional name, + @JsonProperty("provider") String provider, + @JsonProperty("group_role_mappings") Optional> groupRoleMappings) { + Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); + Utils.checkNotNull(name, "name"); + Utils.checkNotNull(provider, "provider"); + Utils.checkNotNull(groupRoleMappings, "groupRoleMappings"); + this.enterpriseConnectionId = enterpriseConnectionId; + this.name = name; + this.provider = provider; + this.groupRoleMappings = groupRoleMappings; + } + + public CreateDirectoryRequestBody( + String enterpriseConnectionId, + String provider) { + this(enterpriseConnectionId, Optional.empty(), provider, + Optional.empty()); + } + + /** + * The ID of the enterprise connection to associate with this directory. + */ + @JsonIgnore + public String enterpriseConnectionId() { + return enterpriseConnectionId; + } + + /** + * A human-friendly name for the directory. + */ + @JsonIgnore + public Optional name() { + return name; + } + + /** + * The identity provider for this directory. + */ + @JsonIgnore + public String provider() { + return provider; + } + + /** + * Optional directory group to organization role mappings to create with the directory. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional> groupRoleMappings() { + return (Optional>) groupRoleMappings; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the enterprise connection to associate with this directory. + */ + public CreateDirectoryRequestBody withEnterpriseConnectionId(String enterpriseConnectionId) { + Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); + this.enterpriseConnectionId = enterpriseConnectionId; + return this; + } + + /** + * A human-friendly name for the directory. + */ + public CreateDirectoryRequestBody withName(String name) { + Utils.checkNotNull(name, "name"); + this.name = Optional.ofNullable(name); + return this; + } + + + /** + * A human-friendly name for the directory. + */ + public CreateDirectoryRequestBody withName(Optional name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + /** + * The identity provider for this directory. + */ + public CreateDirectoryRequestBody withProvider(String provider) { + Utils.checkNotNull(provider, "provider"); + this.provider = provider; + return this; + } + + /** + * Optional directory group to organization role mappings to create with the directory. + */ + public CreateDirectoryRequestBody withGroupRoleMappings(List groupRoleMappings) { + Utils.checkNotNull(groupRoleMappings, "groupRoleMappings"); + this.groupRoleMappings = Optional.ofNullable(groupRoleMappings); + return this; + } + + + /** + * Optional directory group to organization role mappings to create with the directory. + */ + public CreateDirectoryRequestBody withGroupRoleMappings(Optional> groupRoleMappings) { + Utils.checkNotNull(groupRoleMappings, "groupRoleMappings"); + this.groupRoleMappings = groupRoleMappings; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateDirectoryRequestBody other = (CreateDirectoryRequestBody) o; + return + Utils.enhancedDeepEquals(this.enterpriseConnectionId, other.enterpriseConnectionId) && + Utils.enhancedDeepEquals(this.name, other.name) && + Utils.enhancedDeepEquals(this.provider, other.provider) && + Utils.enhancedDeepEquals(this.groupRoleMappings, other.groupRoleMappings); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + enterpriseConnectionId, name, provider, + groupRoleMappings); + } + + @Override + public String toString() { + return Utils.toString(CreateDirectoryRequestBody.class, + "enterpriseConnectionId", enterpriseConnectionId, + "name", name, + "provider", provider, + "groupRoleMappings", groupRoleMappings); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String enterpriseConnectionId; + + private Optional name = Optional.empty(); + + private String provider; + + private Optional> groupRoleMappings = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the enterprise connection to associate with this directory. + */ + public Builder enterpriseConnectionId(String enterpriseConnectionId) { + Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); + this.enterpriseConnectionId = enterpriseConnectionId; + return this; + } + + + /** + * A human-friendly name for the directory. + */ + public Builder name(String name) { + Utils.checkNotNull(name, "name"); + this.name = Optional.ofNullable(name); + return this; + } + + /** + * A human-friendly name for the directory. + */ + public Builder name(Optional name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + + /** + * The identity provider for this directory. + */ + public Builder provider(String provider) { + Utils.checkNotNull(provider, "provider"); + this.provider = provider; + return this; + } + + + /** + * Optional directory group to organization role mappings to create with the directory. + */ + public Builder groupRoleMappings(List groupRoleMappings) { + Utils.checkNotNull(groupRoleMappings, "groupRoleMappings"); + this.groupRoleMappings = Optional.ofNullable(groupRoleMappings); + return this; + } + + /** + * Optional directory group to organization role mappings to create with the directory. + */ + public Builder groupRoleMappings(Optional> groupRoleMappings) { + Utils.checkNotNull(groupRoleMappings, "groupRoleMappings"); + this.groupRoleMappings = groupRoleMappings; + return this; + } + + public CreateDirectoryRequestBody build() { + + return new CreateDirectoryRequestBody( + enterpriseConnectionId, name, provider, + groupRoleMappings); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryRequestBuilder.java new file mode 100644 index 00000000..d9ad2e38 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryRequestBuilder.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.CreateDirectory; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.util.Optional; + +public class CreateDirectoryRequestBuilder { + + private Optional request = Optional.empty(); + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public CreateDirectoryRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public CreateDirectoryRequestBuilder request(CreateDirectoryRequestBody request) { + Utils.checkNotNull(request, "request"); + this.request = Optional.of(request); + return this; + } + + public CreateDirectoryRequestBuilder request(Optional request) { + Utils.checkNotNull(request, "request"); + this.request = request; + return this; + } + + public CreateDirectoryRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public CreateDirectoryRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + public CreateDirectoryResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation, CreateDirectoryResponse> operation + = new CreateDirectory.Sync(sdkConfiguration, options, _headers); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryResponse.java b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryResponse.java new file mode 100644 index 00000000..39bad16b --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateDirectoryResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.Directory; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 CreateDirectoryResponse 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; + + /** + * A directory + */ + private Optional directory; + + @JsonCreator + public CreateDirectoryResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional directory) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(directory, "directory"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.directory = directory; + } + + public CreateDirectoryResponse( + 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; + } + + /** + * A directory + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional directory() { + return (Optional) directory; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public CreateDirectoryResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public CreateDirectoryResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public CreateDirectoryResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A directory + */ + public CreateDirectoryResponse withDirectory(Directory directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + + /** + * A directory + */ + public CreateDirectoryResponse withDirectory(Optional directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateDirectoryResponse other = (CreateDirectoryResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.directory, other.directory); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + directory); + } + + @Override + public String toString() { + return Utils.toString(CreateDirectoryResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "directory", directory); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional directory = 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; + } + + + /** + * A directory + */ + public Builder directory(Directory directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + /** + * A directory + */ + public Builder directory(Optional directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + public CreateDirectoryResponse build() { + + return new CreateDirectoryResponse( + contentType, statusCode, rawResponse, + directory); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateOAuthApplicationRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/CreateOAuthApplicationRequestBody.java index 84d4d5c8..52aee8a2 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/CreateOAuthApplicationRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateOAuthApplicationRequestBody.java @@ -46,9 +46,8 @@ public class CreateOAuthApplicationRequestBody { private JsonNullable callbackUrl; /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Define the application's built-in and custom scope ceiling. Provide scope keys as a space-delimited + * string. Custom keys must exist in the instance OAuth scope catalog. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("scopes") @@ -68,6 +67,14 @@ public class CreateOAuthApplicationRequestBody { @JsonProperty("pkce_required") private JsonNullable pkceRequired; + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("device_authorization_grant_enabled") + private JsonNullable deviceAuthorizationGrantEnabled; + /** * If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. */ @@ -83,6 +90,7 @@ public CreateOAuthApplicationRequestBody( @JsonProperty("scopes") JsonNullable scopes, @JsonProperty("consent_screen_enabled") JsonNullable consentScreenEnabled, @JsonProperty("pkce_required") JsonNullable pkceRequired, + @JsonProperty("device_authorization_grant_enabled") JsonNullable deviceAuthorizationGrantEnabled, @JsonProperty("public") JsonNullable public_) { Utils.checkNotNull(name, "name"); Utils.checkNotNull(redirectUris, "redirectUris"); @@ -90,6 +98,7 @@ public CreateOAuthApplicationRequestBody( Utils.checkNotNull(scopes, "scopes"); Utils.checkNotNull(consentScreenEnabled, "consentScreenEnabled"); Utils.checkNotNull(pkceRequired, "pkceRequired"); + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); Utils.checkNotNull(public_, "public_"); this.name = name; this.redirectUris = redirectUris; @@ -97,6 +106,7 @@ public CreateOAuthApplicationRequestBody( this.scopes = scopes; this.consentScreenEnabled = consentScreenEnabled; this.pkceRequired = pkceRequired; + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; this.public_ = public_; } @@ -104,7 +114,7 @@ public CreateOAuthApplicationRequestBody( String name) { this(name, JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), - JsonNullable.undefined()); + JsonNullable.undefined(), JsonNullable.undefined()); } /** @@ -137,9 +147,8 @@ public JsonNullable callbackUrl() { } /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Define the application's built-in and custom scope ceiling. Provide scope keys as a space-delimited + * string. Custom keys must exist in the instance OAuth scope catalog. */ @JsonIgnore public JsonNullable scopes() { @@ -162,6 +171,15 @@ public JsonNullable pkceRequired() { return pkceRequired; } + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. + */ + @JsonIgnore + public JsonNullable deviceAuthorizationGrantEnabled() { + return deviceAuthorizationGrantEnabled; + } + /** * If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. */ @@ -228,9 +246,8 @@ public CreateOAuthApplicationRequestBody withCallbackUrl(JsonNullable ca } /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Define the application's built-in and custom scope ceiling. Provide scope keys as a space-delimited + * string. Custom keys must exist in the instance OAuth scope catalog. */ public CreateOAuthApplicationRequestBody withScopes(String scopes) { Utils.checkNotNull(scopes, "scopes"); @@ -239,9 +256,8 @@ public CreateOAuthApplicationRequestBody withScopes(String scopes) { } /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Define the application's built-in and custom scope ceiling. Provide scope keys as a space-delimited + * string. Custom keys must exist in the instance OAuth scope catalog. */ public CreateOAuthApplicationRequestBody withScopes(JsonNullable scopes) { Utils.checkNotNull(scopes, "scopes"); @@ -285,6 +301,26 @@ public CreateOAuthApplicationRequestBody withPkceRequired(JsonNullable return this; } + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. + */ + public CreateOAuthApplicationRequestBody withDeviceAuthorizationGrantEnabled(boolean deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = JsonNullable.of(deviceAuthorizationGrantEnabled); + return this; + } + + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. + */ + public CreateOAuthApplicationRequestBody withDeviceAuthorizationGrantEnabled(JsonNullable deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; + return this; + } + /** * If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. */ @@ -319,6 +355,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.scopes, other.scopes) && Utils.enhancedDeepEquals(this.consentScreenEnabled, other.consentScreenEnabled) && Utils.enhancedDeepEquals(this.pkceRequired, other.pkceRequired) && + Utils.enhancedDeepEquals(this.deviceAuthorizationGrantEnabled, other.deviceAuthorizationGrantEnabled) && Utils.enhancedDeepEquals(this.public_, other.public_); } @@ -327,7 +364,7 @@ public int hashCode() { return Utils.enhancedHash( name, redirectUris, callbackUrl, scopes, consentScreenEnabled, pkceRequired, - public_); + deviceAuthorizationGrantEnabled, public_); } @Override @@ -339,6 +376,7 @@ public String toString() { "scopes", scopes, "consentScreenEnabled", consentScreenEnabled, "pkceRequired", pkceRequired, + "deviceAuthorizationGrantEnabled", deviceAuthorizationGrantEnabled, "public_", public_); } @@ -358,6 +396,8 @@ public final static class Builder { private JsonNullable pkceRequired; + private JsonNullable deviceAuthorizationGrantEnabled; + private JsonNullable public_ = JsonNullable.undefined(); private Builder() { @@ -421,9 +461,8 @@ public Builder callbackUrl(JsonNullable callbackUrl) { /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Define the application's built-in and custom scope ceiling. Provide scope keys as a space-delimited + * string. Custom keys must exist in the instance OAuth scope catalog. */ public Builder scopes(String scopes) { Utils.checkNotNull(scopes, "scopes"); @@ -432,9 +471,8 @@ public Builder scopes(String scopes) { } /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Define the application's built-in and custom scope ceiling. Provide scope keys as a space-delimited + * string. Custom keys must exist in the instance OAuth scope catalog. */ public Builder scopes(JsonNullable scopes) { Utils.checkNotNull(scopes, "scopes"); @@ -481,6 +519,27 @@ public Builder pkceRequired(JsonNullable pkceRequired) { } + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. + */ + public Builder deviceAuthorizationGrantEnabled(boolean deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = JsonNullable.of(deviceAuthorizationGrantEnabled); + return this; + } + + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. + */ + public Builder deviceAuthorizationGrantEnabled(JsonNullable deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; + return this; + } + + /** * If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. */ @@ -509,11 +568,14 @@ public CreateOAuthApplicationRequestBody build() { if (pkceRequired == null) { pkceRequired = _SINGLETON_VALUE_PkceRequired.value(); } + if (deviceAuthorizationGrantEnabled == null) { + deviceAuthorizationGrantEnabled = _SINGLETON_VALUE_DeviceAuthorizationGrantEnabled.value(); + } return new CreateOAuthApplicationRequestBody( name, redirectUris, callbackUrl, scopes, consentScreenEnabled, pkceRequired, - public_); + deviceAuthorizationGrantEnabled, public_); } @@ -534,5 +596,11 @@ public CreateOAuthApplicationRequestBody build() { "pkce_required", "false", new TypeReference>() {}); + + private static final LazySingletonValue> _SINGLETON_VALUE_DeviceAuthorizationGrantEnabled = + new LazySingletonValue<>( + "device_authorization_grant_enabled", + "false", + new TypeReference>() {}); } } diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryRequestBody.java index 4ee9aa5f..56bdd1ca 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryRequestBody.java @@ -18,20 +18,20 @@ public class CreateSCIMDirectoryRequestBody { /** - * The ID of the enterprise connection to associate with this SCIM directory. + * The ID of the enterprise connection to associate with this directory. */ @JsonProperty("enterprise_connection_id") private String enterpriseConnectionId; /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("name") private Optional name; /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ @JsonProperty("provider") private String provider; @@ -67,7 +67,7 @@ public CreateSCIMDirectoryRequestBody( } /** - * The ID of the enterprise connection to associate with this SCIM directory. + * The ID of the enterprise connection to associate with this directory. */ @JsonIgnore public String enterpriseConnectionId() { @@ -75,7 +75,7 @@ public String enterpriseConnectionId() { } /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ @JsonIgnore public Optional name() { @@ -83,7 +83,7 @@ public Optional name() { } /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ @JsonIgnore public String provider() { @@ -105,7 +105,7 @@ public static Builder builder() { /** - * The ID of the enterprise connection to associate with this SCIM directory. + * The ID of the enterprise connection to associate with this directory. */ public CreateSCIMDirectoryRequestBody withEnterpriseConnectionId(String enterpriseConnectionId) { Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); @@ -114,7 +114,7 @@ public CreateSCIMDirectoryRequestBody withEnterpriseConnectionId(String enterpri } /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public CreateSCIMDirectoryRequestBody withName(String name) { Utils.checkNotNull(name, "name"); @@ -124,7 +124,7 @@ public CreateSCIMDirectoryRequestBody withName(String name) { /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public CreateSCIMDirectoryRequestBody withName(Optional name) { Utils.checkNotNull(name, "name"); @@ -133,7 +133,7 @@ public CreateSCIMDirectoryRequestBody withName(Optional name) { } /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ public CreateSCIMDirectoryRequestBody withProvider(String provider) { Utils.checkNotNull(provider, "provider"); @@ -209,7 +209,7 @@ private Builder() { /** - * The ID of the enterprise connection to associate with this SCIM directory. + * The ID of the enterprise connection to associate with this directory. */ public Builder enterpriseConnectionId(String enterpriseConnectionId) { Utils.checkNotNull(enterpriseConnectionId, "enterpriseConnectionId"); @@ -219,7 +219,7 @@ public Builder enterpriseConnectionId(String enterpriseConnectionId) { /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public Builder name(String name) { Utils.checkNotNull(name, "name"); @@ -228,7 +228,7 @@ public Builder name(String name) { } /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public Builder name(Optional name) { Utils.checkNotNull(name, "name"); @@ -238,7 +238,7 @@ public Builder name(Optional name) { /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ public Builder provider(String provider) { Utils.checkNotNull(provider, "provider"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryResponse.java b/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryResponse.java index 89eaf588..284afbc4 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryResponse.java +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMDirectoryResponse.java @@ -34,7 +34,7 @@ public class CreateSCIMDirectoryResponse implements Response { private HttpResponse rawResponse; /** - * A SCIM directory + * A directory */ private Optional scimDirectory; @@ -87,7 +87,7 @@ public HttpResponse rawResponse() { } /** - * A SCIM directory + * A directory */ @SuppressWarnings("unchecked") @JsonIgnore @@ -128,7 +128,7 @@ public CreateSCIMDirectoryResponse withRawResponse(HttpResponse raw } /** - * A SCIM directory + * A directory */ public CreateSCIMDirectoryResponse withSCIMDirectory(SCIMDirectory scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -138,7 +138,7 @@ public CreateSCIMDirectoryResponse withSCIMDirectory(SCIMDirectory scimDirectory /** - * A SCIM directory + * A directory */ public CreateSCIMDirectoryResponse withSCIMDirectory(Optional scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -225,7 +225,7 @@ public Builder rawResponse(HttpResponse rawResponse) { /** - * A SCIM directory + * A directory */ public Builder scimDirectory(SCIMDirectory scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -234,7 +234,7 @@ public Builder scimDirectory(SCIMDirectory scimDirectory) { } /** - * A SCIM directory + * A directory */ public Builder scimDirectory(Optional scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMGroupRoleMappingRequest.java b/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMGroupRoleMappingRequest.java index 73afa2a0..ec58e354 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMGroupRoleMappingRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateSCIMGroupRoleMappingRequest.java @@ -13,7 +13,7 @@ public class CreateSCIMGroupRoleMappingRequest { /** - * The ID of the SCIM directory. + * The ID of the directory. */ @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=scim_directory_id") private String scimDirectoryId; @@ -33,7 +33,7 @@ public CreateSCIMGroupRoleMappingRequest( } /** - * The ID of the SCIM directory. + * The ID of the directory. */ @JsonIgnore public String scimDirectoryId() { @@ -51,7 +51,7 @@ public static Builder builder() { /** - * The ID of the SCIM directory. + * The ID of the directory. */ public CreateSCIMGroupRoleMappingRequest withScimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -105,7 +105,7 @@ private Builder() { /** - * The ID of the SCIM directory. + * The ID of the directory. */ public Builder scimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/CreateUserRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/CreateUserRequestBody.java index b6b8a597..cdbfe642 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/CreateUserRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/CreateUserRequestBody.java @@ -173,6 +173,17 @@ public class CreateUserRequestBody { @JsonProperty("skip_password_requirement") private JsonNullable skipPasswordRequirement; + /** + * When set to `true`, the instance's restrictions are not applied to this user. + * Those settings are the allowlist, the blocklist, blocked disposable email domains and blocked email + * subaddresses, and they normally reject a matching identifier here just as they do at sign-up. + * Use this when your backend is creating a user it already trusts, such as during a migration or from + * an admin tool. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("skip_restriction_checks") + private JsonNullable skipRestrictionChecks; + /** * In case TOTP is configured on the instance, you can provide the secret to enable it on the newly * created user without the need to reset it. @@ -274,7 +285,7 @@ public class CreateUserRequestBody { private JsonNullable createdAt; /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("bypass_client_trust") @@ -313,6 +324,7 @@ public CreateUserRequestBody( @JsonProperty("password_hasher") Optional passwordHasher, @JsonProperty("skip_password_checks") JsonNullable skipPasswordChecks, @JsonProperty("skip_password_requirement") JsonNullable skipPasswordRequirement, + @JsonProperty("skip_restriction_checks") JsonNullable skipRestrictionChecks, @JsonProperty("totp_secret") JsonNullable totpSecret, @JsonProperty("backup_codes") Optional> backupCodes, @JsonProperty("public_metadata") Optional> publicMetadata, @@ -343,6 +355,7 @@ public CreateUserRequestBody( Utils.checkNotNull(passwordHasher, "passwordHasher"); Utils.checkNotNull(skipPasswordChecks, "skipPasswordChecks"); Utils.checkNotNull(skipPasswordRequirement, "skipPasswordRequirement"); + Utils.checkNotNull(skipRestrictionChecks, "skipRestrictionChecks"); Utils.checkNotNull(totpSecret, "totpSecret"); Utils.checkNotNull(backupCodes, "backupCodes"); Utils.checkNotNull(publicMetadata, "publicMetadata"); @@ -373,6 +386,7 @@ public CreateUserRequestBody( this.passwordHasher = passwordHasher; this.skipPasswordChecks = skipPasswordChecks; this.skipPasswordRequirement = skipPasswordRequirement; + this.skipRestrictionChecks = skipRestrictionChecks; this.totpSecret = totpSecret; this.backupCodes = backupCodes; this.publicMetadata = publicMetadata; @@ -396,11 +410,12 @@ public CreateUserRequestBody() { Optional.empty(), Optional.empty(), Optional.empty(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), Optional.empty(), JsonNullable.undefined(), JsonNullable.undefined(), - JsonNullable.undefined(), Optional.empty(), Optional.empty(), - Optional.empty(), Optional.empty(), JsonNullable.undefined(), + JsonNullable.undefined(), JsonNullable.undefined(), Optional.empty(), + Optional.empty(), Optional.empty(), Optional.empty(), + JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), - JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined()); + JsonNullable.undefined()); } /** @@ -574,6 +589,18 @@ public JsonNullable skipPasswordRequirement() { return skipPasswordRequirement; } + /** + * When set to `true`, the instance's restrictions are not applied to this user. + * Those settings are the allowlist, the blocklist, blocked disposable email domains and blocked email + * subaddresses, and they normally reject a matching identifier here just as they do at sign-up. + * Use this when your backend is creating a user it already trusts, such as during a migration or from + * an admin tool. + */ + @JsonIgnore + public JsonNullable skipRestrictionChecks() { + return skipRestrictionChecks; + } + /** * In case TOTP is configured on the instance, you can provide the secret to enable it on the newly * created user without the need to reset it. @@ -691,7 +718,7 @@ public JsonNullable createdAt() { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ @JsonIgnore public JsonNullable bypassClientTrust() { @@ -1089,6 +1116,32 @@ public CreateUserRequestBody withSkipPasswordRequirement(JsonNullable s return this; } + /** + * When set to `true`, the instance's restrictions are not applied to this user. + * Those settings are the allowlist, the blocklist, blocked disposable email domains and blocked email + * subaddresses, and they normally reject a matching identifier here just as they do at sign-up. + * Use this when your backend is creating a user it already trusts, such as during a migration or from + * an admin tool. + */ + public CreateUserRequestBody withSkipRestrictionChecks(boolean skipRestrictionChecks) { + Utils.checkNotNull(skipRestrictionChecks, "skipRestrictionChecks"); + this.skipRestrictionChecks = JsonNullable.of(skipRestrictionChecks); + return this; + } + + /** + * When set to `true`, the instance's restrictions are not applied to this user. + * Those settings are the allowlist, the blocklist, blocked disposable email domains and blocked email + * subaddresses, and they normally reject a matching identifier here just as they do at sign-up. + * Use this when your backend is creating a user it already trusts, such as during a migration or from + * an admin tool. + */ + public CreateUserRequestBody withSkipRestrictionChecks(JsonNullable skipRestrictionChecks) { + Utils.checkNotNull(skipRestrictionChecks, "skipRestrictionChecks"); + this.skipRestrictionChecks = skipRestrictionChecks; + return this; + } + /** * In case TOTP is configured on the instance, you can provide the secret to enable it on the newly * created user without the need to reset it. @@ -1342,7 +1395,7 @@ public CreateUserRequestBody withCreatedAt(JsonNullable createdAt) { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public CreateUserRequestBody withBypassClientTrust(boolean bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -1351,7 +1404,7 @@ public CreateUserRequestBody withBypassClientTrust(boolean bypassClientTrust) { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public CreateUserRequestBody withBypassClientTrust(JsonNullable bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -1424,6 +1477,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.passwordHasher, other.passwordHasher) && Utils.enhancedDeepEquals(this.skipPasswordChecks, other.skipPasswordChecks) && Utils.enhancedDeepEquals(this.skipPasswordRequirement, other.skipPasswordRequirement) && + Utils.enhancedDeepEquals(this.skipRestrictionChecks, other.skipRestrictionChecks) && Utils.enhancedDeepEquals(this.totpSecret, other.totpSecret) && Utils.enhancedDeepEquals(this.backupCodes, other.backupCodes) && Utils.enhancedDeepEquals(this.publicMetadata, other.publicMetadata) && @@ -1449,11 +1503,12 @@ public int hashCode() { phoneNumber, phoneNumberIdentificationStatus, web3Wallet, username, password, passwordDigest, passwordHasher, skipPasswordChecks, skipPasswordRequirement, - totpSecret, backupCodes, publicMetadata, - privateMetadata, unsafeMetadata, deleteSelfEnabled, - legalAcceptedAt, skipLegalChecks, skipUserRequirement, - createOrganizationEnabled, createOrganizationsLimit, createdAt, - bypassClientTrust, banned, locked); + skipRestrictionChecks, totpSecret, backupCodes, + publicMetadata, privateMetadata, unsafeMetadata, + deleteSelfEnabled, legalAcceptedAt, skipLegalChecks, + skipUserRequirement, createOrganizationEnabled, createOrganizationsLimit, + createdAt, bypassClientTrust, banned, + locked); } @Override @@ -1474,6 +1529,7 @@ public String toString() { "passwordHasher", passwordHasher, "skipPasswordChecks", skipPasswordChecks, "skipPasswordRequirement", skipPasswordRequirement, + "skipRestrictionChecks", skipRestrictionChecks, "totpSecret", totpSecret, "backupCodes", backupCodes, "publicMetadata", publicMetadata, @@ -1524,6 +1580,8 @@ public final static class Builder { private JsonNullable skipPasswordRequirement = JsonNullable.undefined(); + private JsonNullable skipRestrictionChecks = JsonNullable.undefined(); + private JsonNullable totpSecret = JsonNullable.undefined(); private Optional> backupCodes = Optional.empty(); @@ -1936,6 +1994,33 @@ public Builder skipPasswordRequirement(JsonNullable skipPasswordRequire } + /** + * When set to `true`, the instance's restrictions are not applied to this user. + * Those settings are the allowlist, the blocklist, blocked disposable email domains and blocked email + * subaddresses, and they normally reject a matching identifier here just as they do at sign-up. + * Use this when your backend is creating a user it already trusts, such as during a migration or from + * an admin tool. + */ + public Builder skipRestrictionChecks(boolean skipRestrictionChecks) { + Utils.checkNotNull(skipRestrictionChecks, "skipRestrictionChecks"); + this.skipRestrictionChecks = JsonNullable.of(skipRestrictionChecks); + return this; + } + + /** + * When set to `true`, the instance's restrictions are not applied to this user. + * Those settings are the allowlist, the blocklist, blocked disposable email domains and blocked email + * subaddresses, and they normally reject a matching identifier here just as they do at sign-up. + * Use this when your backend is creating a user it already trusts, such as during a migration or from + * an admin tool. + */ + public Builder skipRestrictionChecks(JsonNullable skipRestrictionChecks) { + Utils.checkNotNull(skipRestrictionChecks, "skipRestrictionChecks"); + this.skipRestrictionChecks = skipRestrictionChecks; + return this; + } + + /** * In case TOTP is configured on the instance, you can provide the secret to enable it on the newly * created user without the need to reset it. @@ -2197,7 +2282,7 @@ public Builder createdAt(JsonNullable createdAt) { /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public Builder bypassClientTrust(boolean bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -2206,7 +2291,7 @@ public Builder bypassClientTrust(boolean bypassClientTrust) { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public Builder bypassClientTrust(JsonNullable bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -2264,11 +2349,12 @@ public CreateUserRequestBody build() { phoneNumber, phoneNumberIdentificationStatus, web3Wallet, username, password, passwordDigest, passwordHasher, skipPasswordChecks, skipPasswordRequirement, - totpSecret, backupCodes, publicMetadata, - privateMetadata, unsafeMetadata, deleteSelfEnabled, - legalAcceptedAt, skipLegalChecks, skipUserRequirement, - createOrganizationEnabled, createOrganizationsLimit, createdAt, - bypassClientTrust, banned, locked); + skipRestrictionChecks, totpSecret, backupCodes, + publicMetadata, privateMetadata, unsafeMetadata, + deleteSelfEnabled, legalAcceptedAt, skipLegalChecks, + skipUserRequirement, createOrganizationEnabled, createOrganizationsLimit, + createdAt, bypassClientTrust, banned, + locked); } } diff --git a/src/main/java/com/clerk/backend_api/models/operations/CustomAttributes.java b/src/main/java/com/clerk/backend_api/models/operations/CustomAttributes.java index 016b2b7f..64b19aa0 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/CustomAttributes.java +++ b/src/main/java/com/clerk/backend_api/models/operations/CustomAttributes.java @@ -42,6 +42,14 @@ public class CustomAttributes { @JsonProperty("scim_path") private Optional scimPath; + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory_path") + private Optional directoryPath; + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -56,16 +64,19 @@ public CustomAttributes( @JsonProperty("key") String key, @JsonProperty("sso_path") Optional ssoPath, @JsonProperty("scim_path") Optional scimPath, + @JsonProperty("directory_path") Optional directoryPath, @JsonProperty("multi_valued") Optional multiValued) { Utils.checkNotNull(name, "name"); Utils.checkNotNull(key, "key"); Utils.checkNotNull(ssoPath, "ssoPath"); Utils.checkNotNull(scimPath, "scimPath"); + Utils.checkNotNull(directoryPath, "directoryPath"); Utils.checkNotNull(multiValued, "multiValued"); this.name = name; this.key = key; this.ssoPath = ssoPath; this.scimPath = scimPath; + this.directoryPath = directoryPath; this.multiValued = multiValued; } @@ -73,7 +84,7 @@ public CustomAttributes( String name, String key) { this(name, key, Optional.empty(), - Optional.empty(), Optional.empty()); + Optional.empty(), Optional.empty(), Optional.empty()); } /** @@ -108,6 +119,15 @@ public Optional scimPath() { return scimPath; } + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + @JsonIgnore + public Optional directoryPath() { + return directoryPath; + } + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -178,6 +198,27 @@ public CustomAttributes withScimPath(Optional scimPath) { return this; } + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + public CustomAttributes withDirectoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + public CustomAttributes withDirectoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -213,6 +254,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.key, other.key) && Utils.enhancedDeepEquals(this.ssoPath, other.ssoPath) && Utils.enhancedDeepEquals(this.scimPath, other.scimPath) && + Utils.enhancedDeepEquals(this.directoryPath, other.directoryPath) && Utils.enhancedDeepEquals(this.multiValued, other.multiValued); } @@ -220,7 +262,7 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Utils.enhancedHash( name, key, ssoPath, - scimPath, multiValued); + scimPath, directoryPath, multiValued); } @Override @@ -230,6 +272,7 @@ public String toString() { "key", key, "ssoPath", ssoPath, "scimPath", scimPath, + "directoryPath", directoryPath, "multiValued", multiValued); } @@ -244,6 +287,8 @@ public final static class Builder { private Optional scimPath = Optional.empty(); + private Optional directoryPath = Optional.empty(); + private Optional multiValued = Optional.empty(); private Builder() { @@ -309,6 +354,27 @@ public Builder scimPath(Optional scimPath) { } + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + public Builder directoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + public Builder directoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -333,7 +399,7 @@ public CustomAttributes build() { return new CustomAttributes( name, key, ssoPath, - scimPath, multiValued); + scimPath, directoryPath, multiValued); } } diff --git a/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingRequest.java b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingRequest.java new file mode 100644 index 00000000..ffa6172e --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingRequest.java @@ -0,0 +1,141 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class DeleteDirectoryGroupRoleMappingRequest { + /** + * The ID of the directory. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=directory_id") + private String directoryId; + + /** + * The ID of the directory group role mapping to delete. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=mapping_id") + private String mappingId; + + @JsonCreator + public DeleteDirectoryGroupRoleMappingRequest( + String directoryId, + String mappingId) { + Utils.checkNotNull(directoryId, "directoryId"); + Utils.checkNotNull(mappingId, "mappingId"); + this.directoryId = directoryId; + this.mappingId = mappingId; + } + + /** + * The ID of the directory. + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + + /** + * The ID of the directory group role mapping to delete. + */ + @JsonIgnore + public String mappingId() { + return mappingId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the directory. + */ + public DeleteDirectoryGroupRoleMappingRequest withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + /** + * The ID of the directory group role mapping to delete. + */ + public DeleteDirectoryGroupRoleMappingRequest withMappingId(String mappingId) { + Utils.checkNotNull(mappingId, "mappingId"); + this.mappingId = mappingId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeleteDirectoryGroupRoleMappingRequest other = (DeleteDirectoryGroupRoleMappingRequest) o; + return + Utils.enhancedDeepEquals(this.directoryId, other.directoryId) && + Utils.enhancedDeepEquals(this.mappingId, other.mappingId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryId, mappingId); + } + + @Override + public String toString() { + return Utils.toString(DeleteDirectoryGroupRoleMappingRequest.class, + "directoryId", directoryId, + "mappingId", mappingId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String directoryId; + + private String mappingId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the directory. + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + + /** + * The ID of the directory group role mapping to delete. + */ + public Builder mappingId(String mappingId) { + Utils.checkNotNull(mappingId, "mappingId"); + this.mappingId = mappingId; + return this; + } + + public DeleteDirectoryGroupRoleMappingRequest build() { + + return new DeleteDirectoryGroupRoleMappingRequest( + directoryId, mappingId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingRequestBuilder.java new file mode 100644 index 00000000..e372bfa5 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingRequestBuilder.java @@ -0,0 +1,73 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.DeleteDirectoryGroupRoleMapping; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class DeleteDirectoryGroupRoleMappingRequestBuilder { + + private String directoryId; + private String mappingId; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public DeleteDirectoryGroupRoleMappingRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public DeleteDirectoryGroupRoleMappingRequestBuilder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public DeleteDirectoryGroupRoleMappingRequestBuilder mappingId(String mappingId) { + Utils.checkNotNull(mappingId, "mappingId"); + this.mappingId = mappingId; + return this; + } + + public DeleteDirectoryGroupRoleMappingRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public DeleteDirectoryGroupRoleMappingRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private DeleteDirectoryGroupRoleMappingRequest buildRequest() { + + DeleteDirectoryGroupRoleMappingRequest request = new DeleteDirectoryGroupRoleMappingRequest(directoryId, + mappingId); + + return request; + } + + public DeleteDirectoryGroupRoleMappingResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new DeleteDirectoryGroupRoleMapping.Sync(sdkConfiguration, options, _headers); + DeleteDirectoryGroupRoleMappingRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingResponse.java b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingResponse.java new file mode 100644 index 00000000..d2a7e59c --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryGroupRoleMappingResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.DirectoryGroupRoleMappingDeleted; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 DeleteDirectoryGroupRoleMappingResponse 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; + + /** + * A directory group role mapping was deleted. + */ + private Optional directoryGroupRoleMappingDeleted; + + @JsonCreator + public DeleteDirectoryGroupRoleMappingResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional directoryGroupRoleMappingDeleted) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(directoryGroupRoleMappingDeleted, "directoryGroupRoleMappingDeleted"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.directoryGroupRoleMappingDeleted = directoryGroupRoleMappingDeleted; + } + + public DeleteDirectoryGroupRoleMappingResponse( + 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; + } + + /** + * A directory group role mapping was deleted. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional directoryGroupRoleMappingDeleted() { + return (Optional) directoryGroupRoleMappingDeleted; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public DeleteDirectoryGroupRoleMappingResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public DeleteDirectoryGroupRoleMappingResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public DeleteDirectoryGroupRoleMappingResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A directory group role mapping was deleted. + */ + public DeleteDirectoryGroupRoleMappingResponse withDirectoryGroupRoleMappingDeleted(DirectoryGroupRoleMappingDeleted directoryGroupRoleMappingDeleted) { + Utils.checkNotNull(directoryGroupRoleMappingDeleted, "directoryGroupRoleMappingDeleted"); + this.directoryGroupRoleMappingDeleted = Optional.ofNullable(directoryGroupRoleMappingDeleted); + return this; + } + + + /** + * A directory group role mapping was deleted. + */ + public DeleteDirectoryGroupRoleMappingResponse withDirectoryGroupRoleMappingDeleted(Optional directoryGroupRoleMappingDeleted) { + Utils.checkNotNull(directoryGroupRoleMappingDeleted, "directoryGroupRoleMappingDeleted"); + this.directoryGroupRoleMappingDeleted = directoryGroupRoleMappingDeleted; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeleteDirectoryGroupRoleMappingResponse other = (DeleteDirectoryGroupRoleMappingResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.directoryGroupRoleMappingDeleted, other.directoryGroupRoleMappingDeleted); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + directoryGroupRoleMappingDeleted); + } + + @Override + public String toString() { + return Utils.toString(DeleteDirectoryGroupRoleMappingResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "directoryGroupRoleMappingDeleted", directoryGroupRoleMappingDeleted); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional directoryGroupRoleMappingDeleted = 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; + } + + + /** + * A directory group role mapping was deleted. + */ + public Builder directoryGroupRoleMappingDeleted(DirectoryGroupRoleMappingDeleted directoryGroupRoleMappingDeleted) { + Utils.checkNotNull(directoryGroupRoleMappingDeleted, "directoryGroupRoleMappingDeleted"); + this.directoryGroupRoleMappingDeleted = Optional.ofNullable(directoryGroupRoleMappingDeleted); + return this; + } + + /** + * A directory group role mapping was deleted. + */ + public Builder directoryGroupRoleMappingDeleted(Optional directoryGroupRoleMappingDeleted) { + Utils.checkNotNull(directoryGroupRoleMappingDeleted, "directoryGroupRoleMappingDeleted"); + this.directoryGroupRoleMappingDeleted = directoryGroupRoleMappingDeleted; + return this; + } + + public DeleteDirectoryGroupRoleMappingResponse build() { + + return new DeleteDirectoryGroupRoleMappingResponse( + contentType, statusCode, rawResponse, + directoryGroupRoleMappingDeleted); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryRequest.java b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryRequest.java new file mode 100644 index 00000000..f3359927 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryRequest.java @@ -0,0 +1,101 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class DeleteDirectoryRequest { + /** + * The ID of the directory to delete + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=directory_id") + private String directoryId; + + @JsonCreator + public DeleteDirectoryRequest( + String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + } + + /** + * The ID of the directory to delete + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the directory to delete + */ + public DeleteDirectoryRequest withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeleteDirectoryRequest other = (DeleteDirectoryRequest) o; + return + Utils.enhancedDeepEquals(this.directoryId, other.directoryId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryId); + } + + @Override + public String toString() { + return Utils.toString(DeleteDirectoryRequest.class, + "directoryId", directoryId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String directoryId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the directory to delete + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public DeleteDirectoryRequest build() { + + return new DeleteDirectoryRequest( + directoryId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryRequestBuilder.java new file mode 100644 index 00000000..30a31e23 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryRequestBuilder.java @@ -0,0 +1,65 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.DeleteDirectory; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class DeleteDirectoryRequestBuilder { + + private String directoryId; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public DeleteDirectoryRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public DeleteDirectoryRequestBuilder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public DeleteDirectoryRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public DeleteDirectoryRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private DeleteDirectoryRequest buildRequest() { + + DeleteDirectoryRequest request = new DeleteDirectoryRequest(directoryId); + + return request; + } + + public DeleteDirectoryResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new DeleteDirectory.Sync(sdkConfiguration, options, _headers); + DeleteDirectoryRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryResponse.java b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryResponse.java new file mode 100644 index 00000000..a410e048 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/DeleteDirectoryResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.DeletedObject; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 DeleteDirectoryResponse 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; + + /** + * Deleted Object + */ + private Optional deletedObject; + + @JsonCreator + public DeleteDirectoryResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional deletedObject) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(deletedObject, "deletedObject"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.deletedObject = deletedObject; + } + + public DeleteDirectoryResponse( + 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; + } + + /** + * Deleted Object + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional deletedObject() { + return (Optional) deletedObject; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public DeleteDirectoryResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public DeleteDirectoryResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public DeleteDirectoryResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * Deleted Object + */ + public DeleteDirectoryResponse withDeletedObject(DeletedObject deletedObject) { + Utils.checkNotNull(deletedObject, "deletedObject"); + this.deletedObject = Optional.ofNullable(deletedObject); + return this; + } + + + /** + * Deleted Object + */ + public DeleteDirectoryResponse withDeletedObject(Optional deletedObject) { + Utils.checkNotNull(deletedObject, "deletedObject"); + this.deletedObject = deletedObject; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeleteDirectoryResponse other = (DeleteDirectoryResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.deletedObject, other.deletedObject); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + deletedObject); + } + + @Override + public String toString() { + return Utils.toString(DeleteDirectoryResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "deletedObject", deletedObject); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional deletedObject = 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; + } + + + /** + * Deleted Object + */ + public Builder deletedObject(DeletedObject deletedObject) { + Utils.checkNotNull(deletedObject, "deletedObject"); + this.deletedObject = Optional.ofNullable(deletedObject); + return this; + } + + /** + * Deleted Object + */ + public Builder deletedObject(Optional deletedObject) { + Utils.checkNotNull(deletedObject, "deletedObject"); + this.deletedObject = deletedObject; + return this; + } + + public DeleteDirectoryResponse build() { + + return new DeleteDirectoryResponse( + contentType, statusCode, rawResponse, + deletedObject); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMDirectoryRequest.java b/src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMDirectoryRequest.java index 0d9744cc..310bad63 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMDirectoryRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMDirectoryRequest.java @@ -13,7 +13,7 @@ public class DeleteSCIMDirectoryRequest { /** - * The ID of the SCIM directory to delete + * The ID of the directory to delete */ @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=scim_directory_id") private String scimDirectoryId; @@ -26,7 +26,7 @@ public DeleteSCIMDirectoryRequest( } /** - * The ID of the SCIM directory to delete + * The ID of the directory to delete */ @JsonIgnore public String scimDirectoryId() { @@ -39,7 +39,7 @@ public static Builder builder() { /** - * The ID of the SCIM directory to delete + * The ID of the directory to delete */ public DeleteSCIMDirectoryRequest withScimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -83,7 +83,7 @@ private Builder() { /** - * The ID of the SCIM directory to delete + * The ID of the directory to delete */ public Builder scimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMGroupRoleMappingRequest.java b/src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMGroupRoleMappingRequest.java index 3ff97fb4..c5a42b73 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMGroupRoleMappingRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/DeleteSCIMGroupRoleMappingRequest.java @@ -13,7 +13,7 @@ public class DeleteSCIMGroupRoleMappingRequest { /** - * The ID of the SCIM directory. + * The ID of the directory. */ @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=scim_directory_id") private String scimDirectoryId; @@ -35,7 +35,7 @@ public DeleteSCIMGroupRoleMappingRequest( } /** - * The ID of the SCIM directory. + * The ID of the directory. */ @JsonIgnore public String scimDirectoryId() { @@ -56,7 +56,7 @@ public static Builder builder() { /** - * The ID of the SCIM directory. + * The ID of the directory. */ public DeleteSCIMGroupRoleMappingRequest withScimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -113,7 +113,7 @@ private Builder() { /** - * The ID of the SCIM directory. + * The ID of the directory. */ public Builder scimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/GetDirectoryRequest.java b/src/main/java/com/clerk/backend_api/models/operations/GetDirectoryRequest.java new file mode 100644 index 00000000..4e7ff892 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/GetDirectoryRequest.java @@ -0,0 +1,101 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class GetDirectoryRequest { + /** + * The ID of the directory to retrieve + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=directory_id") + private String directoryId; + + @JsonCreator + public GetDirectoryRequest( + String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + } + + /** + * The ID of the directory to retrieve + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the directory to retrieve + */ + public GetDirectoryRequest withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetDirectoryRequest other = (GetDirectoryRequest) o; + return + Utils.enhancedDeepEquals(this.directoryId, other.directoryId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryId); + } + + @Override + public String toString() { + return Utils.toString(GetDirectoryRequest.class, + "directoryId", directoryId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String directoryId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the directory to retrieve + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public GetDirectoryRequest build() { + + return new GetDirectoryRequest( + directoryId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/GetDirectoryRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/GetDirectoryRequestBuilder.java new file mode 100644 index 00000000..3a5d324a --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/GetDirectoryRequestBuilder.java @@ -0,0 +1,65 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.GetDirectory; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class GetDirectoryRequestBuilder { + + private String directoryId; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public GetDirectoryRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public GetDirectoryRequestBuilder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public GetDirectoryRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public GetDirectoryRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private GetDirectoryRequest buildRequest() { + + GetDirectoryRequest request = new GetDirectoryRequest(directoryId); + + return request; + } + + public GetDirectoryResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new GetDirectory.Sync(sdkConfiguration, options, _headers); + GetDirectoryRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/GetDirectoryResponse.java b/src/main/java/com/clerk/backend_api/models/operations/GetDirectoryResponse.java new file mode 100644 index 00000000..4a9be0cc --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/GetDirectoryResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.Directory; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 GetDirectoryResponse 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; + + /** + * A directory + */ + private Optional directory; + + @JsonCreator + public GetDirectoryResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional directory) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(directory, "directory"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.directory = directory; + } + + public GetDirectoryResponse( + 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; + } + + /** + * A directory + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional directory() { + return (Optional) directory; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public GetDirectoryResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public GetDirectoryResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetDirectoryResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A directory + */ + public GetDirectoryResponse withDirectory(Directory directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + + /** + * A directory + */ + public GetDirectoryResponse withDirectory(Optional directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetDirectoryResponse other = (GetDirectoryResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.directory, other.directory); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + directory); + } + + @Override + public String toString() { + return Utils.toString(GetDirectoryResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "directory", directory); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional directory = 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; + } + + + /** + * A directory + */ + public Builder directory(Directory directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + /** + * A directory + */ + public Builder directory(Optional directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + public GetDirectoryResponse build() { + + return new GetDirectoryResponse( + contentType, statusCode, rawResponse, + directory); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryRequest.java b/src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryRequest.java index 9094480f..2206df3c 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryRequest.java @@ -13,7 +13,7 @@ public class GetSCIMDirectoryRequest { /** - * The ID of the SCIM directory to retrieve + * The ID of the directory to retrieve */ @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=scim_directory_id") private String scimDirectoryId; @@ -26,7 +26,7 @@ public GetSCIMDirectoryRequest( } /** - * The ID of the SCIM directory to retrieve + * The ID of the directory to retrieve */ @JsonIgnore public String scimDirectoryId() { @@ -39,7 +39,7 @@ public static Builder builder() { /** - * The ID of the SCIM directory to retrieve + * The ID of the directory to retrieve */ public GetSCIMDirectoryRequest withScimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -83,7 +83,7 @@ private Builder() { /** - * The ID of the SCIM directory to retrieve + * The ID of the directory to retrieve */ public Builder scimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryResponse.java b/src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryResponse.java index d3d30f90..8082063b 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryResponse.java +++ b/src/main/java/com/clerk/backend_api/models/operations/GetSCIMDirectoryResponse.java @@ -34,7 +34,7 @@ public class GetSCIMDirectoryResponse implements Response { private HttpResponse rawResponse; /** - * A SCIM directory + * A directory */ private Optional scimDirectory; @@ -87,7 +87,7 @@ public HttpResponse rawResponse() { } /** - * A SCIM directory + * A directory */ @SuppressWarnings("unchecked") @JsonIgnore @@ -128,7 +128,7 @@ public GetSCIMDirectoryResponse withRawResponse(HttpResponse rawRes } /** - * A SCIM directory + * A directory */ public GetSCIMDirectoryResponse withSCIMDirectory(SCIMDirectory scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -138,7 +138,7 @@ public GetSCIMDirectoryResponse withSCIMDirectory(SCIMDirectory scimDirectory) { /** - * A SCIM directory + * A directory */ public GetSCIMDirectoryResponse withSCIMDirectory(Optional scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -225,7 +225,7 @@ public Builder rawResponse(HttpResponse rawResponse) { /** - * A SCIM directory + * A directory */ public Builder scimDirectory(SCIMDirectory scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -234,7 +234,7 @@ public Builder scimDirectory(SCIMDirectory scimDirectory) { } /** - * A SCIM directory + * A directory */ public Builder scimDirectory(Optional scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/GetUserListRequest.java b/src/main/java/com/clerk/backend_api/models/operations/GetUserListRequest.java index 86b2f805..cab75be0 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/GetUserListRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/GetUserListRequest.java @@ -220,6 +220,23 @@ public class GetUserListRequest { @SpeakeasyMetadata("queryParam:style=form,explode=true,name=offset") private Optional offset; + /** + * A cursor for pagination: the `id` of the last user on the previous page. Returns the users that + * follow it. + * + *

**Requires ordering by `created_at`** — that is, `order_by` omitted, or set to `created_at`, + * `+created_at` + * or `-created_at`. Any other `order_by` value is rejected with a 422: the other orderings sort by a + * value + * that is neither unique per user nor immutable, so a cursor over them would skip or repeat users. + * + *

Cannot be combined with a non-zero `offset`, which is also a 422. Keep every other parameter + * identical + * across requests, and stop when a page returns fewer than `limit` users. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=starting_after") + private Optional startingAfter; + /** * Allows to return users in a particular order. * At the moment, you can order the returned users by their @@ -232,6 +249,8 @@ public class GetUserListRequest { * multiple `order_by` parameters are provided, we will only keep the first one. For example, * if you pass `order_by=username&order_by=created_at`, we will consider only the first `order_by` * parameter, which is `username`. The `created_at` parameter will be ignored in this case. + * Only the `created_at` orderings can be combined with `starting_after` cursor pagination; see that + * parameter. */ @SpeakeasyMetadata("queryParam:style=form,explode=true,name=order_by") private Optional orderBy; @@ -262,6 +281,7 @@ public GetUserListRequest( Optional> providerUserId, Optional limit, Optional offset, + Optional startingAfter, Optional orderBy) { Utils.checkNotNull(emailAddress, "emailAddress"); Utils.checkNotNull(phoneNumber, "phoneNumber"); @@ -287,6 +307,7 @@ public GetUserListRequest( Utils.checkNotNull(providerUserId, "providerUserId"); Utils.checkNotNull(limit, "limit"); Utils.checkNotNull(offset, "offset"); + Utils.checkNotNull(startingAfter, "startingAfter"); Utils.checkNotNull(orderBy, "orderBy"); this.emailAddress = emailAddress; this.phoneNumber = phoneNumber; @@ -312,6 +333,7 @@ public GetUserListRequest( this.providerUserId = providerUserId; this.limit = limit; this.offset = offset; + this.startingAfter = startingAfter; this.orderBy = orderBy; } @@ -324,7 +346,7 @@ public GetUserListRequest() { Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), - Optional.empty()); + Optional.empty(), Optional.empty()); } /** @@ -583,6 +605,25 @@ public Optional offset() { return offset; } + /** + * A cursor for pagination: the `id` of the last user on the previous page. Returns the users that + * follow it. + * + *

**Requires ordering by `created_at`** — that is, `order_by` omitted, or set to `created_at`, + * `+created_at` + * or `-created_at`. Any other `order_by` value is rejected with a 422: the other orderings sort by a + * value + * that is neither unique per user nor immutable, so a cursor over them would skip or repeat users. + * + *

Cannot be combined with a non-zero `offset`, which is also a 422. Keep every other parameter + * identical + * across requests, and stop when a page returns fewer than `limit` users. + */ + @JsonIgnore + public Optional startingAfter() { + return startingAfter; + } + /** * Allows to return users in a particular order. * At the moment, you can order the returned users by their @@ -595,6 +636,8 @@ public Optional offset() { * multiple `order_by` parameters are provided, we will only keep the first one. For example, * if you pass `order_by=username&order_by=created_at`, we will consider only the first `order_by` * parameter, which is `username`. The `created_at` parameter will be ignored in this case. + * Only the `created_at` orderings can be combined with `starting_after` cursor pagination; see that + * parameter. */ @JsonIgnore public Optional orderBy() { @@ -1174,6 +1217,47 @@ public GetUserListRequest withOffset(Optional offset) { return this; } + /** + * A cursor for pagination: the `id` of the last user on the previous page. Returns the users that + * follow it. + * + *

**Requires ordering by `created_at`** — that is, `order_by` omitted, or set to `created_at`, + * `+created_at` + * or `-created_at`. Any other `order_by` value is rejected with a 422: the other orderings sort by a + * value + * that is neither unique per user nor immutable, so a cursor over them would skip or repeat users. + * + *

Cannot be combined with a non-zero `offset`, which is also a 422. Keep every other parameter + * identical + * across requests, and stop when a page returns fewer than `limit` users. + */ + public GetUserListRequest withStartingAfter(String startingAfter) { + Utils.checkNotNull(startingAfter, "startingAfter"); + this.startingAfter = Optional.ofNullable(startingAfter); + return this; + } + + + /** + * A cursor for pagination: the `id` of the last user on the previous page. Returns the users that + * follow it. + * + *

**Requires ordering by `created_at`** — that is, `order_by` omitted, or set to `created_at`, + * `+created_at` + * or `-created_at`. Any other `order_by` value is rejected with a 422: the other orderings sort by a + * value + * that is neither unique per user nor immutable, so a cursor over them would skip or repeat users. + * + *

Cannot be combined with a non-zero `offset`, which is also a 422. Keep every other parameter + * identical + * across requests, and stop when a page returns fewer than `limit` users. + */ + public GetUserListRequest withStartingAfter(Optional startingAfter) { + Utils.checkNotNull(startingAfter, "startingAfter"); + this.startingAfter = startingAfter; + return this; + } + /** * Allows to return users in a particular order. * At the moment, you can order the returned users by their @@ -1186,6 +1270,8 @@ public GetUserListRequest withOffset(Optional offset) { * multiple `order_by` parameters are provided, we will only keep the first one. For example, * if you pass `order_by=username&order_by=created_at`, we will consider only the first `order_by` * parameter, which is `username`. The `created_at` parameter will be ignored in this case. + * Only the `created_at` orderings can be combined with `starting_after` cursor pagination; see that + * parameter. */ public GetUserListRequest withOrderBy(String orderBy) { Utils.checkNotNull(orderBy, "orderBy"); @@ -1206,6 +1292,8 @@ public GetUserListRequest withOrderBy(String orderBy) { * multiple `order_by` parameters are provided, we will only keep the first one. For example, * if you pass `order_by=username&order_by=created_at`, we will consider only the first `order_by` * parameter, which is `username`. The `created_at` parameter will be ignored in this case. + * Only the `created_at` orderings can be combined with `starting_after` cursor pagination; see that + * parameter. */ public GetUserListRequest withOrderBy(Optional orderBy) { Utils.checkNotNull(orderBy, "orderBy"); @@ -1247,6 +1335,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.providerUserId, other.providerUserId) && Utils.enhancedDeepEquals(this.limit, other.limit) && Utils.enhancedDeepEquals(this.offset, other.offset) && + Utils.enhancedDeepEquals(this.startingAfter, other.startingAfter) && Utils.enhancedDeepEquals(this.orderBy, other.orderBy); } @@ -1261,7 +1350,7 @@ public int hashCode() { lastActiveAtSince, createdAtBefore, createdAtAfter, lastSignInAtBefore, lastSignInAtAfter, provider, providerUserId, limit, offset, - orderBy); + startingAfter, orderBy); } @Override @@ -1291,6 +1380,7 @@ public String toString() { "providerUserId", providerUserId, "limit", limit, "offset", offset, + "startingAfter", startingAfter, "orderBy", orderBy); } @@ -1346,6 +1436,8 @@ public final static class Builder { private Optional offset; + private Optional startingAfter = Optional.empty(); + private Optional orderBy; private Builder() { @@ -1921,6 +2013,47 @@ public Builder offset(Optional offset) { } + /** + * A cursor for pagination: the `id` of the last user on the previous page. Returns the users that + * follow it. + * + *

**Requires ordering by `created_at`** — that is, `order_by` omitted, or set to `created_at`, + * `+created_at` + * or `-created_at`. Any other `order_by` value is rejected with a 422: the other orderings sort by a + * value + * that is neither unique per user nor immutable, so a cursor over them would skip or repeat users. + * + *

Cannot be combined with a non-zero `offset`, which is also a 422. Keep every other parameter + * identical + * across requests, and stop when a page returns fewer than `limit` users. + */ + public Builder startingAfter(String startingAfter) { + Utils.checkNotNull(startingAfter, "startingAfter"); + this.startingAfter = Optional.ofNullable(startingAfter); + return this; + } + + /** + * A cursor for pagination: the `id` of the last user on the previous page. Returns the users that + * follow it. + * + *

**Requires ordering by `created_at`** — that is, `order_by` omitted, or set to `created_at`, + * `+created_at` + * or `-created_at`. Any other `order_by` value is rejected with a 422: the other orderings sort by a + * value + * that is neither unique per user nor immutable, so a cursor over them would skip or repeat users. + * + *

Cannot be combined with a non-zero `offset`, which is also a 422. Keep every other parameter + * identical + * across requests, and stop when a page returns fewer than `limit` users. + */ + public Builder startingAfter(Optional startingAfter) { + Utils.checkNotNull(startingAfter, "startingAfter"); + this.startingAfter = startingAfter; + return this; + } + + /** * Allows to return users in a particular order. * At the moment, you can order the returned users by their @@ -1933,6 +2066,8 @@ public Builder offset(Optional offset) { * multiple `order_by` parameters are provided, we will only keep the first one. For example, * if you pass `order_by=username&order_by=created_at`, we will consider only the first `order_by` * parameter, which is `username`. The `created_at` parameter will be ignored in this case. + * Only the `created_at` orderings can be combined with `starting_after` cursor pagination; see that + * parameter. */ public Builder orderBy(String orderBy) { Utils.checkNotNull(orderBy, "orderBy"); @@ -1952,6 +2087,8 @@ public Builder orderBy(String orderBy) { * multiple `order_by` parameters are provided, we will only keep the first one. For example, * if you pass `order_by=username&order_by=created_at`, we will consider only the first `order_by` * parameter, which is `username`. The `created_at` parameter will be ignored in this case. + * Only the `created_at` orderings can be combined with `starting_after` cursor pagination; see that + * parameter. */ public Builder orderBy(Optional orderBy) { Utils.checkNotNull(orderBy, "orderBy"); @@ -1979,7 +2116,7 @@ public GetUserListRequest build() { lastActiveAtSince, createdAtBefore, createdAtAfter, lastSignInAtBefore, lastSignInAtAfter, provider, providerUserId, limit, offset, - orderBy); + startingAfter, orderBy); } diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesRequest.java b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesRequest.java new file mode 100644 index 00000000..1dd865bb --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesRequest.java @@ -0,0 +1,223 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.LazySingletonValue; +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.type.TypeReference; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.util.Optional; + + +public class ListDirectoriesRequest { + /** + * Applies a limit to the number of results returned. + * Can be used for paginating the results together with `offset`. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=limit") + private Optional limit; + + /** + * Skip the first `offset` results when paginating. + * Needs to be an integer greater or equal to zero. + * To be used in conjunction with `limit`. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=offset") + private Optional offset; + + @JsonCreator + public ListDirectoriesRequest( + Optional limit, + Optional offset) { + Utils.checkNotNull(limit, "limit"); + Utils.checkNotNull(offset, "offset"); + this.limit = limit; + this.offset = offset; + } + + public ListDirectoriesRequest() { + this(Optional.empty(), Optional.empty()); + } + + /** + * Applies a limit to the number of results returned. + * Can be used for paginating the results together with `offset`. + */ + @JsonIgnore + public Optional limit() { + return limit; + } + + /** + * Skip the first `offset` results when paginating. + * Needs to be an integer greater or equal to zero. + * To be used in conjunction with `limit`. + */ + @JsonIgnore + public Optional offset() { + return offset; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * Applies a limit to the number of results returned. + * Can be used for paginating the results together with `offset`. + */ + public ListDirectoriesRequest withLimit(long limit) { + Utils.checkNotNull(limit, "limit"); + this.limit = Optional.ofNullable(limit); + return this; + } + + + /** + * Applies a limit to the number of results returned. + * Can be used for paginating the results together with `offset`. + */ + public ListDirectoriesRequest withLimit(Optional limit) { + Utils.checkNotNull(limit, "limit"); + this.limit = limit; + return this; + } + + /** + * Skip the first `offset` results when paginating. + * Needs to be an integer greater or equal to zero. + * To be used in conjunction with `limit`. + */ + public ListDirectoriesRequest withOffset(long offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = Optional.ofNullable(offset); + return this; + } + + + /** + * Skip the first `offset` results when paginating. + * Needs to be an integer greater or equal to zero. + * To be used in conjunction with `limit`. + */ + public ListDirectoriesRequest withOffset(Optional offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = offset; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListDirectoriesRequest other = (ListDirectoriesRequest) o; + return + Utils.enhancedDeepEquals(this.limit, other.limit) && + Utils.enhancedDeepEquals(this.offset, other.offset); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + limit, offset); + } + + @Override + public String toString() { + return Utils.toString(ListDirectoriesRequest.class, + "limit", limit, + "offset", offset); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private Optional limit; + + private Optional offset; + + private Builder() { + // force use of static builder() method + } + + + /** + * Applies a limit to the number of results returned. + * Can be used for paginating the results together with `offset`. + */ + public Builder limit(long limit) { + Utils.checkNotNull(limit, "limit"); + this.limit = Optional.ofNullable(limit); + return this; + } + + /** + * Applies a limit to the number of results returned. + * Can be used for paginating the results together with `offset`. + */ + public Builder limit(Optional limit) { + Utils.checkNotNull(limit, "limit"); + this.limit = limit; + return this; + } + + + /** + * Skip the first `offset` results when paginating. + * Needs to be an integer greater or equal to zero. + * To be used in conjunction with `limit`. + */ + public Builder offset(long offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = Optional.ofNullable(offset); + return this; + } + + /** + * Skip the first `offset` results when paginating. + * Needs to be an integer greater or equal to zero. + * To be used in conjunction with `limit`. + */ + public Builder offset(Optional offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = offset; + return this; + } + + public ListDirectoriesRequest build() { + if (limit == null) { + limit = _SINGLETON_VALUE_Limit.value(); + } + if (offset == null) { + offset = _SINGLETON_VALUE_Offset.value(); + } + + return new ListDirectoriesRequest( + limit, offset); + } + + + private static final LazySingletonValue> _SINGLETON_VALUE_Limit = + new LazySingletonValue<>( + "limit", + "10", + new TypeReference>() {}); + + private static final LazySingletonValue> _SINGLETON_VALUE_Offset = + new LazySingletonValue<>( + "offset", + "0", + new TypeReference>() {}); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesRequestBuilder.java new file mode 100644 index 00000000..af317470 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesRequestBuilder.java @@ -0,0 +1,111 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.ListDirectories; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.LazySingletonValue; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.lang.Long; +import java.util.Optional; + +public class ListDirectoriesRequestBuilder { + + private Optional limit = Utils.readDefaultOrConstValue( + "limit", + "10", + new TypeReference>() {}); + private Optional offset = Utils.readDefaultOrConstValue( + "offset", + "0", + new TypeReference>() {}); + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public ListDirectoriesRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public ListDirectoriesRequestBuilder limit(long limit) { + Utils.checkNotNull(limit, "limit"); + this.limit = Optional.of(limit); + return this; + } + + public ListDirectoriesRequestBuilder limit(Optional limit) { + Utils.checkNotNull(limit, "limit"); + this.limit = limit; + return this; + } + + public ListDirectoriesRequestBuilder offset(long offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = Optional.of(offset); + return this; + } + + public ListDirectoriesRequestBuilder offset(Optional offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = offset; + return this; + } + + public ListDirectoriesRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public ListDirectoriesRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private ListDirectoriesRequest buildRequest() { + if (limit == null) { + limit = _SINGLETON_VALUE_Limit.value(); + } + if (offset == null) { + offset = _SINGLETON_VALUE_Offset.value(); + } + + ListDirectoriesRequest request = new ListDirectoriesRequest(limit, + offset); + + return request; + } + + public ListDirectoriesResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new ListDirectories.Sync(sdkConfiguration, options, _headers); + ListDirectoriesRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } + + private static final LazySingletonValue> _SINGLETON_VALUE_Limit = + new LazySingletonValue<>( + "limit", + "10", + new TypeReference>() {}); + + private static final LazySingletonValue> _SINGLETON_VALUE_Offset = + new LazySingletonValue<>( + "offset", + "0", + new TypeReference>() {}); +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesResponse.java b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesResponse.java new file mode 100644 index 00000000..b4cfbdbb --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoriesResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.DirectoryList; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 ListDirectoriesResponse 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; + + /** + * A list of directories + */ + private Optional directoryList; + + @JsonCreator + public ListDirectoriesResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional directoryList) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(directoryList, "directoryList"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.directoryList = directoryList; + } + + public ListDirectoriesResponse( + 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; + } + + /** + * A list of directories + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional directoryList() { + return (Optional) directoryList; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public ListDirectoriesResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public ListDirectoriesResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public ListDirectoriesResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A list of directories + */ + public ListDirectoriesResponse withDirectoryList(DirectoryList directoryList) { + Utils.checkNotNull(directoryList, "directoryList"); + this.directoryList = Optional.ofNullable(directoryList); + return this; + } + + + /** + * A list of directories + */ + public ListDirectoriesResponse withDirectoryList(Optional directoryList) { + Utils.checkNotNull(directoryList, "directoryList"); + this.directoryList = directoryList; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListDirectoriesResponse other = (ListDirectoriesResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.directoryList, other.directoryList); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + directoryList); + } + + @Override + public String toString() { + return Utils.toString(ListDirectoriesResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "directoryList", directoryList); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional directoryList = 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; + } + + + /** + * A list of directories + */ + public Builder directoryList(DirectoryList directoryList) { + Utils.checkNotNull(directoryList, "directoryList"); + this.directoryList = Optional.ofNullable(directoryList); + return this; + } + + /** + * A list of directories + */ + public Builder directoryList(Optional directoryList) { + Utils.checkNotNull(directoryList, "directoryList"); + this.directoryList = directoryList; + return this; + } + + public ListDirectoriesResponse build() { + + return new ListDirectoriesResponse( + contentType, statusCode, rawResponse, + directoryList); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsRequest.java b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsRequest.java new file mode 100644 index 00000000..44499598 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsRequest.java @@ -0,0 +1,101 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class ListDirectoryGroupRoleMappingsRequest { + /** + * The ID of the directory. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=directory_id") + private String directoryId; + + @JsonCreator + public ListDirectoryGroupRoleMappingsRequest( + String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + } + + /** + * The ID of the directory. + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the directory. + */ + public ListDirectoryGroupRoleMappingsRequest withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListDirectoryGroupRoleMappingsRequest other = (ListDirectoryGroupRoleMappingsRequest) o; + return + Utils.enhancedDeepEquals(this.directoryId, other.directoryId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryId); + } + + @Override + public String toString() { + return Utils.toString(ListDirectoryGroupRoleMappingsRequest.class, + "directoryId", directoryId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String directoryId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the directory. + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public ListDirectoryGroupRoleMappingsRequest build() { + + return new ListDirectoryGroupRoleMappingsRequest( + directoryId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsRequestBuilder.java new file mode 100644 index 00000000..2134a9b1 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsRequestBuilder.java @@ -0,0 +1,65 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.ListDirectoryGroupRoleMappings; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class ListDirectoryGroupRoleMappingsRequestBuilder { + + private String directoryId; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public ListDirectoryGroupRoleMappingsRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public ListDirectoryGroupRoleMappingsRequestBuilder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public ListDirectoryGroupRoleMappingsRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public ListDirectoryGroupRoleMappingsRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private ListDirectoryGroupRoleMappingsRequest buildRequest() { + + ListDirectoryGroupRoleMappingsRequest request = new ListDirectoryGroupRoleMappingsRequest(directoryId); + + return request; + } + + public ListDirectoryGroupRoleMappingsResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new ListDirectoryGroupRoleMappings.Sync(sdkConfiguration, options, _headers); + ListDirectoryGroupRoleMappingsRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsResponse.java b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsResponse.java new file mode 100644 index 00000000..c9310c64 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ListDirectoryGroupRoleMappingsResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.DirectoryGroupRoleMappingList; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 ListDirectoryGroupRoleMappingsResponse 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; + + /** + * A list of directory group role mappings, ordered by precedence. + */ + private Optional directoryGroupRoleMappingList; + + @JsonCreator + public ListDirectoryGroupRoleMappingsResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional directoryGroupRoleMappingList) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.directoryGroupRoleMappingList = directoryGroupRoleMappingList; + } + + public ListDirectoryGroupRoleMappingsResponse( + 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; + } + + /** + * A list of directory group role mappings, ordered by precedence. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional directoryGroupRoleMappingList() { + return (Optional) directoryGroupRoleMappingList; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public ListDirectoryGroupRoleMappingsResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public ListDirectoryGroupRoleMappingsResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public ListDirectoryGroupRoleMappingsResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A list of directory group role mappings, ordered by precedence. + */ + public ListDirectoryGroupRoleMappingsResponse withDirectoryGroupRoleMappingList(DirectoryGroupRoleMappingList directoryGroupRoleMappingList) { + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.directoryGroupRoleMappingList = Optional.ofNullable(directoryGroupRoleMappingList); + return this; + } + + + /** + * A list of directory group role mappings, ordered by precedence. + */ + public ListDirectoryGroupRoleMappingsResponse withDirectoryGroupRoleMappingList(Optional directoryGroupRoleMappingList) { + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.directoryGroupRoleMappingList = directoryGroupRoleMappingList; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListDirectoryGroupRoleMappingsResponse other = (ListDirectoryGroupRoleMappingsResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.directoryGroupRoleMappingList, other.directoryGroupRoleMappingList); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + directoryGroupRoleMappingList); + } + + @Override + public String toString() { + return Utils.toString(ListDirectoryGroupRoleMappingsResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "directoryGroupRoleMappingList", directoryGroupRoleMappingList); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional directoryGroupRoleMappingList = 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; + } + + + /** + * A list of directory group role mappings, ordered by precedence. + */ + public Builder directoryGroupRoleMappingList(DirectoryGroupRoleMappingList directoryGroupRoleMappingList) { + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.directoryGroupRoleMappingList = Optional.ofNullable(directoryGroupRoleMappingList); + return this; + } + + /** + * A list of directory group role mappings, ordered by precedence. + */ + public Builder directoryGroupRoleMappingList(Optional directoryGroupRoleMappingList) { + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.directoryGroupRoleMappingList = directoryGroupRoleMappingList; + return this; + } + + public ListDirectoryGroupRoleMappingsResponse build() { + + return new ListDirectoryGroupRoleMappingsResponse( + contentType, statusCode, rawResponse, + directoryGroupRoleMappingList); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListOAuthApplicationsRequest.java b/src/main/java/com/clerk/backend_api/models/operations/ListOAuthApplicationsRequest.java index 0e34a6fe..032530b7 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/ListOAuthApplicationsRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/ListOAuthApplicationsRequest.java @@ -49,6 +49,9 @@ public class ListOAuthApplicationsRequest { /** * Returns OAuth applications with names that match the given query, via case-insensitive partial * match. + * Also returns the OAuth application whose `client_id` is exactly the given query, which is useful for + * resolving a `client_id` to the OAuth application `id` required by the read, update and delete + * endpoints. */ @SpeakeasyMetadata("queryParam:style=form,explode=true,name=name_query") private Optional nameQuery; @@ -113,6 +116,9 @@ public Optional orderBy() { /** * Returns OAuth applications with names that match the given query, via case-insensitive partial * match. + * Also returns the OAuth application whose `client_id` is exactly the given query, which is useful for + * resolving a `client_id` to the OAuth application `id` required by the read, update and delete + * endpoints. */ @JsonIgnore public Optional nameQuery() { @@ -208,6 +214,9 @@ public ListOAuthApplicationsRequest withOrderBy(Optional orderBy) { /** * Returns OAuth applications with names that match the given query, via case-insensitive partial * match. + * Also returns the OAuth application whose `client_id` is exactly the given query, which is useful for + * resolving a `client_id` to the OAuth application `id` required by the read, update and delete + * endpoints. */ public ListOAuthApplicationsRequest withNameQuery(String nameQuery) { Utils.checkNotNull(nameQuery, "nameQuery"); @@ -219,6 +228,9 @@ public ListOAuthApplicationsRequest withNameQuery(String nameQuery) { /** * Returns OAuth applications with names that match the given query, via case-insensitive partial * match. + * Also returns the OAuth application whose `client_id` is exactly the given query, which is useful for + * resolving a `client_id` to the OAuth application `id` required by the read, update and delete + * endpoints. */ public ListOAuthApplicationsRequest withNameQuery(Optional nameQuery) { Utils.checkNotNull(nameQuery, "nameQuery"); @@ -358,6 +370,9 @@ public Builder orderBy(Optional orderBy) { /** * Returns OAuth applications with names that match the given query, via case-insensitive partial * match. + * Also returns the OAuth application whose `client_id` is exactly the given query, which is useful for + * resolving a `client_id` to the OAuth application `id` required by the read, update and delete + * endpoints. */ public Builder nameQuery(String nameQuery) { Utils.checkNotNull(nameQuery, "nameQuery"); @@ -368,6 +383,9 @@ public Builder nameQuery(String nameQuery) { /** * Returns OAuth applications with names that match the given query, via case-insensitive partial * match. + * Also returns the OAuth application whose `client_id` is exactly the given query, which is useful for + * resolving a `client_id` to the OAuth application `id` required by the read, update and delete + * endpoints. */ public Builder nameQuery(Optional nameQuery) { Utils.checkNotNull(nameQuery, "nameQuery"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListSCIMDirectoriesResponse.java b/src/main/java/com/clerk/backend_api/models/operations/ListSCIMDirectoriesResponse.java index 7258b5fc..9d1bd52e 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/ListSCIMDirectoriesResponse.java +++ b/src/main/java/com/clerk/backend_api/models/operations/ListSCIMDirectoriesResponse.java @@ -34,7 +34,7 @@ public class ListSCIMDirectoriesResponse implements Response { private HttpResponse rawResponse; /** - * A list of SCIM directories + * A list of directories */ private Optional scimDirectoryList; @@ -87,7 +87,7 @@ public HttpResponse rawResponse() { } /** - * A list of SCIM directories + * A list of directories */ @SuppressWarnings("unchecked") @JsonIgnore @@ -128,7 +128,7 @@ public ListSCIMDirectoriesResponse withRawResponse(HttpResponse raw } /** - * A list of SCIM directories + * A list of directories */ public ListSCIMDirectoriesResponse withSCIMDirectoryList(SCIMDirectoryList scimDirectoryList) { Utils.checkNotNull(scimDirectoryList, "scimDirectoryList"); @@ -138,7 +138,7 @@ public ListSCIMDirectoriesResponse withSCIMDirectoryList(SCIMDirectoryList scimD /** - * A list of SCIM directories + * A list of directories */ public ListSCIMDirectoriesResponse withSCIMDirectoryList(Optional scimDirectoryList) { Utils.checkNotNull(scimDirectoryList, "scimDirectoryList"); @@ -225,7 +225,7 @@ public Builder rawResponse(HttpResponse rawResponse) { /** - * A list of SCIM directories + * A list of directories */ public Builder scimDirectoryList(SCIMDirectoryList scimDirectoryList) { Utils.checkNotNull(scimDirectoryList, "scimDirectoryList"); @@ -234,7 +234,7 @@ public Builder scimDirectoryList(SCIMDirectoryList scimDirectoryList) { } /** - * A list of SCIM directories + * A list of directories */ public Builder scimDirectoryList(Optional scimDirectoryList) { Utils.checkNotNull(scimDirectoryList, "scimDirectoryList"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListSCIMGroupRoleMappingsRequest.java b/src/main/java/com/clerk/backend_api/models/operations/ListSCIMGroupRoleMappingsRequest.java index 3a67ae55..15d1c70f 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/ListSCIMGroupRoleMappingsRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/ListSCIMGroupRoleMappingsRequest.java @@ -13,7 +13,7 @@ public class ListSCIMGroupRoleMappingsRequest { /** - * The ID of the SCIM directory. + * The ID of the directory. */ @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=scim_directory_id") private String scimDirectoryId; @@ -26,7 +26,7 @@ public ListSCIMGroupRoleMappingsRequest( } /** - * The ID of the SCIM directory. + * The ID of the directory. */ @JsonIgnore public String scimDirectoryId() { @@ -39,7 +39,7 @@ public static Builder builder() { /** - * The ID of the SCIM directory. + * The ID of the directory. */ public ListSCIMGroupRoleMappingsRequest withScimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -83,7 +83,7 @@ private Builder() { /** - * The ID of the SCIM directory. + * The ID of the directory. */ public Builder scimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsRequest.java b/src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsRequest.java new file mode 100644 index 00000000..4d3d6733 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsRequest.java @@ -0,0 +1,101 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class ListUserBiometricCredentialsRequest { + /** + * The ID of the user whose biometric credentials are returned + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=user_id") + private String userId; + + @JsonCreator + public ListUserBiometricCredentialsRequest( + String userId) { + Utils.checkNotNull(userId, "userId"); + this.userId = userId; + } + + /** + * The ID of the user whose biometric credentials are returned + */ + @JsonIgnore + public String userId() { + return userId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the user whose biometric credentials are returned + */ + public ListUserBiometricCredentialsRequest withUserId(String userId) { + Utils.checkNotNull(userId, "userId"); + this.userId = userId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListUserBiometricCredentialsRequest other = (ListUserBiometricCredentialsRequest) o; + return + Utils.enhancedDeepEquals(this.userId, other.userId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + userId); + } + + @Override + public String toString() { + return Utils.toString(ListUserBiometricCredentialsRequest.class, + "userId", userId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String userId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the user whose biometric credentials are returned + */ + public Builder userId(String userId) { + Utils.checkNotNull(userId, "userId"); + this.userId = userId; + return this; + } + + public ListUserBiometricCredentialsRequest build() { + + return new ListUserBiometricCredentialsRequest( + userId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsRequestBuilder.java new file mode 100644 index 00000000..ea968761 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsRequestBuilder.java @@ -0,0 +1,65 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.ListUserBiometricCredentials; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class ListUserBiometricCredentialsRequestBuilder { + + private String userId; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public ListUserBiometricCredentialsRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public ListUserBiometricCredentialsRequestBuilder userId(String userId) { + Utils.checkNotNull(userId, "userId"); + this.userId = userId; + return this; + } + + public ListUserBiometricCredentialsRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public ListUserBiometricCredentialsRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private ListUserBiometricCredentialsRequest buildRequest() { + + ListUserBiometricCredentialsRequest request = new ListUserBiometricCredentialsRequest(userId); + + return request; + } + + public ListUserBiometricCredentialsResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new ListUserBiometricCredentials.Sync(sdkConfiguration, options, _headers); + ListUserBiometricCredentialsRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsResponse.java b/src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsResponse.java new file mode 100644 index 00000000..6f031464 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ListUserBiometricCredentialsResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.BiometricCredentialList; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 ListUserBiometricCredentialsResponse 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; + + /** + * Success + */ + private Optional biometricCredentialList; + + @JsonCreator + public ListUserBiometricCredentialsResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional biometricCredentialList) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(biometricCredentialList, "biometricCredentialList"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.biometricCredentialList = biometricCredentialList; + } + + public ListUserBiometricCredentialsResponse( + 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; + } + + /** + * Success + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional biometricCredentialList() { + return (Optional) biometricCredentialList; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public ListUserBiometricCredentialsResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public ListUserBiometricCredentialsResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public ListUserBiometricCredentialsResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * Success + */ + public ListUserBiometricCredentialsResponse withBiometricCredentialList(BiometricCredentialList biometricCredentialList) { + Utils.checkNotNull(biometricCredentialList, "biometricCredentialList"); + this.biometricCredentialList = Optional.ofNullable(biometricCredentialList); + return this; + } + + + /** + * Success + */ + public ListUserBiometricCredentialsResponse withBiometricCredentialList(Optional biometricCredentialList) { + Utils.checkNotNull(biometricCredentialList, "biometricCredentialList"); + this.biometricCredentialList = biometricCredentialList; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListUserBiometricCredentialsResponse other = (ListUserBiometricCredentialsResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.biometricCredentialList, other.biometricCredentialList); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + biometricCredentialList); + } + + @Override + public String toString() { + return Utils.toString(ListUserBiometricCredentialsResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "biometricCredentialList", biometricCredentialList); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional biometricCredentialList = 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; + } + + + /** + * Success + */ + public Builder biometricCredentialList(BiometricCredentialList biometricCredentialList) { + Utils.checkNotNull(biometricCredentialList, "biometricCredentialList"); + this.biometricCredentialList = Optional.ofNullable(biometricCredentialList); + return this; + } + + /** + * Success + */ + public Builder biometricCredentialList(Optional biometricCredentialList) { + Utils.checkNotNull(biometricCredentialList, "biometricCredentialList"); + this.biometricCredentialList = biometricCredentialList; + return this; + } + + public ListUserBiometricCredentialsResponse build() { + + return new ListUserBiometricCredentialsResponse( + contentType, statusCode, rawResponse, + biometricCredentialList); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountRequest.java b/src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountRequest.java new file mode 100644 index 00000000..a1a69dd1 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountRequest.java @@ -0,0 +1,141 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class RemoveBillingSubscriptionItemDiscountRequest { + /** + * The ID of the subscription item to remove the discount from + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=subscription_item_id") + private String subscriptionItemId; + + /** + * The ID of the discount to remove + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=discount_id") + private String discountId; + + @JsonCreator + public RemoveBillingSubscriptionItemDiscountRequest( + String subscriptionItemId, + String discountId) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + Utils.checkNotNull(discountId, "discountId"); + this.subscriptionItemId = subscriptionItemId; + this.discountId = discountId; + } + + /** + * The ID of the subscription item to remove the discount from + */ + @JsonIgnore + public String subscriptionItemId() { + return subscriptionItemId; + } + + /** + * The ID of the discount to remove + */ + @JsonIgnore + public String discountId() { + return discountId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the subscription item to remove the discount from + */ + public RemoveBillingSubscriptionItemDiscountRequest withSubscriptionItemId(String subscriptionItemId) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + this.subscriptionItemId = subscriptionItemId; + return this; + } + + /** + * The ID of the discount to remove + */ + public RemoveBillingSubscriptionItemDiscountRequest withDiscountId(String discountId) { + Utils.checkNotNull(discountId, "discountId"); + this.discountId = discountId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoveBillingSubscriptionItemDiscountRequest other = (RemoveBillingSubscriptionItemDiscountRequest) o; + return + Utils.enhancedDeepEquals(this.subscriptionItemId, other.subscriptionItemId) && + Utils.enhancedDeepEquals(this.discountId, other.discountId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + subscriptionItemId, discountId); + } + + @Override + public String toString() { + return Utils.toString(RemoveBillingSubscriptionItemDiscountRequest.class, + "subscriptionItemId", subscriptionItemId, + "discountId", discountId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String subscriptionItemId; + + private String discountId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the subscription item to remove the discount from + */ + public Builder subscriptionItemId(String subscriptionItemId) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + this.subscriptionItemId = subscriptionItemId; + return this; + } + + + /** + * The ID of the discount to remove + */ + public Builder discountId(String discountId) { + Utils.checkNotNull(discountId, "discountId"); + this.discountId = discountId; + return this; + } + + public RemoveBillingSubscriptionItemDiscountRequest build() { + + return new RemoveBillingSubscriptionItemDiscountRequest( + subscriptionItemId, discountId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountRequestBuilder.java new file mode 100644 index 00000000..179433e0 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountRequestBuilder.java @@ -0,0 +1,73 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.RemoveBillingSubscriptionItemDiscount; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class RemoveBillingSubscriptionItemDiscountRequestBuilder { + + private String subscriptionItemId; + private String discountId; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public RemoveBillingSubscriptionItemDiscountRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public RemoveBillingSubscriptionItemDiscountRequestBuilder subscriptionItemId(String subscriptionItemId) { + Utils.checkNotNull(subscriptionItemId, "subscriptionItemId"); + this.subscriptionItemId = subscriptionItemId; + return this; + } + + public RemoveBillingSubscriptionItemDiscountRequestBuilder discountId(String discountId) { + Utils.checkNotNull(discountId, "discountId"); + this.discountId = discountId; + return this; + } + + public RemoveBillingSubscriptionItemDiscountRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public RemoveBillingSubscriptionItemDiscountRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private RemoveBillingSubscriptionItemDiscountRequest buildRequest() { + + RemoveBillingSubscriptionItemDiscountRequest request = new RemoveBillingSubscriptionItemDiscountRequest(subscriptionItemId, + discountId); + + return request; + } + + public RemoveBillingSubscriptionItemDiscountResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new RemoveBillingSubscriptionItemDiscount.Sync(sdkConfiguration, options, _headers); + RemoveBillingSubscriptionItemDiscountRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountResponse.java b/src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountResponse.java new file mode 100644 index 00000000..ad3cb3bb --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/RemoveBillingSubscriptionItemDiscountResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.CommerceDiscountRedemptionResponse; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 RemoveBillingSubscriptionItemDiscountResponse 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; + + /** + * A commerce discount redemption. + */ + private Optional commerceDiscountRedemptionResponse; + + @JsonCreator + public RemoveBillingSubscriptionItemDiscountResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional commerceDiscountRedemptionResponse) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.commerceDiscountRedemptionResponse = commerceDiscountRedemptionResponse; + } + + public RemoveBillingSubscriptionItemDiscountResponse( + 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; + } + + /** + * A commerce discount redemption. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional commerceDiscountRedemptionResponse() { + return (Optional) commerceDiscountRedemptionResponse; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public RemoveBillingSubscriptionItemDiscountResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public RemoveBillingSubscriptionItemDiscountResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public RemoveBillingSubscriptionItemDiscountResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A commerce discount redemption. + */ + public RemoveBillingSubscriptionItemDiscountResponse withCommerceDiscountRedemptionResponse(CommerceDiscountRedemptionResponse commerceDiscountRedemptionResponse) { + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.commerceDiscountRedemptionResponse = Optional.ofNullable(commerceDiscountRedemptionResponse); + return this; + } + + + /** + * A commerce discount redemption. + */ + public RemoveBillingSubscriptionItemDiscountResponse withCommerceDiscountRedemptionResponse(Optional commerceDiscountRedemptionResponse) { + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.commerceDiscountRedemptionResponse = commerceDiscountRedemptionResponse; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RemoveBillingSubscriptionItemDiscountResponse other = (RemoveBillingSubscriptionItemDiscountResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.commerceDiscountRedemptionResponse, other.commerceDiscountRedemptionResponse); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + commerceDiscountRedemptionResponse); + } + + @Override + public String toString() { + return Utils.toString(RemoveBillingSubscriptionItemDiscountResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "commerceDiscountRedemptionResponse", commerceDiscountRedemptionResponse); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional commerceDiscountRedemptionResponse = 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; + } + + + /** + * A commerce discount redemption. + */ + public Builder commerceDiscountRedemptionResponse(CommerceDiscountRedemptionResponse commerceDiscountRedemptionResponse) { + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.commerceDiscountRedemptionResponse = Optional.ofNullable(commerceDiscountRedemptionResponse); + return this; + } + + /** + * A commerce discount redemption. + */ + public Builder commerceDiscountRedemptionResponse(Optional commerceDiscountRedemptionResponse) { + Utils.checkNotNull(commerceDiscountRedemptionResponse, "commerceDiscountRedemptionResponse"); + this.commerceDiscountRedemptionResponse = commerceDiscountRedemptionResponse; + return this; + } + + public RemoveBillingSubscriptionItemDiscountResponse build() { + + return new RemoveBillingSubscriptionItemDiscountResponse( + contentType, statusCode, rawResponse, + commerceDiscountRedemptionResponse); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsMappings.java b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsMappings.java new file mode 100644 index 00000000..906fc462 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsMappings.java @@ -0,0 +1,241 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Override; +import java.lang.String; +import java.util.Optional; + + +public class ReplaceDirectoryGroupRoleMappingsMappings { + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory_group_id") + private Optional directoryGroupId; + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("scim_group_id") + private Optional scimGroupId; + + /** + * The ID of the organization role to assign to members of the group. + */ + @JsonProperty("role_id") + private String roleId; + + @JsonCreator + public ReplaceDirectoryGroupRoleMappingsMappings( + @JsonProperty("directory_group_id") Optional directoryGroupId, + @JsonProperty("scim_group_id") Optional scimGroupId, + @JsonProperty("role_id") String roleId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + Utils.checkNotNull(scimGroupId, "scimGroupId"); + Utils.checkNotNull(roleId, "roleId"); + this.directoryGroupId = directoryGroupId; + this.scimGroupId = scimGroupId; + this.roleId = roleId; + } + + public ReplaceDirectoryGroupRoleMappingsMappings( + String roleId) { + this(Optional.empty(), Optional.empty(), roleId); + } + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + @JsonIgnore + public Optional directoryGroupId() { + return directoryGroupId; + } + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + @JsonIgnore + public Optional scimGroupId() { + return scimGroupId; + } + + /** + * The ID of the organization role to assign to members of the group. + */ + @JsonIgnore + public String roleId() { + return roleId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public ReplaceDirectoryGroupRoleMappingsMappings withDirectoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = Optional.ofNullable(directoryGroupId); + return this; + } + + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public ReplaceDirectoryGroupRoleMappingsMappings withDirectoryGroupId(Optional directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public ReplaceDirectoryGroupRoleMappingsMappings withScimGroupId(String scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = Optional.ofNullable(scimGroupId); + return this; + } + + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public ReplaceDirectoryGroupRoleMappingsMappings withScimGroupId(Optional scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = scimGroupId; + return this; + } + + /** + * The ID of the organization role to assign to members of the group. + */ + public ReplaceDirectoryGroupRoleMappingsMappings withRoleId(String roleId) { + Utils.checkNotNull(roleId, "roleId"); + this.roleId = roleId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReplaceDirectoryGroupRoleMappingsMappings other = (ReplaceDirectoryGroupRoleMappingsMappings) o; + return + Utils.enhancedDeepEquals(this.directoryGroupId, other.directoryGroupId) && + Utils.enhancedDeepEquals(this.scimGroupId, other.scimGroupId) && + Utils.enhancedDeepEquals(this.roleId, other.roleId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryGroupId, scimGroupId, roleId); + } + + @Override + public String toString() { + return Utils.toString(ReplaceDirectoryGroupRoleMappingsMappings.class, + "directoryGroupId", directoryGroupId, + "scimGroupId", scimGroupId, + "roleId", roleId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private Optional directoryGroupId = Optional.empty(); + + private Optional scimGroupId = Optional.empty(); + + private String roleId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public Builder directoryGroupId(String directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = Optional.ofNullable(directoryGroupId); + return this; + } + + /** + * The group ID from the identity provider. Exactly one of `directory_group_id` or `scim_group_id` is + * required. + */ + public Builder directoryGroupId(Optional directoryGroupId) { + Utils.checkNotNull(directoryGroupId, "directoryGroupId"); + this.directoryGroupId = directoryGroupId; + return this; + } + + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public Builder scimGroupId(String scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = Optional.ofNullable(scimGroupId); + return this; + } + + /** + * The legacy name for `directory_group_id`. Send either one, or both with the same value; sending both + * with different values is rejected. + */ + public Builder scimGroupId(Optional scimGroupId) { + Utils.checkNotNull(scimGroupId, "scimGroupId"); + this.scimGroupId = scimGroupId; + return this; + } + + + /** + * The ID of the organization role to assign to members of the group. + */ + public Builder roleId(String roleId) { + Utils.checkNotNull(roleId, "roleId"); + this.roleId = roleId; + return this; + } + + public ReplaceDirectoryGroupRoleMappingsMappings build() { + + return new ReplaceDirectoryGroupRoleMappingsMappings( + directoryGroupId, scimGroupId, roleId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequest.java b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequest.java new file mode 100644 index 00000000..f13e3bea --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequest.java @@ -0,0 +1,130 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class ReplaceDirectoryGroupRoleMappingsRequest { + /** + * The ID of the directory. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=directory_id") + private String directoryId; + + + @SpeakeasyMetadata("request:mediaType=application/json") + private ReplaceDirectoryGroupRoleMappingsRequestBody requestBody; + + @JsonCreator + public ReplaceDirectoryGroupRoleMappingsRequest( + String directoryId, + ReplaceDirectoryGroupRoleMappingsRequestBody requestBody) { + Utils.checkNotNull(directoryId, "directoryId"); + Utils.checkNotNull(requestBody, "requestBody"); + this.directoryId = directoryId; + this.requestBody = requestBody; + } + + /** + * The ID of the directory. + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + + @JsonIgnore + public ReplaceDirectoryGroupRoleMappingsRequestBody requestBody() { + return requestBody; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the directory. + */ + public ReplaceDirectoryGroupRoleMappingsRequest withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public ReplaceDirectoryGroupRoleMappingsRequest withRequestBody(ReplaceDirectoryGroupRoleMappingsRequestBody requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = requestBody; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReplaceDirectoryGroupRoleMappingsRequest other = (ReplaceDirectoryGroupRoleMappingsRequest) o; + return + Utils.enhancedDeepEquals(this.directoryId, other.directoryId) && + Utils.enhancedDeepEquals(this.requestBody, other.requestBody); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryId, requestBody); + } + + @Override + public String toString() { + return Utils.toString(ReplaceDirectoryGroupRoleMappingsRequest.class, + "directoryId", directoryId, + "requestBody", requestBody); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String directoryId; + + private ReplaceDirectoryGroupRoleMappingsRequestBody requestBody; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the directory. + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + + public Builder requestBody(ReplaceDirectoryGroupRoleMappingsRequestBody requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = requestBody; + return this; + } + + public ReplaceDirectoryGroupRoleMappingsRequest build() { + + return new ReplaceDirectoryGroupRoleMappingsRequest( + directoryId, requestBody); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.java new file mode 100644 index 00000000..a6db2509 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBody.java @@ -0,0 +1,106 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.lang.Override; +import java.lang.String; +import java.util.List; + + +public class ReplaceDirectoryGroupRoleMappingsRequestBody { + /** + * The desired set of mappings. Array order sets precedence (1-indexed). An empty array clears all + * mappings. + */ + @JsonProperty("mappings") + private List mappings; + + @JsonCreator + public ReplaceDirectoryGroupRoleMappingsRequestBody( + @JsonProperty("mappings") List mappings) { + Utils.checkNotNull(mappings, "mappings"); + this.mappings = mappings; + } + + /** + * The desired set of mappings. Array order sets precedence (1-indexed). An empty array clears all + * mappings. + */ + @JsonIgnore + public List mappings() { + return mappings; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The desired set of mappings. Array order sets precedence (1-indexed). An empty array clears all + * mappings. + */ + public ReplaceDirectoryGroupRoleMappingsRequestBody withMappings(List mappings) { + Utils.checkNotNull(mappings, "mappings"); + this.mappings = mappings; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReplaceDirectoryGroupRoleMappingsRequestBody other = (ReplaceDirectoryGroupRoleMappingsRequestBody) o; + return + Utils.enhancedDeepEquals(this.mappings, other.mappings); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + mappings); + } + + @Override + public String toString() { + return Utils.toString(ReplaceDirectoryGroupRoleMappingsRequestBody.class, + "mappings", mappings); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private List mappings; + + private Builder() { + // force use of static builder() method + } + + + /** + * The desired set of mappings. Array order sets precedence (1-indexed). An empty array clears all + * mappings. + */ + public Builder mappings(List mappings) { + Utils.checkNotNull(mappings, "mappings"); + this.mappings = mappings; + return this; + } + + public ReplaceDirectoryGroupRoleMappingsRequestBody build() { + + return new ReplaceDirectoryGroupRoleMappingsRequestBody( + mappings); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBuilder.java new file mode 100644 index 00000000..465d12f3 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsRequestBuilder.java @@ -0,0 +1,73 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.ReplaceDirectoryGroupRoleMappings; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class ReplaceDirectoryGroupRoleMappingsRequestBuilder { + + private String directoryId; + private ReplaceDirectoryGroupRoleMappingsRequestBody requestBody; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public ReplaceDirectoryGroupRoleMappingsRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public ReplaceDirectoryGroupRoleMappingsRequestBuilder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public ReplaceDirectoryGroupRoleMappingsRequestBuilder requestBody(ReplaceDirectoryGroupRoleMappingsRequestBody requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = requestBody; + return this; + } + + public ReplaceDirectoryGroupRoleMappingsRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public ReplaceDirectoryGroupRoleMappingsRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private ReplaceDirectoryGroupRoleMappingsRequest buildRequest() { + + ReplaceDirectoryGroupRoleMappingsRequest request = new ReplaceDirectoryGroupRoleMappingsRequest(directoryId, + requestBody); + + return request; + } + + public ReplaceDirectoryGroupRoleMappingsResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new ReplaceDirectoryGroupRoleMappings.Sync(sdkConfiguration, options, _headers); + ReplaceDirectoryGroupRoleMappingsRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsResponse.java b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsResponse.java new file mode 100644 index 00000000..a13f2856 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/ReplaceDirectoryGroupRoleMappingsResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.DirectoryGroupRoleMappingList; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 ReplaceDirectoryGroupRoleMappingsResponse 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; + + /** + * A list of directory group role mappings, ordered by precedence. + */ + private Optional directoryGroupRoleMappingList; + + @JsonCreator + public ReplaceDirectoryGroupRoleMappingsResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional directoryGroupRoleMappingList) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.directoryGroupRoleMappingList = directoryGroupRoleMappingList; + } + + public ReplaceDirectoryGroupRoleMappingsResponse( + 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; + } + + /** + * A list of directory group role mappings, ordered by precedence. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional directoryGroupRoleMappingList() { + return (Optional) directoryGroupRoleMappingList; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public ReplaceDirectoryGroupRoleMappingsResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public ReplaceDirectoryGroupRoleMappingsResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public ReplaceDirectoryGroupRoleMappingsResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A list of directory group role mappings, ordered by precedence. + */ + public ReplaceDirectoryGroupRoleMappingsResponse withDirectoryGroupRoleMappingList(DirectoryGroupRoleMappingList directoryGroupRoleMappingList) { + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.directoryGroupRoleMappingList = Optional.ofNullable(directoryGroupRoleMappingList); + return this; + } + + + /** + * A list of directory group role mappings, ordered by precedence. + */ + public ReplaceDirectoryGroupRoleMappingsResponse withDirectoryGroupRoleMappingList(Optional directoryGroupRoleMappingList) { + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.directoryGroupRoleMappingList = directoryGroupRoleMappingList; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ReplaceDirectoryGroupRoleMappingsResponse other = (ReplaceDirectoryGroupRoleMappingsResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.directoryGroupRoleMappingList, other.directoryGroupRoleMappingList); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + directoryGroupRoleMappingList); + } + + @Override + public String toString() { + return Utils.toString(ReplaceDirectoryGroupRoleMappingsResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "directoryGroupRoleMappingList", directoryGroupRoleMappingList); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional directoryGroupRoleMappingList = 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; + } + + + /** + * A list of directory group role mappings, ordered by precedence. + */ + public Builder directoryGroupRoleMappingList(DirectoryGroupRoleMappingList directoryGroupRoleMappingList) { + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.directoryGroupRoleMappingList = Optional.ofNullable(directoryGroupRoleMappingList); + return this; + } + + /** + * A list of directory group role mappings, ordered by precedence. + */ + public Builder directoryGroupRoleMappingList(Optional directoryGroupRoleMappingList) { + Utils.checkNotNull(directoryGroupRoleMappingList, "directoryGroupRoleMappingList"); + this.directoryGroupRoleMappingList = directoryGroupRoleMappingList; + return this; + } + + public ReplaceDirectoryGroupRoleMappingsResponse build() { + + return new ReplaceDirectoryGroupRoleMappingsResponse( + contentType, statusCode, rawResponse, + directoryGroupRoleMappingList); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/ReplaceSCIMGroupRoleMappingsRequest.java b/src/main/java/com/clerk/backend_api/models/operations/ReplaceSCIMGroupRoleMappingsRequest.java index 849532ad..741e3e60 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/ReplaceSCIMGroupRoleMappingsRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/ReplaceSCIMGroupRoleMappingsRequest.java @@ -13,7 +13,7 @@ public class ReplaceSCIMGroupRoleMappingsRequest { /** - * The ID of the SCIM directory. + * The ID of the directory. */ @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=scim_directory_id") private String scimDirectoryId; @@ -33,7 +33,7 @@ public ReplaceSCIMGroupRoleMappingsRequest( } /** - * The ID of the SCIM directory. + * The ID of the directory. */ @JsonIgnore public String scimDirectoryId() { @@ -51,7 +51,7 @@ public static Builder builder() { /** - * The ID of the SCIM directory. + * The ID of the directory. */ public ReplaceSCIMGroupRoleMappingsRequest withScimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -105,7 +105,7 @@ private Builder() { /** - * The ID of the SCIM directory. + * The ID of the directory. */ public Builder scimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialRequest.java b/src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialRequest.java new file mode 100644 index 00000000..9f3e82bb --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialRequest.java @@ -0,0 +1,141 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class RevokeUserBiometricCredentialRequest { + /** + * The ID of the user that owns the biometric credential + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=user_id") + private String userId; + + /** + * The ID of the biometric credential to revoke + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=biometric_credential_id") + private String biometricCredentialId; + + @JsonCreator + public RevokeUserBiometricCredentialRequest( + String userId, + String biometricCredentialId) { + Utils.checkNotNull(userId, "userId"); + Utils.checkNotNull(biometricCredentialId, "biometricCredentialId"); + this.userId = userId; + this.biometricCredentialId = biometricCredentialId; + } + + /** + * The ID of the user that owns the biometric credential + */ + @JsonIgnore + public String userId() { + return userId; + } + + /** + * The ID of the biometric credential to revoke + */ + @JsonIgnore + public String biometricCredentialId() { + return biometricCredentialId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the user that owns the biometric credential + */ + public RevokeUserBiometricCredentialRequest withUserId(String userId) { + Utils.checkNotNull(userId, "userId"); + this.userId = userId; + return this; + } + + /** + * The ID of the biometric credential to revoke + */ + public RevokeUserBiometricCredentialRequest withBiometricCredentialId(String biometricCredentialId) { + Utils.checkNotNull(biometricCredentialId, "biometricCredentialId"); + this.biometricCredentialId = biometricCredentialId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RevokeUserBiometricCredentialRequest other = (RevokeUserBiometricCredentialRequest) o; + return + Utils.enhancedDeepEquals(this.userId, other.userId) && + Utils.enhancedDeepEquals(this.biometricCredentialId, other.biometricCredentialId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + userId, biometricCredentialId); + } + + @Override + public String toString() { + return Utils.toString(RevokeUserBiometricCredentialRequest.class, + "userId", userId, + "biometricCredentialId", biometricCredentialId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String userId; + + private String biometricCredentialId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the user that owns the biometric credential + */ + public Builder userId(String userId) { + Utils.checkNotNull(userId, "userId"); + this.userId = userId; + return this; + } + + + /** + * The ID of the biometric credential to revoke + */ + public Builder biometricCredentialId(String biometricCredentialId) { + Utils.checkNotNull(biometricCredentialId, "biometricCredentialId"); + this.biometricCredentialId = biometricCredentialId; + return this; + } + + public RevokeUserBiometricCredentialRequest build() { + + return new RevokeUserBiometricCredentialRequest( + userId, biometricCredentialId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialRequestBuilder.java new file mode 100644 index 00000000..5a6f2f5a --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialRequestBuilder.java @@ -0,0 +1,73 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.RevokeUserBiometricCredential; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class RevokeUserBiometricCredentialRequestBuilder { + + private String userId; + private String biometricCredentialId; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public RevokeUserBiometricCredentialRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public RevokeUserBiometricCredentialRequestBuilder userId(String userId) { + Utils.checkNotNull(userId, "userId"); + this.userId = userId; + return this; + } + + public RevokeUserBiometricCredentialRequestBuilder biometricCredentialId(String biometricCredentialId) { + Utils.checkNotNull(biometricCredentialId, "biometricCredentialId"); + this.biometricCredentialId = biometricCredentialId; + return this; + } + + public RevokeUserBiometricCredentialRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public RevokeUserBiometricCredentialRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private RevokeUserBiometricCredentialRequest buildRequest() { + + RevokeUserBiometricCredentialRequest request = new RevokeUserBiometricCredentialRequest(userId, + biometricCredentialId); + + return request; + } + + public RevokeUserBiometricCredentialResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new RevokeUserBiometricCredential.Sync(sdkConfiguration, options, _headers); + RevokeUserBiometricCredentialRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialResponse.java b/src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialResponse.java new file mode 100644 index 00000000..7d04c13f --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/RevokeUserBiometricCredentialResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.BiometricCredential; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 RevokeUserBiometricCredentialResponse 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; + + /** + * Success + */ + private Optional biometricCredential; + + @JsonCreator + public RevokeUserBiometricCredentialResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional biometricCredential) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(biometricCredential, "biometricCredential"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.biometricCredential = biometricCredential; + } + + public RevokeUserBiometricCredentialResponse( + 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; + } + + /** + * Success + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional biometricCredential() { + return (Optional) biometricCredential; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public RevokeUserBiometricCredentialResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public RevokeUserBiometricCredentialResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public RevokeUserBiometricCredentialResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * Success + */ + public RevokeUserBiometricCredentialResponse withBiometricCredential(BiometricCredential biometricCredential) { + Utils.checkNotNull(biometricCredential, "biometricCredential"); + this.biometricCredential = Optional.ofNullable(biometricCredential); + return this; + } + + + /** + * Success + */ + public RevokeUserBiometricCredentialResponse withBiometricCredential(Optional biometricCredential) { + Utils.checkNotNull(biometricCredential, "biometricCredential"); + this.biometricCredential = biometricCredential; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RevokeUserBiometricCredentialResponse other = (RevokeUserBiometricCredentialResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.biometricCredential, other.biometricCredential); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + biometricCredential); + } + + @Override + public String toString() { + return Utils.toString(RevokeUserBiometricCredentialResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "biometricCredential", biometricCredential); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional biometricCredential = 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; + } + + + /** + * Success + */ + public Builder biometricCredential(BiometricCredential biometricCredential) { + Utils.checkNotNull(biometricCredential, "biometricCredential"); + this.biometricCredential = Optional.ofNullable(biometricCredential); + return this; + } + + /** + * Success + */ + public Builder biometricCredential(Optional biometricCredential) { + Utils.checkNotNull(biometricCredential, "biometricCredential"); + this.biometricCredential = biometricCredential; + return this; + } + + public RevokeUserBiometricCredentialResponse build() { + + return new RevokeUserBiometricCredentialResponse( + contentType, statusCode, rawResponse, + biometricCredential); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyRequest.java b/src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyRequest.java new file mode 100644 index 00000000..c42f80de --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyRequest.java @@ -0,0 +1,101 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; + + +public class RotateDirectoryAPIKeyRequest { + /** + * The ID of the directory whose API key to rotate + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=directory_id") + private String directoryId; + + @JsonCreator + public RotateDirectoryAPIKeyRequest( + String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + } + + /** + * The ID of the directory whose API key to rotate + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the directory whose API key to rotate + */ + public RotateDirectoryAPIKeyRequest withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RotateDirectoryAPIKeyRequest other = (RotateDirectoryAPIKeyRequest) o; + return + Utils.enhancedDeepEquals(this.directoryId, other.directoryId); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryId); + } + + @Override + public String toString() { + return Utils.toString(RotateDirectoryAPIKeyRequest.class, + "directoryId", directoryId); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String directoryId; + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the directory whose API key to rotate + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public RotateDirectoryAPIKeyRequest build() { + + return new RotateDirectoryAPIKeyRequest( + directoryId); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyRequestBuilder.java new file mode 100644 index 00000000..17fc1b42 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyRequestBuilder.java @@ -0,0 +1,65 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.RotateDirectoryAPIKey; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class RotateDirectoryAPIKeyRequestBuilder { + + private String directoryId; + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public RotateDirectoryAPIKeyRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public RotateDirectoryAPIKeyRequestBuilder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public RotateDirectoryAPIKeyRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public RotateDirectoryAPIKeyRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private RotateDirectoryAPIKeyRequest buildRequest() { + + RotateDirectoryAPIKeyRequest request = new RotateDirectoryAPIKeyRequest(directoryId); + + return request; + } + + public RotateDirectoryAPIKeyResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new RotateDirectoryAPIKey.Sync(sdkConfiguration, options, _headers); + RotateDirectoryAPIKeyRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyResponse.java b/src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyResponse.java new file mode 100644 index 00000000..b0e56e25 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/RotateDirectoryAPIKeyResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.Directory; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 RotateDirectoryAPIKeyResponse 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; + + /** + * A directory + */ + private Optional directory; + + @JsonCreator + public RotateDirectoryAPIKeyResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional directory) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(directory, "directory"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.directory = directory; + } + + public RotateDirectoryAPIKeyResponse( + 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; + } + + /** + * A directory + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional directory() { + return (Optional) directory; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public RotateDirectoryAPIKeyResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public RotateDirectoryAPIKeyResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public RotateDirectoryAPIKeyResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A directory + */ + public RotateDirectoryAPIKeyResponse withDirectory(Directory directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + + /** + * A directory + */ + public RotateDirectoryAPIKeyResponse withDirectory(Optional directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RotateDirectoryAPIKeyResponse other = (RotateDirectoryAPIKeyResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.directory, other.directory); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + directory); + } + + @Override + public String toString() { + return Utils.toString(RotateDirectoryAPIKeyResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "directory", directory); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional directory = 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; + } + + + /** + * A directory + */ + public Builder directory(Directory directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + /** + * A directory + */ + public Builder directory(Optional directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + public RotateDirectoryAPIKeyResponse build() { + + return new RotateDirectoryAPIKeyResponse( + contentType, statusCode, rawResponse, + directory); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyRequest.java b/src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyRequest.java index 981c7321..d27bba68 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyRequest.java @@ -13,7 +13,7 @@ public class RotateSCIMDirectoryAPIKeyRequest { /** - * The ID of the SCIM directory whose API key to rotate + * The ID of the directory whose API key to rotate */ @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=scim_directory_id") private String scimDirectoryId; @@ -26,7 +26,7 @@ public RotateSCIMDirectoryAPIKeyRequest( } /** - * The ID of the SCIM directory whose API key to rotate + * The ID of the directory whose API key to rotate */ @JsonIgnore public String scimDirectoryId() { @@ -39,7 +39,7 @@ public static Builder builder() { /** - * The ID of the SCIM directory whose API key to rotate + * The ID of the directory whose API key to rotate */ public RotateSCIMDirectoryAPIKeyRequest withScimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -83,7 +83,7 @@ private Builder() { /** - * The ID of the SCIM directory whose API key to rotate + * The ID of the directory whose API key to rotate */ public Builder scimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyResponse.java b/src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyResponse.java index 0dc887ac..5c708847 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyResponse.java +++ b/src/main/java/com/clerk/backend_api/models/operations/RotateSCIMDirectoryAPIKeyResponse.java @@ -34,7 +34,7 @@ public class RotateSCIMDirectoryAPIKeyResponse implements Response { private HttpResponse rawResponse; /** - * A SCIM directory + * A directory */ private Optional scimDirectory; @@ -87,7 +87,7 @@ public HttpResponse rawResponse() { } /** - * A SCIM directory + * A directory */ @SuppressWarnings("unchecked") @JsonIgnore @@ -128,7 +128,7 @@ public RotateSCIMDirectoryAPIKeyResponse withRawResponse(HttpResponse scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -225,7 +225,7 @@ public Builder rawResponse(HttpResponse rawResponse) { /** - * A SCIM directory + * A directory */ public Builder scimDirectory(SCIMDirectory scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -234,7 +234,7 @@ public Builder scimDirectory(SCIMDirectory scimDirectory) { } /** - * A SCIM directory + * A directory */ public Builder scimDirectory(Optional scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequest.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequest.java new file mode 100644 index 00000000..10bb45de --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequest.java @@ -0,0 +1,151 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.SpeakeasyMetadata; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.Optional; + + +public class UpdateDirectoryRequest { + /** + * The ID of the directory to update + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=directory_id") + private String directoryId; + + + @SpeakeasyMetadata("request:mediaType=application/json") + private Optional requestBody; + + @JsonCreator + public UpdateDirectoryRequest( + String directoryId, + Optional requestBody) { + Utils.checkNotNull(directoryId, "directoryId"); + Utils.checkNotNull(requestBody, "requestBody"); + this.directoryId = directoryId; + this.requestBody = requestBody; + } + + public UpdateDirectoryRequest( + String directoryId) { + this(directoryId, Optional.empty()); + } + + /** + * The ID of the directory to update + */ + @JsonIgnore + public String directoryId() { + return directoryId; + } + + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional requestBody() { + return (Optional) requestBody; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * The ID of the directory to update + */ + public UpdateDirectoryRequest withDirectoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public UpdateDirectoryRequest withRequestBody(UpdateDirectoryRequestBody requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = Optional.ofNullable(requestBody); + return this; + } + + + public UpdateDirectoryRequest withRequestBody(Optional requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = requestBody; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateDirectoryRequest other = (UpdateDirectoryRequest) o; + return + Utils.enhancedDeepEquals(this.directoryId, other.directoryId) && + Utils.enhancedDeepEquals(this.requestBody, other.requestBody); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + directoryId, requestBody); + } + + @Override + public String toString() { + return Utils.toString(UpdateDirectoryRequest.class, + "directoryId", directoryId, + "requestBody", requestBody); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String directoryId; + + private Optional requestBody = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * The ID of the directory to update + */ + public Builder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + + public Builder requestBody(UpdateDirectoryRequestBody requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = Optional.ofNullable(requestBody); + return this; + } + + public Builder requestBody(Optional requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = requestBody; + return this; + } + + public UpdateDirectoryRequest build() { + + return new UpdateDirectoryRequest( + directoryId, requestBody); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequestBody.java new file mode 100644 index 00000000..e7c2b95c --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequestBody.java @@ -0,0 +1,381 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.utils.Utils; +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 java.lang.Boolean; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.Map; +import java.util.Optional; + + +public class UpdateDirectoryRequestBody { + /** + * A human-friendly name for the directory. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + private Optional name; + + /** + * Whether the directory is enabled. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("enabled") + private Optional enabled; + + /** + * The identity provider for this directory. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("provider") + private Optional provider; + + /** + * Attribute-to-directory-path entries to merge into the directory's attribute mapping. + * Set a key to `null` to remove it from the mapping. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("attribute_mapping") + private Optional> attributeMapping; + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("group_role_mapping_enabled") + private Optional groupRoleMappingEnabled; + + @JsonCreator + public UpdateDirectoryRequestBody( + @JsonProperty("name") Optional name, + @JsonProperty("enabled") Optional enabled, + @JsonProperty("provider") Optional provider, + @JsonProperty("attribute_mapping") Optional> attributeMapping, + @JsonProperty("group_role_mapping_enabled") Optional groupRoleMappingEnabled) { + Utils.checkNotNull(name, "name"); + Utils.checkNotNull(enabled, "enabled"); + Utils.checkNotNull(provider, "provider"); + Utils.checkNotNull(attributeMapping, "attributeMapping"); + Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); + this.name = name; + this.enabled = enabled; + this.provider = provider; + this.attributeMapping = attributeMapping; + this.groupRoleMappingEnabled = groupRoleMappingEnabled; + } + + public UpdateDirectoryRequestBody() { + this(Optional.empty(), Optional.empty(), Optional.empty(), + Optional.empty(), Optional.empty()); + } + + /** + * A human-friendly name for the directory. + */ + @JsonIgnore + public Optional name() { + return name; + } + + /** + * Whether the directory is enabled. + */ + @JsonIgnore + public Optional enabled() { + return enabled; + } + + /** + * The identity provider for this directory. + */ + @JsonIgnore + public Optional provider() { + return provider; + } + + /** + * Attribute-to-directory-path entries to merge into the directory's attribute mapping. + * Set a key to `null` to remove it from the mapping. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional> attributeMapping() { + return (Optional>) attributeMapping; + } + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + @JsonIgnore + public Optional groupRoleMappingEnabled() { + return groupRoleMappingEnabled; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * A human-friendly name for the directory. + */ + public UpdateDirectoryRequestBody withName(String name) { + Utils.checkNotNull(name, "name"); + this.name = Optional.ofNullable(name); + return this; + } + + + /** + * A human-friendly name for the directory. + */ + public UpdateDirectoryRequestBody withName(Optional name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + /** + * Whether the directory is enabled. + */ + public UpdateDirectoryRequestBody withEnabled(boolean enabled) { + Utils.checkNotNull(enabled, "enabled"); + this.enabled = Optional.ofNullable(enabled); + return this; + } + + + /** + * Whether the directory is enabled. + */ + public UpdateDirectoryRequestBody withEnabled(Optional enabled) { + Utils.checkNotNull(enabled, "enabled"); + this.enabled = enabled; + return this; + } + + /** + * The identity provider for this directory. + */ + public UpdateDirectoryRequestBody withProvider(String provider) { + Utils.checkNotNull(provider, "provider"); + this.provider = Optional.ofNullable(provider); + return this; + } + + + /** + * The identity provider for this directory. + */ + public UpdateDirectoryRequestBody withProvider(Optional provider) { + Utils.checkNotNull(provider, "provider"); + this.provider = provider; + return this; + } + + /** + * Attribute-to-directory-path entries to merge into the directory's attribute mapping. + * Set a key to `null` to remove it from the mapping. + */ + public UpdateDirectoryRequestBody withAttributeMapping(Map attributeMapping) { + Utils.checkNotNull(attributeMapping, "attributeMapping"); + this.attributeMapping = Optional.ofNullable(attributeMapping); + return this; + } + + + /** + * Attribute-to-directory-path entries to merge into the directory's attribute mapping. + * Set a key to `null` to remove it from the mapping. + */ + public UpdateDirectoryRequestBody withAttributeMapping(Optional> attributeMapping) { + Utils.checkNotNull(attributeMapping, "attributeMapping"); + this.attributeMapping = attributeMapping; + return this; + } + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + public UpdateDirectoryRequestBody withGroupRoleMappingEnabled(boolean groupRoleMappingEnabled) { + Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); + this.groupRoleMappingEnabled = Optional.ofNullable(groupRoleMappingEnabled); + return this; + } + + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + public UpdateDirectoryRequestBody withGroupRoleMappingEnabled(Optional groupRoleMappingEnabled) { + Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); + this.groupRoleMappingEnabled = groupRoleMappingEnabled; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateDirectoryRequestBody other = (UpdateDirectoryRequestBody) o; + return + Utils.enhancedDeepEquals(this.name, other.name) && + Utils.enhancedDeepEquals(this.enabled, other.enabled) && + Utils.enhancedDeepEquals(this.provider, other.provider) && + Utils.enhancedDeepEquals(this.attributeMapping, other.attributeMapping) && + Utils.enhancedDeepEquals(this.groupRoleMappingEnabled, other.groupRoleMappingEnabled); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + name, enabled, provider, + attributeMapping, groupRoleMappingEnabled); + } + + @Override + public String toString() { + return Utils.toString(UpdateDirectoryRequestBody.class, + "name", name, + "enabled", enabled, + "provider", provider, + "attributeMapping", attributeMapping, + "groupRoleMappingEnabled", groupRoleMappingEnabled); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private Optional name = Optional.empty(); + + private Optional enabled = Optional.empty(); + + private Optional provider = Optional.empty(); + + private Optional> attributeMapping = Optional.empty(); + + private Optional groupRoleMappingEnabled = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + /** + * A human-friendly name for the directory. + */ + public Builder name(String name) { + Utils.checkNotNull(name, "name"); + this.name = Optional.ofNullable(name); + return this; + } + + /** + * A human-friendly name for the directory. + */ + public Builder name(Optional name) { + Utils.checkNotNull(name, "name"); + this.name = name; + return this; + } + + + /** + * Whether the directory is enabled. + */ + public Builder enabled(boolean enabled) { + Utils.checkNotNull(enabled, "enabled"); + this.enabled = Optional.ofNullable(enabled); + return this; + } + + /** + * Whether the directory is enabled. + */ + public Builder enabled(Optional enabled) { + Utils.checkNotNull(enabled, "enabled"); + this.enabled = enabled; + return this; + } + + + /** + * The identity provider for this directory. + */ + public Builder provider(String provider) { + Utils.checkNotNull(provider, "provider"); + this.provider = Optional.ofNullable(provider); + return this; + } + + /** + * The identity provider for this directory. + */ + public Builder provider(Optional provider) { + Utils.checkNotNull(provider, "provider"); + this.provider = provider; + return this; + } + + + /** + * Attribute-to-directory-path entries to merge into the directory's attribute mapping. + * Set a key to `null` to remove it from the mapping. + */ + public Builder attributeMapping(Map attributeMapping) { + Utils.checkNotNull(attributeMapping, "attributeMapping"); + this.attributeMapping = Optional.ofNullable(attributeMapping); + return this; + } + + /** + * Attribute-to-directory-path entries to merge into the directory's attribute mapping. + * Set a key to `null` to remove it from the mapping. + */ + public Builder attributeMapping(Optional> attributeMapping) { + Utils.checkNotNull(attributeMapping, "attributeMapping"); + this.attributeMapping = attributeMapping; + return this; + } + + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + public Builder groupRoleMappingEnabled(boolean groupRoleMappingEnabled) { + Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); + this.groupRoleMappingEnabled = Optional.ofNullable(groupRoleMappingEnabled); + return this; + } + + /** + * Whether group-to-role mapping is enabled for this directory. + */ + public Builder groupRoleMappingEnabled(Optional groupRoleMappingEnabled) { + Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); + this.groupRoleMappingEnabled = groupRoleMappingEnabled; + return this; + } + + public UpdateDirectoryRequestBody build() { + + return new UpdateDirectoryRequestBody( + name, enabled, provider, + attributeMapping, groupRoleMappingEnabled); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequestBuilder.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequestBuilder.java new file mode 100644 index 00000000..578bab3f --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryRequestBuilder.java @@ -0,0 +1,79 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.operations.UpdateDirectory; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import java.lang.String; +import java.util.Optional; + +public class UpdateDirectoryRequestBuilder { + + private String directoryId; + private Optional requestBody = Optional.empty(); + private Optional retryConfig = Optional.empty(); + private final SDKConfiguration sdkConfiguration; + private final Headers _headers = new Headers(); + + public UpdateDirectoryRequestBuilder(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + public UpdateDirectoryRequestBuilder directoryId(String directoryId) { + Utils.checkNotNull(directoryId, "directoryId"); + this.directoryId = directoryId; + return this; + } + + public UpdateDirectoryRequestBuilder requestBody(UpdateDirectoryRequestBody requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = Optional.of(requestBody); + return this; + } + + public UpdateDirectoryRequestBuilder requestBody(Optional requestBody) { + Utils.checkNotNull(requestBody, "requestBody"); + this.requestBody = requestBody; + return this; + } + + public UpdateDirectoryRequestBuilder retryConfig(RetryConfig retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = Optional.of(retryConfig); + return this; + } + + public UpdateDirectoryRequestBuilder retryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + return this; + } + + + private UpdateDirectoryRequest buildRequest() { + + UpdateDirectoryRequest request = new UpdateDirectoryRequest(directoryId, + requestBody); + + return request; + } + + public UpdateDirectoryResponse call() { + Optional options = Optional.of(Options.builder() + .retryConfig(retryConfig) + .build()); + + RequestOperation operation + = new UpdateDirectory.Sync(sdkConfiguration, options, _headers); + UpdateDirectoryRequest request = buildRequest(); + + return operation.handleResponse(operation.doRequest(request)); + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryResponse.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryResponse.java new file mode 100644 index 00000000..76b08143 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateDirectoryResponse.java @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.models.operations; + +import com.clerk.backend_api.models.components.Directory; +import com.clerk.backend_api.utils.Response; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +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 UpdateDirectoryResponse 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; + + /** + * A directory + */ + private Optional directory; + + @JsonCreator + public UpdateDirectoryResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional directory) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(directory, "directory"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.directory = directory; + } + + public UpdateDirectoryResponse( + 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; + } + + /** + * A directory + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional directory() { + return (Optional) directory; + } + + public static Builder builder() { + return new Builder(); + } + + + /** + * HTTP response content type for this operation + */ + public UpdateDirectoryResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public UpdateDirectoryResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public UpdateDirectoryResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * A directory + */ + public UpdateDirectoryResponse withDirectory(Directory directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + + /** + * A directory + */ + public UpdateDirectoryResponse withDirectory(Optional directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateDirectoryResponse other = (UpdateDirectoryResponse) o; + return + Utils.enhancedDeepEquals(this.contentType, other.contentType) && + Utils.enhancedDeepEquals(this.statusCode, other.statusCode) && + Utils.enhancedDeepEquals(this.rawResponse, other.rawResponse) && + Utils.enhancedDeepEquals(this.directory, other.directory); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + contentType, statusCode, rawResponse, + directory); + } + + @Override + public String toString() { + return Utils.toString(UpdateDirectoryResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "directory", directory); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional directory = 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; + } + + + /** + * A directory + */ + public Builder directory(Directory directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + /** + * A directory + */ + public Builder directory(Optional directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + public UpdateDirectoryResponse build() { + + return new UpdateDirectoryResponse( + contentType, statusCode, rawResponse, + directory); + } + + } +} diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateEnterpriseConnectionCustomAttributes.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateEnterpriseConnectionCustomAttributes.java index 1bc75138..d9cea984 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateEnterpriseConnectionCustomAttributes.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateEnterpriseConnectionCustomAttributes.java @@ -42,6 +42,14 @@ public class UpdateEnterpriseConnectionCustomAttributes { @JsonProperty("scim_path") private Optional scimPath; + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory_path") + private Optional directoryPath; + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -56,16 +64,19 @@ public UpdateEnterpriseConnectionCustomAttributes( @JsonProperty("key") String key, @JsonProperty("sso_path") Optional ssoPath, @JsonProperty("scim_path") Optional scimPath, + @JsonProperty("directory_path") Optional directoryPath, @JsonProperty("multi_valued") Optional multiValued) { Utils.checkNotNull(name, "name"); Utils.checkNotNull(key, "key"); Utils.checkNotNull(ssoPath, "ssoPath"); Utils.checkNotNull(scimPath, "scimPath"); + Utils.checkNotNull(directoryPath, "directoryPath"); Utils.checkNotNull(multiValued, "multiValued"); this.name = name; this.key = key; this.ssoPath = ssoPath; this.scimPath = scimPath; + this.directoryPath = directoryPath; this.multiValued = multiValued; } @@ -73,7 +84,7 @@ public UpdateEnterpriseConnectionCustomAttributes( String name, String key) { this(name, key, Optional.empty(), - Optional.empty(), Optional.empty()); + Optional.empty(), Optional.empty(), Optional.empty()); } /** @@ -108,6 +119,15 @@ public Optional scimPath() { return scimPath; } + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + @JsonIgnore + public Optional directoryPath() { + return directoryPath; + } + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -178,6 +198,27 @@ public UpdateEnterpriseConnectionCustomAttributes withScimPath(Optional return this; } + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + public UpdateEnterpriseConnectionCustomAttributes withDirectoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + public UpdateEnterpriseConnectionCustomAttributes withDirectoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -213,6 +254,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.key, other.key) && Utils.enhancedDeepEquals(this.ssoPath, other.ssoPath) && Utils.enhancedDeepEquals(this.scimPath, other.scimPath) && + Utils.enhancedDeepEquals(this.directoryPath, other.directoryPath) && Utils.enhancedDeepEquals(this.multiValued, other.multiValued); } @@ -220,7 +262,7 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Utils.enhancedHash( name, key, ssoPath, - scimPath, multiValued); + scimPath, directoryPath, multiValued); } @Override @@ -230,6 +272,7 @@ public String toString() { "key", key, "ssoPath", ssoPath, "scimPath", scimPath, + "directoryPath", directoryPath, "multiValued", multiValued); } @@ -244,6 +287,8 @@ public final static class Builder { private Optional scimPath = Optional.empty(); + private Optional directoryPath = Optional.empty(); + private Optional multiValued = Optional.empty(); private Builder() { @@ -309,6 +354,27 @@ public Builder scimPath(Optional scimPath) { } + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + public Builder directoryPath(String directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = Optional.ofNullable(directoryPath); + return this; + } + + /** + * The new name for `scim_path`. Send either one, or both with the same value; sending both with + * different values is rejected. + */ + public Builder directoryPath(Optional directoryPath) { + Utils.checkNotNull(directoryPath, "directoryPath"); + this.directoryPath = directoryPath; + return this; + } + + /** * When true, the attribute supports multiple values; values from the IdP are written to * public_metadata as an array. Defaults to false. @@ -333,7 +399,7 @@ public UpdateEnterpriseConnectionCustomAttributes build() { return new UpdateEnterpriseConnectionCustomAttributes( name, key, ssoPath, - scimPath, multiValued); + scimPath, directoryPath, multiValued); } } diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.java index a924ea11..b7803498 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceOAuthApplicationSettingsRequestBody.java @@ -26,7 +26,11 @@ public class UpdateInstanceOAuthApplicationSettingsRequestBody { private JsonNullable dynamicOauthClientRegistration; /** - * Default scopes. Set to null to reset to Clerk-provided defaults. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Accepts built-in keys and current custom catalog keys. `advertised` does not affect eligibility. + * + *

Duplicate keys, unknown keys, and `offline_access` are rejected. An empty array or null resets to + * Clerk-provided defaults. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("default_scopes") @@ -40,6 +44,20 @@ public class UpdateInstanceOAuthApplicationSettingsRequestBody { @JsonProperty("oauth_jwt_access_tokens") private JsonNullable oauthJwtAccessTokens; + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("aud_claim_enabled") + private JsonNullable audClaimEnabled; + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("pkce_required") + private JsonNullable pkceRequired; + /** * Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization * server metadata. @@ -69,18 +87,24 @@ public UpdateInstanceOAuthApplicationSettingsRequestBody( @JsonProperty("dynamic_oauth_client_registration") JsonNullable dynamicOauthClientRegistration, @JsonProperty("default_scopes") JsonNullable> defaultScopes, @JsonProperty("oauth_jwt_access_tokens") JsonNullable oauthJwtAccessTokens, + @JsonProperty("aud_claim_enabled") JsonNullable audClaimEnabled, + @JsonProperty("pkce_required") JsonNullable pkceRequired, @JsonProperty("client_id_metadata_documents_advertised") JsonNullable clientIdMetadataDocumentsAdvertised, @JsonProperty("client_id_metadata_documents_only_allow_pre_registered_clients") JsonNullable clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, @JsonProperty("client_id_metadata_documents_block_implicitly_allowed_clients") JsonNullable clientIdMetadataDocumentsBlockImplicitlyAllowedClients) { Utils.checkNotNull(dynamicOauthClientRegistration, "dynamicOauthClientRegistration"); Utils.checkNotNull(defaultScopes, "defaultScopes"); Utils.checkNotNull(oauthJwtAccessTokens, "oauthJwtAccessTokens"); + Utils.checkNotNull(audClaimEnabled, "audClaimEnabled"); + Utils.checkNotNull(pkceRequired, "pkceRequired"); Utils.checkNotNull(clientIdMetadataDocumentsAdvertised, "clientIdMetadataDocumentsAdvertised"); Utils.checkNotNull(clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, "clientIdMetadataDocumentsOnlyAllowPreRegisteredClients"); Utils.checkNotNull(clientIdMetadataDocumentsBlockImplicitlyAllowedClients, "clientIdMetadataDocumentsBlockImplicitlyAllowedClients"); this.dynamicOauthClientRegistration = dynamicOauthClientRegistration; this.defaultScopes = defaultScopes; this.oauthJwtAccessTokens = oauthJwtAccessTokens; + this.audClaimEnabled = audClaimEnabled; + this.pkceRequired = pkceRequired; this.clientIdMetadataDocumentsAdvertised = clientIdMetadataDocumentsAdvertised; this.clientIdMetadataDocumentsOnlyAllowPreRegisteredClients = clientIdMetadataDocumentsOnlyAllowPreRegisteredClients; this.clientIdMetadataDocumentsBlockImplicitlyAllowedClients = clientIdMetadataDocumentsBlockImplicitlyAllowedClients; @@ -88,7 +112,8 @@ public UpdateInstanceOAuthApplicationSettingsRequestBody( public UpdateInstanceOAuthApplicationSettingsRequestBody() { this(JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), - JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined()); + JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), + JsonNullable.undefined(), JsonNullable.undefined()); } /** @@ -100,7 +125,11 @@ public JsonNullable dynamicOauthClientRegistration() { } /** - * Default scopes. Set to null to reset to Clerk-provided defaults. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Accepts built-in keys and current custom catalog keys. `advertised` does not affect eligibility. + * + *

Duplicate keys, unknown keys, and `offline_access` are rejected. An empty array or null resets to + * Clerk-provided defaults. */ @SuppressWarnings("unchecked") @JsonIgnore @@ -117,6 +146,22 @@ public JsonNullable oauthJwtAccessTokens() { return oauthJwtAccessTokens; } + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + @JsonIgnore + public JsonNullable audClaimEnabled() { + return audClaimEnabled; + } + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + @JsonIgnore + public JsonNullable pkceRequired() { + return pkceRequired; + } + /** * Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization * server metadata. @@ -168,7 +213,11 @@ public UpdateInstanceOAuthApplicationSettingsRequestBody withDynamicOauthClientR } /** - * Default scopes. Set to null to reset to Clerk-provided defaults. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Accepts built-in keys and current custom catalog keys. `advertised` does not affect eligibility. + * + *

Duplicate keys, unknown keys, and `offline_access` are rejected. An empty array or null resets to + * Clerk-provided defaults. */ public UpdateInstanceOAuthApplicationSettingsRequestBody withDefaultScopes(List defaultScopes) { Utils.checkNotNull(defaultScopes, "defaultScopes"); @@ -177,7 +226,11 @@ public UpdateInstanceOAuthApplicationSettingsRequestBody withDefaultScopes(List< } /** - * Default scopes. Set to null to reset to Clerk-provided defaults. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Accepts built-in keys and current custom catalog keys. `advertised` does not affect eligibility. + * + *

Duplicate keys, unknown keys, and `offline_access` are rejected. An empty array or null resets to + * Clerk-provided defaults. */ public UpdateInstanceOAuthApplicationSettingsRequestBody withDefaultScopes(JsonNullable> defaultScopes) { Utils.checkNotNull(defaultScopes, "defaultScopes"); @@ -205,6 +258,42 @@ public UpdateInstanceOAuthApplicationSettingsRequestBody withOauthJwtAccessToken return this; } + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + public UpdateInstanceOAuthApplicationSettingsRequestBody withAudClaimEnabled(boolean audClaimEnabled) { + Utils.checkNotNull(audClaimEnabled, "audClaimEnabled"); + this.audClaimEnabled = JsonNullable.of(audClaimEnabled); + return this; + } + + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + public UpdateInstanceOAuthApplicationSettingsRequestBody withAudClaimEnabled(JsonNullable audClaimEnabled) { + Utils.checkNotNull(audClaimEnabled, "audClaimEnabled"); + this.audClaimEnabled = audClaimEnabled; + return this; + } + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + public UpdateInstanceOAuthApplicationSettingsRequestBody withPkceRequired(boolean pkceRequired) { + Utils.checkNotNull(pkceRequired, "pkceRequired"); + this.pkceRequired = JsonNullable.of(pkceRequired); + return this; + } + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + public UpdateInstanceOAuthApplicationSettingsRequestBody withPkceRequired(JsonNullable pkceRequired) { + Utils.checkNotNull(pkceRequired, "pkceRequired"); + this.pkceRequired = pkceRequired; + return this; + } + /** * Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization * server metadata. @@ -278,6 +367,8 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.dynamicOauthClientRegistration, other.dynamicOauthClientRegistration) && Utils.enhancedDeepEquals(this.defaultScopes, other.defaultScopes) && Utils.enhancedDeepEquals(this.oauthJwtAccessTokens, other.oauthJwtAccessTokens) && + Utils.enhancedDeepEquals(this.audClaimEnabled, other.audClaimEnabled) && + Utils.enhancedDeepEquals(this.pkceRequired, other.pkceRequired) && Utils.enhancedDeepEquals(this.clientIdMetadataDocumentsAdvertised, other.clientIdMetadataDocumentsAdvertised) && Utils.enhancedDeepEquals(this.clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, other.clientIdMetadataDocumentsOnlyAllowPreRegisteredClients) && Utils.enhancedDeepEquals(this.clientIdMetadataDocumentsBlockImplicitlyAllowedClients, other.clientIdMetadataDocumentsBlockImplicitlyAllowedClients); @@ -287,7 +378,8 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Utils.enhancedHash( dynamicOauthClientRegistration, defaultScopes, oauthJwtAccessTokens, - clientIdMetadataDocumentsAdvertised, clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, clientIdMetadataDocumentsBlockImplicitlyAllowedClients); + audClaimEnabled, pkceRequired, clientIdMetadataDocumentsAdvertised, + clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, clientIdMetadataDocumentsBlockImplicitlyAllowedClients); } @Override @@ -296,6 +388,8 @@ public String toString() { "dynamicOauthClientRegistration", dynamicOauthClientRegistration, "defaultScopes", defaultScopes, "oauthJwtAccessTokens", oauthJwtAccessTokens, + "audClaimEnabled", audClaimEnabled, + "pkceRequired", pkceRequired, "clientIdMetadataDocumentsAdvertised", clientIdMetadataDocumentsAdvertised, "clientIdMetadataDocumentsOnlyAllowPreRegisteredClients", clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, "clientIdMetadataDocumentsBlockImplicitlyAllowedClients", clientIdMetadataDocumentsBlockImplicitlyAllowedClients); @@ -310,6 +404,10 @@ public final static class Builder { private JsonNullable oauthJwtAccessTokens = JsonNullable.undefined(); + private JsonNullable audClaimEnabled = JsonNullable.undefined(); + + private JsonNullable pkceRequired = JsonNullable.undefined(); + private JsonNullable clientIdMetadataDocumentsAdvertised = JsonNullable.undefined(); private JsonNullable clientIdMetadataDocumentsOnlyAllowPreRegisteredClients = JsonNullable.undefined(); @@ -341,7 +439,11 @@ public Builder dynamicOauthClientRegistration(JsonNullable dynamicOauth /** - * Default scopes. Set to null to reset to Clerk-provided defaults. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Accepts built-in keys and current custom catalog keys. `advertised` does not affect eligibility. + * + *

Duplicate keys, unknown keys, and `offline_access` are rejected. An empty array or null resets to + * Clerk-provided defaults. */ public Builder defaultScopes(List defaultScopes) { Utils.checkNotNull(defaultScopes, "defaultScopes"); @@ -350,7 +452,11 @@ public Builder defaultScopes(List defaultScopes) { } /** - * Default scopes. Set to null to reset to Clerk-provided defaults. + * Default scopes assigned when a dynamically registered or first-contact CIMD client omits `scope`. + * Accepts built-in keys and current custom catalog keys. `advertised` does not affect eligibility. + * + *

Duplicate keys, unknown keys, and `offline_access` are rejected. An empty array or null resets to + * Clerk-provided defaults. */ public Builder defaultScopes(JsonNullable> defaultScopes) { Utils.checkNotNull(defaultScopes, "defaultScopes"); @@ -380,6 +486,44 @@ public Builder oauthJwtAccessTokens(JsonNullable oauthJwtAccessTokens) } + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + public Builder audClaimEnabled(boolean audClaimEnabled) { + Utils.checkNotNull(audClaimEnabled, "audClaimEnabled"); + this.audClaimEnabled = JsonNullable.of(audClaimEnabled); + return this; + } + + /** + * Whether OAuth access tokens can include an aud claim derived from the RFC 8707 resource parameter. + */ + public Builder audClaimEnabled(JsonNullable audClaimEnabled) { + Utils.checkNotNull(audClaimEnabled, "audClaimEnabled"); + this.audClaimEnabled = audClaimEnabled; + return this; + } + + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + public Builder pkceRequired(boolean pkceRequired) { + Utils.checkNotNull(pkceRequired, "pkceRequired"); + this.pkceRequired = JsonNullable.of(pkceRequired); + return this; + } + + /** + * Whether all new OAuth authorization-code requests must use PKCE with the S256 challenge method. + */ + public Builder pkceRequired(JsonNullable pkceRequired) { + Utils.checkNotNull(pkceRequired, "pkceRequired"); + this.pkceRequired = pkceRequired; + return this; + } + + /** * Whether the instance advertises support for Client ID Metadata Documents in its OAuth authorization * server metadata. @@ -446,7 +590,8 @@ public UpdateInstanceOAuthApplicationSettingsRequestBody build() { return new UpdateInstanceOAuthApplicationSettingsRequestBody( dynamicOauthClientRegistration, defaultScopes, oauthJwtAccessTokens, - clientIdMetadataDocumentsAdvertised, clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, clientIdMetadataDocumentsBlockImplicitlyAllowedClients); + audClaimEnabled, pkceRequired, clientIdMetadataDocumentsAdvertised, + clientIdMetadataDocumentsOnlyAllowPreRegisteredClients, clientIdMetadataDocumentsBlockImplicitlyAllowedClients); } } diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceProtectRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceProtectRequestBody.java index dd928750..58a85c43 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceProtectRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceProtectRequestBody.java @@ -16,7 +16,11 @@ public class UpdateInstanceProtectRequestBody { - + /** + * Set true to enforce Protect rules on this instance. Set false to stop enforcing and return the + * instance to its default posture, where traffic is still evaluated in shadow but nothing is blocked. + * This does not remove the instance from Protect. + */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("rules_enabled") private JsonNullable rulesEnabled; @@ -40,6 +44,11 @@ public UpdateInstanceProtectRequestBody() { this(JsonNullable.undefined(), JsonNullable.undefined()); } + /** + * Set true to enforce Protect rules on this instance. Set false to stop enforcing and return the + * instance to its default posture, where traffic is still evaluated in shadow but nothing is blocked. + * This does not remove the instance from Protect. + */ @JsonIgnore public JsonNullable rulesEnabled() { return rulesEnabled; @@ -55,12 +64,22 @@ public static Builder builder() { } + /** + * Set true to enforce Protect rules on this instance. Set false to stop enforcing and return the + * instance to its default posture, where traffic is still evaluated in shadow but nothing is blocked. + * This does not remove the instance from Protect. + */ public UpdateInstanceProtectRequestBody withRulesEnabled(boolean rulesEnabled) { Utils.checkNotNull(rulesEnabled, "rulesEnabled"); this.rulesEnabled = JsonNullable.of(rulesEnabled); return this; } + /** + * Set true to enforce Protect rules on this instance. Set false to stop enforcing and return the + * instance to its default posture, where traffic is still evaluated in shadow but nothing is blocked. + * This does not remove the instance from Protect. + */ public UpdateInstanceProtectRequestBody withRulesEnabled(JsonNullable rulesEnabled) { Utils.checkNotNull(rulesEnabled, "rulesEnabled"); this.rulesEnabled = rulesEnabled; @@ -118,12 +137,22 @@ private Builder() { } + /** + * Set true to enforce Protect rules on this instance. Set false to stop enforcing and return the + * instance to its default posture, where traffic is still evaluated in shadow but nothing is blocked. + * This does not remove the instance from Protect. + */ public Builder rulesEnabled(boolean rulesEnabled) { Utils.checkNotNull(rulesEnabled, "rulesEnabled"); this.rulesEnabled = JsonNullable.of(rulesEnabled); return this; } + /** + * Set true to enforce Protect rules on this instance. Set false to stop enforcing and return the + * instance to its default posture, where traffic is still evaluated in shadow but nothing is blocked. + * This does not remove the instance from Protect. + */ public Builder rulesEnabled(JsonNullable rulesEnabled) { Utils.checkNotNull(rulesEnabled, "rulesEnabled"); this.rulesEnabled = rulesEnabled; diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceRequestBody.java index 39db73ea..30086772 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateInstanceRequestBody.java @@ -15,7 +15,6 @@ import java.lang.String; import java.lang.SuppressWarnings; import java.util.List; -import java.util.Optional; import org.openapitools.jackson.nullable.JsonNullable; @@ -57,10 +56,36 @@ public class UpdateInstanceRequestBody { * is chrome-extension://extension_uuid. For Electron apps the default origin is http://localhost:3000. * *

For Capacitor, the origin is capacitor://localhost. + * Send an empty array to remove all allowed origins. A null value leaves the current list unchanged. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("allowed_origins") - private Optional> allowedOrigins; + private JsonNullable> allowedOrigins; + + /** + * Subdomains of the instance's own domains that may originate requests while + * `subdomain_allowlist_enabled` is true. Each entry is either an exact host (`app.example.com`) or a + * wildcard anchored on a host beneath one of the instance's domains (`*.preview.example.com`), which + * covers every host under that anchor but not the anchor itself. + * Entries are stored folded to lower case with any trailing dot removed, the form the origin check + * compares against, so entries differing only in those respects are one entry. Entries already stored + * are not validated again, so a list read back from the instance can always be written again + * unchanged. Send an empty array to remove all entries. + * + *

A null value leaves the current list unchanged. Production instances only. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowed_subdomains") + private JsonNullable> allowedSubdomains; + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("subdomain_allowlist_enabled") + private JsonNullable subdomainAllowlistEnabled; /** * Whether the instance should operate in cookieless development mode (i.e. without third-party @@ -99,7 +124,9 @@ public UpdateInstanceRequestBody( @JsonProperty("support_email") JsonNullable supportEmail, @JsonProperty("clerk_js_version") JsonNullable clerkJsVersion, @JsonProperty("development_origin") JsonNullable developmentOrigin, - @JsonProperty("allowed_origins") Optional> allowedOrigins, + @JsonProperty("allowed_origins") JsonNullable> allowedOrigins, + @JsonProperty("allowed_subdomains") JsonNullable> allowedSubdomains, + @JsonProperty("subdomain_allowlist_enabled") JsonNullable subdomainAllowlistEnabled, @JsonProperty("cookieless_dev") JsonNullable cookielessDev, @JsonProperty("url_based_session_syncing") JsonNullable urlBasedSessionSyncing, @JsonProperty("preferred_sign_in_strategy_when_password_required") JsonNullable preferredSignInStrategyWhenPasswordRequired) { @@ -109,6 +136,8 @@ public UpdateInstanceRequestBody( Utils.checkNotNull(clerkJsVersion, "clerkJsVersion"); Utils.checkNotNull(developmentOrigin, "developmentOrigin"); Utils.checkNotNull(allowedOrigins, "allowedOrigins"); + Utils.checkNotNull(allowedSubdomains, "allowedSubdomains"); + Utils.checkNotNull(subdomainAllowlistEnabled, "subdomainAllowlistEnabled"); Utils.checkNotNull(cookielessDev, "cookielessDev"); Utils.checkNotNull(urlBasedSessionSyncing, "urlBasedSessionSyncing"); Utils.checkNotNull(preferredSignInStrategyWhenPasswordRequired, "preferredSignInStrategyWhenPasswordRequired"); @@ -118,6 +147,8 @@ public UpdateInstanceRequestBody( this.clerkJsVersion = clerkJsVersion; this.developmentOrigin = developmentOrigin; this.allowedOrigins = allowedOrigins; + this.allowedSubdomains = allowedSubdomains; + this.subdomainAllowlistEnabled = subdomainAllowlistEnabled; this.cookielessDev = cookielessDev; this.urlBasedSessionSyncing = urlBasedSessionSyncing; this.preferredSignInStrategyWhenPasswordRequired = preferredSignInStrategyWhenPasswordRequired; @@ -125,8 +156,9 @@ public UpdateInstanceRequestBody( public UpdateInstanceRequestBody() { this(JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), - JsonNullable.undefined(), JsonNullable.undefined(), Optional.empty(), - JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined()); + JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), + JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), + JsonNullable.undefined(), JsonNullable.undefined()); } /** @@ -168,11 +200,40 @@ public JsonNullable developmentOrigin() { * is chrome-extension://extension_uuid. For Electron apps the default origin is http://localhost:3000. * *

For Capacitor, the origin is capacitor://localhost. + * Send an empty array to remove all allowed origins. A null value leaves the current list unchanged. */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional> allowedOrigins() { - return (Optional>) allowedOrigins; + public JsonNullable> allowedOrigins() { + return (JsonNullable>) allowedOrigins; + } + + /** + * Subdomains of the instance's own domains that may originate requests while + * `subdomain_allowlist_enabled` is true. Each entry is either an exact host (`app.example.com`) or a + * wildcard anchored on a host beneath one of the instance's domains (`*.preview.example.com`), which + * covers every host under that anchor but not the anchor itself. + * Entries are stored folded to lower case with any trailing dot removed, the form the origin check + * compares against, so entries differing only in those respects are one entry. Entries already stored + * are not validated again, so a list read back from the instance can always be written again + * unchanged. Send an empty array to remove all entries. + * + *

A null value leaves the current list unchanged. Production instances only. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public JsonNullable> allowedSubdomains() { + return (JsonNullable>) allowedSubdomains; + } + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only. + */ + @JsonIgnore + public JsonNullable subdomainAllowlistEnabled() { + return subdomainAllowlistEnabled; } /** @@ -295,14 +356,14 @@ public UpdateInstanceRequestBody withDevelopmentOrigin(JsonNullable deve * is chrome-extension://extension_uuid. For Electron apps the default origin is http://localhost:3000. * *

For Capacitor, the origin is capacitor://localhost. + * Send an empty array to remove all allowed origins. A null value leaves the current list unchanged. */ public UpdateInstanceRequestBody withAllowedOrigins(List allowedOrigins) { Utils.checkNotNull(allowedOrigins, "allowedOrigins"); - this.allowedOrigins = Optional.ofNullable(allowedOrigins); + this.allowedOrigins = JsonNullable.of(allowedOrigins); return this; } - /** * For browser-like stacks such as browser extensions, Electron (not officially supported), or * Capacitor.js (not officially supported), the instance allowed origins need to be updated with the @@ -310,13 +371,72 @@ public UpdateInstanceRequestBody withAllowedOrigins(List allowedOrigins) * is chrome-extension://extension_uuid. For Electron apps the default origin is http://localhost:3000. * *

For Capacitor, the origin is capacitor://localhost. + * Send an empty array to remove all allowed origins. A null value leaves the current list unchanged. */ - public UpdateInstanceRequestBody withAllowedOrigins(Optional> allowedOrigins) { + public UpdateInstanceRequestBody withAllowedOrigins(JsonNullable> allowedOrigins) { Utils.checkNotNull(allowedOrigins, "allowedOrigins"); this.allowedOrigins = allowedOrigins; return this; } + /** + * Subdomains of the instance's own domains that may originate requests while + * `subdomain_allowlist_enabled` is true. Each entry is either an exact host (`app.example.com`) or a + * wildcard anchored on a host beneath one of the instance's domains (`*.preview.example.com`), which + * covers every host under that anchor but not the anchor itself. + * Entries are stored folded to lower case with any trailing dot removed, the form the origin check + * compares against, so entries differing only in those respects are one entry. Entries already stored + * are not validated again, so a list read back from the instance can always be written again + * unchanged. Send an empty array to remove all entries. + * + *

A null value leaves the current list unchanged. Production instances only. + */ + public UpdateInstanceRequestBody withAllowedSubdomains(List allowedSubdomains) { + Utils.checkNotNull(allowedSubdomains, "allowedSubdomains"); + this.allowedSubdomains = JsonNullable.of(allowedSubdomains); + return this; + } + + /** + * Subdomains of the instance's own domains that may originate requests while + * `subdomain_allowlist_enabled` is true. Each entry is either an exact host (`app.example.com`) or a + * wildcard anchored on a host beneath one of the instance's domains (`*.preview.example.com`), which + * covers every host under that anchor but not the anchor itself. + * Entries are stored folded to lower case with any trailing dot removed, the form the origin check + * compares against, so entries differing only in those respects are one entry. Entries already stored + * are not validated again, so a list read back from the instance can always be written again + * unchanged. Send an empty array to remove all entries. + * + *

A null value leaves the current list unchanged. Production instances only. + */ + public UpdateInstanceRequestBody withAllowedSubdomains(JsonNullable> allowedSubdomains) { + Utils.checkNotNull(allowedSubdomains, "allowedSubdomains"); + this.allowedSubdomains = allowedSubdomains; + return this; + } + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only. + */ + public UpdateInstanceRequestBody withSubdomainAllowlistEnabled(boolean subdomainAllowlistEnabled) { + Utils.checkNotNull(subdomainAllowlistEnabled, "subdomainAllowlistEnabled"); + this.subdomainAllowlistEnabled = JsonNullable.of(subdomainAllowlistEnabled); + return this; + } + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only. + */ + public UpdateInstanceRequestBody withSubdomainAllowlistEnabled(JsonNullable subdomainAllowlistEnabled) { + Utils.checkNotNull(subdomainAllowlistEnabled, "subdomainAllowlistEnabled"); + this.subdomainAllowlistEnabled = subdomainAllowlistEnabled; + return this; + } + /** * Whether the instance should operate in cookieless development mode (i.e. without third-party * cookies). @@ -405,6 +525,8 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.clerkJsVersion, other.clerkJsVersion) && Utils.enhancedDeepEquals(this.developmentOrigin, other.developmentOrigin) && Utils.enhancedDeepEquals(this.allowedOrigins, other.allowedOrigins) && + Utils.enhancedDeepEquals(this.allowedSubdomains, other.allowedSubdomains) && + Utils.enhancedDeepEquals(this.subdomainAllowlistEnabled, other.subdomainAllowlistEnabled) && Utils.enhancedDeepEquals(this.cookielessDev, other.cookielessDev) && Utils.enhancedDeepEquals(this.urlBasedSessionSyncing, other.urlBasedSessionSyncing) && Utils.enhancedDeepEquals(this.preferredSignInStrategyWhenPasswordRequired, other.preferredSignInStrategyWhenPasswordRequired); @@ -415,7 +537,8 @@ public int hashCode() { return Utils.enhancedHash( testMode, hibp, supportEmail, clerkJsVersion, developmentOrigin, allowedOrigins, - cookielessDev, urlBasedSessionSyncing, preferredSignInStrategyWhenPasswordRequired); + allowedSubdomains, subdomainAllowlistEnabled, cookielessDev, + urlBasedSessionSyncing, preferredSignInStrategyWhenPasswordRequired); } @Override @@ -427,6 +550,8 @@ public String toString() { "clerkJsVersion", clerkJsVersion, "developmentOrigin", developmentOrigin, "allowedOrigins", allowedOrigins, + "allowedSubdomains", allowedSubdomains, + "subdomainAllowlistEnabled", subdomainAllowlistEnabled, "cookielessDev", cookielessDev, "urlBasedSessionSyncing", urlBasedSessionSyncing, "preferredSignInStrategyWhenPasswordRequired", preferredSignInStrategyWhenPasswordRequired); @@ -445,7 +570,11 @@ public final static class Builder { private JsonNullable developmentOrigin = JsonNullable.undefined(); - private Optional> allowedOrigins = Optional.empty(); + private JsonNullable> allowedOrigins = JsonNullable.undefined(); + + private JsonNullable> allowedSubdomains = JsonNullable.undefined(); + + private JsonNullable subdomainAllowlistEnabled = JsonNullable.undefined(); @Deprecated private JsonNullable cookielessDev = JsonNullable.undefined(); @@ -545,10 +674,11 @@ public Builder developmentOrigin(JsonNullable developmentOrigin) { * is chrome-extension://extension_uuid. For Electron apps the default origin is http://localhost:3000. * *

For Capacitor, the origin is capacitor://localhost. + * Send an empty array to remove all allowed origins. A null value leaves the current list unchanged. */ public Builder allowedOrigins(List allowedOrigins) { Utils.checkNotNull(allowedOrigins, "allowedOrigins"); - this.allowedOrigins = Optional.ofNullable(allowedOrigins); + this.allowedOrigins = JsonNullable.of(allowedOrigins); return this; } @@ -559,14 +689,75 @@ public Builder allowedOrigins(List allowedOrigins) { * is chrome-extension://extension_uuid. For Electron apps the default origin is http://localhost:3000. * *

For Capacitor, the origin is capacitor://localhost. + * Send an empty array to remove all allowed origins. A null value leaves the current list unchanged. */ - public Builder allowedOrigins(Optional> allowedOrigins) { + public Builder allowedOrigins(JsonNullable> allowedOrigins) { Utils.checkNotNull(allowedOrigins, "allowedOrigins"); this.allowedOrigins = allowedOrigins; return this; } + /** + * Subdomains of the instance's own domains that may originate requests while + * `subdomain_allowlist_enabled` is true. Each entry is either an exact host (`app.example.com`) or a + * wildcard anchored on a host beneath one of the instance's domains (`*.preview.example.com`), which + * covers every host under that anchor but not the anchor itself. + * Entries are stored folded to lower case with any trailing dot removed, the form the origin check + * compares against, so entries differing only in those respects are one entry. Entries already stored + * are not validated again, so a list read back from the instance can always be written again + * unchanged. Send an empty array to remove all entries. + * + *

A null value leaves the current list unchanged. Production instances only. + */ + public Builder allowedSubdomains(List allowedSubdomains) { + Utils.checkNotNull(allowedSubdomains, "allowedSubdomains"); + this.allowedSubdomains = JsonNullable.of(allowedSubdomains); + return this; + } + + /** + * Subdomains of the instance's own domains that may originate requests while + * `subdomain_allowlist_enabled` is true. Each entry is either an exact host (`app.example.com`) or a + * wildcard anchored on a host beneath one of the instance's domains (`*.preview.example.com`), which + * covers every host under that anchor but not the anchor itself. + * Entries are stored folded to lower case with any trailing dot removed, the form the origin check + * compares against, so entries differing only in those respects are one entry. Entries already stored + * are not validated again, so a list read back from the instance can always be written again + * unchanged. Send an empty array to remove all entries. + * + *

A null value leaves the current list unchanged. Production instances only. + */ + public Builder allowedSubdomains(JsonNullable> allowedSubdomains) { + Utils.checkNotNull(allowedSubdomains, "allowedSubdomains"); + this.allowedSubdomains = allowedSubdomains; + return this; + } + + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only. + */ + public Builder subdomainAllowlistEnabled(boolean subdomainAllowlistEnabled) { + Utils.checkNotNull(subdomainAllowlistEnabled, "subdomainAllowlistEnabled"); + this.subdomainAllowlistEnabled = JsonNullable.of(subdomainAllowlistEnabled); + return this; + } + + /** + * Whether requests from subdomains of the instance's own domains are restricted to + * `allowed_subdomains`. When false, every subdomain of the instance's domain is accepted. Production + * instances only. + */ + public Builder subdomainAllowlistEnabled(JsonNullable subdomainAllowlistEnabled) { + Utils.checkNotNull(subdomainAllowlistEnabled, "subdomainAllowlistEnabled"); + this.subdomainAllowlistEnabled = subdomainAllowlistEnabled; + return this; + } + + /** * Whether the instance should operate in cookieless development mode (i.e. without third-party * cookies). @@ -646,7 +837,8 @@ public UpdateInstanceRequestBody build() { return new UpdateInstanceRequestBody( testMode, hibp, supportEmail, clerkJsVersion, developmentOrigin, allowedOrigins, - cookielessDev, urlBasedSessionSyncing, preferredSignInStrategyWhenPasswordRequired); + allowedSubdomains, subdomainAllowlistEnabled, cookielessDev, + urlBasedSessionSyncing, preferredSignInStrategyWhenPasswordRequired); } } diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateOAuthApplicationRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateOAuthApplicationRequestBody.java index 33e8f252..0fbdfda1 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateOAuthApplicationRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateOAuthApplicationRequestBody.java @@ -3,14 +3,12 @@ */ package com.clerk.backend_api.models.operations; -import com.clerk.backend_api.utils.LazySingletonValue; import com.clerk.backend_api.utils.Utils; 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.fasterxml.jackson.core.type.TypeReference; import java.lang.Boolean; import java.lang.Deprecated; import java.lang.Override; @@ -47,9 +45,11 @@ public class UpdateOAuthApplicationRequestBody { private JsonNullable callbackUrl; /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Replace the application's complete built-in and custom scope ceiling. Provide scope keys as a + * space-delimited string. Custom keys must exist in the instance OAuth scope catalog. + * + *

Required built-in scopes, such as `offline_access`, must be included in the replacement set, + * otherwise the request is rejected. Omit this field to leave all scope assignments unchanged. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("scopes") @@ -70,6 +70,15 @@ public class UpdateOAuthApplicationRequestBody { @JsonProperty("pkce_required") private JsonNullable pkceRequired; + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. Omit this field to leave + * the setting unchanged. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("device_authorization_grant_enabled") + private JsonNullable deviceAuthorizationGrantEnabled; + /** * If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. */ @@ -85,6 +94,7 @@ public UpdateOAuthApplicationRequestBody( @JsonProperty("scopes") JsonNullable scopes, @JsonProperty("consent_screen_enabled") JsonNullable consentScreenEnabled, @JsonProperty("pkce_required") JsonNullable pkceRequired, + @JsonProperty("device_authorization_grant_enabled") JsonNullable deviceAuthorizationGrantEnabled, @JsonProperty("public") JsonNullable public_) { Utils.checkNotNull(name, "name"); Utils.checkNotNull(redirectUris, "redirectUris"); @@ -92,6 +102,7 @@ public UpdateOAuthApplicationRequestBody( Utils.checkNotNull(scopes, "scopes"); Utils.checkNotNull(consentScreenEnabled, "consentScreenEnabled"); Utils.checkNotNull(pkceRequired, "pkceRequired"); + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); Utils.checkNotNull(public_, "public_"); this.name = name; this.redirectUris = redirectUris; @@ -99,13 +110,14 @@ public UpdateOAuthApplicationRequestBody( this.scopes = scopes; this.consentScreenEnabled = consentScreenEnabled; this.pkceRequired = pkceRequired; + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; this.public_ = public_; } public UpdateOAuthApplicationRequestBody() { this(JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), - JsonNullable.undefined()); + JsonNullable.undefined(), JsonNullable.undefined()); } /** @@ -138,9 +150,11 @@ public JsonNullable callbackUrl() { } /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Replace the application's complete built-in and custom scope ceiling. Provide scope keys as a + * space-delimited string. Custom keys must exist in the instance OAuth scope catalog. + * + *

Required built-in scopes, such as `offline_access`, must be included in the replacement set, + * otherwise the request is rejected. Omit this field to leave all scope assignments unchanged. */ @JsonIgnore public JsonNullable scopes() { @@ -164,6 +178,16 @@ public JsonNullable pkceRequired() { return pkceRequired; } + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. Omit this field to leave + * the setting unchanged. + */ + @JsonIgnore + public JsonNullable deviceAuthorizationGrantEnabled() { + return deviceAuthorizationGrantEnabled; + } + /** * If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. */ @@ -240,9 +264,11 @@ public UpdateOAuthApplicationRequestBody withCallbackUrl(JsonNullable ca } /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Replace the application's complete built-in and custom scope ceiling. Provide scope keys as a + * space-delimited string. Custom keys must exist in the instance OAuth scope catalog. + * + *

Required built-in scopes, such as `offline_access`, must be included in the replacement set, + * otherwise the request is rejected. Omit this field to leave all scope assignments unchanged. */ public UpdateOAuthApplicationRequestBody withScopes(String scopes) { Utils.checkNotNull(scopes, "scopes"); @@ -251,9 +277,11 @@ public UpdateOAuthApplicationRequestBody withScopes(String scopes) { } /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Replace the application's complete built-in and custom scope ceiling. Provide scope keys as a + * space-delimited string. Custom keys must exist in the instance OAuth scope catalog. + * + *

Required built-in scopes, such as `offline_access`, must be included in the replacement set, + * otherwise the request is rejected. Omit this field to leave all scope assignments unchanged. */ public UpdateOAuthApplicationRequestBody withScopes(JsonNullable scopes) { Utils.checkNotNull(scopes, "scopes"); @@ -299,6 +327,28 @@ public UpdateOAuthApplicationRequestBody withPkceRequired(JsonNullable return this; } + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. Omit this field to leave + * the setting unchanged. + */ + public UpdateOAuthApplicationRequestBody withDeviceAuthorizationGrantEnabled(boolean deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = JsonNullable.of(deviceAuthorizationGrantEnabled); + return this; + } + + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. Omit this field to leave + * the setting unchanged. + */ + public UpdateOAuthApplicationRequestBody withDeviceAuthorizationGrantEnabled(JsonNullable deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; + return this; + } + /** * If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. */ @@ -333,6 +383,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.scopes, other.scopes) && Utils.enhancedDeepEquals(this.consentScreenEnabled, other.consentScreenEnabled) && Utils.enhancedDeepEquals(this.pkceRequired, other.pkceRequired) && + Utils.enhancedDeepEquals(this.deviceAuthorizationGrantEnabled, other.deviceAuthorizationGrantEnabled) && Utils.enhancedDeepEquals(this.public_, other.public_); } @@ -341,7 +392,7 @@ public int hashCode() { return Utils.enhancedHash( name, redirectUris, callbackUrl, scopes, consentScreenEnabled, pkceRequired, - public_); + deviceAuthorizationGrantEnabled, public_); } @Override @@ -353,6 +404,7 @@ public String toString() { "scopes", scopes, "consentScreenEnabled", consentScreenEnabled, "pkceRequired", pkceRequired, + "deviceAuthorizationGrantEnabled", deviceAuthorizationGrantEnabled, "public_", public_); } @@ -366,12 +418,14 @@ public final static class Builder { @Deprecated private JsonNullable callbackUrl = JsonNullable.undefined(); - private JsonNullable scopes; + private JsonNullable scopes = JsonNullable.undefined(); private JsonNullable consentScreenEnabled = JsonNullable.undefined(); private JsonNullable pkceRequired = JsonNullable.undefined(); + private JsonNullable deviceAuthorizationGrantEnabled = JsonNullable.undefined(); + private JsonNullable public_ = JsonNullable.undefined(); private Builder() { @@ -445,9 +499,11 @@ public Builder callbackUrl(JsonNullable callbackUrl) { /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Replace the application's complete built-in and custom scope ceiling. Provide scope keys as a + * space-delimited string. Custom keys must exist in the instance OAuth scope catalog. + * + *

Required built-in scopes, such as `offline_access`, must be included in the replacement set, + * otherwise the request is rejected. Omit this field to leave all scope assignments unchanged. */ public Builder scopes(String scopes) { Utils.checkNotNull(scopes, "scopes"); @@ -456,9 +512,11 @@ public Builder scopes(String scopes) { } /** - * Define the allowed scopes for the new OAuth applications that dictate the user payload of the OAuth - * user info endpoint. Available scopes are `profile`, `email`, `public_metadata`, `private_metadata`. - * Provide the requested scopes as a string, separated by spaces. + * Replace the application's complete built-in and custom scope ceiling. Provide scope keys as a + * space-delimited string. Custom keys must exist in the instance OAuth scope catalog. + * + *

Required built-in scopes, such as `offline_access`, must be included in the replacement set, + * otherwise the request is rejected. Omit this field to leave all scope assignments unchanged. */ public Builder scopes(JsonNullable scopes) { Utils.checkNotNull(scopes, "scopes"); @@ -507,6 +565,29 @@ public Builder pkceRequired(JsonNullable pkceRequired) { } + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. Omit this field to leave + * the setting unchanged. + */ + public Builder deviceAuthorizationGrantEnabled(boolean deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = JsonNullable.of(deviceAuthorizationGrantEnabled); + return this; + } + + /** + * True to enable the OAuth Device Authorization Grant for this application. Enabling requires the + * OAuth Device Authorization Grant feature to be enabled for the instance. Omit this field to leave + * the setting unchanged. + */ + public Builder deviceAuthorizationGrantEnabled(JsonNullable deviceAuthorizationGrantEnabled) { + Utils.checkNotNull(deviceAuthorizationGrantEnabled, "deviceAuthorizationGrantEnabled"); + this.deviceAuthorizationGrantEnabled = deviceAuthorizationGrantEnabled; + return this; + } + + /** * If true, this client is public and you can use the Proof Key of Code Exchange (PKCE) flow. */ @@ -526,21 +607,12 @@ public Builder public_(JsonNullable public_) { } public UpdateOAuthApplicationRequestBody build() { - if (scopes == null) { - scopes = _SINGLETON_VALUE_Scopes.value(); - } return new UpdateOAuthApplicationRequestBody( name, redirectUris, callbackUrl, scopes, consentScreenEnabled, pkceRequired, - public_); + deviceAuthorizationGrantEnabled, public_); } - - private static final LazySingletonValue> _SINGLETON_VALUE_Scopes = - new LazySingletonValue<>( - "scopes", - "\"profile email\"", - new TypeReference>() {}); } } diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateOrganizationRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateOrganizationRequestBody.java index 90776f76..b15d4c89 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateOrganizationRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateOrganizationRequestBody.java @@ -47,6 +47,14 @@ public class UpdateOrganizationRequestBody { @JsonProperty("admin_delete_enabled") private JsonNullable adminDeleteEnabled; + /** + * Whether this organization can configure self-serve enterprise SSO. + * Requires the instance to have the self-serve SSO entitlement enabled. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("self_serve_sso_enabled") + private JsonNullable selfServeSsoEnabled; + /** * A custom date/time denoting _when_ the organization was created, specified in RFC3339 format (e.g. * `2012-10-20T07:15:20.902Z`). @@ -69,25 +77,29 @@ public UpdateOrganizationRequestBody( @JsonProperty("slug") JsonNullable slug, @JsonProperty("max_allowed_memberships") JsonNullable maxAllowedMemberships, @JsonProperty("admin_delete_enabled") JsonNullable adminDeleteEnabled, + @JsonProperty("self_serve_sso_enabled") JsonNullable selfServeSsoEnabled, @JsonProperty("created_at") JsonNullable createdAt, @JsonProperty("role_set_key") JsonNullable roleSetKey) { Utils.checkNotNull(name, "name"); Utils.checkNotNull(slug, "slug"); Utils.checkNotNull(maxAllowedMemberships, "maxAllowedMemberships"); Utils.checkNotNull(adminDeleteEnabled, "adminDeleteEnabled"); + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); Utils.checkNotNull(createdAt, "createdAt"); Utils.checkNotNull(roleSetKey, "roleSetKey"); this.name = name; this.slug = slug; this.maxAllowedMemberships = maxAllowedMemberships; this.adminDeleteEnabled = adminDeleteEnabled; + this.selfServeSsoEnabled = selfServeSsoEnabled; this.createdAt = createdAt; this.roleSetKey = roleSetKey; } public UpdateOrganizationRequestBody() { this(JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), - JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined()); + JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), + JsonNullable.undefined()); } /** @@ -124,6 +136,15 @@ public JsonNullable adminDeleteEnabled() { return adminDeleteEnabled; } + /** + * Whether this organization can configure self-serve enterprise SSO. + * Requires the instance to have the self-serve SSO entitlement enabled. + */ + @JsonIgnore + public JsonNullable selfServeSsoEnabled() { + return selfServeSsoEnabled; + } + /** * A custom date/time denoting _when_ the organization was created, specified in RFC3339 format (e.g. * `2012-10-20T07:15:20.902Z`). @@ -223,6 +244,26 @@ public UpdateOrganizationRequestBody withAdminDeleteEnabled(JsonNullable selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = selfServeSsoEnabled; + return this; + } + /** * A custom date/time denoting _when_ the organization was created, specified in RFC3339 format (e.g. * `2012-10-20T07:15:20.902Z`). @@ -277,6 +318,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.slug, other.slug) && Utils.enhancedDeepEquals(this.maxAllowedMemberships, other.maxAllowedMemberships) && Utils.enhancedDeepEquals(this.adminDeleteEnabled, other.adminDeleteEnabled) && + Utils.enhancedDeepEquals(this.selfServeSsoEnabled, other.selfServeSsoEnabled) && Utils.enhancedDeepEquals(this.createdAt, other.createdAt) && Utils.enhancedDeepEquals(this.roleSetKey, other.roleSetKey); } @@ -285,7 +327,8 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Utils.enhancedHash( name, slug, maxAllowedMemberships, - adminDeleteEnabled, createdAt, roleSetKey); + adminDeleteEnabled, selfServeSsoEnabled, createdAt, + roleSetKey); } @Override @@ -295,6 +338,7 @@ public String toString() { "slug", slug, "maxAllowedMemberships", maxAllowedMemberships, "adminDeleteEnabled", adminDeleteEnabled, + "selfServeSsoEnabled", selfServeSsoEnabled, "createdAt", createdAt, "roleSetKey", roleSetKey); } @@ -310,6 +354,8 @@ public final static class Builder { private JsonNullable adminDeleteEnabled = JsonNullable.undefined(); + private JsonNullable selfServeSsoEnabled = JsonNullable.undefined(); + private JsonNullable createdAt = JsonNullable.undefined(); private JsonNullable roleSetKey = JsonNullable.undefined(); @@ -399,6 +445,27 @@ public Builder adminDeleteEnabled(JsonNullable adminDeleteEnabled) { } + /** + * Whether this organization can configure self-serve enterprise SSO. + * Requires the instance to have the self-serve SSO entitlement enabled. + */ + public Builder selfServeSsoEnabled(boolean selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = JsonNullable.of(selfServeSsoEnabled); + return this; + } + + /** + * Whether this organization can configure self-serve enterprise SSO. + * Requires the instance to have the self-serve SSO entitlement enabled. + */ + public Builder selfServeSsoEnabled(JsonNullable selfServeSsoEnabled) { + Utils.checkNotNull(selfServeSsoEnabled, "selfServeSsoEnabled"); + this.selfServeSsoEnabled = selfServeSsoEnabled; + return this; + } + + /** * A custom date/time denoting _when_ the organization was created, specified in RFC3339 format (e.g. * `2012-10-20T07:15:20.902Z`). @@ -444,7 +511,8 @@ public UpdateOrganizationRequestBody build() { return new UpdateOrganizationRequestBody( name, slug, maxAllowedMemberships, - adminDeleteEnabled, createdAt, roleSetKey); + adminDeleteEnabled, selfServeSsoEnabled, createdAt, + roleSetKey); } } diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequest.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequest.java index a044062b..398864c4 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequest.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequest.java @@ -15,7 +15,7 @@ public class UpdateSCIMDirectoryRequest { /** - * The ID of the SCIM directory to update + * The ID of the directory to update */ @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=scim_directory_id") private String scimDirectoryId; @@ -40,7 +40,7 @@ public UpdateSCIMDirectoryRequest( } /** - * The ID of the SCIM directory to update + * The ID of the directory to update */ @JsonIgnore public String scimDirectoryId() { @@ -59,7 +59,7 @@ public static Builder builder() { /** - * The ID of the SCIM directory to update + * The ID of the directory to update */ public UpdateSCIMDirectoryRequest withScimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); @@ -120,7 +120,7 @@ private Builder() { /** - * The ID of the SCIM directory to update + * The ID of the directory to update */ public Builder scimDirectoryId(String scimDirectoryId) { Utils.checkNotNull(scimDirectoryId, "scimDirectoryId"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequestBody.java index 431e3243..6845ccca 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryRequestBody.java @@ -19,21 +19,21 @@ public class UpdateSCIMDirectoryRequestBody { /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("name") private Optional name; /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("enabled") private Optional enabled; /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("provider") @@ -48,7 +48,7 @@ public class UpdateSCIMDirectoryRequestBody { private Optional> attributeMapping; /** - * Whether group-to-role mapping is enabled for this SCIM directory. + * Whether group-to-role mapping is enabled for this directory. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("group_role_mapping_enabled") @@ -79,7 +79,7 @@ public UpdateSCIMDirectoryRequestBody() { } /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ @JsonIgnore public Optional name() { @@ -87,7 +87,7 @@ public Optional name() { } /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ @JsonIgnore public Optional enabled() { @@ -95,7 +95,7 @@ public Optional enabled() { } /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ @JsonIgnore public Optional provider() { @@ -113,7 +113,7 @@ public Optional> attributeMapping() { } /** - * Whether group-to-role mapping is enabled for this SCIM directory. + * Whether group-to-role mapping is enabled for this directory. */ @JsonIgnore public Optional groupRoleMappingEnabled() { @@ -126,7 +126,7 @@ public static Builder builder() { /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public UpdateSCIMDirectoryRequestBody withName(String name) { Utils.checkNotNull(name, "name"); @@ -136,7 +136,7 @@ public UpdateSCIMDirectoryRequestBody withName(String name) { /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public UpdateSCIMDirectoryRequestBody withName(Optional name) { Utils.checkNotNull(name, "name"); @@ -145,7 +145,7 @@ public UpdateSCIMDirectoryRequestBody withName(Optional name) { } /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ public UpdateSCIMDirectoryRequestBody withEnabled(boolean enabled) { Utils.checkNotNull(enabled, "enabled"); @@ -155,7 +155,7 @@ public UpdateSCIMDirectoryRequestBody withEnabled(boolean enabled) { /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ public UpdateSCIMDirectoryRequestBody withEnabled(Optional enabled) { Utils.checkNotNull(enabled, "enabled"); @@ -164,7 +164,7 @@ public UpdateSCIMDirectoryRequestBody withEnabled(Optional enabled) { } /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ public UpdateSCIMDirectoryRequestBody withProvider(String provider) { Utils.checkNotNull(provider, "provider"); @@ -174,7 +174,7 @@ public UpdateSCIMDirectoryRequestBody withProvider(String provider) { /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ public UpdateSCIMDirectoryRequestBody withProvider(Optional provider) { Utils.checkNotNull(provider, "provider"); @@ -204,7 +204,7 @@ public UpdateSCIMDirectoryRequestBody withAttributeMapping(Optional groupRoleMappingEnabled) { Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); @@ -275,7 +275,7 @@ private Builder() { /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public Builder name(String name) { Utils.checkNotNull(name, "name"); @@ -284,7 +284,7 @@ public Builder name(String name) { } /** - * A human-friendly name for the SCIM directory. + * A human-friendly name for the directory. */ public Builder name(Optional name) { Utils.checkNotNull(name, "name"); @@ -294,7 +294,7 @@ public Builder name(Optional name) { /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ public Builder enabled(boolean enabled) { Utils.checkNotNull(enabled, "enabled"); @@ -303,7 +303,7 @@ public Builder enabled(boolean enabled) { } /** - * Whether the SCIM directory is enabled. + * Whether the directory is enabled. */ public Builder enabled(Optional enabled) { Utils.checkNotNull(enabled, "enabled"); @@ -313,7 +313,7 @@ public Builder enabled(Optional enabled) { /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ public Builder provider(String provider) { Utils.checkNotNull(provider, "provider"); @@ -322,7 +322,7 @@ public Builder provider(String provider) { } /** - * The identity provider for this SCIM directory. + * The identity provider for this directory. */ public Builder provider(Optional provider) { Utils.checkNotNull(provider, "provider"); @@ -353,7 +353,7 @@ public Builder attributeMapping(Optional> attribut /** - * Whether group-to-role mapping is enabled for this SCIM directory. + * Whether group-to-role mapping is enabled for this directory. */ public Builder groupRoleMappingEnabled(boolean groupRoleMappingEnabled) { Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); @@ -362,7 +362,7 @@ public Builder groupRoleMappingEnabled(boolean groupRoleMappingEnabled) { } /** - * Whether group-to-role mapping is enabled for this SCIM directory. + * Whether group-to-role mapping is enabled for this directory. */ public Builder groupRoleMappingEnabled(Optional groupRoleMappingEnabled) { Utils.checkNotNull(groupRoleMappingEnabled, "groupRoleMappingEnabled"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryResponse.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryResponse.java index 34fe6ab5..a6b12286 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryResponse.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateSCIMDirectoryResponse.java @@ -34,7 +34,7 @@ public class UpdateSCIMDirectoryResponse implements Response { private HttpResponse rawResponse; /** - * A SCIM directory + * A directory */ private Optional scimDirectory; @@ -87,7 +87,7 @@ public HttpResponse rawResponse() { } /** - * A SCIM directory + * A directory */ @SuppressWarnings("unchecked") @JsonIgnore @@ -128,7 +128,7 @@ public UpdateSCIMDirectoryResponse withRawResponse(HttpResponse raw } /** - * A SCIM directory + * A directory */ public UpdateSCIMDirectoryResponse withSCIMDirectory(SCIMDirectory scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -138,7 +138,7 @@ public UpdateSCIMDirectoryResponse withSCIMDirectory(SCIMDirectory scimDirectory /** - * A SCIM directory + * A directory */ public UpdateSCIMDirectoryResponse withSCIMDirectory(Optional scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -225,7 +225,7 @@ public Builder rawResponse(HttpResponse rawResponse) { /** - * A SCIM directory + * A directory */ public Builder scimDirectory(SCIMDirectory scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); @@ -234,7 +234,7 @@ public Builder scimDirectory(SCIMDirectory scimDirectory) { } /** - * A SCIM directory + * A directory */ public Builder scimDirectory(Optional scimDirectory) { Utils.checkNotNull(scimDirectory, "scimDirectory"); diff --git a/src/main/java/com/clerk/backend_api/models/operations/UpdateUserRequestBody.java b/src/main/java/com/clerk/backend_api/models/operations/UpdateUserRequestBody.java index d73cbd93..8564df2c 100644 --- a/src/main/java/com/clerk/backend_api/models/operations/UpdateUserRequestBody.java +++ b/src/main/java/com/clerk/backend_api/models/operations/UpdateUserRequestBody.java @@ -215,7 +215,7 @@ public class UpdateUserRequestBody { private JsonNullable createdAt; /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("bypass_client_trust") @@ -525,7 +525,7 @@ public JsonNullable createdAt() { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ @JsonIgnore public JsonNullable bypassClientTrust() { @@ -1017,7 +1017,7 @@ public UpdateUserRequestBody withCreatedAt(JsonNullable createdAt) { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public UpdateUserRequestBody withBypassClientTrust(boolean bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -1026,7 +1026,7 @@ public UpdateUserRequestBody withBypassClientTrust(boolean bypassClientTrust) { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public UpdateUserRequestBody withBypassClientTrust(JsonNullable bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -1668,7 +1668,7 @@ public Builder createdAt(JsonNullable createdAt) { /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public Builder bypassClientTrust(boolean bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); @@ -1677,7 +1677,7 @@ public Builder bypassClientTrust(boolean bypassClientTrust) { } /** - * When set to `true`, the user will bypass client trust checks during sign-in. + * When set to `true`, the user will bypass Device Trust checks during sign-in. */ public Builder bypassClientTrust(JsonNullable bypassClientTrust) { Utils.checkNotNull(bypassClientTrust, "bypassClientTrust"); diff --git a/src/main/java/com/clerk/backend_api/operations/ApplyBillingSubscriptionItemDiscount.java b/src/main/java/com/clerk/backend_api/operations/ApplyBillingSubscriptionItemDiscount.java new file mode 100644 index 00000000..db2ecd07 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/ApplyBillingSubscriptionItemDiscount.java @@ -0,0 +1,237 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.CommerceDiscountRedemptionResponse; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.ApplyBillingSubscriptionItemDiscountRequest; +import com.clerk.backend_api.models.operations.ApplyBillingSubscriptionItemDiscountResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.SerializedBody; +import com.clerk.backend_api.utils.Utils.JsonShape; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.IllegalArgumentException; +import java.lang.Object; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class ApplyBillingSubscriptionItemDiscount { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ApplyBillingSubscriptionItemDiscount", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ApplyBillingSubscriptionItemDiscount", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ApplyBillingSubscriptionItemDiscount", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass, TypeReference typeReference) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/billing/subscription_items/{subscription_item_id}/discounts", + request, null); + HTTPRequest req = new HTTPRequest(url, "POST"); + Object convertedRequest = Utils.convertToShape( + request, + JsonShape.DEFAULT, + typeReference); + SerializedBody serializedRequestBody = Utils.serializeRequestBody( + convertedRequest, + "applyCommerceDiscountRequest", + "json", + false); + if (serializedRequestBody == null) { + throw new IllegalArgumentException("Request body is required"); + } + req.setBody(Optional.ofNullable(serializedRequestBody)); + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(ApplyBillingSubscriptionItemDiscountRequest request) throws Exception { + HttpRequest req = buildRequest(request, ApplyBillingSubscriptionItemDiscountRequest.class, new TypeReference() {}); + 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(ApplyBillingSubscriptionItemDiscountRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public ApplyBillingSubscriptionItemDiscountResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + ApplyBillingSubscriptionItemDiscountResponse.Builder resBuilder = + ApplyBillingSubscriptionItemDiscountResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + ApplyBillingSubscriptionItemDiscountResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withCommerceDiscountRedemptionResponse(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "400", "401", "403", "404", "409", "422")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "500")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/CreateActorToken.java b/src/main/java/com/clerk/backend_api/operations/CreateActorToken.java index dba8801b..a84696b0 100644 --- a/src/main/java/com/clerk/backend_api/operations/CreateActorToken.java +++ b/src/main/java/com/clerk/backend_api/operations/CreateActorToken.java @@ -203,7 +203,7 @@ public CreateActorTokenResponse handleResponse(HttpResponse respons throw SDKError.from("Unexpected content-type received: " + contentType, response); } } - if (Utils.statusCodeMatches(response.statusCode(), "400", "402", "422")) { + if (Utils.statusCodeMatches(response.statusCode(), "400", "402", "403", "422")) { if (Utils.contentTypeMatches(contentType, "application/json")) { throw ClerkErrors.from(response); } else { diff --git a/src/main/java/com/clerk/backend_api/operations/CreateDirectory.java b/src/main/java/com/clerk/backend_api/operations/CreateDirectory.java new file mode 100644 index 00000000..fbf1b6a1 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/CreateDirectory.java @@ -0,0 +1,224 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.Directory; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.CreateDirectoryRequestBody; +import com.clerk.backend_api.models.operations.CreateDirectoryResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.SerializedBody; +import com.clerk.backend_api.utils.Utils.JsonShape; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.Object; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class CreateDirectory { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "CreateDirectory", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "CreateDirectory", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "CreateDirectory", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, TypeReference typeReference) throws Exception { + String url = Utils.generateURL( + this.baseUrl, + "/directories"); + HTTPRequest req = new HTTPRequest(url, "POST"); + Object convertedRequest = Utils.convertToShape( + request, + JsonShape.DEFAULT, + typeReference); + SerializedBody serializedRequestBody = Utils.serializeRequestBody( + convertedRequest, + "", + "json", + false); + req.setBody(Optional.ofNullable(serializedRequestBody)); + 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, CreateDirectoryResponse> { + public Sync( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(Optional request) throws Exception { + HttpRequest req = buildRequest(request, new TypeReference>() {}); + 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(Optional request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public CreateDirectoryResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + CreateDirectoryResponse.Builder resBuilder = + CreateDirectoryResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + CreateDirectoryResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDirectory(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "400", "401", "403", "422")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/CreateDirectoryGroupRoleMapping.java b/src/main/java/com/clerk/backend_api/operations/CreateDirectoryGroupRoleMapping.java new file mode 100644 index 00000000..b7278d41 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/CreateDirectoryGroupRoleMapping.java @@ -0,0 +1,230 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.DirectoryGroupRoleMapping; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.CreateDirectoryGroupRoleMappingRequest; +import com.clerk.backend_api.models.operations.CreateDirectoryGroupRoleMappingResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.SerializedBody; +import com.clerk.backend_api.utils.Utils.JsonShape; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.IllegalArgumentException; +import java.lang.Object; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class CreateDirectoryGroupRoleMapping { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "CreateDirectoryGroupRoleMapping", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "CreateDirectoryGroupRoleMapping", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "CreateDirectoryGroupRoleMapping", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass, TypeReference typeReference) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/directories/{directory_id}/group_role_mappings", + request, null); + HTTPRequest req = new HTTPRequest(url, "POST"); + Object convertedRequest = Utils.convertToShape( + request, + JsonShape.DEFAULT, + typeReference); + SerializedBody serializedRequestBody = Utils.serializeRequestBody( + convertedRequest, + "requestBody", + "json", + false); + if (serializedRequestBody == null) { + throw new IllegalArgumentException("Request body is required"); + } + req.setBody(Optional.ofNullable(serializedRequestBody)); + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(CreateDirectoryGroupRoleMappingRequest request) throws Exception { + HttpRequest req = buildRequest(request, CreateDirectoryGroupRoleMappingRequest.class, new TypeReference() {}); + 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(CreateDirectoryGroupRoleMappingRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public CreateDirectoryGroupRoleMappingResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + CreateDirectoryGroupRoleMappingResponse.Builder resBuilder = + CreateDirectoryGroupRoleMappingResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + CreateDirectoryGroupRoleMappingResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDirectoryGroupRoleMapping(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "400", "401", "403", "404", "422")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/DeleteDirectory.java b/src/main/java/com/clerk/backend_api/operations/DeleteDirectory.java new file mode 100644 index 00000000..8a81af24 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/DeleteDirectory.java @@ -0,0 +1,213 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.DeletedObject; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.DeleteDirectoryRequest; +import com.clerk.backend_api.models.operations.DeleteDirectoryResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class DeleteDirectory { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "DeleteDirectory", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "DeleteDirectory", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "DeleteDirectory", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/directories/{directory_id}", + request, null); + HTTPRequest req = new HTTPRequest(url, "DELETE"); + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(DeleteDirectoryRequest request) throws Exception { + HttpRequest req = buildRequest(request, DeleteDirectoryRequest.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(DeleteDirectoryRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public DeleteDirectoryResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + DeleteDirectoryResponse.Builder resBuilder = + DeleteDirectoryResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + DeleteDirectoryResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDeletedObject(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "401", "403", "404")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/DeleteDirectoryGroupRoleMapping.java b/src/main/java/com/clerk/backend_api/operations/DeleteDirectoryGroupRoleMapping.java new file mode 100644 index 00000000..e40abfd4 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/DeleteDirectoryGroupRoleMapping.java @@ -0,0 +1,213 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.DirectoryGroupRoleMappingDeleted; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.DeleteDirectoryGroupRoleMappingRequest; +import com.clerk.backend_api.models.operations.DeleteDirectoryGroupRoleMappingResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class DeleteDirectoryGroupRoleMapping { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "DeleteDirectoryGroupRoleMapping", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "DeleteDirectoryGroupRoleMapping", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "DeleteDirectoryGroupRoleMapping", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/directories/{directory_id}/group_role_mappings/{mapping_id}", + request, null); + HTTPRequest req = new HTTPRequest(url, "DELETE"); + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(DeleteDirectoryGroupRoleMappingRequest request) throws Exception { + HttpRequest req = buildRequest(request, DeleteDirectoryGroupRoleMappingRequest.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(DeleteDirectoryGroupRoleMappingRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public DeleteDirectoryGroupRoleMappingResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + DeleteDirectoryGroupRoleMappingResponse.Builder resBuilder = + DeleteDirectoryGroupRoleMappingResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + DeleteDirectoryGroupRoleMappingResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDirectoryGroupRoleMappingDeleted(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "400", "401", "403", "404")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/GetDirectory.java b/src/main/java/com/clerk/backend_api/operations/GetDirectory.java new file mode 100644 index 00000000..902ecda0 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/GetDirectory.java @@ -0,0 +1,213 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.Directory; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.GetDirectoryRequest; +import com.clerk.backend_api.models.operations.GetDirectoryResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class GetDirectory { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "GetDirectory", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "GetDirectory", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "GetDirectory", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/directories/{directory_id}", + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(GetDirectoryRequest request) throws Exception { + HttpRequest req = buildRequest(request, GetDirectoryRequest.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(GetDirectoryRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public GetDirectoryResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + GetDirectoryResponse.Builder resBuilder = + GetDirectoryResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + GetDirectoryResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDirectory(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "401", "403", "404")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/ListDirectories.java b/src/main/java/com/clerk/backend_api/operations/ListDirectories.java new file mode 100644 index 00000000..51907c56 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/ListDirectories.java @@ -0,0 +1,216 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.DirectoryList; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.ListDirectoriesRequest; +import com.clerk.backend_api.models.operations.ListDirectoriesResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class ListDirectories { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ListDirectories", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ListDirectories", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ListDirectories", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + this.baseUrl, + "/directories"); + 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))); + + req.addQueryParams(Utils.getQueryParams( + klass, + request, + null)); + Utils.configureSecurity(req, this.sdkConfiguration.securitySource().getSecurity()); + + return req.build(); + } + } + + public static class Sync extends Base + implements RequestOperation { + public Sync( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(ListDirectoriesRequest request) throws Exception { + HttpRequest req = buildRequest(request, ListDirectoriesRequest.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(ListDirectoriesRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public ListDirectoriesResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + ListDirectoriesResponse.Builder resBuilder = + ListDirectoriesResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + ListDirectoriesResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDirectoryList(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "401", "403")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/ListDirectoryGroupRoleMappings.java b/src/main/java/com/clerk/backend_api/operations/ListDirectoryGroupRoleMappings.java new file mode 100644 index 00000000..cd2d653b --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/ListDirectoryGroupRoleMappings.java @@ -0,0 +1,213 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.DirectoryGroupRoleMappingList; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.ListDirectoryGroupRoleMappingsRequest; +import com.clerk.backend_api.models.operations.ListDirectoryGroupRoleMappingsResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class ListDirectoryGroupRoleMappings { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ListDirectoryGroupRoleMappings", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ListDirectoryGroupRoleMappings", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ListDirectoryGroupRoleMappings", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/directories/{directory_id}/group_role_mappings", + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(ListDirectoryGroupRoleMappingsRequest request) throws Exception { + HttpRequest req = buildRequest(request, ListDirectoryGroupRoleMappingsRequest.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(ListDirectoryGroupRoleMappingsRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public ListDirectoryGroupRoleMappingsResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + ListDirectoryGroupRoleMappingsResponse.Builder resBuilder = + ListDirectoryGroupRoleMappingsResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + ListDirectoryGroupRoleMappingsResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDirectoryGroupRoleMappingList(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "401", "403", "404")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/ListUserBiometricCredentials.java b/src/main/java/com/clerk/backend_api/operations/ListUserBiometricCredentials.java new file mode 100644 index 00000000..078ce7cf --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/ListUserBiometricCredentials.java @@ -0,0 +1,220 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.BiometricCredentialList; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.ListUserBiometricCredentialsRequest; +import com.clerk.backend_api.models.operations.ListUserBiometricCredentialsResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class ListUserBiometricCredentials { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ListUserBiometricCredentials", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ListUserBiometricCredentials", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ListUserBiometricCredentials", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/users/{user_id}/biometric_credentials", + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(ListUserBiometricCredentialsRequest request) throws Exception { + HttpRequest req = buildRequest(request, ListUserBiometricCredentialsRequest.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(ListUserBiometricCredentialsRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public ListUserBiometricCredentialsResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + ListUserBiometricCredentialsResponse.Builder resBuilder = + ListUserBiometricCredentialsResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + ListUserBiometricCredentialsResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withBiometricCredentialList(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "403", "404")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "500")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/RemoveBillingSubscriptionItemDiscount.java b/src/main/java/com/clerk/backend_api/operations/RemoveBillingSubscriptionItemDiscount.java new file mode 100644 index 00000000..37fa1a53 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/RemoveBillingSubscriptionItemDiscount.java @@ -0,0 +1,220 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.CommerceDiscountRedemptionResponse; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.RemoveBillingSubscriptionItemDiscountRequest; +import com.clerk.backend_api.models.operations.RemoveBillingSubscriptionItemDiscountResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class RemoveBillingSubscriptionItemDiscount { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "RemoveBillingSubscriptionItemDiscount", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "RemoveBillingSubscriptionItemDiscount", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "RemoveBillingSubscriptionItemDiscount", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/billing/subscription_items/{subscription_item_id}/discounts/{discount_id}", + request, null); + HTTPRequest req = new HTTPRequest(url, "DELETE"); + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(RemoveBillingSubscriptionItemDiscountRequest request) throws Exception { + HttpRequest req = buildRequest(request, RemoveBillingSubscriptionItemDiscountRequest.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(RemoveBillingSubscriptionItemDiscountRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public RemoveBillingSubscriptionItemDiscountResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + RemoveBillingSubscriptionItemDiscountResponse.Builder resBuilder = + RemoveBillingSubscriptionItemDiscountResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + RemoveBillingSubscriptionItemDiscountResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withCommerceDiscountRedemptionResponse(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "400", "401", "403", "404", "409", "422")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "500")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/ReplaceDirectoryGroupRoleMappings.java b/src/main/java/com/clerk/backend_api/operations/ReplaceDirectoryGroupRoleMappings.java new file mode 100644 index 00000000..2b9a94c9 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/ReplaceDirectoryGroupRoleMappings.java @@ -0,0 +1,230 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.DirectoryGroupRoleMappingList; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.ReplaceDirectoryGroupRoleMappingsRequest; +import com.clerk.backend_api.models.operations.ReplaceDirectoryGroupRoleMappingsResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.SerializedBody; +import com.clerk.backend_api.utils.Utils.JsonShape; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.IllegalArgumentException; +import java.lang.Object; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class ReplaceDirectoryGroupRoleMappings { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ReplaceDirectoryGroupRoleMappings", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ReplaceDirectoryGroupRoleMappings", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "ReplaceDirectoryGroupRoleMappings", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass, TypeReference typeReference) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/directories/{directory_id}/group_role_mappings", + request, null); + HTTPRequest req = new HTTPRequest(url, "PUT"); + Object convertedRequest = Utils.convertToShape( + request, + JsonShape.DEFAULT, + typeReference); + SerializedBody serializedRequestBody = Utils.serializeRequestBody( + convertedRequest, + "requestBody", + "json", + false); + if (serializedRequestBody == null) { + throw new IllegalArgumentException("Request body is required"); + } + req.setBody(Optional.ofNullable(serializedRequestBody)); + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(ReplaceDirectoryGroupRoleMappingsRequest request) throws Exception { + HttpRequest req = buildRequest(request, ReplaceDirectoryGroupRoleMappingsRequest.class, new TypeReference() {}); + 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(ReplaceDirectoryGroupRoleMappingsRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public ReplaceDirectoryGroupRoleMappingsResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + ReplaceDirectoryGroupRoleMappingsResponse.Builder resBuilder = + ReplaceDirectoryGroupRoleMappingsResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + ReplaceDirectoryGroupRoleMappingsResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDirectoryGroupRoleMappingList(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "400", "401", "403", "404", "422")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/RevokeUserBiometricCredential.java b/src/main/java/com/clerk/backend_api/operations/RevokeUserBiometricCredential.java new file mode 100644 index 00000000..a4e89438 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/RevokeUserBiometricCredential.java @@ -0,0 +1,220 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.BiometricCredential; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.RevokeUserBiometricCredentialRequest; +import com.clerk.backend_api.models.operations.RevokeUserBiometricCredentialResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class RevokeUserBiometricCredential { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "RevokeUserBiometricCredential", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "RevokeUserBiometricCredential", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "RevokeUserBiometricCredential", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/users/{user_id}/biometric_credentials/{biometric_credential_id}", + request, null); + HTTPRequest req = new HTTPRequest(url, "DELETE"); + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(RevokeUserBiometricCredentialRequest request) throws Exception { + HttpRequest req = buildRequest(request, RevokeUserBiometricCredentialRequest.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(RevokeUserBiometricCredentialRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public RevokeUserBiometricCredentialResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + RevokeUserBiometricCredentialResponse.Builder resBuilder = + RevokeUserBiometricCredentialResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + RevokeUserBiometricCredentialResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withBiometricCredential(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "403", "404")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "500")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/RotateDirectoryAPIKey.java b/src/main/java/com/clerk/backend_api/operations/RotateDirectoryAPIKey.java new file mode 100644 index 00000000..544049f7 --- /dev/null +++ b/src/main/java/com/clerk/backend_api/operations/RotateDirectoryAPIKey.java @@ -0,0 +1,213 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.clerk.backend_api.operations; + +import static com.clerk.backend_api.operations.Operations.RequestOperation; +import static com.clerk.backend_api.utils.Retries.NonRetryableException; +import static com.clerk.backend_api.utils.Exceptions.unchecked; + +import com.clerk.backend_api.SDKConfiguration; +import com.clerk.backend_api.SecuritySource; +import com.clerk.backend_api.models.components.Directory; +import com.clerk.backend_api.models.errors.ClerkErrors; +import com.clerk.backend_api.models.errors.SDKError; +import com.clerk.backend_api.models.operations.RotateDirectoryAPIKeyRequest; +import com.clerk.backend_api.models.operations.RotateDirectoryAPIKeyResponse; +import com.clerk.backend_api.utils.BackoffStrategy; +import com.clerk.backend_api.utils.HTTPClient; +import com.clerk.backend_api.utils.HTTPRequest; +import com.clerk.backend_api.utils.Headers; +import com.clerk.backend_api.utils.Hook.AfterErrorContextImpl; +import com.clerk.backend_api.utils.Hook.AfterSuccessContextImpl; +import com.clerk.backend_api.utils.Hook.BeforeRequestContextImpl; +import com.clerk.backend_api.utils.Options; +import com.clerk.backend_api.utils.Retries; +import com.clerk.backend_api.utils.RetryConfig; +import com.clerk.backend_api.utils.Utils; +import com.fasterxml.jackson.core.type.TypeReference; +import java.io.InputStream; +import java.lang.Exception; +import java.lang.String; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + + +public class RotateDirectoryAPIKey { + + static abstract class Base { + final SDKConfiguration sdkConfiguration; + final String baseUrl; + final SecuritySource securitySource; + final List retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "RotateDirectoryAPIKey", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "RotateDirectoryAPIKey", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "RotateDirectoryAPIKey", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/directories/{directory_id}/rotate_api_key", + request, null); + HTTPRequest req = new HTTPRequest(url, "POST"); + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(RotateDirectoryAPIKeyRequest request) throws Exception { + HttpRequest req = buildRequest(request, RotateDirectoryAPIKeyRequest.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(RotateDirectoryAPIKeyRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public RotateDirectoryAPIKeyResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + RotateDirectoryAPIKeyResponse.Builder resBuilder = + RotateDirectoryAPIKeyResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + RotateDirectoryAPIKeyResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDirectory(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "401", "403", "404", "422")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +} diff --git a/src/main/java/com/clerk/backend_api/operations/RotateSCIMDirectoryAPIKey.java b/src/main/java/com/clerk/backend_api/operations/RotateSCIMDirectoryAPIKey.java index de6e06b2..e6775c84 100644 --- a/src/main/java/com/clerk/backend_api/operations/RotateSCIMDirectoryAPIKey.java +++ b/src/main/java/com/clerk/backend_api/operations/RotateSCIMDirectoryAPIKey.java @@ -192,7 +192,7 @@ public RotateSCIMDirectoryAPIKeyResponse handleResponse(HttpResponse retryStatusCodes; + final RetryConfig retryConfig; + final HTTPClient client; + final Headers _headers; + + public Base( + SDKConfiguration sdkConfiguration, Optional options, + Headers _headers) { + this.sdkConfiguration = sdkConfiguration; + this._headers =_headers; + this.baseUrl = this.sdkConfiguration.serverUrl(); + this.securitySource = this.sdkConfiguration.securitySource(); + options + .ifPresent(o -> o.validate(List.of(Options.Option.RETRY_CONFIG))); + this.retryStatusCodes = List.of("5XX"); + this.retryConfig = options + .flatMap(Options::retryConfig) + .or(sdkConfiguration::retryConfig) + .orElse(RetryConfig.builder().backoff(BackoffStrategy.builder() + .initialInterval(500, TimeUnit.MILLISECONDS) + .maxInterval(60000, TimeUnit.MILLISECONDS) + .baseFactor((double) (1.5)) + .maxElapsedTime(3600000, TimeUnit.MILLISECONDS) + .retryConnectError(true) + .build()) + .build()); + this.client = this.sdkConfiguration.client(); + } + + Optional securitySource() { + return Optional.ofNullable(this.securitySource); + } + + BeforeRequestContextImpl createBeforeRequestContext() { + return new BeforeRequestContextImpl( + this.sdkConfiguration, + this.baseUrl, + "UpdateDirectory", + java.util.Optional.empty(), + securitySource()); + } + + AfterSuccessContextImpl createAfterSuccessContext() { + return new AfterSuccessContextImpl( + this.sdkConfiguration, + this.baseUrl, + "UpdateDirectory", + java.util.Optional.empty(), + securitySource()); + } + + AfterErrorContextImpl createAfterErrorContext() { + return new AfterErrorContextImpl( + this.sdkConfiguration, + this.baseUrl, + "UpdateDirectory", + java.util.Optional.empty(), + securitySource()); + } + HttpRequest buildRequest(T request, Class klass, TypeReference typeReference) throws Exception { + String url = Utils.generateURL( + klass, + this.baseUrl, + "/directories/{directory_id}", + request, null); + HTTPRequest req = new HTTPRequest(url, "PATCH"); + Object convertedRequest = Utils.convertToShape( + request, + JsonShape.DEFAULT, + typeReference); + SerializedBody serializedRequestBody = Utils.serializeRequestBody( + convertedRequest, + "requestBody", + "json", + false); + req.setBody(Optional.ofNullable(serializedRequestBody)); + 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, Optional options, + Headers _headers) { + super( + sdkConfiguration, options, + _headers); + } + + private HttpRequest onBuildRequest(UpdateDirectoryRequest request) throws Exception { + HttpRequest req = buildRequest(request, UpdateDirectoryRequest.class, new TypeReference() {}); + 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(UpdateDirectoryRequest request) { + Retries retries = Retries.builder() + .action(() -> { + HttpRequest r; + try { + r = onBuildRequest(request); + } catch (Exception e) { + throw new NonRetryableException(e); + } + try { + HttpResponse httpRes = client.send(r); + if (Utils.statusCodeMatches(httpRes.statusCode(), "4XX", "5XX")) { + return onError(httpRes, null); + } + return httpRes; + } catch (Exception e) { + return onError(null, e); + } + }) + .retryConfig(retryConfig) + .statusCodes(retryStatusCodes) + .build(); + return unchecked(() -> onSuccess(retries.run())).get(); + } + + + @Override + public UpdateDirectoryResponse handleResponse(HttpResponse response) { + String contentType = response + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + UpdateDirectoryResponse.Builder resBuilder = + UpdateDirectoryResponse + .builder() + .contentType(contentType) + .statusCode(response.statusCode()) + .rawResponse(response); + + UpdateDirectoryResponse res = resBuilder.build(); + + if (Utils.statusCodeMatches(response.statusCode(), "200")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + return res.withDirectory(Utils.unmarshal(response, new TypeReference() {})); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "400", "401", "403", "404", "422")) { + if (Utils.contentTypeMatches(contentType, "application/json")) { + throw ClerkErrors.from(response); + } else { + throw SDKError.from("Unexpected content-type received: " + contentType, response); + } + } + if (Utils.statusCodeMatches(response.statusCode(), "4XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + if (Utils.statusCodeMatches(response.statusCode(), "5XX")) { + // no content + throw SDKError.from("API error occurred", response); + } + throw SDKError.from("Unexpected status code received: " + response.statusCode(), response); + } + } +}