diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 4e5907d0..aa1e5e13 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,24 +1,24 @@ lockVersion: 2.0.0 id: ab657d60-207e-43a4-8cc8-692a672950ed management: - docChecksum: 4a5c88917edd89070470cd4cefad49fe + docChecksum: 34e119012db77a19354d31113a54959a docVersion: 0.0.1 - speakeasyVersion: 1.796.3 - generationVersion: 2.934.1 - releaseVersion: 0.38.6 - configChecksum: 5e84744bff3da25d0c4cfd94f62273c3 + speakeasyVersion: 1.800.1 + generationVersion: 2.943.0 + releaseVersion: 0.38.7 + configChecksum: 4df7585004ec911f19e544b5d53347af repoURL: https://github.com/dubinc/dub-python.git installationURL: https://github.com/dubinc/dub-python.git published: true persistentEdits: - generation_id: c4a22726-c70b-42b7-9382-d132f4f973bb - pristine_commit_hash: 55a668757894565c7fd052f2858060cf733397a2 - pristine_tree_hash: 81fdb400ae31213a39e4aec3aae81eb98e6e39a3 + generation_id: c747c4b3-0c47-4c31-b02d-2d04ee3cae6a + pristine_commit_hash: b202ebf3665a39fa2f814b60bbe2e045e542380e + pristine_tree_hash: e0ed8fbd030a6343dbd9578303499ea5a67885fd features: python: additionalDependencies: 1.1.0 - constsAndDefaults: 1.0.7 - core: 6.1.2 + constsAndDefaults: 1.0.8 + core: 6.1.3 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 enumUnions: 0.1.1 @@ -36,9 +36,9 @@ features: nullables: 1.0.2 pagination: 3.0.10 responseFormat: 1.1.0 - retries: 3.1.1 + retries: 3.1.2 sdkHooks: 1.3.0 - unions: 3.1.9 + unions: 3.1.12 trackedFiles: .gitattributes: id: 24139dae6567 @@ -50,8 +50,8 @@ trackedFiles: pristine_git_object: 8d79f0abb72526f1fb34a4c03e5bba612c6ba2ae USAGE.md: id: 3aed33ce6e6f - last_write_checksum: sha1:28fe109f803a386effa3ed2c3e036661cbf59359 - pristine_git_object: e49aaf8025710153140d2795589fef98b27d8c3d + last_write_checksum: sha1:45e3cc34eae9f3cd7c885bac1032f899790f6331 + pristine_git_object: 6b2e1f6e085b2ddaf40c1e9a9827b143a81eed7c docs/models/components/accesslevel.md: id: 3e59708c73df last_write_checksum: sha1:4742d279db9bb6698573eb0cb185a7c0a845463c @@ -158,8 +158,8 @@ trackedFiles: pristine_git_object: 571a4e813789dfcaa38c1a64f17a9123ab6972da docs/models/components/commissioncreatedeventdata.md: id: 3354f5392594 - last_write_checksum: sha1:992895dfb11761957c81e16f6e0e7b4dc5cb3d84 - pristine_git_object: f0c5905e99c7996fca473422f3bb44e7e333ad5d + last_write_checksum: sha1:37a799bac55d27730660618ef729070a2d35d0a4 + pristine_git_object: 40fbc76e31e85762bf87f92de400f6aade5a64de docs/models/components/commissioncreatedeventevent.md: id: 4a349652cc27 last_write_checksum: sha1:8ba103f7b6c41b43e0e21662af6ceb2559a999ac @@ -388,34 +388,14 @@ trackedFiles: id: fa82d77eddf0 last_write_checksum: sha1:703fd49865d9887b2c5e9fd1bc9deb743bbda818 pristine_git_object: eb31583368fbf4e2fec2c9eebb4503851cd83732 - docs/models/components/partnerapplicationsubmittedevent.md: - id: de06fb5384d2 - last_write_checksum: sha1:944b48d8e5d29513a5797c1fa1463677cac95776 - pristine_git_object: 0f295f101a2091ed445db6727a602d2b011f0990 - docs/models/components/partnerapplicationsubmittedeventdata.md: - id: 8f13e41d3ad9 - last_write_checksum: sha1:4f038d6cbb13617ca86d7c5305470fd122b1f685 - pristine_git_object: 0e8084a18324de4501464dcdc45d6a901b5357a5 - docs/models/components/partnerapplicationsubmittedeventevent.md: - id: 363874f8b758 - last_write_checksum: sha1:e80fb453fe93f8c88fbe855985e01bb6eafdedb9 - pristine_git_object: 39860c823140f23de899d314e89d4ade46e3a6e0 - docs/models/components/partnerapplicationsubmittedeventpartner.md: - id: cc972aaffc1c - last_write_checksum: sha1:b59ca3c778ea25f87101e2deb886d2b517281f90 - pristine_git_object: a00506c1725dfba9f9e81f058c6fd67f42ee0dd1 - docs/models/components/partnerapplicationsubmittedeventstatus.md: - id: 297c8f370d07 - last_write_checksum: sha1:b3eda53627f31ac50132b5c8642d5a1bbd168388 - pristine_git_object: 0272e23c42f571149373eac48119728684701d5a docs/models/components/partnerenrolledevent.md: id: 81ab17acd291 last_write_checksum: sha1:b9fab4d6584caebf217b928c139cdaf76e161638 pristine_git_object: 491c40556703b738d7430a2b9a29e705a21a5685 docs/models/components/partnerenrolledeventdata.md: id: 505d7bbbf137 - last_write_checksum: sha1:9e3b0e4e511a859b6054cae18c0ab23b0f639406 - pristine_git_object: 0e608c1fad434f2d71a0d4e330e67ce7c614668b + last_write_checksum: sha1:50f44da27512f46e094eb93266b4971943781894 + pristine_git_object: a7b3c61b51062964b795b431e953edac0fcfa9d6 docs/models/components/partnerenrolledeventevent.md: id: 2e4e0307fc74 last_write_checksum: sha1:c6f25e24c6562e32d162bd2247aa84215b256b51 @@ -460,6 +440,26 @@ trackedFiles: id: 1e120f5f6013 last_write_checksum: sha1:2f2224a5a0b687b3aac2ce0ae5bb57dcbc7456bf pristine_git_object: d56f2311f2596fc5bdfb08d20765c35d8a1f4ef6 + docs/models/components/programapplicationsubmittedevent.md: + id: 2dd071cf5779 + last_write_checksum: sha1:860799c432d2304d4ee947d0e74b8fc9ec9aeb49 + pristine_git_object: 47fe7622f237a74f2bf6cde30023a65def2cbf8f + docs/models/components/programapplicationsubmittedeventdata.md: + id: 63ef8964c90d + last_write_checksum: sha1:27d54c83f60b93715d9f56304732bcbb4f212f86 + pristine_git_object: d8c8d3f49bb99e40a2f8631421938768c61fd7a3 + docs/models/components/programapplicationsubmittedeventevent.md: + id: 2da09923bfe1 + last_write_checksum: sha1:d6af7da0ed79356ea12afd05cd91b332da3d4bf7 + pristine_git_object: 233df9c29a2b37daa1d3a97ef1f1cfbe70a6828b + docs/models/components/programapplicationsubmittedeventpartner.md: + id: 92a77409806f + last_write_checksum: sha1:a01bf45cc7bf9596dd9b363c33f89421416bb346 + pristine_git_object: 5b137e48b8821c3c4b75f7ff7235ad5cf38659cd + docs/models/components/programapplicationsubmittedeventstatus.md: + id: ece619cd4e24 + last_write_checksum: sha1:053d9e7e774010fb5bcecfb1ee3113843f52b8ec + pristine_git_object: cebc5b0e444c29a0e87b33d208d57fa37a59270d docs/models/components/provider.md: id: 68dda5cff49f last_write_checksum: sha1:bb0eaf15e8cb742ed7ae3c3d63646826acc8e185 @@ -566,8 +566,8 @@ trackedFiles: pristine_git_object: 918855ac5e4a6cf8c40191c53d63be3585d8e1ab docs/models/components/webhookevent.md: id: d393cc753930 - last_write_checksum: sha1:47edd900736d40afbab2c37816b9b3a5d02cf4fd - pristine_git_object: 4d96bd0aa326a2d1b85293cf011c8fc29ceee454 + last_write_checksum: sha1:a0976b6b26418f3e8219d6fc2dcbb56e36526bbb + pristine_git_object: 142a34947eade0c1b954683e4abdc6524a208aae docs/models/errors/badrequest.md: id: c0d0c970baf3 last_write_checksum: sha1:0a3ad92541214140f6647f1f0e79c110fbaddf29 @@ -702,20 +702,20 @@ trackedFiles: pristine_git_object: 0582adea33dd81473859875b5769b0c11bd63c28 docs/models/operations/approvebountysubmissionresponsebody.md: id: 319a8704a6fe - last_write_checksum: sha1:941752069ed30bbad0eed62459f02a70bab4beb6 - pristine_git_object: 01a48a27e57f3b042e55aa09b29966c189aa45e2 + last_write_checksum: sha1:91f244e95587bc08096665ed7ea18ed0baed712a + pristine_git_object: 1df1aead0cfd5b34f4df272d3a0f60e65ae3dfdd docs/models/operations/approvebountysubmissionstatus.md: id: 8322200a0483 last_write_checksum: sha1:c03a09d2b38d11b72e85e10855462b91bdab7a1b pristine_git_object: 65ed93d11084164e07a591187cef0614fa5fde74 - docs/models/operations/approvepartnerapplicationrequestbody.md: - id: 98ed0d62dfa1 - last_write_checksum: sha1:cafa0deb36af4be2166fc189a4ba19efb44d2174 - pristine_git_object: 763917db3a58ecf4230ff23a8823d81f2d189b26 - docs/models/operations/approvepartnerapplicationresponsebody.md: - id: 6fad95b01afc - last_write_checksum: sha1:a05b267609ccf997f7c4e1f594723a3e18dc088d - pristine_git_object: 44445f0ce5c4bcd5413a58e0276f30481639f975 + docs/models/operations/approveprogramapplicationrequestbody.md: + id: abf2caa129db + last_write_checksum: sha1:296b2509810f6a7a2797b232103c026c30109065 + pristine_git_object: b11cb792ba27a63adacdcc81e98c9d656cbf3168 + docs/models/operations/approveprogramapplicationresponsebody.md: + id: d2434216f8b1 + last_write_checksum: sha1:55139bfaa97fdb49e44dc772cc002fb792b4ba63 + pristine_git_object: f6ea44c0a60a77cca8db93162e602793c83f99d2 docs/models/operations/bannedreason.md: id: 63e2b4b788c0 last_write_checksum: sha1:0ee940e77b93e657569f6e551cd7eed7ed23cb56 @@ -822,8 +822,8 @@ trackedFiles: pristine_git_object: 5eeb494436da79cc28b948d225c5331340b81787 docs/models/operations/creatediscountcoderequestbody.md: id: 37da971da3fe - last_write_checksum: sha1:fca891bf6d1b5dd1822fca8efe167712df70dd1a - pristine_git_object: 2bb7a1d6a1e39c31dd12780a0e1f19ab8097a6ca + last_write_checksum: sha1:ae20f3a006f256215d6d421e15e63a4f6bb18eaa + pristine_git_object: 6ea9dc8e01ed5e93467fc399bdb8be593c2c4376 docs/models/operations/createdomainrequestbody.md: id: ffa9a43bdb49 last_write_checksum: sha1:f2aff245c116f914b20a893efcd80cd7012d7860 @@ -834,8 +834,8 @@ trackedFiles: pristine_git_object: 59133dfcb03a80067b40d6fda542ca6028234060 docs/models/operations/createlinkrequestbody.md: id: 86f3565eb7cb - last_write_checksum: sha1:b65b385bcb195f4289f54911fa52a163d75398ce - pristine_git_object: e3c2dcaa2078afe86849971d53adfbbe6c617444 + last_write_checksum: sha1:13ba1b58f9ea748e8f2f51ecd45dfe812361d689 + pristine_git_object: 479069c0fd757a7bffcf2165fe77816889eeb302 docs/models/operations/createpartnerapplication.md: id: 30d36b45a35f last_write_checksum: sha1:19732c21692a18123187e26f6aae937a6a74c959 @@ -918,12 +918,12 @@ trackedFiles: pristine_git_object: 111d42f9fac05283c083b69ad26c6e90f51ea785 docs/models/operations/createpartnerlinklinkprops.md: id: 83864e9099ba - last_write_checksum: sha1:32f2817585b0eea11a26cdda5a42d5a78f20f5b2 - pristine_git_object: 4f3c9ea99ebcd1c13e6f0afa6bfb0a5def800814 + last_write_checksum: sha1:f26c0f8a9f4aaf38513ada92836301a6035d5677 + pristine_git_object: 959e02697e997b9fc8e31396ed1ac82f244c53dc docs/models/operations/createpartnerlinkrequestbody.md: id: febe6fdd6895 - last_write_checksum: sha1:1e3bb536027565dd2e1cc58e425e4dbd6815ec27 - pristine_git_object: 756fcb1212fd06befffedf099ffd71988382c26d + last_write_checksum: sha1:1a98b55d92abe8100b73519d278c8dd234a3bb5c + pristine_git_object: d93b11b4a84ac9b5576d1d6c97828765764fe0ad docs/models/operations/createpartnerlinks.md: id: 1fd78f95d437 last_write_checksum: sha1:7f136f9e2a4d29fbf53ff5a52a9ee0c2d6101215 @@ -958,8 +958,8 @@ trackedFiles: pristine_git_object: 43005e3df9fe2a6fb96284b44e19c660f76a6d92 docs/models/operations/createpartnerresponsebody.md: id: 918e4dce0185 - last_write_checksum: sha1:7b95f412e901186c7e028a42d03e6fcf0dca9ce5 - pristine_git_object: f1d32b1168f1209716949388c6ee246c8f6157ed + last_write_checksum: sha1:9023725ad8b88b309f756d309c826f2a9411c489 + pristine_git_object: 1ffe664d1574b53d7dab0332d77a7a206ab3685b docs/models/operations/createpartnerstatus.md: id: ca5d508da415 last_write_checksum: sha1:f565fe01cff33af4b72ca67095b09e85eea2cdcf @@ -982,8 +982,8 @@ trackedFiles: pristine_git_object: 59d3e6603db21dab5b3abb1282417eee42b82afc docs/models/operations/createreferralsembedtokenlinkprops.md: id: 0f59e7862d79 - last_write_checksum: sha1:f0c174a6a9fb83eb949a13b129ca7cd3890c4c50 - pristine_git_object: e025ce0205ab31fbc34a25c6441bf43b04ff403e + last_write_checksum: sha1:a808112008413103b70665103afd2186bf2c579d + pristine_git_object: 6ec9478fbc024fe028c612260f8f57944cd5dc01 docs/models/operations/createreferralsembedtokenrequestbody.md: id: 9be32b9cb96f last_write_checksum: sha1:2c7b422c491197834411c40d1ec1148a13f0e750 @@ -1014,8 +1014,8 @@ trackedFiles: pristine_git_object: fbe2503d080609281c03209acc38b6f640464863 docs/models/operations/data.md: id: acd9ffac9680 - last_write_checksum: sha1:fbee95c374425190e5c37080b13758e6cb55a390 - pristine_git_object: 8f6b6d6ee78b45c22cf4a18d76015fc01af4ab7b + last_write_checksum: sha1:c81551b2c6b6b7f304da89676b7cbf2d08823f13 + pristine_git_object: a5022764008da75dc054e339f2ab485318ae38ec docs/models/operations/deactivatepartnerrequestbody.md: id: 07357d7c8541 last_write_checksum: sha1:b4c12fab027c1d4e3577210b948bd4cdac74fd5d @@ -1190,8 +1190,8 @@ trackedFiles: pristine_git_object: 64604aa11b8607d893457e1e7e1205df69ac9dac docs/models/operations/getcustomersrequest.md: id: 4e8c14d14db7 - last_write_checksum: sha1:bad54a4be506091bee1903eff913fe11736b08a1 - pristine_git_object: 251c12c0a669b494161c85d534150b47922833ed + last_write_checksum: sha1:c258b434d6bdcf8fd7dfaa71b34fdc794636737e + pristine_git_object: 2b6ac93904baf0dd20425b1b17ccc084a46bf0a1 docs/models/operations/getcustomersresponse.md: id: ceb691c24a06 last_write_checksum: sha1:e6b292d9942d5c78a684b0700fde0b4e5d997d86 @@ -1270,8 +1270,8 @@ trackedFiles: pristine_git_object: 974cefac049b59936bbdf228ef32cb71d2ec40d1 docs/models/operations/linkprops.md: id: ea44d9784968 - last_write_checksum: sha1:c626cca389f57a0d3eaf16df44f50a361a48beb7 - pristine_git_object: 6f9af6e63b26e2684a8518bebafa27d7f5d165da + last_write_checksum: sha1:3212588427701f432f1bb5559af2023ac2c75629 + pristine_git_object: 486180cb4df36f62daf95e25cbc44c9bdb32b865 docs/models/operations/links.md: id: 161455a12c65 last_write_checksum: sha1:047d2af0d832f89109da098f621ee22d5e7e95b7 @@ -1294,8 +1294,8 @@ trackedFiles: pristine_git_object: fe09eec9958567238964235a86765ea56be07cde docs/models/operations/listbountysubmissionsresponsebody.md: id: 82e7d60f5d44 - last_write_checksum: sha1:279951c3fafefe166e86020194d3b0e7d446c16d - pristine_git_object: 372bb4b697b15643ae563faaf92d659a5b46957b + last_write_checksum: sha1:4789355c03948026cb7a1a605e7b1b88ae7231a7 + pristine_git_object: fee91ffc41d42ab999dab87d1fb1122dde6495e1 docs/models/operations/listbountysubmissionsstatus.md: id: 854ef71b7c73 last_write_checksum: sha1:4a25a5c6b297d1b02c79d73d8a560d910bb43a14 @@ -1320,18 +1320,22 @@ trackedFiles: id: ff4da85cfa11 last_write_checksum: sha1:166cdd541aa36d042ada49d23f40f4bfd6cc727c pristine_git_object: 2ae770ffc88df22a7d91642a4e55b70009cf77b0 + docs/models/operations/listcommissionsqueryparamstatus.md: + id: 584368a1e83d + last_write_checksum: sha1:de6cfefe319e8277414b53a17077de553752acfe + pristine_git_object: 6f92830c31e08db2c53a4cdd363259cca7219943 docs/models/operations/listcommissionsrequest.md: id: 3db2f1c49f34 - last_write_checksum: sha1:b04ba2cbd7cfc0dc96536d878801cf1e441d087c - pristine_git_object: 8de4f367b262a2a18127bc84aa4d10133216f615 + last_write_checksum: sha1:1bd5e0fb973a323fc1633d6229f82260ab449fe1 + pristine_git_object: 0a847b084b7b1ed7602e784f525243d90a17cd70 docs/models/operations/listcommissionsresponse.md: id: 6de464f720eb last_write_checksum: sha1:c4dbf265a81bbe2f55bff665719e90d616884df0 pristine_git_object: 74b08ad0fd59610d8eddba66cf06393d1ab49721 docs/models/operations/listcommissionsresponsebody.md: id: 8c3436662e79 - last_write_checksum: sha1:a033e9790f84150e88d91903a8ef06fa86eac525 - pristine_git_object: 7d425462b6cd1a9529b26770a9a0fb0d1b6cecc4 + last_write_checksum: sha1:58d76b002433f3395202a2783de3251dc5e5452b + pristine_git_object: 782ceaec1002d5f61b4e0774427d6cbfc06b8036 docs/models/operations/listcommissionsstatus.md: id: 5204c1cc3f78 last_write_checksum: sha1:f6117c8acceead6dfbe8092b7d493a520d429b49 @@ -1342,8 +1346,8 @@ trackedFiles: pristine_git_object: 935fcefb610744a311985d92411ba00af03f3e2e docs/models/operations/listdiscountcodesrequest.md: id: e5ebf0344757 - last_write_checksum: sha1:03d3918c3f7a457a431e7bfd31af85f14a36d5c8 - pristine_git_object: 3e8b6905097bd70cde0eb1ee01d0a4fe3983fd70 + last_write_checksum: sha1:40d551b13c615c8ab28f6f9462a402984f5987bf + pristine_git_object: cac47768e009897de699cbfd7b2caa082a2e0f52 docs/models/operations/listdomainsrequest.md: id: 67bb29884839 last_write_checksum: sha1:aa7eb849ce0660beb42dcab285ab4356419d796e @@ -1400,22 +1404,6 @@ trackedFiles: id: adfeceeefb34 last_write_checksum: sha1:472065f54d8e70c5ee3c60a24a2625cb39684244 pristine_git_object: 99292cb1cb7e6c7c93e699d37eb01d9654752f24 - docs/models/operations/listpartnerapplicationspartner.md: - id: fdb71530602b - last_write_checksum: sha1:9cfebb92726c7e23aa454305cd27280a574930f8 - pristine_git_object: b4973b6d35a7457f7e57f72647cf5c464594c1ec - docs/models/operations/listpartnerapplicationsrequest.md: - id: 823127f38a9c - last_write_checksum: sha1:16d787e67bdf00d76b1d5c5450866ee2a61b32e8 - pristine_git_object: 1ba7abf2f00eeb543f8c34089bf1f994d5c9f828 - docs/models/operations/listpartnerapplicationsresponsebody.md: - id: 9df2d5397209 - last_write_checksum: sha1:4d39e9649abc6459b455597412007993daed6e0e - pristine_git_object: 2a36fa978a597e72cba5eedfc9edf7f8d6aeb234 - docs/models/operations/listpartnerapplicationsstatus.md: - id: 2fcd5c9f3bd9 - last_write_checksum: sha1:c66979d72807c4bce75d699c1f095d49033b4000 - pristine_git_object: 44e9b452f8f7c1693867af8d4667fc4550264091 docs/models/operations/listpartnersfieldspartnersresponse200applicationjsonresponsebodyreferralformdatatype.md: id: e58a7d9dd5d0 last_write_checksum: sha1:174339913c65e057989a34ed2423ea339b45c37c @@ -1466,8 +1454,8 @@ trackedFiles: pristine_git_object: d7ed12cb4a819696a8966057b4f04e847d7fe667 docs/models/operations/listpartnersresponsebody.md: id: e60469e13fe9 - last_write_checksum: sha1:46debe516d41d9ac1f81b1f1cf06545342e1e07b - pristine_git_object: 6097df9543d30fbe8524581b8d23d720cf5e2bc9 + last_write_checksum: sha1:ca534e6026fe0b6e279ae9b24bd6f2a250c8ef32 + pristine_git_object: 75e17efe2b8e6d65ea969734ee56f9d100a9bf98 docs/models/operations/listpartnersstatus.md: id: 952f16385320 last_write_checksum: sha1:002a6881c3e12bd7311b9489b9d6f30d7f320664 @@ -1508,6 +1496,38 @@ trackedFiles: id: a852acab83fa last_write_checksum: sha1:15a651ce6b8a77e09218bd14176aa73b1c00c2d9 pristine_git_object: 01b9992906963f3bbb3dd17ab25cf611e2512d79 + docs/models/operations/listprogramapplicationsdefaultpayoutmethod.md: + id: 2b968a930323 + last_write_checksum: sha1:2076e024789eeb591718f79f141e19544819fe42 + pristine_git_object: 9c68593bb93bf6031a1d535c256439ef5ce9391e + docs/models/operations/listprogramapplicationsnetworkstatus.md: + id: 801d5cd90568 + last_write_checksum: sha1:83239eadd6a21c14f2c1b3702077ff5a4d07b8f7 + pristine_git_object: 0164e6517094374698d5f78d853f32bfc81055ce + docs/models/operations/listprogramapplicationspartner.md: + id: a2ce524ab90b + last_write_checksum: sha1:7bd08634d9ed69a906e622ceb26b909ccf031e48 + pristine_git_object: d5faf990b358f673db2f0b88ff119282ea5bbcdd + docs/models/operations/listprogramapplicationsqueryparamsortorder.md: + id: 48934d1096e7 + last_write_checksum: sha1:ea56eb8387a201d1b8b9ab40052a7ce3a1c970ce + pristine_git_object: 50f9279ef93c34fe2c2b7641997dcb29f6884d52 + docs/models/operations/listprogramapplicationsrequest.md: + id: 8b365babe743 + last_write_checksum: sha1:38b077873dd145e84c6adb96ee402ed53bc99275 + pristine_git_object: 8f5f55cdffdbc4d8f9ec35047c3e70cc05435705 + docs/models/operations/listprogramapplicationsresponsebody.md: + id: bf9cd1e84cdf + last_write_checksum: sha1:b4fc6ec5b6df03d5b957b0f07048258b6b33dee1 + pristine_git_object: a2d2f836cb0ee53428cf89d336857d21743c536a + docs/models/operations/listprogramapplicationsstatus.md: + id: d2c4e8ee5e90 + last_write_checksum: sha1:926b1ed776ba26515e7fc36f98da1c1dfc451d59 + pristine_git_object: f0e38e2322e8b5661cfcce6b3148551c4ab7d798 + docs/models/operations/listprogramapplicationstype.md: + id: 28f0bc48cb32 + last_write_checksum: sha1:9a1ad70e780e05276eeea25e4380110449f18e8d + pristine_git_object: c676636b4ddb2397bfaf7da58a706278525cc6f5 docs/models/operations/method.md: id: 178c7f8a9cc1 last_write_checksum: sha1:e2daebab37ad2f07711b449b9b14cad42b0743ef @@ -1540,6 +1560,10 @@ trackedFiles: id: 9aa57ef1a35a last_write_checksum: sha1:87954952bd99ad0802aba9fa791939e69c9ac20a pristine_git_object: 7a8b9ce9dd1c5e6aeec224420947051b780fbb72 + docs/models/operations/platforms.md: + id: 0fa6e9d785e5 + last_write_checksum: sha1:48f85b19d427d91c6f197439216f3fcc48317be8 + pristine_git_object: c5894ac253c8d2a0637761572b6a14c302c5dbdc docs/models/operations/prices.md: id: e7ba4944650f last_write_checksum: sha1:04c9df190cee6ed1342a843021d6eb8ce1f968a7 @@ -1570,8 +1594,8 @@ trackedFiles: pristine_git_object: 5fa53438f1cd7cc2447c6fa76d0d7ec949fe8cbc docs/models/operations/queryparamstatus.md: id: cf4731785401 - last_write_checksum: sha1:d065422177ab9c15ae84007497f9baf63697158a - pristine_git_object: 3ed07a47e99ddbda071c6e781218a6058cec758c + last_write_checksum: sha1:ef850f863a18ac8293e15696fdef70262dfa8248 + pristine_git_object: d8be2aa6a32bf8f64cd215a7fa0725a68e7a4a2d docs/models/operations/queryparamtagids.md: id: 6872958eb323 last_write_checksum: sha1:7cfeeedc790c8e5ccd7c64fedeca103bfbaec7d1 @@ -1618,8 +1642,8 @@ trackedFiles: pristine_git_object: d78bbbe96de8dc40f256d554a14007f51876842f docs/models/operations/rejectbountysubmissionresponsebody.md: id: c80cd0172778 - last_write_checksum: sha1:d99b45d15308911b828966b8ffd4a514bdd8e315 - pristine_git_object: e6280e08a8bd6830bba019428bb44717b6e4cc57 + last_write_checksum: sha1:33509d2b0a06fa7d42e40523c703093fbc075668 + pristine_git_object: 9c3a15ed787f39049e4872a49d5bde259f9c7f55 docs/models/operations/rejectbountysubmissionstatus.md: id: 14acb015a882 last_write_checksum: sha1:e02d2499322e2a6d92464a82d1063800585abbc8 @@ -1628,18 +1652,18 @@ trackedFiles: id: 99a67fae384a last_write_checksum: sha1:23fa7f6ea8d8e8ad4e68c9db806f3d2d29d88d83 pristine_git_object: 695803b54d10db435a435939d0259afea9e9ad5f - docs/models/operations/rejectpartnerapplicationrequestbody.md: - id: e2d454aa9e3b - last_write_checksum: sha1:0fb8a2cbb576436d1a427ff63524a98706f14a76 - pristine_git_object: 3ef975d6e4c6a531f45343e9bc0b1fd5d171c263 - docs/models/operations/rejectpartnerapplicationresponsebody.md: - id: 0123c0d1a744 - last_write_checksum: sha1:faf8407acedee85c77f28273c35ae752b9b81b61 - pristine_git_object: 358d73f77d930968d2ddbc435df0c8f5a12f30e1 + docs/models/operations/rejectprogramapplicationrequestbody.md: + id: e8dd9427f023 + last_write_checksum: sha1:8cfdce717543f95330a22fb7e87923de942b5fc1 + pristine_git_object: 7a99a9781c9de625a2548a462b13a643639c3918 + docs/models/operations/rejectprogramapplicationresponsebody.md: + id: cf12e72dcc8e + last_write_checksum: sha1:6e892048f42a2cd5726537b2d3775fc91d1ceb67 + pristine_git_object: 93ea59f09ca633e976366b85ea92b7e3203fcda6 docs/models/operations/requestbody.md: id: f78af0833126 - last_write_checksum: sha1:b8cef1f877057f80d7d974490ac60f96dc74e081 - pristine_git_object: c5a0e751a9b845761a46b4e65c482b274cfcfe33 + last_write_checksum: sha1:c0f5d5ec7f0c0853799e0005c65d3cfcba992ba7 + pristine_git_object: 40bc436fa94a88423bf38b1f996651d03e4f8405 docs/models/operations/requestbody1.md: id: 871009b490c3 last_write_checksum: sha1:45670c58f5c0f4a84151b8220b50dc17a95de019 @@ -1834,8 +1858,8 @@ trackedFiles: pristine_git_object: a868919275f8c9651cb1878d432e9f87f705d1ec docs/models/operations/updatecommissionresponsebody.md: id: a22399ad4e94 - last_write_checksum: sha1:b226daf5c87341eaa194f3c396d522f12232fdab - pristine_git_object: 029ee15220c97c2bdee7daf9bc63b83cb74324f1 + last_write_checksum: sha1:196e8e87ae5b19a424d6fc1d999290414ef3fc2f + pristine_git_object: 27a5efab6e810dc1320a164175e33f8583de0b93 docs/models/operations/updatecommissionstatus.md: id: 89160707cc65 last_write_checksum: sha1:e4deb9310108dfff80509ed807fce323a1e54c85 @@ -1862,8 +1886,8 @@ trackedFiles: pristine_git_object: 585fee669e5e477d250735357da6a3a5986e0749 docs/models/operations/updatecustomerrequestbody.md: id: 1429cc32f823 - last_write_checksum: sha1:a644285c69f35308a2df5b8c8826f7a247d0bfb6 - pristine_git_object: 50f054976fdf330ddf430af81cd7ec61d3146512 + last_write_checksum: sha1:68c912b9d25cb552294a21616d097ac11ded6dae + pristine_git_object: 06484d2d80c60976507549e6f5adb9c7a1382661 docs/models/operations/updatecustomerresponsebody.md: id: 2239ad02e19c last_write_checksum: sha1:41f9515f6b250a641040743a243d0dc638eee49e @@ -1898,8 +1922,8 @@ trackedFiles: pristine_git_object: ee612eddfd61bd856984e891311025c227b3e443 docs/models/operations/updatelinkrequestbody.md: id: 3ac928befd8a - last_write_checksum: sha1:1a139fe27eca548a5065fd228c9b7e240f164e1f - pristine_git_object: 3e12da18518373fcc2ad6769f2877c6a8284e2c1 + last_write_checksum: sha1:e90d5f1676783198cc51486eb4e6f20f76125cf9 + pristine_git_object: aff318f3ecc88d98df63eef619319d1be585a5fe docs/models/operations/updatelinktagids.md: id: 7938e288d3fa last_write_checksum: sha1:fc406598a680a69dbff77d97bf185bdf927cd616 @@ -1926,8 +1950,8 @@ trackedFiles: pristine_git_object: aa35333413f6b1f15d56c2e19bfa477f55e88ebf docs/models/operations/upsertlinkrequestbody.md: id: 0d76e93e8c6f - last_write_checksum: sha1:6974eb199c19538f9abab15b165c857ae3228da3 - pristine_git_object: d027b0f1c5259d5b0ab5f9c49026965912642e1f + last_write_checksum: sha1:5d1214ad8188af3bf33638e71f3d0b581fe7fec8 + pristine_git_object: 9dc7b82a5f9be244d4e0aa1308268348df01ff62 docs/models/operations/upsertlinktagids.md: id: 1847163c7243 last_write_checksum: sha1:eae10308cee8576e4f407a1014633b6522b17c2c @@ -1942,12 +1966,12 @@ trackedFiles: pristine_git_object: 5af8df5a2a05210688aa68c529f97094bca85068 docs/models/operations/upsertpartnerlinklinkprops.md: id: a95fe7c7e457 - last_write_checksum: sha1:2c522f0bd1353962e69cd8f7449456e0c4798a41 - pristine_git_object: 6c4ee71d075bad697a38b07c693f8b389b4c36c9 + last_write_checksum: sha1:0c2c5f01b3a42a9cc8f8d6ff6ee1bbc44cbbce80 + pristine_git_object: 821110e63402c564fd2e902a499df65b528219ad docs/models/operations/upsertpartnerlinkrequestbody.md: id: c979f5a7d50e - last_write_checksum: sha1:6146b03080bc1ab820fa41951e80473960111b86 - pristine_git_object: 5c2ae71933a3ba92d8173ccfc5ba20525db0d7ea + last_write_checksum: sha1:f5db14d0706a67ee84d767ee73a74acdd0d93cb6 + pristine_git_object: a04083da0fdf69cafc62069830e40f3367bcbc03 docs/models/operations/upsertpartnerlinktagids.md: id: d5cd29a01c90 last_write_checksum: sha1:0c7c0b6dd53e01d2d4fa443f437c46f506462f6a @@ -1986,16 +2010,16 @@ trackedFiles: pristine_git_object: c690f23830883a58c4ed891fee48683542c5cd06 docs/sdks/discountcodes/README.md: id: 1bb1b0dc7ab1 - last_write_checksum: sha1:d1b25f945162d48ec645897f040955197047f334 - pristine_git_object: f3f293e94c3807ff21402cce0051ffb976ae9100 + last_write_checksum: sha1:b2f5c692dcefd2618822bda3d69297a961c352c6 + pristine_git_object: 1033e6209b87e84cc12c279b7e660957ede4ba61 docs/sdks/domains/README.md: id: 06e9beb4063b last_write_checksum: sha1:a501295b86bd067c9ff2df5f810600ee31f39eb3 pristine_git_object: 9fd40da78140e9d65bbbecdbd0579e26851854c6 docs/sdks/embedtokens/README.md: id: 7b1657bdf3bc - last_write_checksum: sha1:db2800986b994c1d903d63bbafc42265645ddf70 - pristine_git_object: 0a989a967408df139f15b444ffef064e9923cbc2 + last_write_checksum: sha1:bdbbe0955813d52abe0cc0235dc13f108dd6d728 + pristine_git_object: 441a3e84a540d02b57de224ef5063569c43b025e docs/sdks/events/README.md: id: cf45a4390b9b last_write_checksum: sha1:398a874efb750e0b6948f30c101ae766619f4dab @@ -2006,20 +2030,20 @@ trackedFiles: pristine_git_object: a322266d9a29fe0fd523bfc81f603200039ebc25 docs/sdks/links/README.md: id: 8c355a557e3e - last_write_checksum: sha1:2b8504534617abc25aee00748808e62302b91959 - pristine_git_object: 9069cf970555683c5b3fa528113f10e97f33a121 - docs/sdks/partnerapplications/README.md: - id: 6cf37e16d4c1 - last_write_checksum: sha1:3578c5ee07ffb4515ea1a803151025a49f335e85 - pristine_git_object: 60f64ec4ff10645d4eb486e92e358274925ed378 + last_write_checksum: sha1:772cf7b57973db232e4cccaa98255b5538a880bb + pristine_git_object: 32f24525f29c6e57c517639f7b27d96ada84787d docs/sdks/partners/README.md: id: 85ac19d13270 - last_write_checksum: sha1:e822fe93ad5fe817421f4c3239821de3de036e85 - pristine_git_object: 15896f2e6571d4c8c8e9c7694360e49081046ea2 + last_write_checksum: sha1:c4847e912f92ae532ad1e7f6ac76a82d532e757a + pristine_git_object: 47ea80ec17fc06df16990e9a0c0436e2e20f6675 docs/sdks/payouts/README.md: id: 184ed4a74471 last_write_checksum: sha1:34ab994bcbde69a61c3d864c52dcd1b876870420 pristine_git_object: decb5d79c691f34769707f0359e7cf345439a968 + docs/sdks/programapplications/README.md: + id: 1f07478bc747 + last_write_checksum: sha1:147d69afedf1cf56b9f4679997e1f8e1599df6ed + pristine_git_object: 1d1aa93c2001fa52eecc38038b215b0fce0fd5e4 docs/sdks/qrcodes/README.md: id: 87ad3800d686 last_write_checksum: sha1:f4abe84f61dcd299614e76f18d32fe1b49d9501c @@ -2046,8 +2070,8 @@ trackedFiles: pristine_git_object: 0694fc0429fe2e082727e6847677957b9027e81e pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:bd8c7551a418bdc79ac7e2b05434e08138284211 - pristine_git_object: e2deb1c5910ca67b857d87d25bcbcb1a2aa34174 + last_write_checksum: sha1:3cb9f91bb67a1d897031d4843f17e6c78c37b5c8 + pristine_git_object: d3c74b493f1a32824554f43d75903e35c3113ab1 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:98ab0adc36f1ccd31422544b0dd94e008aa47804 @@ -2074,8 +2098,8 @@ trackedFiles: pristine_git_object: ea5bc2d7f189075f453b6e70c60f2eaa418ff18e src/dub/_version.py: id: 2e88e1f01047 - last_write_checksum: sha1:406bd72b342851dbce0750a1274ef5558192938e - pristine_git_object: 7eca31cadf834e7d9be8dffd107d455c30f804aa + last_write_checksum: sha1:56de0c246e396a5edb57d347b501d3f75c877130 + pristine_git_object: 941b95eee22ccecda2eb7bb23e518ce5a8b9e03f src/dub/analytics.py: id: b7a4fa47e744 last_write_checksum: sha1:483eac9a8044989991e4e6edf968ac9e8e0998cc @@ -2090,16 +2114,16 @@ trackedFiles: pristine_git_object: 9ecb62282c96c178935747c377e415216e7f0f48 src/dub/commissions.py: id: 4d162906099e - last_write_checksum: sha1:32dba2b233c975ec78c5e09ec5aaf8d81cf5b7c4 - pristine_git_object: 6307163985fc4ee123b9e7ced3bdaeee568cafd1 + last_write_checksum: sha1:eb3e1f2ba3a8f795aca301dae14678d076cafdbc + pristine_git_object: e988fa417d1ac2cd3b7e305ee076ac7fd2427ed7 src/dub/customers.py: id: 4a816dd98656 last_write_checksum: sha1:57451c78f4aec2ef79ddc8a5d412240ecf9146df pristine_git_object: 0950989a5d139ea67d432ff1c5d03af30bf1186d src/dub/discount_codes.py: id: 5fba2041529a - last_write_checksum: sha1:938212da695fb1cfad85902018ec445f9bfc9bf9 - pristine_git_object: 94f04395ab874430cfa3d13fef802c7dcd9ce4af + last_write_checksum: sha1:2e8a4cf8ab82997a103e37d60522a497a9c27f4e + pristine_git_object: e6fcbaa8385abcd7db826cf187bde7e70c1135dd src/dub/domains.py: id: 09f896d00e5c last_write_checksum: sha1:2a597119387d8541b66894a7eb7e6d7c34113276 @@ -2130,72 +2154,72 @@ trackedFiles: pristine_git_object: a8ba3e636207fe13ab7e1d1790061c0cb9cfa83e src/dub/models/components/__init__.py: id: cfa9c231496c - last_write_checksum: sha1:829f4ed0c2ad85f420e3ddb9497bde66a0226532 - pristine_git_object: 17f75b369e0e97a1a8b63ee157b6ff67ff1c64a1 + last_write_checksum: sha1:af557423ccaeac1a570fcf512c80f359c17adfc7 + pristine_git_object: 191623471e72aec0204effd5c6744ca5f18d8a31 src/dub/models/components/analyticsbrowsers.py: id: 2d7aed63032d - last_write_checksum: sha1:242eff9c4d633d958c2d5b8cab336ec9e3d906c0 - pristine_git_object: 47a7ab291236c953ec551a4a44c23241250c8095 + last_write_checksum: sha1:c3979552645ef8da87f9cfb05a6385d8384905c1 + pristine_git_object: 290ef8c70d5cf5aa8b8be16c699a012a9cab089e src/dub/models/components/analyticscities.py: id: b3955b28b893 - last_write_checksum: sha1:544b46b0ad8a364fb4e6e8588a7534761e65e2b1 - pristine_git_object: fa5cbe56f061447bbf63f89c269a5af738c251a8 + last_write_checksum: sha1:3d21aec6656ad873ab3a842ced08c96e1ac7d30b + pristine_git_object: 4d12a2bf84ceed39c50d9f6fab96ffad0d3a587b src/dub/models/components/analyticscontinents.py: id: 4eff5073b1b2 - last_write_checksum: sha1:f8fcc9e29024195627ca44f2a01737bf2b108920 - pristine_git_object: b2713492dcbc42c37928b012a0e5cae297b34a15 + last_write_checksum: sha1:01e95c1f92d8aa496b43f7d015864c8575995ca7 + pristine_git_object: 1105ebfea497d1b2e1f3b9a6923a4da4bd9abdb9 src/dub/models/components/analyticscount.py: id: 3d4eaeca0dab - last_write_checksum: sha1:6636d622de1d3a8e14e6abbeb3e14e75443319f6 - pristine_git_object: ab5b49a3733856fb148a0168b176246e569ad324 + last_write_checksum: sha1:84e6e27a80f1fe6b7d9723e7cd3bfaa1c57aa102 + pristine_git_object: 6bd9f858dbdde93612809aea415335866ff02148 src/dub/models/components/analyticscountries.py: id: 7cde755b2b01 - last_write_checksum: sha1:59c0a8b634c771b39740d9b1727b8c300b2d55ab - pristine_git_object: ed2c199dd5abb53d417ec36408625a1057128e00 + last_write_checksum: sha1:3dab62422003a85b2948c5961c8b7e6500a343c2 + pristine_git_object: 5ab73953fb94edec00efcf843dbe6cc321948adf src/dub/models/components/analyticsdevices.py: id: 4d2149848454 - last_write_checksum: sha1:7d36ac16cf699fb4d44d0728b114d264e2788b72 - pristine_git_object: d372415d3b6feb912db5d4d9c4143d24482281bf + last_write_checksum: sha1:29d636c6b9187bb4748974c46ea75ddc9c953844 + pristine_git_object: bdeb0d3548e5bbc1cf5c4c84d1b4892d7e9fbbc7 src/dub/models/components/analyticseventnames.py: id: a659aed4a71d - last_write_checksum: sha1:c4e3d7a36650ef6c8e054058ebf26c58c009c526 - pristine_git_object: ab962824bd90472a10063cedb39be3c61dd96423 + last_write_checksum: sha1:0e1a8aa053a24f37759035f34c34af6896b6f0b8 + pristine_git_object: 9e6c2f363026558b392122127f2770cda2217b78 src/dub/models/components/analyticsos.py: id: e816bcb23c06 - last_write_checksum: sha1:5e271c2648cbfb847e99bfd1fcbc435a1ff9b375 - pristine_git_object: d7b5cbfa0cb2adb64d2322ba45bada8ca3022e27 + last_write_checksum: sha1:4003fb1966538b06b9f900a45e232ca9f1aa9a20 + pristine_git_object: bcce5209f76c996fd613a2e41323cd8c3b2717d9 src/dub/models/components/analyticsreferers.py: id: 01ab4c60eb52 - last_write_checksum: sha1:69c6b13a7cf3dd6589cd66598d1017dcdac26c95 - pristine_git_object: b4e5fb256ff4aa3998e76dd135375044b0607fe4 + last_write_checksum: sha1:7abd928032ead8adf61d9ac943cf5ec4000e67e9 + pristine_git_object: 8b82acdcee0484e4b8be7c048df62d3a346d0227 src/dub/models/components/analyticsrefererurls.py: id: bd959ed67a29 - last_write_checksum: sha1:226510b7108627045f0aa1396dca4ab0656decc9 - pristine_git_object: 27d0b2ac996cd7477d816ec87012118e2fff19a3 + last_write_checksum: sha1:9d6a0a3cb77d065889536d703e21df70317b4f12 + pristine_git_object: 780778b1b098fbf4c043d7ed0369841f30c83b4b src/dub/models/components/analyticsregions.py: id: 6e479d388cb3 - last_write_checksum: sha1:2326b96a8b444f9b91075e02f94e195b7315e64f - pristine_git_object: d2b8debeeefc84ecc9202b38b221c9b4360b606d + last_write_checksum: sha1:9df308362b9b537e9b2196f62b0fb2ac0a288398 + pristine_git_object: d80e672ae4d7aa6f3e23f51bb39fa7ee3bff4b8f src/dub/models/components/analyticstimeseries.py: id: 20e2f7b7ffdd - last_write_checksum: sha1:e79ab82dc2735479f5db2b89c855256b8163d1a7 - pristine_git_object: 90951b8257fc203bbfb84101330bd6cd64436f3b + last_write_checksum: sha1:31d298871caa1ab91da624ef7dfe5caa669997c2 + pristine_git_object: 294439a4584195d34ef72d84818995861efe417a src/dub/models/components/analyticstoplinks.py: id: dab95f625944 - last_write_checksum: sha1:1a1f3b3f049fb6a3a173e929594f4e56d8568aec - pristine_git_object: 2144bd6a3ba3c049097fc899373a1c696f8ee5cb + last_write_checksum: sha1:98953696e28273b6c506930d9b912fde0e9e2671 + pristine_git_object: ec8a988bb501c480e73be4b43c2c0880175ebd7f src/dub/models/components/analyticstopurls.py: id: 52fa0a259ac5 - last_write_checksum: sha1:3e1fe2f650c11e3612d91f9845a86a1c558ae676 - pristine_git_object: cad472f3e0c5a1cb45afd31f3c76309704d16f5e + last_write_checksum: sha1:6ea697995a0661937a6684d83a79e4dedc6f589d + pristine_git_object: edf9867a47d0865e58ef1afbbd855649f70feab6 src/dub/models/components/analyticstriggers.py: id: 324cadcdf250 - last_write_checksum: sha1:12e3bed037c0e38cdfbc7f6145e6af9d0bdaeb78 - pristine_git_object: aa84354d71f3872288504601aadca30702e0d441 + last_write_checksum: sha1:6bef0230d23fab64eec89a6f884dcf955fd45b5d + pristine_git_object: 8fa88349644592f5745a112c745a1da8ec07cbdd src/dub/models/components/commissioncreatedevent.py: id: b2f4948f1e5a - last_write_checksum: sha1:38eab0dbd52de0ea1e82d11419d0010fd9f09991 - pristine_git_object: 4fa74629f45e52f023f192cba7c2c8429f962ed4 + last_write_checksum: sha1:277d8816ac0f004302171ed9a66b8f934e426c56 + pristine_git_object: 73b2e6a368cea964b99d6635228fee0732520874 src/dub/models/components/discountcodeschema.py: id: 92699d32a123 last_write_checksum: sha1:805871814206ecf1c6e29e71d536a9c32962b764 @@ -2214,20 +2238,20 @@ trackedFiles: pristine_git_object: 158c38f3552545e24a802a31e5be8e09095c1cd7 src/dub/models/components/leadcreatedevent.py: id: 4a52002988a6 - last_write_checksum: sha1:a27aa3b099211baf3e4fec72e016306ff6c180a4 - pristine_git_object: ba8a5887d8324766bde573fbb479fd0dfd6bda27 + last_write_checksum: sha1:90cd4eac03e44cb83640b350df90f7c0c1931434 + pristine_git_object: fcff906b63a6b15109bafe7307a0dce0c6c4d5ba src/dub/models/components/linkclickedevent.py: id: 99d302fd7046 - last_write_checksum: sha1:230a8f711af72c82fd69e5ab87d032271bfd4270 - pristine_git_object: 7387efa4e9fa636e059f660c11f198f6d8e4c233 + last_write_checksum: sha1:19ca52e9485883dfe3b072ce28868f51554c9f48 + pristine_git_object: 62768df9017034a4b87f060020f7dd5ef9bdfc63 src/dub/models/components/linkerrorschema.py: id: 1b6e28417f64 last_write_checksum: sha1:3aab0fc168159e4e5cb67a23510cb67fa4804047 pristine_git_object: 85bb618523d7bb1362c770a84c3369f199af1ad7 src/dub/models/components/linkschema.py: id: 95dbe341d40e - last_write_checksum: sha1:7f7fab98639bec82f9a55f174a44764bdcb7482e - pristine_git_object: 34c0409c30139bd60a13eb9b29138906cc0fc35d + last_write_checksum: sha1:05c8278dad1aeb751e94c6c3110fc8c8739387e2 + pristine_git_object: dc3ad68a7b0ac06677b86755e42563f09498e236 src/dub/models/components/linktagschema.py: id: c22f69869712 last_write_checksum: sha1:73d025ec1d79dac05557f18db75679061bb33d8b @@ -2238,44 +2262,44 @@ trackedFiles: pristine_git_object: 20e3f40a4aa7b1a84e5798dc3dc453cc085ee70a src/dub/models/components/linkwebhookevent.py: id: c3defe8645fa - last_write_checksum: sha1:31ea66f93106833727f1ea340476404b2c06dbe6 - pristine_git_object: 4bdc00231eb332fba4b8c84e8cbe8cc6dc7b773f + last_write_checksum: sha1:c35b600eb4418d621bf6a5c59333a297ac8d2949 + pristine_git_object: 0c0153fee6315bf69daaaf591451691863815d34 src/dub/models/components/partneranalyticscount.py: id: 36ce3721a8b0 - last_write_checksum: sha1:8ac790bb4bd9770e3664aa3ee98da5bddaa5ef71 - pristine_git_object: e6d39054a1d5c4beee01db2cfe2694a8a5e81c30 + last_write_checksum: sha1:a03b2d711f8fd4dd8c35ec9f2152cabb26424754 + pristine_git_object: 0fa704b0eef3d355abd8b2aeb3716886b6cb792a src/dub/models/components/partneranalyticstimeseries.py: id: d8981cab2ab3 - last_write_checksum: sha1:6f4036c0ef87f653d79bf081e9b4f03a81b60280 - pristine_git_object: 69e6bcab06963c5eac9d815b089936d0b9062b9c + last_write_checksum: sha1:d932597776670435d5450338cab2c8b93b59ca7a + pristine_git_object: 435b6ee80b5297d57749f76670bb9bea486428a8 src/dub/models/components/partneranalyticstoplinks.py: id: cba2f13d748b - last_write_checksum: sha1:5714c12a41dd06c0c9a785c07fcf46d6b20199a6 - pristine_git_object: d905692867efd718e35dd1ffcccab6992a6b7afa - src/dub/models/components/partnerapplicationsubmittedevent.py: - id: 20ff2657e9ca - last_write_checksum: sha1:3d6a7f5dde1606883792c949430e305b8414d240 - pristine_git_object: e7ab48ffb634603c44e6fe853b533d6576a2711f + last_write_checksum: sha1:2b23f9f4c1278459d276cfe7327931f7381b205c + pristine_git_object: a89db4975c16d27b8f3318b232fa2e6fa1a5fa99 src/dub/models/components/partnerenrolledevent.py: id: 3f120ef09957 - last_write_checksum: sha1:70b6382845d0b3b1ed3b44527079956e476ecba4 - pristine_git_object: dbf5e3b8722e8eaca19ee6caf3c1e55e591b6fbe + last_write_checksum: sha1:89a8cd8c161342df80989f0415162a3c50f3f5cd + pristine_git_object: 86243084ee35c80801617221fb5386aa74092197 src/dub/models/components/partnermergedevent.py: id: 25d352de99f7 last_write_checksum: sha1:0f9a76fa3f0799a6db8a8bfc67fc339df69d8d3a pristine_git_object: 0aa64416d50450e60cc3914e68ff51b5792f33a0 + src/dub/models/components/programapplicationsubmittedevent.py: + id: 100cda42b0c9 + last_write_checksum: sha1:40a364169df05267cde5d19eb34db33838814a47 + pristine_git_object: dfbfa4956bbc294dbcd0ba4a6a28715544f0759e src/dub/models/components/salecreatedevent.py: id: 216d1319967a - last_write_checksum: sha1:9ae756f26362f82851baaa16e14defb7fd02b5c0 - pristine_git_object: d0f623c933a920a56e24726b327440bd8058e2b6 + last_write_checksum: sha1:3c9fe3a9d3f9f5a8b45c149d2541ee780775c171 + pristine_git_object: c7a0a4c59ee553302aa1872dc4de7ac18fe820a9 src/dub/models/components/security.py: id: 4db1b42b747c last_write_checksum: sha1:63fc7ade491e00d45ed5bf960ddaf441cbd4a836 pristine_git_object: 4d1f415c7f7ddb3c43e531d6f7fc87cfccaf1069 src/dub/models/components/webhookevent.py: id: 2f8f8fa5e177 - last_write_checksum: sha1:e46c6bda34477b8714cc7a696187cf26e08a8655 - pristine_git_object: 2d756e226ea2b053da9452342a47d2122bf13799 + last_write_checksum: sha1:d652dd9bfed900d94148e95cb458afcf75783173 + pristine_git_object: 11d73184aae6d81e02e05e7207a5656af9b74c39 src/dub/models/errors/__init__.py: id: 8d9c913562c2 last_write_checksum: sha1:94a268498f02eec912084ce27992550d68e7380a @@ -2334,24 +2358,24 @@ trackedFiles: pristine_git_object: a4d3bb4339a522ec90dcd859c74a4a4473f10e1f src/dub/models/operations/__init__.py: id: 933db6318765 - last_write_checksum: sha1:3453e6200c4dc8a00d949cecd84dd2dffd67600e - pristine_git_object: 3c97e819c829efd2c5f978c78e148b9c2ea58d34 + last_write_checksum: sha1:17cd94d16f7cb60ec739071ba834824312dadccc + pristine_git_object: 3ba71ce8ad66e244395acb8876d1d09b7a52c638 src/dub/models/operations/approvebountysubmission.py: id: bb43baeb1a3f - last_write_checksum: sha1:3226de576000c54c280fcd3dc85e468946fa7f93 - pristine_git_object: 6e22a40d1077f4571f8dcfdb846ff4e9c841cfe1 - src/dub/models/operations/approvepartnerapplication.py: - id: 14b2de7a6716 - last_write_checksum: sha1:87ef552d3c446d33cb5bfb79959a0c17df7c511d - pristine_git_object: a827bd5bd0733fb06fc346115dbcc561efb7cf49 + last_write_checksum: sha1:0ab48436588673665b6ba78cbb0219409c225e68 + pristine_git_object: 2eed22fe5e7a42e48b25a50f2977c477f4f422df + src/dub/models/operations/approveprogramapplication.py: + id: 008daa8e71ad + last_write_checksum: sha1:2a8e915c7f50120e3c5726fda61180fb43842d83 + pristine_git_object: 30888b5d0202c8ecfa51da4c98470a87b4ba3c60 src/dub/models/operations/banpartner.py: id: 444fc7f56f49 last_write_checksum: sha1:f1628d27d4ddabe424c357d565ef363f41e99ec8 pristine_git_object: c492e3ba6ed636a5f375d222a88a94e7ed42cf13 src/dub/models/operations/bulkcreatelinks.py: id: 37c0dd78e0cb - last_write_checksum: sha1:ea04fba4bdaae4278a9235e4e500c0471ac4264e - pristine_git_object: 28e4e39bcdb90ea683b93ebe2e2ce2a93a5ecf1a + last_write_checksum: sha1:ffaecff89082c5b06372b8c1153c4d9da9a2c932 + pristine_git_object: 03d086c12fa9f9c2e687681aaa501755e4b4acda src/dub/models/operations/bulkdeletelinks.py: id: 356524ca1c82 last_write_checksum: sha1:96075774f38c0e7be50f78288b6f7b5ef0460980 @@ -2362,8 +2386,8 @@ trackedFiles: pristine_git_object: 3f389d3533555176dcc1cea5ff535894e53f552d src/dub/models/operations/bulkupdatelinks.py: id: 1b783486b117 - last_write_checksum: sha1:06cf8c69a1d57058f07db101135e22f5b75467ad - pristine_git_object: 765a54adde64bea778adc95321f5dd526133121a + last_write_checksum: sha1:2035caebf264413ff825e69510dd0a5dc477c32c + pristine_git_object: dc408f4fd75f51977394bab655c4da8e33d53bbc src/dub/models/operations/checkdomainstatus.py: id: 844df5d87f13 last_write_checksum: sha1:498022403f67698350677e2d3a217ea72b2d9325 @@ -2374,8 +2398,8 @@ trackedFiles: pristine_git_object: 5b34c5095d8975385b451d80fdc72f4a70119a86 src/dub/models/operations/creatediscountcode.py: id: a3277c158e98 - last_write_checksum: sha1:67afa64cea6c1cba133d6be5a77906ce052e623a - pristine_git_object: 13a83439d04747f7ad54eaee9601cd05f6ce6b22 + last_write_checksum: sha1:f3142f3eaf6d2307ab26912df5f9d02205dfb77f + pristine_git_object: 33d309b3d61583dc916483ba443fb2fb564edc3f src/dub/models/operations/createdomain.py: id: bcf11adce364 last_write_checksum: sha1:29ef2b6a0250e3d735644f276f27e2aab8496d31 @@ -2386,20 +2410,20 @@ trackedFiles: pristine_git_object: d7fe81f8090094a7c97cc87823f5691336c70575 src/dub/models/operations/createlink.py: id: 79ab28c700f2 - last_write_checksum: sha1:3ba62ca118e01661a22db6d245b972aaf8d447c2 - pristine_git_object: edfdc7a083cc898ce9086349e5eae081ffd57d8c + last_write_checksum: sha1:a2e7f0428dbd142dc50b427b219d0bf00ddc1125 + pristine_git_object: 3131b1c386a8a2934d97e057e05c77c2125bf000 src/dub/models/operations/createpartner.py: id: 06fa07938a1b - last_write_checksum: sha1:b0286922395b18987aba170b938f7ba7c72a89f0 - pristine_git_object: 20fb0848ba88fdb0ca013dee67851442fba940b9 + last_write_checksum: sha1:ea20dd086267017d09e9d1229071f0b14d3b66db + pristine_git_object: 0ddcb52bbad8b8d5d53fa60b7f64638d9981e06e src/dub/models/operations/createpartnerlink.py: id: 8c33637a6d5d - last_write_checksum: sha1:b7aafa4c3967634327b9b293ff60715aee9acda1 - pristine_git_object: 2aa636c074833907622a2a09006715dd36e439e6 + last_write_checksum: sha1:49b0118d766ba16f8e29672a69340c54e436dcfa + pristine_git_object: 48bd00a0bec411b4fa2fdce4280778a5081e6308 src/dub/models/operations/createreferralsembedtoken.py: id: caed15d0ebb0 - last_write_checksum: sha1:87a006466d031c4110a5c7606828f408d834d3f0 - pristine_git_object: 6b33d4c081c0b9b863d32539be9986da689587a0 + last_write_checksum: sha1:f41822af3f7ac42e5f7d9701daf1ea2bd39aadf4 + pristine_git_object: dade908973245828463458f0988ecb3f048d2482 src/dub/models/operations/createtag.py: id: 7e3ef6dad2be last_write_checksum: sha1:fdb73dad8f070cc58434d1a85802943537063fd3 @@ -2438,8 +2462,8 @@ trackedFiles: pristine_git_object: aa76a9c5e5358d2626d214a7e2bc6e8220df3b27 src/dub/models/operations/getcustomers.py: id: d9523edc5502 - last_write_checksum: sha1:3851957521bfbc090bf5c4a2241c58bbb2c8909e - pristine_git_object: 2803a6e8eb04f3d7698d30f2771e547d7e465566 + last_write_checksum: sha1:bcfc294428eac78572d2b35d390b46af3eb203e0 + pristine_git_object: 0fb89080aa999a4d30ee043199f9e0436c0b859e src/dub/models/operations/getlinkinfo.py: id: 6bff19a3ed50 last_write_checksum: sha1:77cb997cf3ee629b6d425ce135e7a02a9a2204e6 @@ -2454,60 +2478,60 @@ trackedFiles: pristine_git_object: 3f955d10016d3dc6673b530edfe7bae5be3d7845 src/dub/models/operations/getqrcode.py: id: 08fa40bcf360 - last_write_checksum: sha1:9c14ad20a2025e47595f52c707b8dc5c6aafedee - pristine_git_object: 4bef826aee15d2285da8928c903c879070f2f224 + last_write_checksum: sha1:75ecd436329e7e9e4e47cc83861831ae6c889cca + pristine_git_object: b9389cf21335f84f0b0b263ed7766a7fd290c466 src/dub/models/operations/gettags.py: id: 12c0d5709d34 last_write_checksum: sha1:d660a5d8dee75979304d57977640d61e822a166a pristine_git_object: 34760a424db5576dc1974a1dafd5074d06b334e8 src/dub/models/operations/listbountysubmissions.py: id: 763262897cc0 - last_write_checksum: sha1:2c1e5b0c30bb56c273ed1f3d930d10c0d9f03c85 - pristine_git_object: 313436a49dad4ed801b401adbfbbdb5dbe17b61b + last_write_checksum: sha1:8c8426b8a465d326be6c910914fb5fcd6ee4db37 + pristine_git_object: 99e6fa6756ec12da3e56b0c87785ee1cb77d30f4 src/dub/models/operations/listcommissions.py: id: 992f4436b681 - last_write_checksum: sha1:4b26b276e945878063b8ff1a3170ac7df591a7c5 - pristine_git_object: 9071c0c5a84987c61782b32f078fa2be3eceef48 + last_write_checksum: sha1:90eecf4e7d58ab37d70cc6313da5d03e6341fd08 + pristine_git_object: 9ff8b9f97e00e0976da58a96aa3d33e90554e3ed src/dub/models/operations/listdiscountcodes.py: id: 68d5de2415f6 - last_write_checksum: sha1:c8ace4e3de98347749db20ec3450a6ba3a20d825 - pristine_git_object: 127bf61b5cdee1c3bf800d37378d039b041a679e + last_write_checksum: sha1:d450eb993bb42f21d4039f6295622a84a4ec7bd8 + pristine_git_object: 39e8698d37eb282fffacef9bdaff9a521c5d8360 src/dub/models/operations/listdomains.py: id: d32b3e207565 last_write_checksum: sha1:786cc097b81d72662008cc58c77347839b61f767 pristine_git_object: 136233008f49eaaf20a5e18876f01e3117ef0430 src/dub/models/operations/listevents.py: id: e65c95de179b - last_write_checksum: sha1:c446133e8be1590dfd75f05934b51865a15a3772 - pristine_git_object: a6346c0b7a3667de7e8920018af89dcab5149ec1 + last_write_checksum: sha1:fa565c1522d0964e2e9fa444e2a400adf9a9c261 + pristine_git_object: 86f5ee78a82371a40993f715f98658b3155a0122 src/dub/models/operations/listfolders.py: id: 42dbcd5bbad8 last_write_checksum: sha1:08420cc586f65b6e87da0ef4194b22684ffa96c1 pristine_git_object: 97434297eb82047b1b8d10532c11f150ee2432c0 - src/dub/models/operations/listpartnerapplications.py: - id: 3b868bf70447 - last_write_checksum: sha1:6fb233f2a8241a28482ae49ce5b2d183aebc68e0 - pristine_git_object: 8c36ce00fccc3aff0199c2fe15ae99aca9adc169 src/dub/models/operations/listpartners.py: id: f5459d336462 - last_write_checksum: sha1:5a7598873fd6e1691542ce33a117f1e811443593 - pristine_git_object: 8f84c99e9dfc665c7baf71d15d949c1fef95fb71 + last_write_checksum: sha1:155ab7d9ba367d0f12fa36f189890606915f51b6 + pristine_git_object: 6c65abf9a543a69b7a1e46f4720a3b2636faf699 src/dub/models/operations/listpayouts.py: id: d5cd6d0e4a39 last_write_checksum: sha1:f0e8735f776cd5b996b44979a04439a85da57339 pristine_git_object: 70d26604beb5bb7be368eae520313002b5a6b33e + src/dub/models/operations/listprogramapplications.py: + id: c6b69170ac61 + last_write_checksum: sha1:521a5a405e35abdf56c796046cfccbbc31175c6d + pristine_git_object: ddc4a5e0259d5f292bc3370f24e247be949394fc src/dub/models/operations/registerdomain.py: id: d228522511ae last_write_checksum: sha1:d5bd4b8cab186dd5120594327694c916d294c8e7 pristine_git_object: 6e1aee813d2ff4106c83a41b37d176ea7efabbe1 src/dub/models/operations/rejectbountysubmission.py: id: 417e94427b88 - last_write_checksum: sha1:6d32cb2f93a8cabb336a04b5509eeb18e8d47a05 - pristine_git_object: d1925c46736b6e450a4f8088a749f8bc2824468c - src/dub/models/operations/rejectpartnerapplication.py: - id: 61375af08c5b - last_write_checksum: sha1:f0b25ad1e9df8e8d87b5fcd174555ef515bb7db6 - pristine_git_object: dbacacfe950fffaea9e5c6b62bd2229b25e9702e + last_write_checksum: sha1:c0b4311e4a238d38df69a5e27dde51033d581e86 + pristine_git_object: 63065157f398136d96bdbe2efa85f812c695d672 + src/dub/models/operations/rejectprogramapplication.py: + id: 195302f5f57b + last_write_checksum: sha1:cfde0d12c71ba81ed57fb3ec21c7fe6bdd14f853 + pristine_git_object: 7bde35a60f5467d9fbda5f51eb5dc5dd7b9180c2 src/dub/models/operations/retrieveanalytics.py: id: d4bcf92cd8c8 last_write_checksum: sha1:1886683c544783ab315e9b091fbee16132c98ca8 @@ -2518,8 +2542,8 @@ trackedFiles: pristine_git_object: c5cc6b155c687234710e163dae8b4350c662fb9e src/dub/models/operations/retrievepartnerlinks.py: id: c72f7fa74edd - last_write_checksum: sha1:ed5c57ecba04c5b6f31044280dd9ae552873fb24 - pristine_git_object: 43bb0d42835f1be2d98cebf29b25186aaaa366f4 + last_write_checksum: sha1:171e157d6fc889da025f18be557957f77c2d80d9 + pristine_git_object: 1187b4366c94f9b52e467e39384432decd0a7831 src/dub/models/operations/tracklead.py: id: 973525c261fc last_write_checksum: sha1:6c7e1e1521e899f1c91ed5a090be81ba6046b43a @@ -2530,12 +2554,12 @@ trackedFiles: pristine_git_object: 6cf96dabc90c13a3541330327e96d87fbcd98d71 src/dub/models/operations/updatecommission.py: id: 5efb92f68d93 - last_write_checksum: sha1:da485fb51fc2d425fe77e88e9fe7304d4450fae1 - pristine_git_object: 9987a433eabfb9c16fa29d4f0c675a4190941e18 + last_write_checksum: sha1:d574c3003a65a545db66e7cfd830aa55561538c7 + pristine_git_object: bc96e255ec844bde6a9c4662b42d467e114117f3 src/dub/models/operations/updatecustomer.py: id: 5487589e4e19 - last_write_checksum: sha1:abfcc3c5706856a5c4dc7627f43569e61669bf26 - pristine_git_object: ca2d6442f4c20c5a4bcc256255c080165f880b47 + last_write_checksum: sha1:b14de6ac62c1a1d3f3cc7f15550e11b75da7f5eb + pristine_git_object: 98cbdf1baaec906c782bb70dc6753f21a84649ff src/dub/models/operations/updatedomain.py: id: 8426ea3ac23f last_write_checksum: sha1:2ada08a0d62644182270ae6cc810b6cf5c6187e8 @@ -2546,24 +2570,20 @@ trackedFiles: pristine_git_object: 21884af1725a9b19deb41d79ed23e78ddad93c0e src/dub/models/operations/updatelink.py: id: ddb2b605f252 - last_write_checksum: sha1:e8984ad905c0943be88760488020d547dcd35980 - pristine_git_object: 2ea398db2bdcdceda9be651d20c2e2120402692c + last_write_checksum: sha1:2de133c9e8a256ff6e893ecdfa1b5d3434923d09 + pristine_git_object: 7007878d3c9018e1849debdc0bc4103902922ace src/dub/models/operations/updatetag.py: id: 697a0792bc00 last_write_checksum: sha1:3cb9d35719b536d7691c55ddc56364330820a5ba pristine_git_object: 3b5dc130ee666767ab7b91d8cc314fa74a4564f2 src/dub/models/operations/upsertlink.py: id: fe7eaac2a034 - last_write_checksum: sha1:0b10330119609eb78cf5b10177f941aec066778d - pristine_git_object: 68109ffa31929478f0efc88b0017b6459bd2a81f + last_write_checksum: sha1:657239874913772740fab05f1ccc3fa4819bc961 + pristine_git_object: efedbaa84e5bf21f446dc27a5ab8fa1f9c70dbd9 src/dub/models/operations/upsertpartnerlink.py: id: 6eab8b4bb5c5 - last_write_checksum: sha1:3d01c5fe9e0a4987d0f09b74a53aeffeea218551 - pristine_git_object: b7590da8b61f6598e03f3face67255570a7fe4e6 - src/dub/partner_applications.py: - id: bb23ca342d44 - last_write_checksum: sha1:851abf1242e379ac40026e6c947711cf8f6578f6 - pristine_git_object: 065ef78375a485ad2e00b2a9f1ad7ab5b2b9b3b3 + last_write_checksum: sha1:8572fa28fc982a6e241170c77c3fcbadd4a6c3bc + pristine_git_object: 38714e079c16e14b795b1eec2801e6cf024ab6c8 src/dub/partners.py: id: eb45bbf562e5 last_write_checksum: sha1:8e0aa5dacaa59ea181eb448a983e4688cf0c4307 @@ -2572,6 +2592,10 @@ trackedFiles: id: 4f948a5d29de last_write_checksum: sha1:79031c2acb8636ba2135e9627adf9d274a836a60 pristine_git_object: e18e39d62ae04794d7c3528e40faed2551e2b3a9 + src/dub/program_applications.py: + id: 1e07a0e346fe + last_write_checksum: sha1:f5f065c7f3e85b4cb6a9de05ef8fff73112cf1f9 + pristine_git_object: 659c81bd7add168f4c630d522e76299281eac1fb src/dub/py.typed: id: d886b795ac31 last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 @@ -2582,8 +2606,8 @@ trackedFiles: pristine_git_object: 5e7eb3c773f3f6a41a2f7b067266733e1f505898 src/dub/sdk.py: id: 5d28a0e32a00 - last_write_checksum: sha1:4bd1f3096adaf74d6525e281a8d7c298f0702b8e - pristine_git_object: 9b28d63f208516ebe753f970309ae0384df45835 + last_write_checksum: sha1:646bc2bf1e162b3dce76d074b38469f977bf68dc + pristine_git_object: c3ef54f68f54bf2799ca4c112b31f8f2febcdffa src/dub/sdkconfiguration.py: id: fa9f969a69de last_write_checksum: sha1:22402c25c87674d65277af59eb3239f2e9744db3 @@ -2610,16 +2634,16 @@ trackedFiles: pristine_git_object: a9a640a1a7048736383f96c67c6290c86bf536ee src/dub/utils/__init__.py: id: 697102dbf447 - last_write_checksum: sha1:53c9544397bbc534c45a228feac3cdb2e9017fe6 - pristine_git_object: 7af3b82cf95edc2901bc85b2624c54f39b7f9724 + last_write_checksum: sha1:370ec05f8793eddc69ee21a4df8fb1b08d11561d + pristine_git_object: 6d6c5c3f9973b392924f0ee369a6c6bb5407ea02 src/dub/utils/annotations.py: id: ab0a38758bc4 last_write_checksum: sha1:a4824ad65f730303e4e1e3ec1febf87b4eb46dbc pristine_git_object: 12e0aa4f1151bb52474cc02e88397329b90703f6 src/dub/utils/datetimes.py: id: d9b823b8d64d - last_write_checksum: sha1:fa47d54c549ff9b95496ce91930fadfb04a36be9 - pristine_git_object: adad24762cf452d137abe94fda0fd26224cef593 + last_write_checksum: sha1:dcbdac8f63789f5d41b64d4d0515db77961e1d0c + pristine_git_object: 688c29a59b33a38c3b8bd3276f89c98483fcdb58 src/dub/utils/dynamic_imports.py: id: fdd579e44ae0 last_write_checksum: sha1:a1940c63feb8eddfd8026de53384baf5056d5dcc @@ -2666,20 +2690,20 @@ trackedFiles: pristine_git_object: 42d8d78e9981eed7507670014d99588e27ab325a src/dub/utils/serializers.py: id: daba26097d20 - last_write_checksum: sha1:7485f1425b0661fd84836186570df90207eec6af - pristine_git_object: 1031ed930bad5ece220cf7416a56c29f40f0588b + last_write_checksum: sha1:2fb543339b424a0818b126e69695df5c91cd4d7b + pristine_git_object: 5e57d36e8883501df8f6293e4c76ac337c4987eb src/dub/utils/unmarshal_json_response.py: id: bdf967ff27c1 last_write_checksum: sha1:56c483b569e2e3cea3d59a6948aedad865c4560f pristine_git_object: 8971e768545f379f26b9f3c2b13d03c0052c2d3b src/dub/utils/url.py: id: f18bfb912273 - last_write_checksum: sha1:6479961baa90432ca25626f8e40a7bbc32e73b41 - pristine_git_object: c78ccbae426ce6d385709d97ce0b1c2813ea2418 + last_write_checksum: sha1:0269c7e27f701e0c72d44bc2a36ac4d44ef2108c + pristine_git_object: 8eeaa7b0cc48e5e528afc0527da8b76ef46308d4 src/dub/utils/values.py: id: 7f3eccce7887 - last_write_checksum: sha1:65e1ee8607767a4fc1ae7a55c74d77a23ab3cef1 - pristine_git_object: ac217f473c5d52a454a2979b3eb35e66175d365c + last_write_checksum: sha1:c0eaaf8779a4ba3ae068579a57182667efef0cb7 + pristine_git_object: 094755b73f7f9382d8df997602080c82a55896fd examples: createLink: speakeasy-default-create-link: @@ -4367,9 +4391,90 @@ examples: application/json: {"error": {"code": "rate_limit_exceeded", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#rate-limit_exceeded"}} "500": application/json: {"error": {"code": "internal_server_error", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#internal-server_error"}} + listProgramApplications: + speakeasy-default-list-program-applications: + parameters: + query: + country: "US" + groupId: "grp_123" + sortOrder: "desc" + status: "pending" + page: 1 + pageSize: 50 + responses: + "200": + application/json: [{"id": "", "createdAt": "1716640323751", "partner": {"id": "", "name": "", "companyName": "Gleichner - Crona", "email": "Amya.Beer44@gmail.com", "image": "https://picsum.photos/seed/XFpPlFYh/3803/3088", "country": "Syrian Arab Republic", "status": "invited", "networkStatus": "rejected", "defaultPayoutMethod": "paypal", "payoutsEnabledAt": ""}, "applicationFormData": [{"label": "", "value": ""}]}] + "400": + application/json: {"error": {"code": "bad_request", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#bad-request"}} + "401": + application/json: {"error": {"code": "unauthorized", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#unauthorized"}} + "403": + application/json: {"error": {"code": "forbidden", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#forbidden"}} + "404": + application/json: {"error": {"code": "not_found", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#not-found"}} + "409": + application/json: {"error": {"code": "conflict", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#conflict"}} + "410": + application/json: {"error": {"code": "invite_expired", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#invite-expired"}} + "422": + application/json: {"error": {"code": "unprocessable_entity", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#unprocessable-entity"}} + "429": + application/json: {"error": {"code": "rate_limit_exceeded", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#rate-limit_exceeded"}} + "500": + application/json: {"error": {"code": "internal_server_error", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#internal-server_error"}} + approveProgramApplication: + speakeasy-default-approve-program-application: + requestBody: + application/json: {"partnerId": ""} + responses: + "200": + application/json: {"partnerId": ""} + "400": + application/json: {"error": {"code": "bad_request", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#bad-request"}} + "401": + application/json: {"error": {"code": "unauthorized", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#unauthorized"}} + "403": + application/json: {"error": {"code": "forbidden", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#forbidden"}} + "404": + application/json: {"error": {"code": "not_found", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#not-found"}} + "409": + application/json: {"error": {"code": "conflict", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#conflict"}} + "410": + application/json: {"error": {"code": "invite_expired", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#invite-expired"}} + "422": + application/json: {"error": {"code": "unprocessable_entity", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#unprocessable-entity"}} + "429": + application/json: {"error": {"code": "rate_limit_exceeded", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#rate-limit_exceeded"}} + "500": + application/json: {"error": {"code": "internal_server_error", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#internal-server_error"}} + rejectProgramApplication: + speakeasy-default-reject-program-application: + requestBody: + application/json: {"partnerId": "", "reapplicationTimeframe": "standard"} + responses: + "200": + application/json: {"partnerId": ""} + "400": + application/json: {"error": {"code": "bad_request", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#bad-request"}} + "401": + application/json: {"error": {"code": "unauthorized", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#unauthorized"}} + "403": + application/json: {"error": {"code": "forbidden", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#forbidden"}} + "404": + application/json: {"error": {"code": "not_found", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#not-found"}} + "409": + application/json: {"error": {"code": "conflict", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#conflict"}} + "410": + application/json: {"error": {"code": "invite_expired", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#invite-expired"}} + "422": + application/json: {"error": {"code": "unprocessable_entity", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#unprocessable-entity"}} + "429": + application/json: {"error": {"code": "rate_limit_exceeded", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#rate-limit_exceeded"}} + "500": + application/json: {"error": {"code": "internal_server_error", "message": "The requested resource was not found.", "doc_url": "https://dub.co/docs/api-reference/errors#internal-server_error"}} examplesVersion: 1.0.2 generatedTests: {} -releaseNotes: "## Python SDK Changes:\n* `dub.commissions.create()`: \n * `request.union(sale).discount_code` **Added**\n" +releaseNotes: "## Python SDK Changes:\n* `dub.program_applications.list()`: **Added**\n* `dub.program_applications.approve()`: **Added**\n* `dub.program_applications.reject()`: **Added**\n* `dub.partner_applications.list()`: **Removed** (Breaking ⚠️)\n* `dub.partner_applications.approve()`: **Removed** (Breaking ⚠️)\n* `dub.partner_applications.reject()`: **Removed** (Breaking ⚠️)\n* `dub.customers.update()`: \n * `request.request_body.subscription_canceled_at` **Added**\n* `dub.partners.list()`: `response.[].custom_reward_id` **Added**\n* `dub.partners.create()`: `response.custom_reward_id` **Added**\n* `dub.discount_codes.list()`: \n * `request.code` **Added**\n* `dub.commissions.list()`: \n * `request.bounty_submission_id` **Added**\n* `dub.bounties.list_submissions()`: `response.[].approved_social_metric_threshold` **Added**\n* `dub.bounties.approve_submission()`: `response.approved_social_metric_threshold` **Added**\n* `dub.bounties.reject_submission()`: `response.approved_social_metric_threshold` **Added**\n" generatedFiles: - .gitattributes - .vscode/settings.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 19fca30e..e954cbc5 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -29,7 +29,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false python: - version: 0.38.6 + version: 0.38.7 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 65145dc2..00ac0833 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.796.3 +speakeasyVersion: 1.800.1 sources: dub: sourceNamespace: dub - sourceRevisionDigest: sha256:0b1c3e87e6cad03a8d50cbfcb08922fa4a62248cb2059df8fd7d7e2d61722828 - sourceBlobDigest: sha256:c16b7aed885fec38dd43ca897fe90cea862ea256602c1ab327f8e6d760d313d0 + sourceRevisionDigest: sha256:d9498bd54e02e960637e5152390913e78ed16a844819f2327b2bd78c2aafc2b7 + sourceBlobDigest: sha256:a79fcf1256cf488949d50af09ebdd5a3accc65fea2c5ec55aebd84e13ea09abf tags: - latest - 0.0.1 @@ -11,10 +11,10 @@ targets: my-first-target: source: dub sourceNamespace: dub - sourceRevisionDigest: sha256:0b1c3e87e6cad03a8d50cbfcb08922fa4a62248cb2059df8fd7d7e2d61722828 - sourceBlobDigest: sha256:c16b7aed885fec38dd43ca897fe90cea862ea256602c1ab327f8e6d760d313d0 + sourceRevisionDigest: sha256:d9498bd54e02e960637e5152390913e78ed16a844819f2327b2bd78c2aafc2b7 + sourceBlobDigest: sha256:a79fcf1256cf488949d50af09ebdd5a3accc65fea2c5ec55aebd84e13ea09abf codeSamplesNamespace: code-samples-python-my-first-target - codeSamplesRevisionDigest: sha256:51ff26e2ae952e2520f6925e789f69fc1f0e26ada33c950e3155b89714478259 + codeSamplesRevisionDigest: sha256:080c5551db7efb3738fa22915f4c4c6cc1c24c41060be01e075be8e856eb689e workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 2cd781cb..03755752 100644 --- a/README.md +++ b/README.md @@ -126,11 +126,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -163,11 +163,11 @@ async def main(): "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -198,11 +198,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -235,11 +235,11 @@ async def main(): "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -324,12 +324,6 @@ asyncio.run(main()) * [update_many](docs/sdks/links/README.md#update_many) - Bulk update links * [upsert](docs/sdks/links/README.md#upsert) - Upsert a link -### [PartnerApplications](docs/sdks/partnerapplications/README.md) - -* [list](docs/sdks/partnerapplications/README.md#list) - List all pending partner applications -* [approve](docs/sdks/partnerapplications/README.md#approve) - Approve a partner application -* [reject](docs/sdks/partnerapplications/README.md#reject) - Reject a partner application - ### [Partners](docs/sdks/partners/README.md) * [list](docs/sdks/partners/README.md#list) - List all partners @@ -345,6 +339,12 @@ asyncio.run(main()) * [list](docs/sdks/payouts/README.md#list) - List all payouts +### [ProgramApplications](docs/sdks/programapplications/README.md) + +* [list](docs/sdks/programapplications/README.md#list) - List all program applications +* [approve](docs/sdks/programapplications/README.md#approve) - Approve a partner application +* [reject](docs/sdks/programapplications/README.md#reject) - Reject a partner application + ### [QRCodes](docs/sdks/qrcodes/README.md) * [get](docs/sdks/qrcodes/README.md#get) - Retrieve a QR code diff --git a/RELEASES.md b/RELEASES.md index e980f9fd..79170dee 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1636,4 +1636,14 @@ Based on: ### Generated - [python v0.38.6] . ### Releases -- [PyPI v0.38.6] https://pypi.org/project/dub/0.38.6 - . \ No newline at end of file +- [PyPI v0.38.6] https://pypi.org/project/dub/0.38.6 - . + +## 2026-10-06 05:43:01 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.800.1 (2.943.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.38.7] . +### Releases +- [PyPI v0.38.7] https://pypi.org/project/dub/0.38.7 - . \ No newline at end of file diff --git a/USAGE.md b/USAGE.md index e49aaf80..6b2e1f6e 100644 --- a/USAGE.md +++ b/USAGE.md @@ -17,11 +17,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -54,11 +54,11 @@ async def main(): "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -87,11 +87,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -124,11 +124,11 @@ async def main(): "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) diff --git a/codeSamples.yaml b/codeSamples.yaml index c54faf9e..58d0fa02 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -572,11 +572,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -627,11 +627,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -662,11 +662,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -679,11 +679,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -750,11 +750,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -800,11 +800,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -861,11 +861,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -891,66 +891,6 @@ actions: "query": "metadata['key']:'value'", }) - # Handle response - print(res) - - target: $["paths"]["/partners/applications"]["get"] - update: - x-codeSamples: - - lang: python - label: listPartnerApplications - source: |- - from dub import Dub - - - with Dub( - token="DUB_API_KEY", - ) as d_client: - - res = d_client.partner_applications.list(request={ - "country": "US", - "group_id": "grp_123", - "page": 1, - "page_size": 50, - }) - - # Handle response - print(res) - - target: $["paths"]["/partners/applications/approve"]["post"] - update: - x-codeSamples: - - lang: python - label: approvePartnerApplication - source: |- - from dub import Dub - - - with Dub( - token="DUB_API_KEY", - ) as d_client: - - res = d_client.partner_applications.approve(request={ - "partner_id": "", - }) - - # Handle response - print(res) - - target: $["paths"]["/partners/applications/reject"]["post"] - update: - x-codeSamples: - - lang: python - label: rejectPartnerApplication - source: |- - from dub import Dub - - - with Dub( - token="DUB_API_KEY", - ) as d_client: - - res = d_client.partner_applications.reject(request={ - "partner_id": "", - }) - # Handle response print(res) - target: $["paths"]["/partners/ban"]["post"] @@ -1026,11 +966,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -1061,11 +1001,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -1091,6 +1031,66 @@ actions: "page_size": 50, }) + # Handle response + print(res) + - target: $["paths"]["/program-applications"]["get"] + update: + x-codeSamples: + - lang: python + label: listProgramApplications + source: |- + from dub import Dub + + + with Dub( + token="DUB_API_KEY", + ) as d_client: + + res = d_client.program_applications.list(request={ + "country": "US", + "group_id": "grp_123", + "page": 1, + "page_size": 50, + }) + + # Handle response + print(res) + - target: $["paths"]["/program-applications/approve"]["post"] + update: + x-codeSamples: + - lang: python + label: approveProgramApplication + source: |- + from dub import Dub + + + with Dub( + token="DUB_API_KEY", + ) as d_client: + + res = d_client.program_applications.approve(request={ + "partner_id": "", + }) + + # Handle response + print(res) + - target: $["paths"]["/program-applications/reject"]["post"] + update: + x-codeSamples: + - lang: python + label: rejectProgramApplication + source: |- + from dub import Dub + + + with Dub( + token="DUB_API_KEY", + ) as d_client: + + res = d_client.program_applications.reject(request={ + "partner_id": "", + }) + # Handle response print(res) - target: $["paths"]["/qr"]["get"] @@ -1207,11 +1207,11 @@ actions: "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, diff --git a/docs/models/components/commissioncreatedeventdata.md b/docs/models/components/commissioncreatedeventdata.md index f0c5905e..40fbc76e 100644 --- a/docs/models/components/commissioncreatedeventdata.md +++ b/docs/models/components/commissioncreatedeventdata.md @@ -15,7 +15,7 @@ | `description` | *Nullable[str]* | :heavy_check_mark: | An optional description of the commission. | | | `quantity` | *float* | :heavy_check_mark: | The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions. | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The user who created the manual commission. | | -| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | User-provided metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`). | | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | Metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`), or from Stripe webhook metadata. | | | `created_at` | *str* | :heavy_check_mark: | The date and time when the commission was created. | | | `updated_at` | *str* | :heavy_check_mark: | The date and time when the commission was last updated. | | | `partner` | [components.CommissionCreatedEventPartner](../../models/components/commissioncreatedeventpartner.md) | :heavy_check_mark: | N/A | | diff --git a/docs/models/components/partnerenrolledeventdata.md b/docs/models/components/partnerenrolledeventdata.md index 0e608c1f..a7b3c61b 100644 --- a/docs/models/components/partnerenrolledeventdata.md +++ b/docs/models/components/partnerenrolledeventdata.md @@ -31,6 +31,7 @@ | `lead_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `sale_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `referral_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `custom_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `discount_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `application_id` | *OptionalNullable[str]* | :heavy_minus_sign: | If the partner submitted an application to join the program, this is the ID of the application. | | `banned_at` | *OptionalNullable[str]* | :heavy_minus_sign: | If the partner was banned from the program, this is the date of the ban. | diff --git a/docs/models/components/partnerapplicationsubmittedevent.md b/docs/models/components/programapplicationsubmittedevent.md similarity index 90% rename from docs/models/components/partnerapplicationsubmittedevent.md rename to docs/models/components/programapplicationsubmittedevent.md index 0f295f10..47fe7622 100644 --- a/docs/models/components/partnerapplicationsubmittedevent.md +++ b/docs/models/components/programapplicationsubmittedevent.md @@ -1,4 +1,4 @@ -# PartnerApplicationSubmittedEvent +# ProgramApplicationSubmittedEvent Triggered when a partner submits an application to join a program. @@ -8,6 +8,6 @@ Triggered when a partner submits an application to join a program. | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | `id` | *str* | :heavy_check_mark: | N/A | -| `event` | [components.PartnerApplicationSubmittedEventEvent](../../models/components/partnerapplicationsubmittedeventevent.md) | :heavy_check_mark: | N/A | +| `event` | [components.ProgramApplicationSubmittedEventEvent](../../models/components/programapplicationsubmittedeventevent.md) | :heavy_check_mark: | N/A | | `created_at` | *str* | :heavy_check_mark: | N/A | -| `data` | [components.PartnerApplicationSubmittedEventData](../../models/components/partnerapplicationsubmittedeventdata.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| `data` | [components.ProgramApplicationSubmittedEventData](../../models/components/programapplicationsubmittedeventdata.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/partnerapplicationsubmittedeventdata.md b/docs/models/components/programapplicationsubmittedeventdata.md similarity index 94% rename from docs/models/components/partnerapplicationsubmittedeventdata.md rename to docs/models/components/programapplicationsubmittedeventdata.md index 0e8084a1..d8c8d3f4 100644 --- a/docs/models/components/partnerapplicationsubmittedeventdata.md +++ b/docs/models/components/programapplicationsubmittedeventdata.md @@ -1,4 +1,4 @@ -# PartnerApplicationSubmittedEventData +# ProgramApplicationSubmittedEventData ## Fields @@ -7,5 +7,5 @@ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | | `id` | *str* | :heavy_check_mark: | N/A | | `created_at` | *str* | :heavy_check_mark: | N/A | -| `partner` | [components.PartnerApplicationSubmittedEventPartner](../../models/components/partnerapplicationsubmittedeventpartner.md) | :heavy_check_mark: | N/A | +| `partner` | [components.ProgramApplicationSubmittedEventPartner](../../models/components/programapplicationsubmittedeventpartner.md) | :heavy_check_mark: | N/A | | `application_form_data` | List[[components.ApplicationFormData](../../models/components/applicationformdata.md)] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/partnerapplicationsubmittedeventevent.md b/docs/models/components/programapplicationsubmittedeventevent.md similarity index 62% rename from docs/models/components/partnerapplicationsubmittedeventevent.md rename to docs/models/components/programapplicationsubmittedeventevent.md index 39860c82..233df9c2 100644 --- a/docs/models/components/partnerapplicationsubmittedeventevent.md +++ b/docs/models/components/programapplicationsubmittedeventevent.md @@ -1,11 +1,11 @@ -# PartnerApplicationSubmittedEventEvent +# ProgramApplicationSubmittedEventEvent ## Example Usage ```python -from dub.models.components import PartnerApplicationSubmittedEventEvent +from dub.models.components import ProgramApplicationSubmittedEventEvent -value = PartnerApplicationSubmittedEventEvent.PARTNER_APPLICATION_SUBMITTED +value = ProgramApplicationSubmittedEventEvent.PARTNER_APPLICATION_SUBMITTED ``` diff --git a/docs/models/components/partnerapplicationsubmittedeventpartner.md b/docs/models/components/programapplicationsubmittedeventpartner.md similarity index 97% rename from docs/models/components/partnerapplicationsubmittedeventpartner.md rename to docs/models/components/programapplicationsubmittedeventpartner.md index a00506c1..5b137e48 100644 --- a/docs/models/components/partnerapplicationsubmittedeventpartner.md +++ b/docs/models/components/programapplicationsubmittedeventpartner.md @@ -1,4 +1,4 @@ -# PartnerApplicationSubmittedEventPartner +# ProgramApplicationSubmittedEventPartner ## Fields @@ -13,7 +13,7 @@ | `description` | *OptionalNullable[str]* | :heavy_minus_sign: | A brief description of the partner and their background. | | `country` | *Nullable[str]* | :heavy_check_mark: | The partner's country (required for tax purposes). | | `group_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's group ID on Dub. | -| `status` | [components.PartnerApplicationSubmittedEventStatus](../../models/components/partnerapplicationsubmittedeventstatus.md) | :heavy_check_mark: | The status of the partner's enrollment in the program. | +| `status` | [components.ProgramApplicationSubmittedEventStatus](../../models/components/programapplicationsubmittedeventstatus.md) | :heavy_check_mark: | The status of the partner's enrollment in the program. | | `website` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's website URL (including the https protocol). | | `youtube` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's YouTube channel username (e.g. `johndoe`). | | `twitter` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's Twitter username (e.g. `johndoe`). | diff --git a/docs/models/components/partnerapplicationsubmittedeventstatus.md b/docs/models/components/programapplicationsubmittedeventstatus.md similarity index 73% rename from docs/models/components/partnerapplicationsubmittedeventstatus.md rename to docs/models/components/programapplicationsubmittedeventstatus.md index 0272e23c..cebc5b0e 100644 --- a/docs/models/components/partnerapplicationsubmittedeventstatus.md +++ b/docs/models/components/programapplicationsubmittedeventstatus.md @@ -1,13 +1,13 @@ -# PartnerApplicationSubmittedEventStatus +# ProgramApplicationSubmittedEventStatus The status of the partner's enrollment in the program. ## Example Usage ```python -from dub.models.components import PartnerApplicationSubmittedEventStatus +from dub.models.components import ProgramApplicationSubmittedEventStatus -value = PartnerApplicationSubmittedEventStatus.PENDING +value = ProgramApplicationSubmittedEventStatus.PENDING ``` diff --git a/docs/models/components/webhookevent.md b/docs/models/components/webhookevent.md index 4d96bd0a..142a3494 100644 --- a/docs/models/components/webhookevent.md +++ b/docs/models/components/webhookevent.md @@ -35,10 +35,10 @@ value: components.SaleCreatedEvent = /* values here */ value: components.PartnerEnrolledEvent = /* values here */ ``` -### `components.PartnerApplicationSubmittedEvent` +### `components.ProgramApplicationSubmittedEvent` ```python -value: components.PartnerApplicationSubmittedEvent = /* values here */ +value: components.ProgramApplicationSubmittedEvent = /* values here */ ``` ### `components.PartnerMergedEvent` diff --git a/docs/models/operations/approvebountysubmissionresponsebody.md b/docs/models/operations/approvebountysubmissionresponsebody.md index 01a48a27..1df1aead 100644 --- a/docs/models/operations/approvebountysubmissionresponsebody.md +++ b/docs/models/operations/approvebountysubmissionresponsebody.md @@ -17,6 +17,7 @@ The approved bounty submission. | `performance_count` | *Nullable[float]* | :heavy_check_mark: | The performance count of the submission | | `social_metric_count` | *Nullable[int]* | :heavy_check_mark: | The social metric count (views or likes) for the social content | | `social_metrics_last_synced_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time the submission's social metrics were last synced | +| `approved_social_metric_threshold` | *OptionalNullable[int]* | :heavy_minus_sign: | The highest social metric milestone that has been approved and paid out for this submission | | `created_at` | *str* | :heavy_check_mark: | The date and time the submission was created | | `completed_at` | *Nullable[str]* | :heavy_check_mark: | The date and time the submission was completed | | `reviewed_at` | *Nullable[str]* | :heavy_check_mark: | The date and time the submission was reviewed | diff --git a/docs/models/operations/approvepartnerapplicationrequestbody.md b/docs/models/operations/approveprogramapplicationrequestbody.md similarity index 98% rename from docs/models/operations/approvepartnerapplicationrequestbody.md rename to docs/models/operations/approveprogramapplicationrequestbody.md index 763917db..b11cb792 100644 --- a/docs/models/operations/approvepartnerapplicationrequestbody.md +++ b/docs/models/operations/approveprogramapplicationrequestbody.md @@ -1,4 +1,4 @@ -# ApprovePartnerApplicationRequestBody +# ApproveProgramApplicationRequestBody ## Fields diff --git a/docs/models/operations/approvepartnerapplicationresponsebody.md b/docs/models/operations/approveprogramapplicationresponsebody.md similarity index 91% rename from docs/models/operations/approvepartnerapplicationresponsebody.md rename to docs/models/operations/approveprogramapplicationresponsebody.md index 44445f0c..f6ea44c0 100644 --- a/docs/models/operations/approvepartnerapplicationresponsebody.md +++ b/docs/models/operations/approveprogramapplicationresponsebody.md @@ -1,4 +1,4 @@ -# ApprovePartnerApplicationResponseBody +# ApproveProgramApplicationResponseBody The approved partner diff --git a/docs/models/operations/creatediscountcoderequestbody.md b/docs/models/operations/creatediscountcoderequestbody.md index 2bb7a1d6..6ea9dc8e 100644 --- a/docs/models/operations/creatediscountcoderequestbody.md +++ b/docs/models/operations/creatediscountcoderequestbody.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -| `code` | *Optional[str]* | :heavy_minus_sign: | The discount code to create. If omitted, a unique code will be generated automatically from the partner's name. | -| `partner_id` | *str* | :heavy_check_mark: | The ID of the partner to create a discount code for. | -| `link_id` | *str* | :heavy_check_mark: | The ID of the partner's referral link to associate this discount code with. Each link can only have one discount code. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *Optional[str]* | :heavy_minus_sign: | The discount code to create. If omitted, a unique code will be generated automatically from the partner's name. Stripe and Shopify codes can only contain letters, numbers, dashes, and underscores. Custom provider codes can contain any characters. | +| `partner_id` | *str* | :heavy_check_mark: | The ID of the partner to create a discount code for. | +| `link_id` | *str* | :heavy_check_mark: | The ID of the partner's referral link to associate this discount code with. Each link can only have one discount code. | \ No newline at end of file diff --git a/docs/models/operations/createlinkrequestbody.md b/docs/models/operations/createlinkrequestbody.md index e3c2dcaa..479069c0 100644 --- a/docs/models/operations/createlinkrequestbody.md +++ b/docs/models/operations/createlinkrequestbody.md @@ -9,8 +9,8 @@ | `domain` | *Optional[str]* | :heavy_minus_sign: | The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains). | | | `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | | | `key_length` | *Optional[float]* | :heavy_minus_sign: | The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`. | | -| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. | 123456 | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. | | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it. | 123456 | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it. | | | `program_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the program the short link is associated with. | | | `partner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner the short link is associated with. | | | `prefix` | *Optional[str]* | :heavy_minus_sign: | The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided. | | diff --git a/docs/models/operations/createpartnerlinklinkprops.md b/docs/models/operations/createpartnerlinklinkprops.md index 4f3c9ea9..959e0269 100644 --- a/docs/models/operations/createpartnerlinklinkprops.md +++ b/docs/models/operations/createpartnerlinklinkprops.md @@ -5,27 +5,27 @@ Additional properties that you can pass to the partner's short link. Will be use ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. | 123456 | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. | | -| `prefix` | *Optional[str]* | :heavy_minus_sign: | Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`). | | -| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | -| `tag_ids` | [Optional[operations.CreatePartnerLinkTagIds]](../../models/operations/createpartnerlinktagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | -| `tag_names` | [Optional[operations.CreatePartnerLinkTagNames]](../../models/operations/createpartnerlinktagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | -| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | | -| `expires_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | | -| `expired_url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | -| `password` | *OptionalNullable[str]* | :heavy_minus_sign: | The password required to access the destination URL of the short link. | | -| `proxy` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses Custom Link Previews feature. Defaults to `false` if not provided. | | -| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview title (og:title). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview description (og:description). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `image` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview image (og:image). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `video` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. Defaults to `false` if not provided. | | -| `ios` | *OptionalNullable[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | | -| `android` | *OptionalNullable[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | | -| `do_index` | *Optional[bool]* | :heavy_minus_sign: | Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex | | -| `test_variants` | List[[operations.CreatePartnerLinkTestVariants](../../models/operations/createpartnerlinktestvariants.md)] | :heavy_minus_sign: | An array of A/B test URLs and the percentage of traffic to send to each URL. | [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
] | -| `test_started_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests started. | | -| `test_completed_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests were or will be completed. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it. | 123456 | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it. | | +| `prefix` | *Optional[str]* | :heavy_minus_sign: | Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`). | | +| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | +| `tag_ids` | [Optional[operations.CreatePartnerLinkTagIds]](../../models/operations/createpartnerlinktagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | +| `tag_names` | [Optional[operations.CreatePartnerLinkTagNames]](../../models/operations/createpartnerlinktagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | | +| `expires_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | | +| `expired_url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | +| `password` | *OptionalNullable[str]* | :heavy_minus_sign: | The password required to access the destination URL of the short link. | | +| `proxy` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses Custom Link Previews feature. Defaults to `false` if not provided. | | +| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview title (og:title). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview description (og:description). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `image` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview image (og:image). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `video` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. Defaults to `false` if not provided. | | +| `ios` | *OptionalNullable[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | | +| `android` | *OptionalNullable[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | | +| `do_index` | *Optional[bool]* | :heavy_minus_sign: | Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex | | +| `test_variants` | List[[operations.CreatePartnerLinkTestVariants](../../models/operations/createpartnerlinktestvariants.md)] | :heavy_minus_sign: | An array of A/B test URLs and the percentage of traffic to send to each URL. | [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
] | +| `test_started_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests started. | | +| `test_completed_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests were or will be completed. | | \ No newline at end of file diff --git a/docs/models/operations/createpartnerlinkrequestbody.md b/docs/models/operations/createpartnerlinkrequestbody.md index 756fcb12..d93b11b4 100644 --- a/docs/models/operations/createpartnerlinkrequestbody.md +++ b/docs/models/operations/createpartnerlinkrequestbody.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `partner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner to create a link for. Will take precedence over `tenantId` if provided. | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner in your system. If both `partnerId` and `tenantId` are not provided, an error will be thrown. | -| `url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to shorten (if not provided, the program's default URL will be used). Will throw an error if the domain doesn't match the program's default URL domain. | -| `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | -| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | -| `link_props` | [Optional[operations.CreatePartnerLinkLinkProps]](../../models/operations/createpartnerlinklinkprops.md) | :heavy_minus_sign: | Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `partner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner to create a link for. Will take precedence over `tenantId` if provided. | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner in your system. If both `partnerId` and `tenantId` are not provided, an error will be thrown. | +| `url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to shorten (if not provided, the program's default URL will be used). | +| `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | +| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | +| `link_props` | [Optional[operations.CreatePartnerLinkLinkProps]](../../models/operations/createpartnerlinklinkprops.md) | :heavy_minus_sign: | Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner. | \ No newline at end of file diff --git a/docs/models/operations/createpartnerresponsebody.md b/docs/models/operations/createpartnerresponsebody.md index f1d32b11..1ffe664d 100644 --- a/docs/models/operations/createpartnerresponsebody.md +++ b/docs/models/operations/createpartnerresponsebody.md @@ -33,6 +33,7 @@ The created or updated partner | `lead_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `sale_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `referral_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `custom_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `discount_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `application_id` | *OptionalNullable[str]* | :heavy_minus_sign: | If the partner submitted an application to join the program, this is the ID of the application. | | `banned_at` | *OptionalNullable[str]* | :heavy_minus_sign: | If the partner was banned from the program, this is the date of the ban. | diff --git a/docs/models/operations/createreferralsembedtokenlinkprops.md b/docs/models/operations/createreferralsembedtokenlinkprops.md index e025ce02..6ec9478f 100644 --- a/docs/models/operations/createreferralsembedtokenlinkprops.md +++ b/docs/models/operations/createreferralsembedtokenlinkprops.md @@ -5,27 +5,27 @@ Additional properties that you can pass to the partner's short link. Will be use ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. | 123456 | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. | | -| `prefix` | *Optional[str]* | :heavy_minus_sign: | Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`). | | -| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | -| `tag_ids` | [Optional[operations.CreateReferralsEmbedTokenTagIds]](../../models/operations/createreferralsembedtokentagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | -| `tag_names` | [Optional[operations.CreateReferralsEmbedTokenTagNames]](../../models/operations/createreferralsembedtokentagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | -| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | | -| `expires_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | | -| `expired_url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | -| `password` | *OptionalNullable[str]* | :heavy_minus_sign: | The password required to access the destination URL of the short link. | | -| `proxy` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses Custom Link Previews feature. Defaults to `false` if not provided. | | -| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview title (og:title). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview description (og:description). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `image` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview image (og:image). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `video` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. Defaults to `false` if not provided. | | -| `ios` | *OptionalNullable[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | | -| `android` | *OptionalNullable[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | | -| `do_index` | *Optional[bool]* | :heavy_minus_sign: | Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex | | -| `test_variants` | List[[operations.CreateReferralsEmbedTokenTestVariants](../../models/operations/createreferralsembedtokentestvariants.md)] | :heavy_minus_sign: | An array of A/B test URLs and the percentage of traffic to send to each URL. | [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
] | -| `test_started_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests started. | | -| `test_completed_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests were or will be completed. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it. | 123456 | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it. | | +| `prefix` | *Optional[str]* | :heavy_minus_sign: | Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`). | | +| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | +| `tag_ids` | [Optional[operations.CreateReferralsEmbedTokenTagIds]](../../models/operations/createreferralsembedtokentagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | +| `tag_names` | [Optional[operations.CreateReferralsEmbedTokenTagNames]](../../models/operations/createreferralsembedtokentagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | | +| `expires_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | | +| `expired_url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | +| `password` | *OptionalNullable[str]* | :heavy_minus_sign: | The password required to access the destination URL of the short link. | | +| `proxy` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses Custom Link Previews feature. Defaults to `false` if not provided. | | +| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview title (og:title). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview description (og:description). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `image` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview image (og:image). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `video` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. Defaults to `false` if not provided. | | +| `ios` | *OptionalNullable[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | | +| `android` | *OptionalNullable[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | | +| `do_index` | *Optional[bool]* | :heavy_minus_sign: | Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex | | +| `test_variants` | List[[operations.CreateReferralsEmbedTokenTestVariants](../../models/operations/createreferralsembedtokentestvariants.md)] | :heavy_minus_sign: | An array of A/B test URLs and the percentage of traffic to send to each URL. | [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
] | +| `test_started_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests started. | | +| `test_completed_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests were or will be completed. | | \ No newline at end of file diff --git a/docs/models/operations/data.md b/docs/models/operations/data.md index 8f6b6d6e..a5022764 100644 --- a/docs/models/operations/data.md +++ b/docs/models/operations/data.md @@ -6,7 +6,7 @@ | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `url` | *Optional[str]* | :heavy_minus_sign: | The destination URL of the short link. | https://google.com | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. | | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it. | | | `program_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the program the short link is associated with. | | | `partner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner the short link is associated with. | | | `track_conversion` | *Optional[bool]* | :heavy_minus_sign: | Whether to track conversions for the short link. Defaults to `false` if not provided. | | diff --git a/docs/models/operations/getcustomersrequest.md b/docs/models/operations/getcustomersrequest.md index 251c12c0..2b6ac939 100644 --- a/docs/models/operations/getcustomersrequest.md +++ b/docs/models/operations/getcustomersrequest.md @@ -3,19 +3,19 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| `email` | *Optional[str]* | :heavy_minus_sign: | A case-sensitive filter on the list based on the customer's `email` field. The value must be a string. Takes precedence over `externalId`. | | -| `external_id` | *Optional[str]* | :heavy_minus_sign: | A case-sensitive filter on the list based on the customer's `externalId` field. The value must be a string. Takes precedence over `search`. | | -| `search` | *Optional[str]* | :heavy_minus_sign: | A search query to filter customers by email, externalId, or name. If `email` or `externalId` is provided, this will be ignored. | | -| `country` | *Optional[str]* | :heavy_minus_sign: | A filter on the list based on the customer's `country` field. | | -| `link_id` | *Optional[str]* | :heavy_minus_sign: | A filter on the list based on the customer's `linkId` field (the referral link ID). | | -| `program_id` | *Optional[str]* | :heavy_minus_sign: | Program ID to filter by. | | -| `partner_id` | *Optional[str]* | :heavy_minus_sign: | Partner ID to filter by. | | -| `include_expanded_fields` | *Optional[bool]* | :heavy_minus_sign: | Whether to include expanded fields on the customer (`link`, `partner`, `discount`). | | -| `sort_by` | [Optional[operations.GetCustomersQueryParamSortBy]](../../models/operations/getcustomersqueryparamsortby.md) | :heavy_minus_sign: | The field to sort the customers by. The default is `createdAt`. | | -| `sort_order` | [Optional[operations.GetCustomersQueryParamSortOrder]](../../models/operations/getcustomersqueryparamsortorder.md) | :heavy_minus_sign: | The sort order. The default is `desc`. | | -| `ending_before` | *Optional[str]* | :heavy_minus_sign: | If specified, the query only searches for results before this cursor. Mutually exclusive with `startingAfter`. | cus_1KAP4CDPBSVMMBMH9XX3YZZ0Z | -| `starting_after` | *Optional[str]* | :heavy_minus_sign: | If specified, the query only searches for results after this cursor. Mutually exclusive with `endingBefore`. | cus_1KAP4CDPBSVMMBMH9XX3YZZ0Z | -| `page` | *Optional[int]* | :heavy_minus_sign: | DEPRECATED. Use `startingAfter` instead. | 1 | -| `page_size` | *Optional[int]* | :heavy_minus_sign: | The number of items per page. | 50 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `email` | *Optional[str]* | :heavy_minus_sign: | A case-sensitive filter on the list based on the customer's `email` field. The value must be a string. Takes precedence over `externalId`. | | +| `external_id` | *Optional[str]* | :heavy_minus_sign: | A case-sensitive filter on the list based on the customer's `externalId` field. The value must be a string. Takes precedence over `search`. | | +| `search` | *Optional[str]* | :heavy_minus_sign: | A search query to filter customers by email, name, or customer ID (`cus_...`). If `email` or `externalId` is provided, this will be ignored. | | +| `country` | *Optional[str]* | :heavy_minus_sign: | A filter on the list based on the customer's `country` field. | | +| `link_id` | *Optional[str]* | :heavy_minus_sign: | A filter on the list based on the customer's `linkId` field (the referral link ID). | | +| `program_id` | *Optional[str]* | :heavy_minus_sign: | Program ID to filter by. | | +| `partner_id` | *Optional[str]* | :heavy_minus_sign: | Partner ID to filter by. | | +| `include_expanded_fields` | *Optional[bool]* | :heavy_minus_sign: | Whether to include expanded fields on the customer (`link`, `partner`, `discount`). | | +| `sort_by` | [Optional[operations.GetCustomersQueryParamSortBy]](../../models/operations/getcustomersqueryparamsortby.md) | :heavy_minus_sign: | The field to sort the customers by. The default is `createdAt`. | | +| `sort_order` | [Optional[operations.GetCustomersQueryParamSortOrder]](../../models/operations/getcustomersqueryparamsortorder.md) | :heavy_minus_sign: | The sort order. The default is `desc`. | | +| `ending_before` | *Optional[str]* | :heavy_minus_sign: | If specified, the query only searches for results before this cursor. Mutually exclusive with `startingAfter`. | cus_1KAP4CDPBSVMMBMH9XX3YZZ0Z | +| `starting_after` | *Optional[str]* | :heavy_minus_sign: | If specified, the query only searches for results after this cursor. Mutually exclusive with `endingBefore`. | cus_1KAP4CDPBSVMMBMH9XX3YZZ0Z | +| `page` | *Optional[int]* | :heavy_minus_sign: | DEPRECATED. Use `startingAfter` instead. | 1 | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | The number of items per page. | 50 | \ No newline at end of file diff --git a/docs/models/operations/linkprops.md b/docs/models/operations/linkprops.md index 6f9af6e6..486180cb 100644 --- a/docs/models/operations/linkprops.md +++ b/docs/models/operations/linkprops.md @@ -5,27 +5,27 @@ Additional properties that you can pass to the partner's short link. Will be use ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. | 123456 | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. | | -| `prefix` | *Optional[str]* | :heavy_minus_sign: | Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`). | | -| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | -| `tag_ids` | [Optional[operations.CreatePartnerTagIds]](../../models/operations/createpartnertagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | -| `tag_names` | [Optional[operations.CreatePartnerTagNames]](../../models/operations/createpartnertagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | -| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | | -| `expires_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | | -| `expired_url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | -| `password` | *OptionalNullable[str]* | :heavy_minus_sign: | The password required to access the destination URL of the short link. | | -| `proxy` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses Custom Link Previews feature. Defaults to `false` if not provided. | | -| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview title (og:title). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview description (og:description). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `image` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview image (og:image). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `video` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. Defaults to `false` if not provided. | | -| `ios` | *OptionalNullable[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | | -| `android` | *OptionalNullable[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | | -| `do_index` | *Optional[bool]* | :heavy_minus_sign: | Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex | | -| `test_variants` | List[[operations.CreatePartnerTestVariants](../../models/operations/createpartnertestvariants.md)] | :heavy_minus_sign: | An array of A/B test URLs and the percentage of traffic to send to each URL. | [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
] | -| `test_started_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests started. | | -| `test_completed_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests were or will be completed. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it. | 123456 | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it. | | +| `prefix` | *Optional[str]* | :heavy_minus_sign: | Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`). | | +| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | +| `tag_ids` | [Optional[operations.CreatePartnerTagIds]](../../models/operations/createpartnertagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | +| `tag_names` | [Optional[operations.CreatePartnerTagNames]](../../models/operations/createpartnertagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | | +| `expires_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | | +| `expired_url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | +| `password` | *OptionalNullable[str]* | :heavy_minus_sign: | The password required to access the destination URL of the short link. | | +| `proxy` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses Custom Link Previews feature. Defaults to `false` if not provided. | | +| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview title (og:title). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview description (og:description). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `image` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview image (og:image). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `video` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. Defaults to `false` if not provided. | | +| `ios` | *OptionalNullable[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | | +| `android` | *OptionalNullable[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | | +| `do_index` | *Optional[bool]* | :heavy_minus_sign: | Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex | | +| `test_variants` | List[[operations.CreatePartnerTestVariants](../../models/operations/createpartnertestvariants.md)] | :heavy_minus_sign: | An array of A/B test URLs and the percentage of traffic to send to each URL. | [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
] | +| `test_started_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests started. | | +| `test_completed_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests were or will be completed. | | \ No newline at end of file diff --git a/docs/models/operations/listbountysubmissionsresponsebody.md b/docs/models/operations/listbountysubmissionsresponsebody.md index 372bb4b6..fee91ffc 100644 --- a/docs/models/operations/listbountysubmissionsresponsebody.md +++ b/docs/models/operations/listbountysubmissionsresponsebody.md @@ -15,6 +15,7 @@ | `performance_count` | *Nullable[float]* | :heavy_check_mark: | The performance count of the submission | | `social_metric_count` | *Nullable[int]* | :heavy_check_mark: | The social metric count (views or likes) for the social content | | `social_metrics_last_synced_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time the submission's social metrics were last synced | +| `approved_social_metric_threshold` | *OptionalNullable[int]* | :heavy_minus_sign: | The highest social metric milestone that has been approved and paid out for this submission | | `created_at` | *str* | :heavy_check_mark: | The date and time the submission was created | | `completed_at` | *Nullable[str]* | :heavy_check_mark: | The date and time the submission was completed | | `reviewed_at` | *Nullable[str]* | :heavy_check_mark: | The date and time the submission was reviewed | diff --git a/docs/models/operations/listcommissionsqueryparamstatus.md b/docs/models/operations/listcommissionsqueryparamstatus.md new file mode 100644 index 00000000..6f92830c --- /dev/null +++ b/docs/models/operations/listcommissionsqueryparamstatus.md @@ -0,0 +1,25 @@ +# ListCommissionsQueryParamStatus + +Filter the list of commissions by their corresponding status. + +## Example Usage + +```python +from dub.models.operations import ListCommissionsQueryParamStatus + +value = ListCommissionsQueryParamStatus.PENDING +``` + + +## Values + +| Name | Value | +| ----------- | ----------- | +| `PENDING` | pending | +| `PROCESSED` | processed | +| `PAID` | paid | +| `REFUNDED` | refunded | +| `DUPLICATE` | duplicate | +| `FRAUD` | fraud | +| `CANCELED` | canceled | +| `HOLD` | hold | \ No newline at end of file diff --git a/docs/models/operations/listcommissionsrequest.md b/docs/models/operations/listcommissionsrequest.md index 8de4f367..0a847b08 100644 --- a/docs/models/operations/listcommissionsrequest.md +++ b/docs/models/operations/listcommissionsrequest.md @@ -8,12 +8,13 @@ | `type` | [Optional[operations.Type]](../../models/operations/type.md) | :heavy_minus_sign: | Filter the list of commissions by type.
Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples:
- "sale"
- "sale,lead"
- "-click" | | | `customer_id` | *Optional[str]* | :heavy_minus_sign: | Filter the list of commissions by the associated customer. | | | `payout_id` | *Optional[str]* | :heavy_minus_sign: | Filter the list of commissions by the associated payout. | | +| `bounty_submission_id` | *Optional[str]* | :heavy_minus_sign: | Filter the list of commissions by the associated bounty submission. | | | `partner_id` | *Optional[str]* | :heavy_minus_sign: | Filter the list of commissions by the associated partner. When specified, takes precedence over `tenantId`.
Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`).
Examples:
- "partner_abc"
- "partner_abc,partner_xyz"
- "-partner_abc" | | | `tenant_id` | *Optional[str]* | :heavy_minus_sign: | Filter the list of commissions by the associated partner's `tenantId` (their unique ID within your database). | | | `group_id` | *Optional[str]* | :heavy_minus_sign: | Filter the list of commissions by the associated partner group.
Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). Examples:
- "group_abc"
- "group_abc,group_xyz"
- "-group_abc" | | | `partner_tag_id` | *Optional[str]* | :heavy_minus_sign: | Filter the list of commissions by the associated partner tag.
Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`).
Examples:
- "ptag_abc"
- "ptag_abc,ptag_xyz"
- "-ptag_abc" | | | `invoice_id` | *Optional[str]* | :heavy_minus_sign: | Filter the list of commissions by the associated invoice. Since invoiceId is unique on a per-program basis, this will only return one commission per invoice. | | -| `status` | [Optional[operations.QueryParamStatus]](../../models/operations/queryparamstatus.md) | :heavy_minus_sign: | Filter the list of commissions by their corresponding status. | | +| `status` | [Optional[operations.ListCommissionsQueryParamStatus]](../../models/operations/listcommissionsqueryparamstatus.md) | :heavy_minus_sign: | Filter the list of commissions by their corresponding status. | | | `sort_by` | [Optional[operations.ListCommissionsQueryParamSortBy]](../../models/operations/listcommissionsqueryparamsortby.md) | :heavy_minus_sign: | The field to sort the list of commissions by. | | | `sort_order` | [Optional[operations.ListCommissionsQueryParamSortOrder]](../../models/operations/listcommissionsqueryparamsortorder.md) | :heavy_minus_sign: | The sort order for the list of commissions. | | | `interval` | [Optional[operations.ListCommissionsQueryParamInterval]](../../models/operations/listcommissionsqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve commissions for. | | diff --git a/docs/models/operations/listcommissionsresponsebody.md b/docs/models/operations/listcommissionsresponsebody.md index 7d425462..782ceaec 100644 --- a/docs/models/operations/listcommissionsresponsebody.md +++ b/docs/models/operations/listcommissionsresponsebody.md @@ -3,21 +3,21 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `id` | *str* | :heavy_check_mark: | The commission's unique ID on Dub. | cm_1JVR7XRCSR0EDBAF39FZ4PMYE | -| `type` | [operations.ListCommissionsType](../../models/operations/listcommissionstype.md) | :heavy_check_mark: | The type of commission. Can be `click`, `lead`, `sale`, `referral`, or `custom`. | | -| `amount` | *float* | :heavy_check_mark: | The associated event amount in cents. For sale commissions, this is the sale amount. | | -| `earnings` | *float* | :heavy_check_mark: | The amount earned by the partner, in cents. | | -| `currency` | *str* | :heavy_check_mark: | The currency of the commission, as an ISO 4217 currency code. | | -| `status` | [operations.ListCommissionsStatus](../../models/operations/listcommissionsstatus.md) | :heavy_check_mark: | The current status of the commission. | | -| `invoice_id` | *Nullable[str]* | :heavy_check_mark: | The associated invoice ID. Only set for sale commissions. | | -| `description` | *Nullable[str]* | :heavy_check_mark: | An optional description of the commission. | | -| `quantity` | *float* | :heavy_check_mark: | The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions. | | -| `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The user who created the manual commission. | | -| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | User-provided metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`). | | -| `created_at` | *str* | :heavy_check_mark: | The date and time when the commission was created. | | -| `updated_at` | *str* | :heavy_check_mark: | The date and time when the commission was last updated. | | -| `paid_at` | *Nullable[str]* | :heavy_check_mark: | The date the commission was paid out to the partner. Null if not paid yet. | | -| `partner` | [operations.ListCommissionsPartner](../../models/operations/listcommissionspartner.md) | :heavy_check_mark: | N/A | | -| `customer` | [OptionalNullable[operations.ListCommissionsCustomer]](../../models/operations/listcommissionscustomer.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | The commission's unique ID on Dub. | cm_1JVR7XRCSR0EDBAF39FZ4PMYE | +| `type` | [operations.ListCommissionsType](../../models/operations/listcommissionstype.md) | :heavy_check_mark: | The type of commission. Can be `click`, `lead`, `sale`, `referral`, or `custom`. | | +| `amount` | *float* | :heavy_check_mark: | The associated event amount in cents. For sale commissions, this is the sale amount. | | +| `earnings` | *float* | :heavy_check_mark: | The amount earned by the partner, in cents. | | +| `currency` | *str* | :heavy_check_mark: | The currency of the commission, as an ISO 4217 currency code. | | +| `status` | [operations.ListCommissionsStatus](../../models/operations/listcommissionsstatus.md) | :heavy_check_mark: | The current status of the commission. | | +| `invoice_id` | *Nullable[str]* | :heavy_check_mark: | The associated invoice ID. Only set for sale commissions. | | +| `description` | *Nullable[str]* | :heavy_check_mark: | An optional description of the commission. | | +| `quantity` | *float* | :heavy_check_mark: | The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions. | | +| `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The user who created the manual commission. | | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | Metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`), or from Stripe webhook metadata. | | +| `created_at` | *str* | :heavy_check_mark: | The date and time when the commission was created. | | +| `updated_at` | *str* | :heavy_check_mark: | The date and time when the commission was last updated. | | +| `paid_at` | *Nullable[str]* | :heavy_check_mark: | The date the commission was paid out to the partner. Null if not paid yet. | | +| `partner` | [operations.ListCommissionsPartner](../../models/operations/listcommissionspartner.md) | :heavy_check_mark: | N/A | | +| `customer` | [OptionalNullable[operations.ListCommissionsCustomer]](../../models/operations/listcommissionscustomer.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/listdiscountcodesrequest.md b/docs/models/operations/listdiscountcodesrequest.md index 3e8b6905..cac47768 100644 --- a/docs/models/operations/listdiscountcodesrequest.md +++ b/docs/models/operations/listdiscountcodesrequest.md @@ -7,5 +7,6 @@ | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | | `partner_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the partner to retrieve discount codes for. If omitted, returns discount codes for the whole program. | | | `discount_id` | *Optional[str]* | :heavy_minus_sign: | Filter discount codes by discount ID. | | +| `code` | *Optional[str]* | :heavy_minus_sign: | Filter discount codes by the alphanumeric code (e.g. `PARTNER10OFF`). | | | `page` | *Optional[int]* | :heavy_minus_sign: | The page number for pagination. The first page is `1`. | 1 | | `page_size` | *Optional[int]* | :heavy_minus_sign: | The number of items per page. | 50 | \ No newline at end of file diff --git a/docs/models/operations/listpartnerapplicationspartner.md b/docs/models/operations/listpartnerapplicationspartner.md deleted file mode 100644 index b4973b6d..00000000 --- a/docs/models/operations/listpartnerapplicationspartner.md +++ /dev/null @@ -1,22 +0,0 @@ -# ListPartnerApplicationsPartner - - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `id` | *str* | :heavy_check_mark: | The partner's unique ID on Dub. | -| `name` | *str* | :heavy_check_mark: | The partner's full legal name. | -| `company_name` | *Nullable[str]* | :heavy_check_mark: | If the partner profile type is a company, this is the partner's legal company name. | -| `email` | *Nullable[str]* | :heavy_check_mark: | The partner's email address. Should be a unique value across Dub. | -| `image` | *Nullable[str]* | :heavy_check_mark: | The partner's avatar image. | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | A brief description of the partner and their background. | -| `country` | *Nullable[str]* | :heavy_check_mark: | The partner's country (required for tax purposes). | -| `group_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's group ID on Dub. | -| `status` | [operations.ListPartnerApplicationsStatus](../../models/operations/listpartnerapplicationsstatus.md) | :heavy_check_mark: | The status of the partner's enrollment in the program. | -| `website` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's website URL (including the https protocol). | -| `youtube` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's YouTube channel username (e.g. `johndoe`). | -| `twitter` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's Twitter username (e.g. `johndoe`). | -| `linkedin` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's LinkedIn username (e.g. `johndoe`). | -| `instagram` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's Instagram username (e.g. `johndoe`). | -| `tiktok` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's TikTok username (e.g. `johndoe`). | \ No newline at end of file diff --git a/docs/models/operations/listpartnerapplicationsrequest.md b/docs/models/operations/listpartnerapplicationsrequest.md deleted file mode 100644 index 1ba7abf2..00000000 --- a/docs/models/operations/listpartnerapplicationsrequest.md +++ /dev/null @@ -1,11 +0,0 @@ -# ListPartnerApplicationsRequest - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `country` | *Optional[str]* | :heavy_minus_sign: | A filter on the list based on the partner's `country` field. | US | -| `group_id` | *Optional[str]* | :heavy_minus_sign: | A filter on the list based on the partner's `groupId` field. | grp_123 | -| `page` | *Optional[int]* | :heavy_minus_sign: | The page number for pagination. The first page is `1`. | 1 | -| `page_size` | *Optional[int]* | :heavy_minus_sign: | The number of items per page. | 50 | \ No newline at end of file diff --git a/docs/models/operations/listpartnersresponsebody.md b/docs/models/operations/listpartnersresponsebody.md index 6097df95..75e17efe 100644 --- a/docs/models/operations/listpartnersresponsebody.md +++ b/docs/models/operations/listpartnersresponsebody.md @@ -31,6 +31,7 @@ | `lead_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `sale_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `referral_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `custom_reward_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `discount_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `application_id` | *OptionalNullable[str]* | :heavy_minus_sign: | If the partner submitted an application to join the program, this is the ID of the application. | | `banned_at` | *OptionalNullable[str]* | :heavy_minus_sign: | If the partner was banned from the program, this is the date of the ban. | diff --git a/docs/models/operations/listprogramapplicationsdefaultpayoutmethod.md b/docs/models/operations/listprogramapplicationsdefaultpayoutmethod.md new file mode 100644 index 00000000..9c68593b --- /dev/null +++ b/docs/models/operations/listprogramapplicationsdefaultpayoutmethod.md @@ -0,0 +1,21 @@ +# ListProgramApplicationsDefaultPayoutMethod + +The partner's default payout method. Connect: Bank account payouts via Stripe Connect; Stablecoin: USDC payouts directly to a crypto wallet; PayPal: Payouts via PayPal + +## Example Usage + +```python +from dub.models.operations import ListProgramApplicationsDefaultPayoutMethod + +value = ListProgramApplicationsDefaultPayoutMethod.CONNECT +``` + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `CONNECT` | connect | +| `STABLECOIN` | stablecoin | +| `PAYPAL` | paypal | +| `TREMENDOUS` | tremendous | \ No newline at end of file diff --git a/docs/models/operations/listprogramapplicationsnetworkstatus.md b/docs/models/operations/listprogramapplicationsnetworkstatus.md new file mode 100644 index 00000000..0164e651 --- /dev/null +++ b/docs/models/operations/listprogramapplicationsnetworkstatus.md @@ -0,0 +1,22 @@ +# ListProgramApplicationsNetworkStatus + +The partner's network status on Dub. + +## Example Usage + +```python +from dub.models.operations import ListProgramApplicationsNetworkStatus + +value = ListProgramApplicationsNetworkStatus.DRAFT +``` + + +## Values + +| Name | Value | +| ----------- | ----------- | +| `DRAFT` | draft | +| `SUBMITTED` | submitted | +| `APPROVED` | approved | +| `REJECTED` | rejected | +| `TRUSTED` | trusted | \ No newline at end of file diff --git a/docs/models/operations/listprogramapplicationspartner.md b/docs/models/operations/listprogramapplicationspartner.md new file mode 100644 index 00000000..d5faf990 --- /dev/null +++ b/docs/models/operations/listprogramapplicationspartner.md @@ -0,0 +1,26 @@ +# ListProgramApplicationsPartner + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | The partner's unique ID on Dub. | +| `name` | *str* | :heavy_check_mark: | The partner's full legal name. | +| `company_name` | *Nullable[str]* | :heavy_check_mark: | If the partner profile type is a company, this is the partner's legal company name. | +| `email` | *Nullable[str]* | :heavy_check_mark: | The partner's email address. Should be a unique value across Dub. | +| `image` | *Nullable[str]* | :heavy_check_mark: | The partner's avatar image. | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | A brief description of the partner and their background. | +| `country` | *Nullable[str]* | :heavy_check_mark: | The partner's country (required for tax purposes). | +| `group_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's group ID on Dub. | +| `status` | [operations.ListProgramApplicationsStatus](../../models/operations/listprogramapplicationsstatus.md) | :heavy_check_mark: | The status of the partner's enrollment in the program. | +| `website` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's website URL (including the https protocol). | +| `youtube` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's YouTube channel username (e.g. `johndoe`). | +| `twitter` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's Twitter username (e.g. `johndoe`). | +| `linkedin` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's LinkedIn username (e.g. `johndoe`). | +| `instagram` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's Instagram username (e.g. `johndoe`). | +| `tiktok` | *OptionalNullable[str]* | :heavy_minus_sign: | The partner's TikTok username (e.g. `johndoe`). | +| `network_status` | [operations.ListProgramApplicationsNetworkStatus](../../models/operations/listprogramapplicationsnetworkstatus.md) | :heavy_check_mark: | The partner's network status on Dub. | +| `default_payout_method` | [Nullable[operations.ListProgramApplicationsDefaultPayoutMethod]](../../models/operations/listprogramapplicationsdefaultpayoutmethod.md) | :heavy_check_mark: | The partner's default payout method. Connect: Bank account payouts via Stripe Connect; Stablecoin: USDC payouts directly to a crypto wallet; PayPal: Payouts via PayPal | +| `payouts_enabled_at` | *Nullable[str]* | :heavy_check_mark: | The date when the partner enabled payouts. | +| `platforms` | List[[operations.Platforms](../../models/operations/platforms.md)] | :heavy_minus_sign: | The partner's website and social profiles, including when each was verified. | \ No newline at end of file diff --git a/docs/models/operations/listprogramapplicationsqueryparamsortorder.md b/docs/models/operations/listprogramapplicationsqueryparamsortorder.md new file mode 100644 index 00000000..50f9279e --- /dev/null +++ b/docs/models/operations/listprogramapplicationsqueryparamsortorder.md @@ -0,0 +1,19 @@ +# ListProgramApplicationsQueryParamSortOrder + +The sort order. The default is `desc`. + +## Example Usage + +```python +from dub.models.operations import ListProgramApplicationsQueryParamSortOrder + +value = ListProgramApplicationsQueryParamSortOrder.ASC +``` + + +## Values + +| Name | Value | +| ------ | ------ | +| `ASC` | asc | +| `DESC` | desc | \ No newline at end of file diff --git a/docs/models/operations/listprogramapplicationsrequest.md b/docs/models/operations/listprogramapplicationsrequest.md new file mode 100644 index 00000000..8f5f55cd --- /dev/null +++ b/docs/models/operations/listprogramapplicationsrequest.md @@ -0,0 +1,14 @@ +# ListProgramApplicationsRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `country` | *Optional[str]* | :heavy_minus_sign: | A filter on the list based on the partner's `country` field. | US | +| `group_id` | *Optional[str]* | :heavy_minus_sign: | A filter on the list based on the partner's `groupId` field. | grp_123 | +| `sort_order` | [Optional[operations.ListProgramApplicationsQueryParamSortOrder]](../../models/operations/listprogramapplicationsqueryparamsortorder.md) | :heavy_minus_sign: | The sort order. The default is `desc`. | desc | +| `search` | *Optional[str]* | :heavy_minus_sign: | Filter applications by name, email, or company name. Partial matches are supported. An exact partner ID is also matched. | | +| `status` | [Optional[operations.QueryParamStatus]](../../models/operations/queryparamstatus.md) | :heavy_minus_sign: | Filter applications by status. One of `pending`, `approved`, or `rejected`. Defaults to `pending`. | | +| `page` | *Optional[int]* | :heavy_minus_sign: | The page number for pagination. The first page is `1`. | 1 | +| `page_size` | *Optional[int]* | :heavy_minus_sign: | The number of items per page. | 50 | \ No newline at end of file diff --git a/docs/models/operations/listpartnerapplicationsresponsebody.md b/docs/models/operations/listprogramapplicationsresponsebody.md similarity index 93% rename from docs/models/operations/listpartnerapplicationsresponsebody.md rename to docs/models/operations/listprogramapplicationsresponsebody.md index 2a36fa97..a2d2f836 100644 --- a/docs/models/operations/listpartnerapplicationsresponsebody.md +++ b/docs/models/operations/listprogramapplicationsresponsebody.md @@ -1,4 +1,4 @@ -# ListPartnerApplicationsResponseBody +# ListProgramApplicationsResponseBody ## Fields @@ -7,5 +7,5 @@ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | | `id` | *str* | :heavy_check_mark: | N/A | | `created_at` | *str* | :heavy_check_mark: | N/A | -| `partner` | [operations.ListPartnerApplicationsPartner](../../models/operations/listpartnerapplicationspartner.md) | :heavy_check_mark: | N/A | +| `partner` | [operations.ListProgramApplicationsPartner](../../models/operations/listprogramapplicationspartner.md) | :heavy_check_mark: | N/A | | `application_form_data` | List[[operations.ApplicationFormData](../../models/operations/applicationformdata.md)] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/listpartnerapplicationsstatus.md b/docs/models/operations/listprogramapplicationsstatus.md similarity index 75% rename from docs/models/operations/listpartnerapplicationsstatus.md rename to docs/models/operations/listprogramapplicationsstatus.md index 44e9b452..f0e38e23 100644 --- a/docs/models/operations/listpartnerapplicationsstatus.md +++ b/docs/models/operations/listprogramapplicationsstatus.md @@ -1,13 +1,13 @@ -# ListPartnerApplicationsStatus +# ListProgramApplicationsStatus The status of the partner's enrollment in the program. ## Example Usage ```python -from dub.models.operations import ListPartnerApplicationsStatus +from dub.models.operations import ListProgramApplicationsStatus -value = ListPartnerApplicationsStatus.PENDING +value = ListProgramApplicationsStatus.PENDING ``` diff --git a/docs/models/operations/listprogramapplicationstype.md b/docs/models/operations/listprogramapplicationstype.md new file mode 100644 index 00000000..c676636b --- /dev/null +++ b/docs/models/operations/listprogramapplicationstype.md @@ -0,0 +1,21 @@ +# ListProgramApplicationsType + +## Example Usage + +```python +from dub.models.operations import ListProgramApplicationsType + +value = ListProgramApplicationsType.WEBSITE +``` + + +## Values + +| Name | Value | +| ----------- | ----------- | +| `WEBSITE` | website | +| `YOUTUBE` | youtube | +| `TWITTER` | twitter | +| `LINKEDIN` | linkedin | +| `INSTAGRAM` | instagram | +| `TIKTOK` | tiktok | \ No newline at end of file diff --git a/docs/models/operations/platforms.md b/docs/models/operations/platforms.md new file mode 100644 index 00000000..c5894ac2 --- /dev/null +++ b/docs/models/operations/platforms.md @@ -0,0 +1,10 @@ +# Platforms + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `type` | [operations.ListProgramApplicationsType](../../models/operations/listprogramapplicationstype.md) | :heavy_check_mark: | N/A | +| `identifier` | *str* | :heavy_check_mark: | N/A | +| `verified_at` | *Nullable[str]* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/queryparamstatus.md b/docs/models/operations/queryparamstatus.md index 3ed07a47..d8be2aa6 100644 --- a/docs/models/operations/queryparamstatus.md +++ b/docs/models/operations/queryparamstatus.md @@ -1,6 +1,6 @@ # QueryParamStatus -Filter the list of commissions by their corresponding status. +Filter applications by status. One of `pending`, `approved`, or `rejected`. Defaults to `pending`. ## Example Usage @@ -13,13 +13,8 @@ value = QueryParamStatus.PENDING ## Values -| Name | Value | -| ----------- | ----------- | -| `PENDING` | pending | -| `PROCESSED` | processed | -| `PAID` | paid | -| `REFUNDED` | refunded | -| `DUPLICATE` | duplicate | -| `FRAUD` | fraud | -| `CANCELED` | canceled | -| `HOLD` | hold | \ No newline at end of file +| Name | Value | +| ---------- | ---------- | +| `PENDING` | pending | +| `APPROVED` | approved | +| `REJECTED` | rejected | \ No newline at end of file diff --git a/docs/models/operations/rejectbountysubmissionresponsebody.md b/docs/models/operations/rejectbountysubmissionresponsebody.md index e6280e08..9c3a15ed 100644 --- a/docs/models/operations/rejectbountysubmissionresponsebody.md +++ b/docs/models/operations/rejectbountysubmissionresponsebody.md @@ -17,6 +17,7 @@ The rejected bounty submission. | `performance_count` | *Nullable[float]* | :heavy_check_mark: | The performance count of the submission | | `social_metric_count` | *Nullable[int]* | :heavy_check_mark: | The social metric count (views or likes) for the social content | | `social_metrics_last_synced_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time the submission's social metrics were last synced | +| `approved_social_metric_threshold` | *OptionalNullable[int]* | :heavy_minus_sign: | The highest social metric milestone that has been approved and paid out for this submission | | `created_at` | *str* | :heavy_check_mark: | The date and time the submission was created | | `completed_at` | *Nullable[str]* | :heavy_check_mark: | The date and time the submission was completed | | `reviewed_at` | *Nullable[str]* | :heavy_check_mark: | The date and time the submission was reviewed | diff --git a/docs/models/operations/rejectpartnerapplicationrequestbody.md b/docs/models/operations/rejectprogramapplicationrequestbody.md similarity index 99% rename from docs/models/operations/rejectpartnerapplicationrequestbody.md rename to docs/models/operations/rejectprogramapplicationrequestbody.md index 3ef975d6..7a99a978 100644 --- a/docs/models/operations/rejectpartnerapplicationrequestbody.md +++ b/docs/models/operations/rejectprogramapplicationrequestbody.md @@ -1,4 +1,4 @@ -# RejectPartnerApplicationRequestBody +# RejectProgramApplicationRequestBody ## Fields diff --git a/docs/models/operations/rejectpartnerapplicationresponsebody.md b/docs/models/operations/rejectprogramapplicationresponsebody.md similarity index 91% rename from docs/models/operations/rejectpartnerapplicationresponsebody.md rename to docs/models/operations/rejectprogramapplicationresponsebody.md index 358d73f7..93ea59f0 100644 --- a/docs/models/operations/rejectpartnerapplicationresponsebody.md +++ b/docs/models/operations/rejectprogramapplicationresponsebody.md @@ -1,4 +1,4 @@ -# RejectPartnerApplicationResponseBody +# RejectProgramApplicationResponseBody The rejected partner diff --git a/docs/models/operations/requestbody.md b/docs/models/operations/requestbody.md index c5a0e751..40bc436f 100644 --- a/docs/models/operations/requestbody.md +++ b/docs/models/operations/requestbody.md @@ -9,8 +9,8 @@ | `domain` | *Optional[str]* | :heavy_minus_sign: | The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains). | | | `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | | | `key_length` | *Optional[float]* | :heavy_minus_sign: | The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`. | | -| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. | 123456 | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. | | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it. | 123456 | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it. | | | `program_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the program the short link is associated with. | | | `partner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner the short link is associated with. | | | `prefix` | *Optional[str]* | :heavy_minus_sign: | The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided. | | diff --git a/docs/models/operations/updatecommissionresponsebody.md b/docs/models/operations/updatecommissionresponsebody.md index 029ee152..27a5efab 100644 --- a/docs/models/operations/updatecommissionresponsebody.md +++ b/docs/models/operations/updatecommissionresponsebody.md @@ -5,21 +5,21 @@ The updated commission. ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `id` | *str* | :heavy_check_mark: | The commission's unique ID on Dub. | cm_1JVR7XRCSR0EDBAF39FZ4PMYE | -| `type` | [operations.UpdateCommissionType](../../models/operations/updatecommissiontype.md) | :heavy_check_mark: | The type of commission. Can be `click`, `lead`, `sale`, `referral`, or `custom`. | | -| `amount` | *float* | :heavy_check_mark: | The associated event amount in cents. For sale commissions, this is the sale amount. | | -| `earnings` | *float* | :heavy_check_mark: | The amount earned by the partner, in cents. | | -| `currency` | *str* | :heavy_check_mark: | The currency of the commission, as an ISO 4217 currency code. | | -| `status` | [operations.UpdateCommissionStatus](../../models/operations/updatecommissionstatus.md) | :heavy_check_mark: | The current status of the commission. | | -| `invoice_id` | *Nullable[str]* | :heavy_check_mark: | The associated invoice ID. Only set for sale commissions. | | -| `description` | *Nullable[str]* | :heavy_check_mark: | An optional description of the commission. | | -| `quantity` | *float* | :heavy_check_mark: | The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions. | | -| `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The user who created the manual commission. | | -| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | User-provided metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`). | | -| `created_at` | *str* | :heavy_check_mark: | The date and time when the commission was created. | | -| `updated_at` | *str* | :heavy_check_mark: | The date and time when the commission was last updated. | | -| `paid_at` | *Nullable[str]* | :heavy_check_mark: | The date the commission was paid out to the partner. Null if not paid yet. | | -| `partner` | [operations.UpdateCommissionPartner](../../models/operations/updatecommissionpartner.md) | :heavy_check_mark: | N/A | | -| `customer` | [OptionalNullable[operations.UpdateCommissionCustomer]](../../models/operations/updatecommissioncustomer.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | The commission's unique ID on Dub. | cm_1JVR7XRCSR0EDBAF39FZ4PMYE | +| `type` | [operations.UpdateCommissionType](../../models/operations/updatecommissiontype.md) | :heavy_check_mark: | The type of commission. Can be `click`, `lead`, `sale`, `referral`, or `custom`. | | +| `amount` | *float* | :heavy_check_mark: | The associated event amount in cents. For sale commissions, this is the sale amount. | | +| `earnings` | *float* | :heavy_check_mark: | The amount earned by the partner, in cents. | | +| `currency` | *str* | :heavy_check_mark: | The currency of the commission, as an ISO 4217 currency code. | | +| `status` | [operations.UpdateCommissionStatus](../../models/operations/updatecommissionstatus.md) | :heavy_check_mark: | The current status of the commission. | | +| `invoice_id` | *Nullable[str]* | :heavy_check_mark: | The associated invoice ID. Only set for sale commissions. | | +| `description` | *Nullable[str]* | :heavy_check_mark: | An optional description of the commission. | | +| `quantity` | *float* | :heavy_check_mark: | The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions. | | +| `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The user who created the manual commission. | | +| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | Metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`), or from Stripe webhook metadata. | | +| `created_at` | *str* | :heavy_check_mark: | The date and time when the commission was created. | | +| `updated_at` | *str* | :heavy_check_mark: | The date and time when the commission was last updated. | | +| `paid_at` | *Nullable[str]* | :heavy_check_mark: | The date the commission was paid out to the partner. Null if not paid yet. | | +| `partner` | [operations.UpdateCommissionPartner](../../models/operations/updatecommissionpartner.md) | :heavy_check_mark: | N/A | | +| `customer` | [OptionalNullable[operations.UpdateCommissionCustomer]](../../models/operations/updatecommissioncustomer.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/updatecustomerrequestbody.md b/docs/models/operations/updatecustomerrequestbody.md index 50f05497..06484d2d 100644 --- a/docs/models/operations/updatecustomerrequestbody.md +++ b/docs/models/operations/updatecustomerrequestbody.md @@ -10,4 +10,5 @@ | `avatar` | *OptionalNullable[str]* | :heavy_minus_sign: | The customer's avatar URL. If not provided, a random avatar will be generated. | | `external_id` | *Optional[str]* | :heavy_minus_sign: | The customer's unique identifier your database. This is useful for associating subsequent conversion events from Dub's API to your internal systems. | | `stripe_customer_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The customer's Stripe customer ID. This is useful for attributing recurring sale events to the partner who referred the customer. | -| `country` | *Optional[str]* | :heavy_minus_sign: | The customer's country in ISO 3166-1 alpha-2 format. Updating this field will only affect the customer's country in Dub's system (and has no effect on existing conversion events). | \ No newline at end of file +| `country` | *Optional[str]* | :heavy_minus_sign: | The customer's country in ISO 3166-1 alpha-2 format. Updating this field will only affect the customer's country in Dub's system (and has no effect on existing conversion events). | +| `subscription_canceled_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date the customer canceled their subscription. Set to a timestamp to mark the subscription as canceled, or `null` to clear it (e.g. if they resubscribe). | \ No newline at end of file diff --git a/docs/models/operations/updatelinkrequestbody.md b/docs/models/operations/updatelinkrequestbody.md index 3e12da18..aff318f3 100644 --- a/docs/models/operations/updatelinkrequestbody.md +++ b/docs/models/operations/updatelinkrequestbody.md @@ -8,8 +8,8 @@ | `url` | *Optional[str]* | :heavy_minus_sign: | The destination URL of the short link. | https://google.com | | `domain` | *Optional[str]* | :heavy_minus_sign: | The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains). | | | `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | | -| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. | 123456 | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. | | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it. | 123456 | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it. | | | `program_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the program the short link is associated with. | | | `partner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner the short link is associated with. | | | `track_conversion` | *Optional[bool]* | :heavy_minus_sign: | Whether to track conversions for the short link. Defaults to `false` if not provided. | | diff --git a/docs/models/operations/upsertlinkrequestbody.md b/docs/models/operations/upsertlinkrequestbody.md index d027b0f1..9dc7b82a 100644 --- a/docs/models/operations/upsertlinkrequestbody.md +++ b/docs/models/operations/upsertlinkrequestbody.md @@ -9,8 +9,8 @@ | `domain` | *Optional[str]* | :heavy_minus_sign: | The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains). | | | `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | | | `key_length` | *Optional[float]* | :heavy_minus_sign: | The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`. | | -| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. | 123456 | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. | | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it. | 123456 | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it. | | | `program_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the program the short link is associated with. | | | `partner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner the short link is associated with. | | | `prefix` | *Optional[str]* | :heavy_minus_sign: | The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided. | | diff --git a/docs/models/operations/upsertpartnerlinklinkprops.md b/docs/models/operations/upsertpartnerlinklinkprops.md index 6c4ee71d..821110e6 100644 --- a/docs/models/operations/upsertpartnerlinklinkprops.md +++ b/docs/models/operations/upsertpartnerlinklinkprops.md @@ -5,27 +5,27 @@ Additional properties that you can pass to the partner's short link. Will be use ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. | 123456 | -| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. | | -| `prefix` | *Optional[str]* | :heavy_minus_sign: | Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`). | | -| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | -| `tag_ids` | [Optional[operations.UpsertPartnerLinkTagIds]](../../models/operations/upsertpartnerlinktagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | -| `tag_names` | [Optional[operations.UpsertPartnerLinkTagNames]](../../models/operations/upsertpartnerlinktagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | -| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | | -| `expires_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | | -| `expired_url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | -| `password` | *OptionalNullable[str]* | :heavy_minus_sign: | The password required to access the destination URL of the short link. | | -| `proxy` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses Custom Link Previews feature. Defaults to `false` if not provided. | | -| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview title (og:title). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview description (og:description). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `image` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview image (og:image). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `video` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | -| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. Defaults to `false` if not provided. | | -| `ios` | *OptionalNullable[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | | -| `android` | *OptionalNullable[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | | -| `do_index` | *Optional[bool]* | :heavy_minus_sign: | Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex | | -| `test_variants` | List[[operations.UpsertPartnerLinkTestVariants](../../models/operations/upsertpartnerlinktestvariants.md)] | :heavy_minus_sign: | An array of A/B test URLs and the percentage of traffic to send to each URL. | [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
] | -| `test_started_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests started. | | -| `test_completed_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests were or will be completed. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `external_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it. | 123456 | +| `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it. | | +| `prefix` | *Optional[str]* | :heavy_minus_sign: | Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`). | | +| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | +| `tag_ids` | [Optional[operations.UpsertPartnerLinkTagIds]](../../models/operations/upsertpartnerlinktagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | +| `tag_names` | [Optional[operations.UpsertPartnerLinkTagNames]](../../models/operations/upsertpartnerlinktagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | | +| `expires_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | | +| `expired_url` | *OptionalNullable[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | +| `password` | *OptionalNullable[str]* | :heavy_minus_sign: | The password required to access the destination URL of the short link. | | +| `proxy` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses Custom Link Previews feature. Defaults to `false` if not provided. | | +| `title` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview title (og:title). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview description (og:description). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `image` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview image (og:image). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `video` | *OptionalNullable[str]* | :heavy_minus_sign: | The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og | | +| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. Defaults to `false` if not provided. | | +| `ios` | *OptionalNullable[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | | +| `android` | *OptionalNullable[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | | +| `do_index` | *Optional[bool]* | :heavy_minus_sign: | Allow search engines to index your short link. Defaults to `false` if not provided. Learn more: https://d.to/noindex | | +| `test_variants` | List[[operations.UpsertPartnerLinkTestVariants](../../models/operations/upsertpartnerlinktestvariants.md)] | :heavy_minus_sign: | An array of A/B test URLs and the percentage of traffic to send to each URL. | [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
] | +| `test_started_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests started. | | +| `test_completed_at` | *OptionalNullable[str]* | :heavy_minus_sign: | The date and time when the tests were or will be completed. | | \ No newline at end of file diff --git a/docs/models/operations/upsertpartnerlinkrequestbody.md b/docs/models/operations/upsertpartnerlinkrequestbody.md index 5c2ae719..a04083da 100644 --- a/docs/models/operations/upsertpartnerlinkrequestbody.md +++ b/docs/models/operations/upsertpartnerlinkrequestbody.md @@ -7,7 +7,7 @@ | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | | `partner_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner to create a link for. Will take precedence over `tenantId` if provided. | | `tenant_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the partner in your system. If both `partnerId` and `tenantId` are not provided, an error will be thrown. | -| `url` | *str* | :heavy_check_mark: | The URL to upsert for. Will throw an error if the domain doesn't match the program's default URL domain. | +| `url` | *str* | :heavy_check_mark: | The URL to upsert for. | | `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | | `comments` | *OptionalNullable[str]* | :heavy_minus_sign: | The comments for the short link. | | `link_props` | [Optional[operations.UpsertPartnerLinkLinkProps]](../../models/operations/upsertpartnerlinklinkprops.md) | :heavy_minus_sign: | Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner. | \ No newline at end of file diff --git a/docs/sdks/discountcodes/README.md b/docs/sdks/discountcodes/README.md index f3f293e9..1033e620 100644 --- a/docs/sdks/discountcodes/README.md +++ b/docs/sdks/discountcodes/README.md @@ -10,7 +10,7 @@ ## list -Retrieve a paginated list of discount codes for a partner / a given discount / the whole program. +Retrieve a paginated list of discount codes in a program or filtered by partner, discount, or code. ### Example Usage diff --git a/docs/sdks/embedtokens/README.md b/docs/sdks/embedtokens/README.md index 0a989a96..441a3e84 100644 --- a/docs/sdks/embedtokens/README.md +++ b/docs/sdks/embedtokens/README.md @@ -32,11 +32,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, diff --git a/docs/sdks/links/README.md b/docs/sdks/links/README.md index 9069cf97..32f24525 100644 --- a/docs/sdks/links/README.md +++ b/docs/sdks/links/README.md @@ -94,11 +94,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -305,11 +305,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) @@ -371,11 +371,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -388,11 +388,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -506,11 +506,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -571,11 +571,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }) diff --git a/docs/sdks/partners/README.md b/docs/sdks/partners/README.md index 15896f2e..47ea80ec 100644 --- a/docs/sdks/partners/README.md +++ b/docs/sdks/partners/README.md @@ -96,11 +96,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -209,11 +209,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, @@ -275,11 +275,11 @@ with Dub( "test_variants": [ { "url": "https://example.com/variant-1", - "percentage": 50, + "percentage": 50.0, }, { "url": "https://example.com/variant-2", - "percentage": 50, + "percentage": 50.0, }, ], }, diff --git a/docs/sdks/partnerapplications/README.md b/docs/sdks/programapplications/README.md similarity index 86% rename from docs/sdks/partnerapplications/README.md rename to docs/sdks/programapplications/README.md index 60f64ec4..1d1aa93c 100644 --- a/docs/sdks/partnerapplications/README.md +++ b/docs/sdks/programapplications/README.md @@ -1,20 +1,20 @@ -# PartnerApplications +# ProgramApplications ## Overview ### Available Operations -* [list](#list) - List all pending partner applications +* [list](#list) - List all program applications * [approve](#approve) - Approve a partner application * [reject](#reject) - Reject a partner application ## list -Retrieve a paginated list of pending applications for your partner program. +Retrieve a paginated list of applications for your partner program. Filter by `status` to list pending, approved, or rejected applications. ### Example Usage - + ```python from dub import Dub @@ -23,7 +23,7 @@ with Dub( token="DUB_API_KEY", ) as d_client: - res = d_client.partner_applications.list(request={ + res = d_client.program_applications.list(request={ "country": "US", "group_id": "grp_123", "page": 1, @@ -39,12 +39,12 @@ with Dub( | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `request` | [operations.ListPartnerApplicationsRequest](../../models/operations/listpartnerapplicationsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [operations.ListProgramApplicationsRequest](../../models/operations/listprogramapplicationsrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response -**[List[operations.ListPartnerApplicationsResponseBody]](../../models/.md)** +**[List[operations.ListProgramApplicationsResponseBody]](../../models/.md)** ### Errors @@ -67,7 +67,7 @@ Approve a pending partner application to your program. The partner will be enrol ### Example Usage - + ```python from dub import Dub @@ -76,7 +76,7 @@ with Dub( token="DUB_API_KEY", ) as d_client: - res = d_client.partner_applications.approve(request={ + res = d_client.program_applications.approve(request={ "partner_id": "", }) @@ -89,12 +89,12 @@ with Dub( | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.ApprovePartnerApplicationRequestBody](../../models/operations/approvepartnerapplicationrequestbody.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [operations.ApproveProgramApplicationRequestBody](../../models/operations/approveprogramapplicationrequestbody.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response -**[operations.ApprovePartnerApplicationResponseBody](../../models/operations/approvepartnerapplicationresponsebody.md)** +**[operations.ApproveProgramApplicationResponseBody](../../models/operations/approveprogramapplicationresponsebody.md)** ### Errors @@ -117,7 +117,7 @@ Reject a pending partner application to your program. The partner will be notifi ### Example Usage - + ```python from dub import Dub @@ -126,7 +126,7 @@ with Dub( token="DUB_API_KEY", ) as d_client: - res = d_client.partner_applications.reject(request={ + res = d_client.program_applications.reject(request={ "partner_id": "", }) @@ -139,12 +139,12 @@ with Dub( | Parameter | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `request` | [operations.RejectPartnerApplicationRequestBody](../../models/operations/rejectpartnerapplicationrequestbody.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [operations.RejectProgramApplicationRequestBody](../../models/operations/rejectprogramapplicationrequestbody.md) | :heavy_check_mark: | The request object to use for the request. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response -**[operations.RejectPartnerApplicationResponseBody](../../models/operations/rejectpartnerapplicationresponsebody.md)** +**[operations.RejectProgramApplicationResponseBody](../../models/operations/rejectprogramapplicationresponsebody.md)** ### Errors diff --git a/pyproject.toml b/pyproject.toml index e2deb1c5..d3c74b49 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "dub" -version = "0.38.6" +version = "0.38.7" description = "Python Client SDK Generated by Speakeasy" authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" diff --git a/src/dub/_version.py b/src/dub/_version.py index 7eca31ca..941b95ee 100644 --- a/src/dub/_version.py +++ b/src/dub/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "dub" -__version__: str = "0.38.6" +__version__: str = "0.38.7" __openapi_doc_version__: str = "0.0.1" -__gen_version__: str = "2.934.1" -__user_agent__: str = "speakeasy-sdk/python 0.38.6 2.934.1 0.0.1 dub" +__gen_version__: str = "2.943.0" +__user_agent__: str = "speakeasy-sdk/python 0.38.7 2.943.0 0.0.1 dub" try: if __package__ is not None: diff --git a/src/dub/commissions.py b/src/dub/commissions.py index 63071639..e988fa41 100644 --- a/src/dub/commissions.py +++ b/src/dub/commissions.py @@ -103,6 +103,7 @@ def next_func() -> Optional[operations.ListCommissionsResponse]: type=request.type, customer_id=request.customer_id, payout_id=request.payout_id, + bounty_submission_id=request.bounty_submission_id, partner_id=request.partner_id, tenant_id=request.tenant_id, group_id=request.group_id, @@ -269,6 +270,7 @@ def next_func() -> Optional[operations.ListCommissionsResponse]: type=request.type, customer_id=request.customer_id, payout_id=request.payout_id, + bounty_submission_id=request.bounty_submission_id, partner_id=request.partner_id, tenant_id=request.tenant_id, group_id=request.group_id, diff --git a/src/dub/discount_codes.py b/src/dub/discount_codes.py index 94f04395..e6fcbaa8 100644 --- a/src/dub/discount_codes.py +++ b/src/dub/discount_codes.py @@ -24,7 +24,7 @@ def list( ) -> List[components.DiscountCodeSchema]: r"""List discount codes - Retrieve a paginated list of discount codes for a partner / a given discount / the whole program. + Retrieve a paginated list of discount codes in a program or filtered by partner, discount, or code. :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -147,7 +147,7 @@ async def list_async( ) -> List[components.DiscountCodeSchema]: r"""List discount codes - Retrieve a paginated list of discount codes for a partner / a given discount / the whole program. + Retrieve a paginated list of discount codes in a program or filtered by partner, discount, or code. :param request: The request object to send. :param retries: Override the default retry configuration for this method diff --git a/src/dub/models/components/__init__.py b/src/dub/models/components/__init__.py index 17f75b36..19162347 100644 --- a/src/dub/models/components/__init__.py +++ b/src/dub/models/components/__init__.py @@ -145,18 +145,6 @@ PartnerAnalyticsTopLinks, PartnerAnalyticsTopLinksTypedDict, ) - from .partnerapplicationsubmittedevent import ( - ApplicationFormData, - ApplicationFormDataTypedDict, - PartnerApplicationSubmittedEvent, - PartnerApplicationSubmittedEventData, - PartnerApplicationSubmittedEventDataTypedDict, - PartnerApplicationSubmittedEventEvent, - PartnerApplicationSubmittedEventPartner, - PartnerApplicationSubmittedEventPartnerTypedDict, - PartnerApplicationSubmittedEventStatus, - PartnerApplicationSubmittedEventTypedDict, - ) from .partnerenrolledevent import ( Application, ApplicationTypedDict, @@ -222,6 +210,18 @@ TargetPartner, TargetPartnerTypedDict, ) + from .programapplicationsubmittedevent import ( + ApplicationFormData, + ApplicationFormDataTypedDict, + ProgramApplicationSubmittedEvent, + ProgramApplicationSubmittedEventData, + ProgramApplicationSubmittedEventDataTypedDict, + ProgramApplicationSubmittedEventEvent, + ProgramApplicationSubmittedEventPartner, + ProgramApplicationSubmittedEventPartnerTypedDict, + ProgramApplicationSubmittedEventStatus, + ProgramApplicationSubmittedEventTypedDict, + ) from .salecreatedevent import ( Sale, SaleCreatedEvent, @@ -392,14 +392,6 @@ "PartnerAnalyticsTimeseriesTypedDict", "PartnerAnalyticsTopLinks", "PartnerAnalyticsTopLinksTypedDict", - "PartnerApplicationSubmittedEvent", - "PartnerApplicationSubmittedEventData", - "PartnerApplicationSubmittedEventDataTypedDict", - "PartnerApplicationSubmittedEventEvent", - "PartnerApplicationSubmittedEventPartner", - "PartnerApplicationSubmittedEventPartnerTypedDict", - "PartnerApplicationSubmittedEventStatus", - "PartnerApplicationSubmittedEventTypedDict", "PartnerEnrolledEvent", "PartnerEnrolledEventData", "PartnerEnrolledEventDataTypedDict", @@ -418,6 +410,14 @@ "PartnerMergedEventEvent", "PartnerMergedEventTypedDict", "PartnerTypedDict", + "ProgramApplicationSubmittedEvent", + "ProgramApplicationSubmittedEventData", + "ProgramApplicationSubmittedEventDataTypedDict", + "ProgramApplicationSubmittedEventEvent", + "ProgramApplicationSubmittedEventPartner", + "ProgramApplicationSubmittedEventPartnerTypedDict", + "ProgramApplicationSubmittedEventStatus", + "ProgramApplicationSubmittedEventTypedDict", "Provider", "ReferralFormData", "ReferralFormDataTypedDict", @@ -592,16 +592,6 @@ "PartnerAnalyticsTimeseriesTypedDict": ".partneranalyticstimeseries", "PartnerAnalyticsTopLinks": ".partneranalyticstoplinks", "PartnerAnalyticsTopLinksTypedDict": ".partneranalyticstoplinks", - "ApplicationFormData": ".partnerapplicationsubmittedevent", - "ApplicationFormDataTypedDict": ".partnerapplicationsubmittedevent", - "PartnerApplicationSubmittedEvent": ".partnerapplicationsubmittedevent", - "PartnerApplicationSubmittedEventData": ".partnerapplicationsubmittedevent", - "PartnerApplicationSubmittedEventDataTypedDict": ".partnerapplicationsubmittedevent", - "PartnerApplicationSubmittedEventEvent": ".partnerapplicationsubmittedevent", - "PartnerApplicationSubmittedEventPartner": ".partnerapplicationsubmittedevent", - "PartnerApplicationSubmittedEventPartnerTypedDict": ".partnerapplicationsubmittedevent", - "PartnerApplicationSubmittedEventStatus": ".partnerapplicationsubmittedevent", - "PartnerApplicationSubmittedEventTypedDict": ".partnerapplicationsubmittedevent", "Application": ".partnerenrolledevent", "ApplicationTypedDict": ".partnerenrolledevent", "BannedReason": ".partnerenrolledevent", @@ -663,6 +653,16 @@ "SourcePartnerTypedDict": ".partnermergedevent", "TargetPartner": ".partnermergedevent", "TargetPartnerTypedDict": ".partnermergedevent", + "ApplicationFormData": ".programapplicationsubmittedevent", + "ApplicationFormDataTypedDict": ".programapplicationsubmittedevent", + "ProgramApplicationSubmittedEvent": ".programapplicationsubmittedevent", + "ProgramApplicationSubmittedEventData": ".programapplicationsubmittedevent", + "ProgramApplicationSubmittedEventDataTypedDict": ".programapplicationsubmittedevent", + "ProgramApplicationSubmittedEventEvent": ".programapplicationsubmittedevent", + "ProgramApplicationSubmittedEventPartner": ".programapplicationsubmittedevent", + "ProgramApplicationSubmittedEventPartnerTypedDict": ".programapplicationsubmittedevent", + "ProgramApplicationSubmittedEventStatus": ".programapplicationsubmittedevent", + "ProgramApplicationSubmittedEventTypedDict": ".programapplicationsubmittedevent", "Sale": ".salecreatedevent", "SaleCreatedEvent": ".salecreatedevent", "SaleCreatedEventClick": ".salecreatedevent", diff --git a/src/dub/models/components/analyticsbrowsers.py b/src/dub/models/components/analyticsbrowsers.py index 47a7ab29..290ef8c7 100644 --- a/src/dub/models/components/analyticsbrowsers.py +++ b/src/dub/models/components/analyticsbrowsers.py @@ -25,16 +25,16 @@ class AnalyticsBrowsers(BaseModel): browser: str r"""The name of the browser""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this browser""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this browser""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this browser""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this browser, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticscities.py b/src/dub/models/components/analyticscities.py index fa5cbe56..4d12a2bf 100644 --- a/src/dub/models/components/analyticscities.py +++ b/src/dub/models/components/analyticscities.py @@ -35,16 +35,16 @@ class AnalyticsCities(BaseModel): city: str r"""The name of the city""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this city""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this city""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this city""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this city, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticscontinents.py b/src/dub/models/components/analyticscontinents.py index b2713492..1105ebfe 100644 --- a/src/dub/models/components/analyticscontinents.py +++ b/src/dub/models/components/analyticscontinents.py @@ -38,16 +38,16 @@ class AnalyticsContinents(BaseModel): continent: Continent r"""The 2-letter ISO 3166-1 code representing the continent associated with the location of the user.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this continent""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this continent""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this continent""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this continent, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticscount.py b/src/dub/models/components/analyticscount.py index ab5b49a3..6bd9f858 100644 --- a/src/dub/models/components/analyticscount.py +++ b/src/dub/models/components/analyticscount.py @@ -20,16 +20,16 @@ class AnalyticsCountTypedDict(TypedDict): class AnalyticsCount(BaseModel): - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The total number of clicks""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The total number of leads""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticscountries.py b/src/dub/models/components/analyticscountries.py index ed2c199d..5ab73953 100644 --- a/src/dub/models/components/analyticscountries.py +++ b/src/dub/models/components/analyticscountries.py @@ -40,16 +40,16 @@ class AnalyticsCountries(BaseModel): city: Optional[City] = City.WILDCARD_ - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this country""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this country""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this country""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this country, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticsdevices.py b/src/dub/models/components/analyticsdevices.py index d372415d..bdeb0d35 100644 --- a/src/dub/models/components/analyticsdevices.py +++ b/src/dub/models/components/analyticsdevices.py @@ -25,16 +25,16 @@ class AnalyticsDevices(BaseModel): device: str r"""The name of the device""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this device""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this device""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this device""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this device, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticseventnames.py b/src/dub/models/components/analyticseventnames.py index ab962824..9e6c2f36 100644 --- a/src/dub/models/components/analyticseventnames.py +++ b/src/dub/models/components/analyticseventnames.py @@ -25,16 +25,16 @@ class AnalyticsEventNames(BaseModel): event_name: Annotated[str, pydantic.Field(alias="eventName")] r"""The name of the conversion event (lead or sale)""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this event name""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this event name""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this event name""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this event name, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticsos.py b/src/dub/models/components/analyticsos.py index d7b5cbfa..bcce5209 100644 --- a/src/dub/models/components/analyticsos.py +++ b/src/dub/models/components/analyticsos.py @@ -25,16 +25,16 @@ class AnalyticsOS(BaseModel): os: str r"""The name of the OS""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this OS""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this OS""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this OS""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this OS, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticsreferers.py b/src/dub/models/components/analyticsreferers.py index b4e5fb25..8b82acdc 100644 --- a/src/dub/models/components/analyticsreferers.py +++ b/src/dub/models/components/analyticsreferers.py @@ -25,16 +25,16 @@ class AnalyticsReferers(BaseModel): referer: str r"""The name of the referer. If unknown, this will be `(direct)`""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this referer""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this referer""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this referer""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this referer, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticsrefererurls.py b/src/dub/models/components/analyticsrefererurls.py index 27d0b2ac..780778b1 100644 --- a/src/dub/models/components/analyticsrefererurls.py +++ b/src/dub/models/components/analyticsrefererurls.py @@ -25,16 +25,16 @@ class AnalyticsRefererUrls(BaseModel): referer_url: Annotated[str, pydantic.Field(alias="refererUrl")] r"""The full URL of the referer. If unknown, this will be `(direct)`""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this referer to this URL""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this referer to this URL""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this referer to this URL""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this referer to this URL, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticsregions.py b/src/dub/models/components/analyticsregions.py index d2b8debe..d80e672a 100644 --- a/src/dub/models/components/analyticsregions.py +++ b/src/dub/models/components/analyticsregions.py @@ -38,16 +38,16 @@ class AnalyticsRegions(BaseModel): city: Optional[AnalyticsRegionsCity] = AnalyticsRegionsCity.WILDCARD_ - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this region""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this region""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this region""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this region, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticstimeseries.py b/src/dub/models/components/analyticstimeseries.py index 90951b82..294439a4 100644 --- a/src/dub/models/components/analyticstimeseries.py +++ b/src/dub/models/components/analyticstimeseries.py @@ -25,16 +25,16 @@ class AnalyticsTimeseries(BaseModel): start: str r"""The starting timestamp of the interval""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks in the interval""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads in the interval""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales in the interval""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales in the interval, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticstoplinks.py b/src/dub/models/components/analyticstoplinks.py index 2144bd6a..ec8a988b 100644 --- a/src/dub/models/components/analyticstoplinks.py +++ b/src/dub/models/components/analyticstoplinks.py @@ -84,16 +84,16 @@ class AnalyticsTopLinks(BaseModel): ) r"""The ID of the partner that the link belongs to (if applicable)""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this link""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this link""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this link""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this link, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticstopurls.py b/src/dub/models/components/analyticstopurls.py index cad472f3..edf9867a 100644 --- a/src/dub/models/components/analyticstopurls.py +++ b/src/dub/models/components/analyticstopurls.py @@ -25,16 +25,16 @@ class AnalyticsTopUrls(BaseModel): url: str r"""The full destination URL (including query parameters)""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this URL""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this URL""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this URL""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this URL, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/analyticstriggers.py b/src/dub/models/components/analyticstriggers.py index aa84354d..8fa88349 100644 --- a/src/dub/models/components/analyticstriggers.py +++ b/src/dub/models/components/analyticstriggers.py @@ -35,16 +35,16 @@ class AnalyticsTriggers(BaseModel): trigger: Trigger r"""The type of trigger method: link click or QR scan""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this trigger method""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this trigger method""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this trigger method""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this trigger method, in cents""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/commissioncreatedevent.py b/src/dub/models/components/commissioncreatedevent.py index 4fa74629..73b2e6a3 100644 --- a/src/dub/models/components/commissioncreatedevent.py +++ b/src/dub/models/components/commissioncreatedevent.py @@ -288,7 +288,7 @@ class CommissionCreatedEventDataTypedDict(TypedDict): quantity: float r"""The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions.""" metadata: Nullable[Dict[str, Any]] - r"""User-provided metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`).""" + r"""Metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`), or from Stripe webhook metadata.""" created_at: str r"""The date and time when the commission was created.""" updated_at: str @@ -329,7 +329,7 @@ class CommissionCreatedEventData(BaseModel): r"""The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions.""" metadata: Nullable[Dict[str, Any]] - r"""User-provided metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`).""" + r"""Metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`), or from Stripe webhook metadata.""" created_at: Annotated[str, pydantic.Field(alias="createdAt")] r"""The date and time when the commission was created.""" diff --git a/src/dub/models/components/leadcreatedevent.py b/src/dub/models/components/leadcreatedevent.py index ba8a5887..fcff906b 100644 --- a/src/dub/models/components/leadcreatedevent.py +++ b/src/dub/models/components/leadcreatedevent.py @@ -458,19 +458,19 @@ class LeadCreatedEventLink(BaseModel): ] = UNSET r"""An array of A/B test URLs and the percentage of traffic to send to each URL.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/linkclickedevent.py b/src/dub/models/components/linkclickedevent.py index 7387efa4..62768df9 100644 --- a/src/dub/models/components/linkclickedevent.py +++ b/src/dub/models/components/linkclickedevent.py @@ -336,19 +336,19 @@ class Link(BaseModel): ] = UNSET r"""An array of A/B test URLs and the percentage of traffic to send to each URL.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/linkschema.py b/src/dub/models/components/linkschema.py index 34c0409c..dc3ad68a 100644 --- a/src/dub/models/components/linkschema.py +++ b/src/dub/models/components/linkschema.py @@ -294,19 +294,19 @@ class LinkSchema(BaseModel): ] = UNSET r"""The date and time when the tests were or will be completed.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/linkwebhookevent.py b/src/dub/models/components/linkwebhookevent.py index 4bdc0023..0c0153fe 100644 --- a/src/dub/models/components/linkwebhookevent.py +++ b/src/dub/models/components/linkwebhookevent.py @@ -272,19 +272,19 @@ class Data(BaseModel): ] = UNSET r"""An array of A/B test URLs and the percentage of traffic to send to each URL.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/partneranalyticscount.py b/src/dub/models/components/partneranalyticscount.py index e6d39054..0fa704b0 100644 --- a/src/dub/models/components/partneranalyticscount.py +++ b/src/dub/models/components/partneranalyticscount.py @@ -21,19 +21,19 @@ class PartnerAnalyticsCountTypedDict(TypedDict): class PartnerAnalyticsCount(BaseModel): - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The total number of clicks""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The total number of leads""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales, in cents""" - earnings: Optional[float] = 0 + earnings: Optional[float] = 0.0 @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/dub/models/components/partneranalyticstimeseries.py b/src/dub/models/components/partneranalyticstimeseries.py index 69e6bcab..435b6ee8 100644 --- a/src/dub/models/components/partneranalyticstimeseries.py +++ b/src/dub/models/components/partneranalyticstimeseries.py @@ -26,19 +26,19 @@ class PartnerAnalyticsTimeseries(BaseModel): start: str r"""The starting timestamp of the interval""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks in the interval""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads in the interval""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales in the interval""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales in the interval, in cents""" - earnings: Optional[float] = 0 + earnings: Optional[float] = 0.0 @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/dub/models/components/partneranalyticstoplinks.py b/src/dub/models/components/partneranalyticstoplinks.py index d9056928..a89db497 100644 --- a/src/dub/models/components/partneranalyticstoplinks.py +++ b/src/dub/models/components/partneranalyticstoplinks.py @@ -85,19 +85,19 @@ class PartnerAnalyticsTopLinks(BaseModel): ) r"""The ID of the partner that the link belongs to (if applicable)""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks from this link""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads from this link""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The number of sales from this link""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total amount of sales from this link, in cents""" - earnings: Optional[float] = 0 + earnings: Optional[float] = 0.0 @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/dub/models/components/partnerenrolledevent.py b/src/dub/models/components/partnerenrolledevent.py index dbf5e3b8..86243084 100644 --- a/src/dub/models/components/partnerenrolledevent.py +++ b/src/dub/models/components/partnerenrolledevent.py @@ -85,19 +85,19 @@ class Links(BaseModel): url: str r"""The destination URL of the short link.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") @@ -607,6 +607,7 @@ class PartnerEnrolledEventDataTypedDict(TypedDict): lead_reward_id: NotRequired[Nullable[str]] sale_reward_id: NotRequired[Nullable[str]] referral_reward_id: NotRequired[Nullable[str]] + custom_reward_id: NotRequired[Nullable[str]] discount_id: NotRequired[Nullable[str]] application_id: NotRequired[Nullable[str]] r"""If the partner submitted an application to join the program, this is the ID of the application.""" @@ -730,7 +731,7 @@ class PartnerEnrolledEventData(BaseModel): total_commissions: Annotated[ Optional[float], pydantic.Field(alias="totalCommissions") - ] = 0 + ] = 0.0 r"""The total commissions paid to the partner for their referrals""" click_reward_id: Annotated[ @@ -749,6 +750,10 @@ class PartnerEnrolledEventData(BaseModel): OptionalNullable[str], pydantic.Field(alias="referralRewardId") ] = UNSET + custom_reward_id: Annotated[ + OptionalNullable[str], pydantic.Field(alias="customRewardId") + ] = UNSET + discount_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="discountId") ] = UNSET @@ -778,26 +783,26 @@ class PartnerEnrolledEventData(BaseModel): tags: Optional[List[Tags]] = None r"""The tags associated with the partner.""" - total_clicks: Annotated[Optional[float], pydantic.Field(alias="totalClicks")] = 0 + total_clicks: Annotated[Optional[float], pydantic.Field(alias="totalClicks")] = 0.0 r"""The total number of clicks on the partner's links""" - total_leads: Annotated[Optional[float], pydantic.Field(alias="totalLeads")] = 0 + total_leads: Annotated[Optional[float], pydantic.Field(alias="totalLeads")] = 0.0 r"""The total number of leads generated by the partner's links""" total_conversions: Annotated[ Optional[float], pydantic.Field(alias="totalConversions") - ] = 0 + ] = 0.0 r"""The total number of leads that converted to paying customers""" - total_sales: Annotated[Optional[float], pydantic.Field(alias="totalSales")] = 0 + total_sales: Annotated[Optional[float], pydantic.Field(alias="totalSales")] = 0.0 r"""The total number of sales generated by the partner's links (includes recurring sales)""" total_sale_amount: Annotated[ Optional[float], pydantic.Field(alias="totalSaleAmount") - ] = 0 + ] = 0.0 r"""Total revenue generated by the partner's links""" - net_revenue: Annotated[Optional[float], pydantic.Field(alias="netRevenue")] = 0 + net_revenue: Annotated[Optional[float], pydantic.Field(alias="netRevenue")] = 0.0 r"""Net revenue after commissions (`Total Revenue - Total Commissions`)""" earnings_per_click: Annotated[ @@ -868,6 +873,7 @@ def serialize_model(self, handler): "leadRewardId", "saleRewardId", "referralRewardId", + "customRewardId", "discountId", "applicationId", "bannedAt", @@ -916,6 +922,7 @@ def serialize_model(self, handler): "leadRewardId", "saleRewardId", "referralRewardId", + "customRewardId", "discountId", "applicationId", "bannedAt", diff --git a/src/dub/models/components/partnerapplicationsubmittedevent.py b/src/dub/models/components/programapplicationsubmittedevent.py similarity index 86% rename from src/dub/models/components/partnerapplicationsubmittedevent.py rename to src/dub/models/components/programapplicationsubmittedevent.py index e7ab48ff..dfbfa495 100644 --- a/src/dub/models/components/partnerapplicationsubmittedevent.py +++ b/src/dub/models/components/programapplicationsubmittedevent.py @@ -9,11 +9,11 @@ from typing_extensions import Annotated, NotRequired, TypedDict -class PartnerApplicationSubmittedEventEvent(str, Enum): +class ProgramApplicationSubmittedEventEvent(str, Enum): PARTNER_APPLICATION_SUBMITTED = "partner.application_submitted" -class PartnerApplicationSubmittedEventStatus(str, Enum): +class ProgramApplicationSubmittedEventStatus(str, Enum): r"""The status of the partner's enrollment in the program.""" PENDING = "pending" @@ -26,7 +26,7 @@ class PartnerApplicationSubmittedEventStatus(str, Enum): ARCHIVED = "archived" -class PartnerApplicationSubmittedEventPartnerTypedDict(TypedDict): +class ProgramApplicationSubmittedEventPartnerTypedDict(TypedDict): id: str r"""The partner's unique ID on Dub.""" name: str @@ -39,7 +39,7 @@ class PartnerApplicationSubmittedEventPartnerTypedDict(TypedDict): r"""The partner's avatar image.""" country: Nullable[str] r"""The partner's country (required for tax purposes).""" - status: PartnerApplicationSubmittedEventStatus + status: ProgramApplicationSubmittedEventStatus r"""The status of the partner's enrollment in the program.""" description: NotRequired[Nullable[str]] r"""A brief description of the partner and their background.""" @@ -59,7 +59,7 @@ class PartnerApplicationSubmittedEventPartnerTypedDict(TypedDict): r"""The partner's TikTok username (e.g. `johndoe`).""" -class PartnerApplicationSubmittedEventPartner(BaseModel): +class ProgramApplicationSubmittedEventPartner(BaseModel): id: str r"""The partner's unique ID on Dub.""" @@ -78,7 +78,7 @@ class PartnerApplicationSubmittedEventPartner(BaseModel): country: Nullable[str] r"""The partner's country (required for tax purposes).""" - status: PartnerApplicationSubmittedEventStatus + status: ProgramApplicationSubmittedEventStatus r"""The status of the partner's enrollment in the program.""" description: OptionalNullable[str] = UNSET @@ -182,19 +182,19 @@ def serialize_model(self, handler): return m -class PartnerApplicationSubmittedEventDataTypedDict(TypedDict): +class ProgramApplicationSubmittedEventDataTypedDict(TypedDict): id: str created_at: str - partner: PartnerApplicationSubmittedEventPartnerTypedDict + partner: ProgramApplicationSubmittedEventPartnerTypedDict application_form_data: Nullable[List[ApplicationFormDataTypedDict]] -class PartnerApplicationSubmittedEventData(BaseModel): +class ProgramApplicationSubmittedEventData(BaseModel): id: str created_at: Annotated[str, pydantic.Field(alias="createdAt")] - partner: PartnerApplicationSubmittedEventPartner + partner: ProgramApplicationSubmittedEventPartner application_form_data: Annotated[ Nullable[List[ApplicationFormData]], pydantic.Field(alias="applicationFormData") @@ -215,36 +215,36 @@ def serialize_model(self, handler): return m -class PartnerApplicationSubmittedEventTypedDict(TypedDict): +class ProgramApplicationSubmittedEventTypedDict(TypedDict): r"""Triggered when a partner submits an application to join a program.""" id: str - event: PartnerApplicationSubmittedEventEvent + event: ProgramApplicationSubmittedEventEvent created_at: str - data: PartnerApplicationSubmittedEventDataTypedDict + data: ProgramApplicationSubmittedEventDataTypedDict -class PartnerApplicationSubmittedEvent(BaseModel): +class ProgramApplicationSubmittedEvent(BaseModel): r"""Triggered when a partner submits an application to join a program.""" id: str - event: PartnerApplicationSubmittedEventEvent + event: ProgramApplicationSubmittedEventEvent created_at: Annotated[str, pydantic.Field(alias="createdAt")] - data: PartnerApplicationSubmittedEventData + data: ProgramApplicationSubmittedEventData try: - PartnerApplicationSubmittedEventPartner.model_rebuild() + ProgramApplicationSubmittedEventPartner.model_rebuild() except NameError: pass try: - PartnerApplicationSubmittedEventData.model_rebuild() + ProgramApplicationSubmittedEventData.model_rebuild() except NameError: pass try: - PartnerApplicationSubmittedEvent.model_rebuild() + ProgramApplicationSubmittedEvent.model_rebuild() except NameError: pass diff --git a/src/dub/models/components/salecreatedevent.py b/src/dub/models/components/salecreatedevent.py index d0f623c9..c7a0a4c5 100644 --- a/src/dub/models/components/salecreatedevent.py +++ b/src/dub/models/components/salecreatedevent.py @@ -458,19 +458,19 @@ class SaleCreatedEventLink(BaseModel): ] = UNSET r"""An array of A/B test URLs and the percentage of traffic to send to each URL.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") diff --git a/src/dub/models/components/webhookevent.py b/src/dub/models/components/webhookevent.py index 2d756e22..11d73184 100644 --- a/src/dub/models/components/webhookevent.py +++ b/src/dub/models/components/webhookevent.py @@ -12,12 +12,12 @@ from .leadcreatedevent import LeadCreatedEvent, LeadCreatedEventTypedDict from .linkclickedevent import LinkClickedEvent, LinkClickedEventTypedDict from .linkwebhookevent import LinkWebhookEvent, LinkWebhookEventTypedDict -from .partnerapplicationsubmittedevent import ( - PartnerApplicationSubmittedEvent, - PartnerApplicationSubmittedEventTypedDict, -) from .partnerenrolledevent import PartnerEnrolledEvent, PartnerEnrolledEventTypedDict from .partnermergedevent import PartnerMergedEvent, PartnerMergedEventTypedDict +from .programapplicationsubmittedevent import ( + ProgramApplicationSubmittedEvent, + ProgramApplicationSubmittedEventTypedDict, +) from .salecreatedevent import SaleCreatedEvent, SaleCreatedEventTypedDict from typing import Union from typing_extensions import TypeAliasType @@ -31,7 +31,7 @@ LeadCreatedEventTypedDict, SaleCreatedEventTypedDict, PartnerEnrolledEventTypedDict, - PartnerApplicationSubmittedEventTypedDict, + ProgramApplicationSubmittedEventTypedDict, PartnerMergedEventTypedDict, CommissionCreatedEventTypedDict, DiscountCodeWebhookEventTypedDict, @@ -48,7 +48,7 @@ LeadCreatedEvent, SaleCreatedEvent, PartnerEnrolledEvent, - PartnerApplicationSubmittedEvent, + ProgramApplicationSubmittedEvent, PartnerMergedEvent, CommissionCreatedEvent, DiscountCodeWebhookEvent, diff --git a/src/dub/models/operations/__init__.py b/src/dub/models/operations/__init__.py index 3c97e819..3ba71ce8 100644 --- a/src/dub/models/operations/__init__.py +++ b/src/dub/models/operations/__init__.py @@ -16,11 +16,11 @@ ApproveBountySubmissionResponseBodyTypedDict, ApproveBountySubmissionStatus, ) - from .approvepartnerapplication import ( - ApprovePartnerApplicationRequestBody, - ApprovePartnerApplicationRequestBodyTypedDict, - ApprovePartnerApplicationResponseBody, - ApprovePartnerApplicationResponseBodyTypedDict, + from .approveprogramapplication import ( + ApproveProgramApplicationRequestBody, + ApproveProgramApplicationRequestBodyTypedDict, + ApproveProgramApplicationResponseBody, + ApproveProgramApplicationResponseBodyTypedDict, ) from .banpartner import ( BanPartnerRequestBody, @@ -337,6 +337,7 @@ ListCommissionsQueryParamInterval, ListCommissionsQueryParamSortBy, ListCommissionsQueryParamSortOrder, + ListCommissionsQueryParamStatus, ListCommissionsRequest, ListCommissionsRequestTypedDict, ListCommissionsResponse, @@ -345,7 +346,6 @@ ListCommissionsResponseTypedDict, ListCommissionsStatus, ListCommissionsType, - QueryParamStatus, Type, ) from .listdiscountcodes import ( @@ -405,17 +405,6 @@ SortOrder, ) from .listfolders import ListFoldersRequest, ListFoldersRequestTypedDict - from .listpartnerapplications import ( - ApplicationFormData, - ApplicationFormDataTypedDict, - ListPartnerApplicationsPartner, - ListPartnerApplicationsPartnerTypedDict, - ListPartnerApplicationsRequest, - ListPartnerApplicationsRequestTypedDict, - ListPartnerApplicationsResponseBody, - ListPartnerApplicationsResponseBodyTypedDict, - ListPartnerApplicationsStatus, - ) from .listpartners import ( Application, ApplicationTypedDict, @@ -489,6 +478,24 @@ User, UserTypedDict, ) + from .listprogramapplications import ( + ApplicationFormData, + ApplicationFormDataTypedDict, + ListProgramApplicationsDefaultPayoutMethod, + ListProgramApplicationsNetworkStatus, + ListProgramApplicationsPartner, + ListProgramApplicationsPartnerTypedDict, + ListProgramApplicationsQueryParamSortOrder, + ListProgramApplicationsRequest, + ListProgramApplicationsRequestTypedDict, + ListProgramApplicationsResponseBody, + ListProgramApplicationsResponseBodyTypedDict, + ListProgramApplicationsStatus, + ListProgramApplicationsType, + Platforms, + PlatformsTypedDict, + QueryParamStatus, + ) from .registerdomain import ( RegisterDomainRequestBody, RegisterDomainRequestBodyTypedDict, @@ -507,12 +514,12 @@ RejectBountySubmissionResponseBodyTypedDict, RejectBountySubmissionStatus, ) - from .rejectpartnerapplication import ( + from .rejectprogramapplication import ( ReapplicationTimeframe, - RejectPartnerApplicationRequestBody, - RejectPartnerApplicationRequestBodyTypedDict, - RejectPartnerApplicationResponseBody, - RejectPartnerApplicationResponseBodyTypedDict, + RejectProgramApplicationRequestBody, + RejectProgramApplicationRequestBodyTypedDict, + RejectProgramApplicationResponseBody, + RejectProgramApplicationResponseBodyTypedDict, RejectionReason, ) from .retrieveanalytics import ( @@ -663,10 +670,10 @@ "ApproveBountySubmissionResponseBody", "ApproveBountySubmissionResponseBodyTypedDict", "ApproveBountySubmissionStatus", - "ApprovePartnerApplicationRequestBody", - "ApprovePartnerApplicationRequestBodyTypedDict", - "ApprovePartnerApplicationResponseBody", - "ApprovePartnerApplicationResponseBodyTypedDict", + "ApproveProgramApplicationRequestBody", + "ApproveProgramApplicationRequestBodyTypedDict", + "ApproveProgramApplicationResponseBody", + "ApproveProgramApplicationResponseBodyTypedDict", "BanPartnerRequestBody", "BanPartnerRequestBodyTypedDict", "BanPartnerResponseBody", @@ -933,6 +940,7 @@ "ListCommissionsQueryParamInterval", "ListCommissionsQueryParamSortBy", "ListCommissionsQueryParamSortOrder", + "ListCommissionsQueryParamStatus", "ListCommissionsRequest", "ListCommissionsRequestTypedDict", "ListCommissionsResponse", @@ -969,13 +977,6 @@ "ListEventsResponseBodyTypedDict", "ListFoldersRequest", "ListFoldersRequestTypedDict", - "ListPartnerApplicationsPartner", - "ListPartnerApplicationsPartnerTypedDict", - "ListPartnerApplicationsRequest", - "ListPartnerApplicationsRequestTypedDict", - "ListPartnerApplicationsResponseBody", - "ListPartnerApplicationsResponseBodyTypedDict", - "ListPartnerApplicationsStatus", "ListPartnersFieldsPartnersResponse200ApplicationJSONResponseBodyReferralFormDataType", "ListPartnersFieldsPartnersResponse200ApplicationJSONResponseBodyType", "ListPartnersFieldsPartnersResponse200ApplicationJSONType", @@ -1004,6 +1005,17 @@ "ListPayoutsResponseBody", "ListPayoutsResponseBodyTypedDict", "ListPayoutsStatus", + "ListProgramApplicationsDefaultPayoutMethod", + "ListProgramApplicationsNetworkStatus", + "ListProgramApplicationsPartner", + "ListProgramApplicationsPartnerTypedDict", + "ListProgramApplicationsQueryParamSortOrder", + "ListProgramApplicationsRequest", + "ListProgramApplicationsRequestTypedDict", + "ListProgramApplicationsResponseBody", + "ListProgramApplicationsResponseBodyTypedDict", + "ListProgramApplicationsStatus", + "ListProgramApplicationsType", "Method", "Mode", "NetworkStatus", @@ -1014,6 +1026,8 @@ "Partner", "PartnerTypedDict", "PaymentProcessor", + "Platforms", + "PlatformsTypedDict", "Prices", "PricesTypedDict", "QueryParamEvent", @@ -1045,10 +1059,10 @@ "RejectBountySubmissionResponseBody", "RejectBountySubmissionResponseBodyTypedDict", "RejectBountySubmissionStatus", - "RejectPartnerApplicationRequestBody", - "RejectPartnerApplicationRequestBodyTypedDict", - "RejectPartnerApplicationResponseBody", - "RejectPartnerApplicationResponseBodyTypedDict", + "RejectProgramApplicationRequestBody", + "RejectProgramApplicationRequestBodyTypedDict", + "RejectProgramApplicationResponseBody", + "RejectProgramApplicationResponseBodyTypedDict", "RejectionReason", "RequestBody", "RequestBody1", @@ -1208,10 +1222,10 @@ "ApproveBountySubmissionResponseBody": ".approvebountysubmission", "ApproveBountySubmissionResponseBodyTypedDict": ".approvebountysubmission", "ApproveBountySubmissionStatus": ".approvebountysubmission", - "ApprovePartnerApplicationRequestBody": ".approvepartnerapplication", - "ApprovePartnerApplicationRequestBodyTypedDict": ".approvepartnerapplication", - "ApprovePartnerApplicationResponseBody": ".approvepartnerapplication", - "ApprovePartnerApplicationResponseBodyTypedDict": ".approvepartnerapplication", + "ApproveProgramApplicationRequestBody": ".approveprogramapplication", + "ApproveProgramApplicationRequestBodyTypedDict": ".approveprogramapplication", + "ApproveProgramApplicationResponseBody": ".approveprogramapplication", + "ApproveProgramApplicationResponseBodyTypedDict": ".approveprogramapplication", "BanPartnerRequestBody": ".banpartner", "BanPartnerRequestBodyTypedDict": ".banpartner", "BanPartnerResponseBody": ".banpartner", @@ -1480,6 +1494,7 @@ "ListCommissionsQueryParamInterval": ".listcommissions", "ListCommissionsQueryParamSortBy": ".listcommissions", "ListCommissionsQueryParamSortOrder": ".listcommissions", + "ListCommissionsQueryParamStatus": ".listcommissions", "ListCommissionsRequest": ".listcommissions", "ListCommissionsRequestTypedDict": ".listcommissions", "ListCommissionsResponse": ".listcommissions", @@ -1488,7 +1503,6 @@ "ListCommissionsResponseTypedDict": ".listcommissions", "ListCommissionsStatus": ".listcommissions", "ListCommissionsType": ".listcommissions", - "QueryParamStatus": ".listcommissions", "Type": ".listcommissions", "ListDiscountCodesRequest": ".listdiscountcodes", "ListDiscountCodesRequestTypedDict": ".listdiscountcodes", @@ -1542,15 +1556,6 @@ "SortOrder": ".listevents", "ListFoldersRequest": ".listfolders", "ListFoldersRequestTypedDict": ".listfolders", - "ApplicationFormData": ".listpartnerapplications", - "ApplicationFormDataTypedDict": ".listpartnerapplications", - "ListPartnerApplicationsPartner": ".listpartnerapplications", - "ListPartnerApplicationsPartnerTypedDict": ".listpartnerapplications", - "ListPartnerApplicationsRequest": ".listpartnerapplications", - "ListPartnerApplicationsRequestTypedDict": ".listpartnerapplications", - "ListPartnerApplicationsResponseBody": ".listpartnerapplications", - "ListPartnerApplicationsResponseBodyTypedDict": ".listpartnerapplications", - "ListPartnerApplicationsStatus": ".listpartnerapplications", "Application": ".listpartners", "ApplicationTypedDict": ".listpartners", "BannedReason": ".listpartners", @@ -1620,6 +1625,22 @@ "Method": ".listpayouts", "User": ".listpayouts", "UserTypedDict": ".listpayouts", + "ApplicationFormData": ".listprogramapplications", + "ApplicationFormDataTypedDict": ".listprogramapplications", + "ListProgramApplicationsDefaultPayoutMethod": ".listprogramapplications", + "ListProgramApplicationsNetworkStatus": ".listprogramapplications", + "ListProgramApplicationsPartner": ".listprogramapplications", + "ListProgramApplicationsPartnerTypedDict": ".listprogramapplications", + "ListProgramApplicationsQueryParamSortOrder": ".listprogramapplications", + "ListProgramApplicationsRequest": ".listprogramapplications", + "ListProgramApplicationsRequestTypedDict": ".listprogramapplications", + "ListProgramApplicationsResponseBody": ".listprogramapplications", + "ListProgramApplicationsResponseBodyTypedDict": ".listprogramapplications", + "ListProgramApplicationsStatus": ".listprogramapplications", + "ListProgramApplicationsType": ".listprogramapplications", + "Platforms": ".listprogramapplications", + "PlatformsTypedDict": ".listprogramapplications", + "QueryParamStatus": ".listprogramapplications", "RegisterDomainRequestBody": ".registerdomain", "RegisterDomainRequestBodyTypedDict": ".registerdomain", "RegisterDomainResponseBody": ".registerdomain", @@ -1634,12 +1655,12 @@ "RejectBountySubmissionResponseBody": ".rejectbountysubmission", "RejectBountySubmissionResponseBodyTypedDict": ".rejectbountysubmission", "RejectBountySubmissionStatus": ".rejectbountysubmission", - "ReapplicationTimeframe": ".rejectpartnerapplication", - "RejectPartnerApplicationRequestBody": ".rejectpartnerapplication", - "RejectPartnerApplicationRequestBodyTypedDict": ".rejectpartnerapplication", - "RejectPartnerApplicationResponseBody": ".rejectpartnerapplication", - "RejectPartnerApplicationResponseBodyTypedDict": ".rejectpartnerapplication", - "RejectionReason": ".rejectpartnerapplication", + "ReapplicationTimeframe": ".rejectprogramapplication", + "RejectProgramApplicationRequestBody": ".rejectprogramapplication", + "RejectProgramApplicationRequestBodyTypedDict": ".rejectprogramapplication", + "RejectProgramApplicationResponseBody": ".rejectprogramapplication", + "RejectProgramApplicationResponseBodyTypedDict": ".rejectprogramapplication", + "RejectionReason": ".rejectprogramapplication", "Event": ".retrieveanalytics", "Interval": ".retrieveanalytics", "QueryParamGroupBy": ".retrieveanalytics", diff --git a/src/dub/models/operations/approvebountysubmission.py b/src/dub/models/operations/approvebountysubmission.py index 6e22a40d..2eed22fe 100644 --- a/src/dub/models/operations/approvebountysubmission.py +++ b/src/dub/models/operations/approvebountysubmission.py @@ -156,6 +156,8 @@ class ApproveBountySubmissionResponseBodyTypedDict(TypedDict): r"""The period number for this submission (1-indexed)""" social_metrics_last_synced_at: NotRequired[Nullable[str]] r"""The date and time the submission's social metrics were last synced""" + approved_social_metric_threshold: NotRequired[Nullable[int]] + r"""The highest social metric milestone that has been approved and paid out for this submission""" class ApproveBountySubmissionResponseBody(BaseModel): @@ -215,9 +217,16 @@ class ApproveBountySubmissionResponseBody(BaseModel): ] = UNSET r"""The date and time the submission's social metrics were last synced""" + approved_social_metric_threshold: Annotated[ + OptionalNullable[int], pydantic.Field(alias="approvedSocialMetricThreshold") + ] = UNSET + r"""The highest social metric milestone that has been approved and paid out for this submission""" + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["socialMetricsLastSyncedAt"]) + optional_fields = set( + ["socialMetricsLastSyncedAt", "approvedSocialMetricThreshold"] + ) nullable_fields = set( [ "description", @@ -226,6 +235,7 @@ def serialize_model(self, handler): "performanceCount", "socialMetricCount", "socialMetricsLastSyncedAt", + "approvedSocialMetricThreshold", "completedAt", "reviewedAt", "rejectionReason", diff --git a/src/dub/models/operations/approvepartnerapplication.py b/src/dub/models/operations/approveprogramapplication.py similarity index 85% rename from src/dub/models/operations/approvepartnerapplication.py rename to src/dub/models/operations/approveprogramapplication.py index a827bd5b..30888b5d 100644 --- a/src/dub/models/operations/approvepartnerapplication.py +++ b/src/dub/models/operations/approveprogramapplication.py @@ -7,14 +7,14 @@ from typing_extensions import Annotated, NotRequired, TypedDict -class ApprovePartnerApplicationRequestBodyTypedDict(TypedDict): +class ApproveProgramApplicationRequestBodyTypedDict(TypedDict): partner_id: str r"""The ID of the partner to approve.""" group_id: NotRequired[Nullable[str]] r"""The ID of the group to assign the partner to. If not provided, the partner will be assigned to the group they applied to, or the program's default group if no application group is set.""" -class ApprovePartnerApplicationRequestBody(BaseModel): +class ApproveProgramApplicationRequestBody(BaseModel): partner_id: Annotated[str, pydantic.Field(alias="partnerId")] r"""The ID of the partner to approve.""" @@ -47,14 +47,14 @@ def serialize_model(self, handler): return m -class ApprovePartnerApplicationResponseBodyTypedDict(TypedDict): +class ApproveProgramApplicationResponseBodyTypedDict(TypedDict): r"""The approved partner""" partner_id: str r"""The ID of the approved partner.""" -class ApprovePartnerApplicationResponseBody(BaseModel): +class ApproveProgramApplicationResponseBody(BaseModel): r"""The approved partner""" partner_id: Annotated[str, pydantic.Field(alias="partnerId")] @@ -62,10 +62,10 @@ class ApprovePartnerApplicationResponseBody(BaseModel): try: - ApprovePartnerApplicationRequestBody.model_rebuild() + ApproveProgramApplicationRequestBody.model_rebuild() except NameError: pass try: - ApprovePartnerApplicationResponseBody.model_rebuild() + ApproveProgramApplicationResponseBody.model_rebuild() except NameError: pass diff --git a/src/dub/models/operations/bulkcreatelinks.py b/src/dub/models/operations/bulkcreatelinks.py index 28e4e39b..03d086c1 100644 --- a/src/dub/models/operations/bulkcreatelinks.py +++ b/src/dub/models/operations/bulkcreatelinks.py @@ -55,9 +55,9 @@ class RequestBodyTypedDict(TypedDict): key_length: NotRequired[float] r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`.""" external_id: NotRequired[Nullable[str]] - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: NotRequired[Nullable[str]] - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: NotRequired[Nullable[str]] r"""The ID of the program the short link is associated with.""" partner_id: NotRequired[Nullable[str]] @@ -144,12 +144,12 @@ class RequestBody(BaseModel): external_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="externalId") ] = UNSET - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: Annotated[OptionalNullable[str], pydantic.Field(alias="tenantId")] = ( UNSET ) - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: Annotated[OptionalNullable[str], pydantic.Field(alias="programId")] = ( UNSET diff --git a/src/dub/models/operations/bulkupdatelinks.py b/src/dub/models/operations/bulkupdatelinks.py index 765a54ad..dc408f4f 100644 --- a/src/dub/models/operations/bulkupdatelinks.py +++ b/src/dub/models/operations/bulkupdatelinks.py @@ -45,7 +45,7 @@ class DataTypedDict(TypedDict): url: NotRequired[str] r"""The destination URL of the short link.""" tenant_id: NotRequired[Nullable[str]] - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: NotRequired[Nullable[str]] r"""The ID of the program the short link is associated with.""" partner_id: NotRequired[Nullable[str]] @@ -121,7 +121,7 @@ class Data(BaseModel): tenant_id: Annotated[OptionalNullable[str], pydantic.Field(alias="tenantId")] = ( UNSET ) - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: Annotated[OptionalNullable[str], pydantic.Field(alias="programId")] = ( UNSET diff --git a/src/dub/models/operations/creatediscountcode.py b/src/dub/models/operations/creatediscountcode.py index 13a83439..33d309b3 100644 --- a/src/dub/models/operations/creatediscountcode.py +++ b/src/dub/models/operations/creatediscountcode.py @@ -14,7 +14,7 @@ class CreateDiscountCodeRequestBodyTypedDict(TypedDict): link_id: str r"""The ID of the partner's referral link to associate this discount code with. Each link can only have one discount code.""" code: NotRequired[str] - r"""The discount code to create. If omitted, a unique code will be generated automatically from the partner's name.""" + r"""The discount code to create. If omitted, a unique code will be generated automatically from the partner's name. Stripe and Shopify codes can only contain letters, numbers, dashes, and underscores. Custom provider codes can contain any characters.""" class CreateDiscountCodeRequestBody(BaseModel): @@ -25,7 +25,7 @@ class CreateDiscountCodeRequestBody(BaseModel): r"""The ID of the partner's referral link to associate this discount code with. Each link can only have one discount code.""" code: Optional[str] = None - r"""The discount code to create. If omitted, a unique code will be generated automatically from the partner's name.""" + r"""The discount code to create. If omitted, a unique code will be generated automatically from the partner's name. Stripe and Shopify codes can only contain letters, numbers, dashes, and underscores. Custom provider codes can contain any characters.""" @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/dub/models/operations/createlink.py b/src/dub/models/operations/createlink.py index edfdc7a0..3131b1c3 100644 --- a/src/dub/models/operations/createlink.py +++ b/src/dub/models/operations/createlink.py @@ -49,9 +49,9 @@ class CreateLinkRequestBodyTypedDict(TypedDict): key_length: NotRequired[float] r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`.""" external_id: NotRequired[Nullable[str]] - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: NotRequired[Nullable[str]] - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: NotRequired[Nullable[str]] r"""The ID of the program the short link is associated with.""" partner_id: NotRequired[Nullable[str]] @@ -138,12 +138,12 @@ class CreateLinkRequestBody(BaseModel): external_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="externalId") ] = UNSET - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: Annotated[OptionalNullable[str], pydantic.Field(alias="tenantId")] = ( UNSET ) - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: Annotated[OptionalNullable[str], pydantic.Field(alias="programId")] = ( UNSET diff --git a/src/dub/models/operations/createpartner.py b/src/dub/models/operations/createpartner.py index 20fb0848..0ddcb52b 100644 --- a/src/dub/models/operations/createpartner.py +++ b/src/dub/models/operations/createpartner.py @@ -45,9 +45,9 @@ class LinkPropsTypedDict(TypedDict): r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner.""" external_id: NotRequired[Nullable[str]] - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: NotRequired[Nullable[str]] - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" prefix: NotRequired[str] r"""Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`).""" archived: NotRequired[bool] @@ -96,12 +96,12 @@ class LinkProps(BaseModel): external_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="externalId") ] = UNSET - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: Annotated[OptionalNullable[str], pydantic.Field(alias="tenantId")] = ( UNSET ) - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" prefix: Optional[str] = None r"""Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`).""" @@ -404,19 +404,19 @@ class CreatePartnerLinks(BaseModel): url: str r"""The destination URL of the short link.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") @@ -932,6 +932,7 @@ class CreatePartnerResponseBodyTypedDict(TypedDict): lead_reward_id: NotRequired[Nullable[str]] sale_reward_id: NotRequired[Nullable[str]] referral_reward_id: NotRequired[Nullable[str]] + custom_reward_id: NotRequired[Nullable[str]] discount_id: NotRequired[Nullable[str]] application_id: NotRequired[Nullable[str]] r"""If the partner submitted an application to join the program, this is the ID of the application.""" @@ -1060,7 +1061,7 @@ class CreatePartnerResponseBody(BaseModel): total_commissions: Annotated[ Optional[float], pydantic.Field(alias="totalCommissions") - ] = 0 + ] = 0.0 r"""The total commissions paid to the partner for their referrals""" click_reward_id: Annotated[ @@ -1079,6 +1080,10 @@ class CreatePartnerResponseBody(BaseModel): OptionalNullable[str], pydantic.Field(alias="referralRewardId") ] = UNSET + custom_reward_id: Annotated[ + OptionalNullable[str], pydantic.Field(alias="customRewardId") + ] = UNSET + discount_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="discountId") ] = UNSET @@ -1110,26 +1115,26 @@ class CreatePartnerResponseBody(BaseModel): tags: Optional[List[CreatePartnerTags]] = None r"""The tags associated with the partner.""" - total_clicks: Annotated[Optional[float], pydantic.Field(alias="totalClicks")] = 0 + total_clicks: Annotated[Optional[float], pydantic.Field(alias="totalClicks")] = 0.0 r"""The total number of clicks on the partner's links""" - total_leads: Annotated[Optional[float], pydantic.Field(alias="totalLeads")] = 0 + total_leads: Annotated[Optional[float], pydantic.Field(alias="totalLeads")] = 0.0 r"""The total number of leads generated by the partner's links""" total_conversions: Annotated[ Optional[float], pydantic.Field(alias="totalConversions") - ] = 0 + ] = 0.0 r"""The total number of leads that converted to paying customers""" - total_sales: Annotated[Optional[float], pydantic.Field(alias="totalSales")] = 0 + total_sales: Annotated[Optional[float], pydantic.Field(alias="totalSales")] = 0.0 r"""The total number of sales generated by the partner's links (includes recurring sales)""" total_sale_amount: Annotated[ Optional[float], pydantic.Field(alias="totalSaleAmount") - ] = 0 + ] = 0.0 r"""Total revenue generated by the partner's links""" - net_revenue: Annotated[Optional[float], pydantic.Field(alias="netRevenue")] = 0 + net_revenue: Annotated[Optional[float], pydantic.Field(alias="netRevenue")] = 0.0 r"""Net revenue after commissions (`Total Revenue - Total Commissions`)""" earnings_per_click: Annotated[ @@ -1200,6 +1205,7 @@ def serialize_model(self, handler): "leadRewardId", "saleRewardId", "referralRewardId", + "customRewardId", "discountId", "applicationId", "bannedAt", @@ -1248,6 +1254,7 @@ def serialize_model(self, handler): "leadRewardId", "saleRewardId", "referralRewardId", + "customRewardId", "discountId", "applicationId", "bannedAt", diff --git a/src/dub/models/operations/createpartnerlink.py b/src/dub/models/operations/createpartnerlink.py index 2aa636c0..48bd00a0 100644 --- a/src/dub/models/operations/createpartnerlink.py +++ b/src/dub/models/operations/createpartnerlink.py @@ -47,9 +47,9 @@ class CreatePartnerLinkLinkPropsTypedDict(TypedDict): r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner.""" external_id: NotRequired[Nullable[str]] - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: NotRequired[Nullable[str]] - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" prefix: NotRequired[str] r"""Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`).""" archived: NotRequired[bool] @@ -98,12 +98,12 @@ class CreatePartnerLinkLinkProps(BaseModel): external_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="externalId") ] = UNSET - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: Annotated[OptionalNullable[str], pydantic.Field(alias="tenantId")] = ( UNSET ) - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" prefix: Optional[str] = None r"""Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`).""" @@ -255,7 +255,7 @@ class CreatePartnerLinkRequestBodyTypedDict(TypedDict): tenant_id: NotRequired[Nullable[str]] r"""The ID of the partner in your system. If both `partnerId` and `tenantId` are not provided, an error will be thrown.""" url: NotRequired[Nullable[str]] - r"""The URL to shorten (if not provided, the program's default URL will be used). Will throw an error if the domain doesn't match the program's default URL domain.""" + r"""The URL to shorten (if not provided, the program's default URL will be used).""" key: NotRequired[str] r"""The short link slug. If not provided, a random 7-character slug will be generated.""" comments: NotRequired[Nullable[str]] @@ -276,7 +276,7 @@ class CreatePartnerLinkRequestBody(BaseModel): r"""The ID of the partner in your system. If both `partnerId` and `tenantId` are not provided, an error will be thrown.""" url: OptionalNullable[str] = UNSET - r"""The URL to shorten (if not provided, the program's default URL will be used). Will throw an error if the domain doesn't match the program's default URL domain.""" + r"""The URL to shorten (if not provided, the program's default URL will be used).""" key: Optional[str] = None r"""The short link slug. If not provided, a random 7-character slug will be generated.""" diff --git a/src/dub/models/operations/createreferralsembedtoken.py b/src/dub/models/operations/createreferralsembedtoken.py index 6b33d4c0..dade9089 100644 --- a/src/dub/models/operations/createreferralsembedtoken.py +++ b/src/dub/models/operations/createreferralsembedtoken.py @@ -47,9 +47,9 @@ class CreateReferralsEmbedTokenLinkPropsTypedDict(TypedDict): r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner.""" external_id: NotRequired[Nullable[str]] - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: NotRequired[Nullable[str]] - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" prefix: NotRequired[str] r"""Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`).""" archived: NotRequired[bool] @@ -100,12 +100,12 @@ class CreateReferralsEmbedTokenLinkProps(BaseModel): external_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="externalId") ] = UNSET - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: Annotated[OptionalNullable[str], pydantic.Field(alias="tenantId")] = ( UNSET ) - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" prefix: Optional[str] = None r"""Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`).""" diff --git a/src/dub/models/operations/getcustomers.py b/src/dub/models/operations/getcustomers.py index 2803a6e8..0fb89080 100644 --- a/src/dub/models/operations/getcustomers.py +++ b/src/dub/models/operations/getcustomers.py @@ -32,7 +32,7 @@ class GetCustomersRequestTypedDict(TypedDict): external_id: NotRequired[str] r"""A case-sensitive filter on the list based on the customer's `externalId` field. The value must be a string. Takes precedence over `search`.""" search: NotRequired[str] - r"""A search query to filter customers by email, externalId, or name. If `email` or `externalId` is provided, this will be ignored.""" + r"""A search query to filter customers by email, name, or customer ID (`cus_...`). If `email` or `externalId` is provided, this will be ignored.""" country: NotRequired[str] r"""A filter on the list based on the customer's `country` field.""" link_id: NotRequired[str] @@ -75,7 +75,7 @@ class GetCustomersRequest(BaseModel): Optional[str], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = None - r"""A search query to filter customers by email, externalId, or name. If `email` or `externalId` is provided, this will be ignored.""" + r"""A search query to filter customers by email, name, or customer ID (`cus_...`). If `email` or `externalId` is provided, this will be ignored.""" country: Annotated[ Optional[str], diff --git a/src/dub/models/operations/getqrcode.py b/src/dub/models/operations/getqrcode.py index 4bef826a..b9389cf2 100644 --- a/src/dub/models/operations/getqrcode.py +++ b/src/dub/models/operations/getqrcode.py @@ -55,7 +55,7 @@ class GetQRCodeRequest(BaseModel): size: Annotated[ Optional[float], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), - ] = 600 + ] = 600.0 r"""The size of the QR code in pixels. Defaults to `600` if not provided.""" level: Annotated[ @@ -88,7 +88,7 @@ class GetQRCodeRequest(BaseModel): margin: Annotated[ Optional[float], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), - ] = 2 + ] = 2.0 r"""The size of the margin around the QR code. Defaults to 2 if not provided.""" include_margin: Annotated[ diff --git a/src/dub/models/operations/listbountysubmissions.py b/src/dub/models/operations/listbountysubmissions.py index 313436a4..99e6fa67 100644 --- a/src/dub/models/operations/listbountysubmissions.py +++ b/src/dub/models/operations/listbountysubmissions.py @@ -197,6 +197,8 @@ class ListBountySubmissionsResponseBodyTypedDict(TypedDict): r"""The period number for this submission (1-indexed)""" social_metrics_last_synced_at: NotRequired[Nullable[str]] r"""The date and time the submission's social metrics were last synced""" + approved_social_metric_threshold: NotRequired[Nullable[int]] + r"""The highest social metric milestone that has been approved and paid out for this submission""" class ListBountySubmissionsResponseBody(BaseModel): @@ -254,9 +256,16 @@ class ListBountySubmissionsResponseBody(BaseModel): ] = UNSET r"""The date and time the submission's social metrics were last synced""" + approved_social_metric_threshold: Annotated[ + OptionalNullable[int], pydantic.Field(alias="approvedSocialMetricThreshold") + ] = UNSET + r"""The highest social metric milestone that has been approved and paid out for this submission""" + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["socialMetricsLastSyncedAt"]) + optional_fields = set( + ["socialMetricsLastSyncedAt", "approvedSocialMetricThreshold"] + ) nullable_fields = set( [ "description", @@ -265,6 +274,7 @@ def serialize_model(self, handler): "performanceCount", "socialMetricCount", "socialMetricsLastSyncedAt", + "approvedSocialMetricThreshold", "completedAt", "reviewedAt", "rejectionReason", diff --git a/src/dub/models/operations/listcommissions.py b/src/dub/models/operations/listcommissions.py index 9071c0c5..9ff8b9f9 100644 --- a/src/dub/models/operations/listcommissions.py +++ b/src/dub/models/operations/listcommissions.py @@ -25,7 +25,7 @@ class Type(str, Enum): CUSTOM = "custom" -class QueryParamStatus(str, Enum): +class ListCommissionsQueryParamStatus(str, Enum): r"""Filter the list of commissions by their corresponding status.""" PENDING = "pending" @@ -78,6 +78,8 @@ class ListCommissionsRequestTypedDict(TypedDict): r"""Filter the list of commissions by the associated customer.""" payout_id: NotRequired[str] r"""Filter the list of commissions by the associated payout.""" + bounty_submission_id: NotRequired[str] + r"""Filter the list of commissions by the associated bounty submission.""" partner_id: NotRequired[str] r"""Filter the list of commissions by the associated partner. When specified, takes precedence over `tenantId`. Supports advanced filtering: single value, multiple values (comma-separated), or exclusion (prefix with `-`). @@ -105,7 +107,7 @@ class ListCommissionsRequestTypedDict(TypedDict): """ invoice_id: NotRequired[str] r"""Filter the list of commissions by the associated invoice. Since invoiceId is unique on a per-program basis, this will only return one commission per invoice.""" - status: NotRequired[QueryParamStatus] + status: NotRequired[ListCommissionsQueryParamStatus] r"""Filter the list of commissions by their corresponding status.""" sort_by: NotRequired[ListCommissionsQueryParamSortBy] r"""The field to sort the list of commissions by.""" @@ -160,6 +162,13 @@ class ListCommissionsRequest(BaseModel): ] = None r"""Filter the list of commissions by the associated payout.""" + bounty_submission_id: Annotated[ + Optional[str], + pydantic.Field(alias="bountySubmissionId"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Filter the list of commissions by the associated bounty submission.""" + partner_id: Annotated[ Optional[str], pydantic.Field(alias="partnerId"), @@ -213,7 +222,7 @@ class ListCommissionsRequest(BaseModel): r"""Filter the list of commissions by the associated invoice. Since invoiceId is unique on a per-program basis, this will only return one commission per invoice.""" status: Annotated[ - Optional[QueryParamStatus], + Optional[ListCommissionsQueryParamStatus], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = None r"""Filter the list of commissions by their corresponding status.""" @@ -299,6 +308,7 @@ def serialize_model(self, handler): "type", "customerId", "payoutId", + "bountySubmissionId", "partnerId", "tenantId", "groupId", @@ -566,7 +576,7 @@ class ListCommissionsResponseBodyTypedDict(TypedDict): quantity: float r"""The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions.""" metadata: Nullable[Dict[str, Any]] - r"""User-provided metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`).""" + r"""Metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`), or from Stripe webhook metadata.""" created_at: str r"""The date and time when the commission was created.""" updated_at: str @@ -608,7 +618,7 @@ class ListCommissionsResponseBody(BaseModel): r"""The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions.""" metadata: Nullable[Dict[str, Any]] - r"""User-provided metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`).""" + r"""Metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`), or from Stripe webhook metadata.""" created_at: Annotated[str, pydantic.Field(alias="createdAt")] r"""The date and time when the commission was created.""" diff --git a/src/dub/models/operations/listdiscountcodes.py b/src/dub/models/operations/listdiscountcodes.py index 127bf61b..39e8698d 100644 --- a/src/dub/models/operations/listdiscountcodes.py +++ b/src/dub/models/operations/listdiscountcodes.py @@ -14,6 +14,8 @@ class ListDiscountCodesRequestTypedDict(TypedDict): r"""The ID of the partner to retrieve discount codes for. If omitted, returns discount codes for the whole program.""" discount_id: NotRequired[str] r"""Filter discount codes by discount ID.""" + code: NotRequired[str] + r"""Filter discount codes by the alphanumeric code (e.g. `PARTNER10OFF`).""" page: NotRequired[int] r"""The page number for pagination. The first page is `1`.""" page_size: NotRequired[int] @@ -35,6 +37,12 @@ class ListDiscountCodesRequest(BaseModel): ] = None r"""Filter discount codes by discount ID.""" + code: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Filter discount codes by the alphanumeric code (e.g. `PARTNER10OFF`).""" + page: Annotated[ Optional[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), @@ -50,7 +58,7 @@ class ListDiscountCodesRequest(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["partnerId", "discountId", "page", "pageSize"]) + optional_fields = set(["partnerId", "discountId", "code", "page", "pageSize"]) serialized = handler(self) m = {} diff --git a/src/dub/models/operations/listevents.py b/src/dub/models/operations/listevents.py index a6346c0b..86f5ee78 100644 --- a/src/dub/models/operations/listevents.py +++ b/src/dub/models/operations/listevents.py @@ -825,19 +825,19 @@ class ListEventsResponseBodyLink(BaseModel): ] = UNSET r"""An array of A/B test URLs and the percentage of traffic to send to each URL.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") @@ -1646,19 +1646,19 @@ class ResponseBodyLink(BaseModel): ] = UNSET r"""An array of A/B test URLs and the percentage of traffic to send to each URL.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") @@ -2353,19 +2353,19 @@ class ListEventsResponseBodyEventsLink(BaseModel): ] = UNSET r"""An array of A/B test URLs and the percentage of traffic to send to each URL.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") diff --git a/src/dub/models/operations/listpartners.py b/src/dub/models/operations/listpartners.py index 8f84c99e..6c65abf9 100644 --- a/src/dub/models/operations/listpartners.py +++ b/src/dub/models/operations/listpartners.py @@ -238,19 +238,19 @@ class Links(BaseModel): url: str r"""The destination URL of the short link.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") @@ -762,6 +762,7 @@ class ListPartnersResponseBodyTypedDict(TypedDict): lead_reward_id: NotRequired[Nullable[str]] sale_reward_id: NotRequired[Nullable[str]] referral_reward_id: NotRequired[Nullable[str]] + custom_reward_id: NotRequired[Nullable[str]] discount_id: NotRequired[Nullable[str]] application_id: NotRequired[Nullable[str]] r"""If the partner submitted an application to join the program, this is the ID of the application.""" @@ -885,7 +886,7 @@ class ListPartnersResponseBody(BaseModel): total_commissions: Annotated[ Optional[float], pydantic.Field(alias="totalCommissions") - ] = 0 + ] = 0.0 r"""The total commissions paid to the partner for their referrals""" click_reward_id: Annotated[ @@ -904,6 +905,10 @@ class ListPartnersResponseBody(BaseModel): OptionalNullable[str], pydantic.Field(alias="referralRewardId") ] = UNSET + custom_reward_id: Annotated[ + OptionalNullable[str], pydantic.Field(alias="customRewardId") + ] = UNSET + discount_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="discountId") ] = UNSET @@ -933,26 +938,26 @@ class ListPartnersResponseBody(BaseModel): tags: Optional[List[Tags]] = None r"""The tags associated with the partner.""" - total_clicks: Annotated[Optional[float], pydantic.Field(alias="totalClicks")] = 0 + total_clicks: Annotated[Optional[float], pydantic.Field(alias="totalClicks")] = 0.0 r"""The total number of clicks on the partner's links""" - total_leads: Annotated[Optional[float], pydantic.Field(alias="totalLeads")] = 0 + total_leads: Annotated[Optional[float], pydantic.Field(alias="totalLeads")] = 0.0 r"""The total number of leads generated by the partner's links""" total_conversions: Annotated[ Optional[float], pydantic.Field(alias="totalConversions") - ] = 0 + ] = 0.0 r"""The total number of leads that converted to paying customers""" - total_sales: Annotated[Optional[float], pydantic.Field(alias="totalSales")] = 0 + total_sales: Annotated[Optional[float], pydantic.Field(alias="totalSales")] = 0.0 r"""The total number of sales generated by the partner's links (includes recurring sales)""" total_sale_amount: Annotated[ Optional[float], pydantic.Field(alias="totalSaleAmount") - ] = 0 + ] = 0.0 r"""Total revenue generated by the partner's links""" - net_revenue: Annotated[Optional[float], pydantic.Field(alias="netRevenue")] = 0 + net_revenue: Annotated[Optional[float], pydantic.Field(alias="netRevenue")] = 0.0 r"""Net revenue after commissions (`Total Revenue - Total Commissions`)""" earnings_per_click: Annotated[ @@ -1023,6 +1028,7 @@ def serialize_model(self, handler): "leadRewardId", "saleRewardId", "referralRewardId", + "customRewardId", "discountId", "applicationId", "bannedAt", @@ -1071,6 +1077,7 @@ def serialize_model(self, handler): "leadRewardId", "saleRewardId", "referralRewardId", + "customRewardId", "discountId", "applicationId", "bannedAt", diff --git a/src/dub/models/operations/listpartnerapplications.py b/src/dub/models/operations/listprogramapplications.py similarity index 59% rename from src/dub/models/operations/listpartnerapplications.py rename to src/dub/models/operations/listprogramapplications.py index 8c36ce00..ddc4a5e0 100644 --- a/src/dub/models/operations/listpartnerapplications.py +++ b/src/dub/models/operations/listprogramapplications.py @@ -10,18 +10,39 @@ from typing_extensions import Annotated, NotRequired, TypedDict -class ListPartnerApplicationsRequestTypedDict(TypedDict): +class ListProgramApplicationsQueryParamSortOrder(str, Enum): + r"""The sort order. The default is `desc`.""" + + ASC = "asc" + DESC = "desc" + + +class QueryParamStatus(str, Enum): + r"""Filter applications by status. One of `pending`, `approved`, or `rejected`. Defaults to `pending`.""" + + PENDING = "pending" + APPROVED = "approved" + REJECTED = "rejected" + + +class ListProgramApplicationsRequestTypedDict(TypedDict): country: NotRequired[str] r"""A filter on the list based on the partner's `country` field.""" group_id: NotRequired[str] r"""A filter on the list based on the partner's `groupId` field.""" + sort_order: NotRequired[ListProgramApplicationsQueryParamSortOrder] + r"""The sort order. The default is `desc`.""" + search: NotRequired[str] + r"""Filter applications by name, email, or company name. Partial matches are supported. An exact partner ID is also matched.""" + status: NotRequired[QueryParamStatus] + r"""Filter applications by status. One of `pending`, `approved`, or `rejected`. Defaults to `pending`.""" page: NotRequired[int] r"""The page number for pagination. The first page is `1`.""" page_size: NotRequired[int] r"""The number of items per page.""" -class ListPartnerApplicationsRequest(BaseModel): +class ListProgramApplicationsRequest(BaseModel): country: Annotated[ Optional[str], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), @@ -35,6 +56,25 @@ class ListPartnerApplicationsRequest(BaseModel): ] = None r"""A filter on the list based on the partner's `groupId` field.""" + sort_order: Annotated[ + Optional[ListProgramApplicationsQueryParamSortOrder], + pydantic.Field(alias="sortOrder"), + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = ListProgramApplicationsQueryParamSortOrder.DESC + r"""The sort order. The default is `desc`.""" + + search: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Filter applications by name, email, or company name. Partial matches are supported. An exact partner ID is also matched.""" + + status: Annotated[ + Optional[QueryParamStatus], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = QueryParamStatus.PENDING + r"""Filter applications by status. One of `pending`, `approved`, or `rejected`. Defaults to `pending`.""" + page: Annotated[ Optional[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), @@ -50,7 +90,9 @@ class ListPartnerApplicationsRequest(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["country", "groupId", "page", "pageSize"]) + optional_fields = set( + ["country", "groupId", "sortOrder", "search", "status", "page", "pageSize"] + ) serialized = handler(self) m = {} @@ -65,7 +107,7 @@ def serialize_model(self, handler): return m -class ListPartnerApplicationsStatus(str, Enum): +class ListProgramApplicationsStatus(str, Enum): r"""The status of the partner's enrollment in the program.""" PENDING = "pending" @@ -78,7 +120,63 @@ class ListPartnerApplicationsStatus(str, Enum): ARCHIVED = "archived" -class ListPartnerApplicationsPartnerTypedDict(TypedDict): +class ListProgramApplicationsNetworkStatus(str, Enum): + r"""The partner's network status on Dub.""" + + DRAFT = "draft" + SUBMITTED = "submitted" + APPROVED = "approved" + REJECTED = "rejected" + TRUSTED = "trusted" + + +class ListProgramApplicationsDefaultPayoutMethod(str, Enum): + r"""The partner's default payout method. Connect: Bank account payouts via Stripe Connect; Stablecoin: USDC payouts directly to a crypto wallet; PayPal: Payouts via PayPal""" + + CONNECT = "connect" + STABLECOIN = "stablecoin" + PAYPAL = "paypal" + TREMENDOUS = "tremendous" + + +class ListProgramApplicationsType(str, Enum): + WEBSITE = "website" + YOUTUBE = "youtube" + TWITTER = "twitter" + LINKEDIN = "linkedin" + INSTAGRAM = "instagram" + TIKTOK = "tiktok" + + +class PlatformsTypedDict(TypedDict): + type: ListProgramApplicationsType + identifier: str + verified_at: Nullable[str] + + +class Platforms(BaseModel): + type: ListProgramApplicationsType + + identifier: str + + verified_at: Annotated[Nullable[str], pydantic.Field(alias="verifiedAt")] + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + m[k] = val + + return m + + +class ListProgramApplicationsPartnerTypedDict(TypedDict): id: str r"""The partner's unique ID on Dub.""" name: str @@ -91,8 +189,14 @@ class ListPartnerApplicationsPartnerTypedDict(TypedDict): r"""The partner's avatar image.""" country: Nullable[str] r"""The partner's country (required for tax purposes).""" - status: ListPartnerApplicationsStatus + status: ListProgramApplicationsStatus r"""The status of the partner's enrollment in the program.""" + network_status: ListProgramApplicationsNetworkStatus + r"""The partner's network status on Dub.""" + default_payout_method: Nullable[ListProgramApplicationsDefaultPayoutMethod] + r"""The partner's default payout method. Connect: Bank account payouts via Stripe Connect; Stablecoin: USDC payouts directly to a crypto wallet; PayPal: Payouts via PayPal""" + payouts_enabled_at: Nullable[str] + r"""The date when the partner enabled payouts.""" description: NotRequired[Nullable[str]] r"""A brief description of the partner and their background.""" group_id: NotRequired[Nullable[str]] @@ -109,9 +213,11 @@ class ListPartnerApplicationsPartnerTypedDict(TypedDict): r"""The partner's Instagram username (e.g. `johndoe`).""" tiktok: NotRequired[Nullable[str]] r"""The partner's TikTok username (e.g. `johndoe`).""" + platforms: NotRequired[Nullable[List[PlatformsTypedDict]]] + r"""The partner's website and social profiles, including when each was verified.""" -class ListPartnerApplicationsPartner(BaseModel): +class ListProgramApplicationsPartner(BaseModel): id: str r"""The partner's unique ID on Dub.""" @@ -130,9 +236,25 @@ class ListPartnerApplicationsPartner(BaseModel): country: Nullable[str] r"""The partner's country (required for tax purposes).""" - status: ListPartnerApplicationsStatus + status: ListProgramApplicationsStatus r"""The status of the partner's enrollment in the program.""" + network_status: Annotated[ + ListProgramApplicationsNetworkStatus, pydantic.Field(alias="networkStatus") + ] + r"""The partner's network status on Dub.""" + + default_payout_method: Annotated[ + Nullable[ListProgramApplicationsDefaultPayoutMethod], + pydantic.Field(alias="defaultPayoutMethod"), + ] + r"""The partner's default payout method. Connect: Bank account payouts via Stripe Connect; Stablecoin: USDC payouts directly to a crypto wallet; PayPal: Payouts via PayPal""" + + payouts_enabled_at: Annotated[ + Nullable[str], pydantic.Field(alias="payoutsEnabledAt") + ] + r"""The date when the partner enabled payouts.""" + description: OptionalNullable[str] = UNSET r"""A brief description of the partner and their background.""" @@ -157,6 +279,9 @@ class ListPartnerApplicationsPartner(BaseModel): tiktok: OptionalNullable[str] = UNSET r"""The partner's TikTok username (e.g. `johndoe`).""" + platforms: OptionalNullable[List[Platforms]] = UNSET + r"""The partner's website and social profiles, including when each was verified.""" + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( @@ -169,6 +294,7 @@ def serialize_model(self, handler): "linkedin", "instagram", "tiktok", + "platforms", ] ) nullable_fields = set( @@ -185,6 +311,9 @@ def serialize_model(self, handler): "linkedin", "instagram", "tiktok", + "defaultPayoutMethod", + "payoutsEnabledAt", + "platforms", ] ) serialized = handler(self) @@ -234,19 +363,19 @@ def serialize_model(self, handler): return m -class ListPartnerApplicationsResponseBodyTypedDict(TypedDict): +class ListProgramApplicationsResponseBodyTypedDict(TypedDict): id: str created_at: str - partner: ListPartnerApplicationsPartnerTypedDict + partner: ListProgramApplicationsPartnerTypedDict application_form_data: Nullable[List[ApplicationFormDataTypedDict]] -class ListPartnerApplicationsResponseBody(BaseModel): +class ListProgramApplicationsResponseBody(BaseModel): id: str created_at: Annotated[str, pydantic.Field(alias="createdAt")] - partner: ListPartnerApplicationsPartner + partner: ListProgramApplicationsPartner application_form_data: Annotated[ Nullable[List[ApplicationFormData]], pydantic.Field(alias="applicationFormData") @@ -268,10 +397,14 @@ def serialize_model(self, handler): try: - ListPartnerApplicationsPartner.model_rebuild() + Platforms.model_rebuild() +except NameError: + pass +try: + ListProgramApplicationsPartner.model_rebuild() except NameError: pass try: - ListPartnerApplicationsResponseBody.model_rebuild() + ListProgramApplicationsResponseBody.model_rebuild() except NameError: pass diff --git a/src/dub/models/operations/rejectbountysubmission.py b/src/dub/models/operations/rejectbountysubmission.py index d1925c46..63065157 100644 --- a/src/dub/models/operations/rejectbountysubmission.py +++ b/src/dub/models/operations/rejectbountysubmission.py @@ -165,6 +165,8 @@ class RejectBountySubmissionResponseBodyTypedDict(TypedDict): r"""The period number for this submission (1-indexed)""" social_metrics_last_synced_at: NotRequired[Nullable[str]] r"""The date and time the submission's social metrics were last synced""" + approved_social_metric_threshold: NotRequired[Nullable[int]] + r"""The highest social metric milestone that has been approved and paid out for this submission""" class RejectBountySubmissionResponseBody(BaseModel): @@ -224,9 +226,16 @@ class RejectBountySubmissionResponseBody(BaseModel): ] = UNSET r"""The date and time the submission's social metrics were last synced""" + approved_social_metric_threshold: Annotated[ + OptionalNullable[int], pydantic.Field(alias="approvedSocialMetricThreshold") + ] = UNSET + r"""The highest social metric milestone that has been approved and paid out for this submission""" + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["socialMetricsLastSyncedAt"]) + optional_fields = set( + ["socialMetricsLastSyncedAt", "approvedSocialMetricThreshold"] + ) nullable_fields = set( [ "description", @@ -235,6 +244,7 @@ def serialize_model(self, handler): "performanceCount", "socialMetricCount", "socialMetricsLastSyncedAt", + "approvedSocialMetricThreshold", "completedAt", "reviewedAt", "rejectionReason", diff --git a/src/dub/models/operations/rejectpartnerapplication.py b/src/dub/models/operations/rejectprogramapplication.py similarity index 92% rename from src/dub/models/operations/rejectpartnerapplication.py rename to src/dub/models/operations/rejectprogramapplication.py index dbacacfe..7bde35a6 100644 --- a/src/dub/models/operations/rejectpartnerapplication.py +++ b/src/dub/models/operations/rejectprogramapplication.py @@ -26,7 +26,7 @@ class ReapplicationTimeframe(str, Enum): NEVER = "never" -class RejectPartnerApplicationRequestBodyTypedDict(TypedDict): +class RejectProgramApplicationRequestBodyTypedDict(TypedDict): partner_id: str r"""The ID of the partner to reject.""" rejection_reason: NotRequired[RejectionReason] @@ -41,7 +41,7 @@ class RejectPartnerApplicationRequestBodyTypedDict(TypedDict): r"""The reason for flagging the partner for fraud. Required when flagForFraud is true.""" -class RejectPartnerApplicationRequestBody(BaseModel): +class RejectProgramApplicationRequestBody(BaseModel): partner_id: Annotated[str, pydantic.Field(alias="partnerId")] r"""The ID of the partner to reject.""" @@ -95,14 +95,14 @@ def serialize_model(self, handler): return m -class RejectPartnerApplicationResponseBodyTypedDict(TypedDict): +class RejectProgramApplicationResponseBodyTypedDict(TypedDict): r"""The rejected partner""" partner_id: str r"""The ID of the rejected partner.""" -class RejectPartnerApplicationResponseBody(BaseModel): +class RejectProgramApplicationResponseBody(BaseModel): r"""The rejected partner""" partner_id: Annotated[str, pydantic.Field(alias="partnerId")] @@ -110,10 +110,10 @@ class RejectPartnerApplicationResponseBody(BaseModel): try: - RejectPartnerApplicationRequestBody.model_rebuild() + RejectProgramApplicationRequestBody.model_rebuild() except NameError: pass try: - RejectPartnerApplicationResponseBody.model_rebuild() + RejectProgramApplicationResponseBody.model_rebuild() except NameError: pass diff --git a/src/dub/models/operations/retrievepartnerlinks.py b/src/dub/models/operations/retrievepartnerlinks.py index 43bb0d42..1187b436 100644 --- a/src/dub/models/operations/retrievepartnerlinks.py +++ b/src/dub/models/operations/retrievepartnerlinks.py @@ -96,19 +96,19 @@ class RetrievePartnerLinksResponseBody(BaseModel): url: str r"""The destination URL of the short link.""" - clicks: Optional[float] = 0 + clicks: Optional[float] = 0.0 r"""The number of clicks on the short link.""" - leads: Optional[float] = 0 + leads: Optional[float] = 0.0 r"""The number of leads the short link has generated.""" - conversions: Optional[float] = 0 + conversions: Optional[float] = 0.0 r"""The number of leads that converted to paying customers.""" - sales: Optional[float] = 0 + sales: Optional[float] = 0.0 r"""The total number of sales (includes recurring sales) generated by the short link.""" - sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0 + sale_amount: Annotated[Optional[float], pydantic.Field(alias="saleAmount")] = 0.0 r"""The total dollar value of sales (in cents) generated by the short link.""" @model_serializer(mode="wrap") diff --git a/src/dub/models/operations/updatecommission.py b/src/dub/models/operations/updatecommission.py index 9987a433..bc96e255 100644 --- a/src/dub/models/operations/updatecommission.py +++ b/src/dub/models/operations/updatecommission.py @@ -369,7 +369,7 @@ class UpdateCommissionResponseBodyTypedDict(TypedDict): quantity: float r"""The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions.""" metadata: Nullable[Dict[str, Any]] - r"""User-provided metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`).""" + r"""Metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`), or from Stripe webhook metadata.""" created_at: str r"""The date and time when the commission was created.""" updated_at: str @@ -413,7 +413,7 @@ class UpdateCommissionResponseBody(BaseModel): r"""The event quantity. Used for click and lead commissions; typically `1` for sale and custom commissions.""" metadata: Nullable[Dict[str, Any]] - r"""User-provided metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`).""" + r"""Metadata from the associated lead or sale event (`lead.metadata` / `sale.metadata`), or from Stripe webhook metadata.""" created_at: Annotated[str, pydantic.Field(alias="createdAt")] r"""The date and time when the commission was created.""" diff --git a/src/dub/models/operations/updatecustomer.py b/src/dub/models/operations/updatecustomer.py index ca2d6442..98cbdf1b 100644 --- a/src/dub/models/operations/updatecustomer.py +++ b/src/dub/models/operations/updatecustomer.py @@ -28,6 +28,8 @@ class UpdateCustomerRequestBodyTypedDict(TypedDict): r"""The customer's Stripe customer ID. This is useful for attributing recurring sale events to the partner who referred the customer.""" country: NotRequired[str] r"""The customer's country in ISO 3166-1 alpha-2 format. Updating this field will only affect the customer's country in Dub's system (and has no effect on existing conversion events).""" + subscription_canceled_at: NotRequired[Nullable[str]] + r"""The date the customer canceled their subscription. Set to a timestamp to mark the subscription as canceled, or `null` to clear it (e.g. if they resubscribe).""" class UpdateCustomerRequestBody(BaseModel): @@ -51,12 +53,27 @@ class UpdateCustomerRequestBody(BaseModel): country: Optional[str] = None r"""The customer's country in ISO 3166-1 alpha-2 format. Updating this field will only affect the customer's country in Dub's system (and has no effect on existing conversion events).""" + subscription_canceled_at: Annotated[ + OptionalNullable[str], pydantic.Field(alias="subscriptionCanceledAt") + ] = UNSET + r"""The date the customer canceled their subscription. Set to a timestamp to mark the subscription as canceled, or `null` to clear it (e.g. if they resubscribe).""" + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( - ["email", "name", "avatar", "externalId", "stripeCustomerId", "country"] + [ + "email", + "name", + "avatar", + "externalId", + "stripeCustomerId", + "country", + "subscriptionCanceledAt", + ] + ) + nullable_fields = set( + ["email", "name", "avatar", "stripeCustomerId", "subscriptionCanceledAt"] ) - nullable_fields = set(["email", "name", "avatar", "stripeCustomerId"]) serialized = handler(self) m = {} diff --git a/src/dub/models/operations/updatelink.py b/src/dub/models/operations/updatelink.py index 2ea398db..7007878d 100644 --- a/src/dub/models/operations/updatelink.py +++ b/src/dub/models/operations/updatelink.py @@ -48,9 +48,9 @@ class UpdateLinkRequestBodyTypedDict(TypedDict): key: NotRequired[str] r"""The short link slug. If not provided, a random 7-character slug will be generated.""" external_id: NotRequired[Nullable[str]] - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: NotRequired[Nullable[str]] - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: NotRequired[Nullable[str]] r"""The ID of the program the short link is associated with.""" partner_id: NotRequired[Nullable[str]] @@ -130,12 +130,12 @@ class UpdateLinkRequestBody(BaseModel): external_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="externalId") ] = UNSET - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: Annotated[OptionalNullable[str], pydantic.Field(alias="tenantId")] = ( UNSET ) - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: Annotated[OptionalNullable[str], pydantic.Field(alias="programId")] = ( UNSET diff --git a/src/dub/models/operations/upsertlink.py b/src/dub/models/operations/upsertlink.py index 68109ffa..efedbaa8 100644 --- a/src/dub/models/operations/upsertlink.py +++ b/src/dub/models/operations/upsertlink.py @@ -49,9 +49,9 @@ class UpsertLinkRequestBodyTypedDict(TypedDict): key_length: NotRequired[float] r"""The length of the short link slug. Defaults to 7 if not provided. When used with `prefix`, the total length of the key will be `prefix.length + keyLength`.""" external_id: NotRequired[Nullable[str]] - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: NotRequired[Nullable[str]] - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: NotRequired[Nullable[str]] r"""The ID of the program the short link is associated with.""" partner_id: NotRequired[Nullable[str]] @@ -138,12 +138,12 @@ class UpsertLinkRequestBody(BaseModel): external_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="externalId") ] = UNSET - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: Annotated[OptionalNullable[str], pydantic.Field(alias="tenantId")] = ( UNSET ) - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" program_id: Annotated[OptionalNullable[str], pydantic.Field(alias="programId")] = ( UNSET diff --git a/src/dub/models/operations/upsertpartnerlink.py b/src/dub/models/operations/upsertpartnerlink.py index b7590da8..38714e07 100644 --- a/src/dub/models/operations/upsertpartnerlink.py +++ b/src/dub/models/operations/upsertpartnerlink.py @@ -47,9 +47,9 @@ class UpsertPartnerLinkLinkPropsTypedDict(TypedDict): r"""Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner.""" external_id: NotRequired[Nullable[str]] - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: NotRequired[Nullable[str]] - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" prefix: NotRequired[str] r"""Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`).""" archived: NotRequired[bool] @@ -98,12 +98,12 @@ class UpsertPartnerLinkLinkProps(BaseModel): external_id: Annotated[ OptionalNullable[str], pydantic.Field(alias="externalId") ] = UNSET - r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.""" + r"""The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace. Pass `null` or an empty string to remove it.""" tenant_id: Annotated[OptionalNullable[str], pydantic.Field(alias="tenantId")] = ( UNSET ) - r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.""" + r"""The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant. Pass `null` or an empty string to remove it.""" prefix: Optional[str] = None r"""Path prefix for each default referral link slug (e.g. `/c/` → `https://{domain}/c/{identity}`). If the group has multiple default links, a short random suffix is appended to the identity segment for uniqueness (e.g. `c/jane-a7f2`).""" @@ -251,7 +251,7 @@ def serialize_model(self, handler): class UpsertPartnerLinkRequestBodyTypedDict(TypedDict): url: str - r"""The URL to upsert for. Will throw an error if the domain doesn't match the program's default URL domain.""" + r"""The URL to upsert for.""" partner_id: NotRequired[Nullable[str]] r"""The ID of the partner to create a link for. Will take precedence over `tenantId` if provided.""" tenant_id: NotRequired[Nullable[str]] @@ -266,7 +266,7 @@ class UpsertPartnerLinkRequestBodyTypedDict(TypedDict): class UpsertPartnerLinkRequestBody(BaseModel): url: str - r"""The URL to upsert for. Will throw an error if the domain doesn't match the program's default URL domain.""" + r"""The URL to upsert for.""" partner_id: Annotated[OptionalNullable[str], pydantic.Field(alias="partnerId")] = ( UNSET diff --git a/src/dub/partner_applications.py b/src/dub/program_applications.py similarity index 89% rename from src/dub/partner_applications.py rename to src/dub/program_applications.py index 065ef783..659c81bd 100644 --- a/src/dub/partner_applications.py +++ b/src/dub/program_applications.py @@ -9,22 +9,22 @@ from typing import Any, List, Mapping, Optional, Union, cast -class PartnerApplications(BaseSDK): +class ProgramApplications(BaseSDK): def list( self, *, request: Union[ - operations.ListPartnerApplicationsRequest, - operations.ListPartnerApplicationsRequestTypedDict, + operations.ListProgramApplicationsRequest, + operations.ListProgramApplicationsRequestTypedDict, ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> List[operations.ListPartnerApplicationsResponseBody]: - r"""List all pending partner applications + ) -> List[operations.ListProgramApplicationsResponseBody]: + r"""List all program applications - Retrieve a paginated list of pending applications for your partner program. + Retrieve a paginated list of applications for your partner program. Filter by `status` to list pending, approved, or rejected applications. :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -44,13 +44,13 @@ def list( if not isinstance(request, BaseModel): request = utils.unmarshal( - request, operations.ListPartnerApplicationsRequest + request, operations.ListProgramApplicationsRequest ) - request = cast(operations.ListPartnerApplicationsRequest, request) + request = cast(operations.ListProgramApplicationsRequest, request) req = self._build_request( method="GET", - path="/partners/applications", + path="/program-applications", base_url=base_url, url_variables=url_variables, request=request, @@ -77,10 +77,10 @@ def list( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="listPartnerApplications", + operation_id="listProgramApplications", oauth2_scopes=None, security_source=self.sdk_configuration.security, - tags=["Partner Applications"], + tags=["Program Applications"], extensions=None, ), request=req, @@ -91,7 +91,7 @@ def list( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response( - List[operations.ListPartnerApplicationsResponseBody], http_res + List[operations.ListProgramApplicationsResponseBody], http_res ) if utils.match_response(http_res, "400", "application/json"): response_data = unmarshal_json_response(errors.BadRequestData, http_res) @@ -139,17 +139,17 @@ async def list_async( self, *, request: Union[ - operations.ListPartnerApplicationsRequest, - operations.ListPartnerApplicationsRequestTypedDict, + operations.ListProgramApplicationsRequest, + operations.ListProgramApplicationsRequestTypedDict, ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> List[operations.ListPartnerApplicationsResponseBody]: - r"""List all pending partner applications + ) -> List[operations.ListProgramApplicationsResponseBody]: + r"""List all program applications - Retrieve a paginated list of pending applications for your partner program. + Retrieve a paginated list of applications for your partner program. Filter by `status` to list pending, approved, or rejected applications. :param request: The request object to send. :param retries: Override the default retry configuration for this method @@ -169,13 +169,13 @@ async def list_async( if not isinstance(request, BaseModel): request = utils.unmarshal( - request, operations.ListPartnerApplicationsRequest + request, operations.ListProgramApplicationsRequest ) - request = cast(operations.ListPartnerApplicationsRequest, request) + request = cast(operations.ListProgramApplicationsRequest, request) req = self._build_request_async( method="GET", - path="/partners/applications", + path="/program-applications", base_url=base_url, url_variables=url_variables, request=request, @@ -202,10 +202,10 @@ async def list_async( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="listPartnerApplications", + operation_id="listProgramApplications", oauth2_scopes=None, security_source=self.sdk_configuration.security, - tags=["Partner Applications"], + tags=["Program Applications"], extensions=None, ), request=req, @@ -216,7 +216,7 @@ async def list_async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response( - List[operations.ListPartnerApplicationsResponseBody], http_res + List[operations.ListProgramApplicationsResponseBody], http_res ) if utils.match_response(http_res, "400", "application/json"): response_data = unmarshal_json_response(errors.BadRequestData, http_res) @@ -264,14 +264,14 @@ def approve( self, *, request: Union[ - operations.ApprovePartnerApplicationRequestBody, - operations.ApprovePartnerApplicationRequestBodyTypedDict, + operations.ApproveProgramApplicationRequestBody, + operations.ApproveProgramApplicationRequestBodyTypedDict, ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> operations.ApprovePartnerApplicationResponseBody: + ) -> operations.ApproveProgramApplicationResponseBody: r"""Approve a partner application Approve a pending partner application to your program. The partner will be enrolled in the specified group and notified of the approval. @@ -294,13 +294,13 @@ def approve( if not isinstance(request, BaseModel): request = utils.unmarshal( - request, operations.ApprovePartnerApplicationRequestBody + request, operations.ApproveProgramApplicationRequestBody ) - request = cast(operations.ApprovePartnerApplicationRequestBody, request) + request = cast(operations.ApproveProgramApplicationRequestBody, request) req = self._build_request( method="POST", - path="/partners/applications/approve", + path="/program-applications/approve", base_url=base_url, url_variables=url_variables, request=request, @@ -316,7 +316,7 @@ def approve( False, False, "json", - operations.ApprovePartnerApplicationRequestBody, + operations.ApproveProgramApplicationRequestBody, ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -334,10 +334,10 @@ def approve( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="approvePartnerApplication", + operation_id="approveProgramApplication", oauth2_scopes=None, security_source=self.sdk_configuration.security, - tags=["Partner Applications"], + tags=["Program Applications"], extensions=None, ), request=req, @@ -348,7 +348,7 @@ def approve( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response( - operations.ApprovePartnerApplicationResponseBody, http_res + operations.ApproveProgramApplicationResponseBody, http_res ) if utils.match_response(http_res, "400", "application/json"): response_data = unmarshal_json_response(errors.BadRequestData, http_res) @@ -396,14 +396,14 @@ async def approve_async( self, *, request: Union[ - operations.ApprovePartnerApplicationRequestBody, - operations.ApprovePartnerApplicationRequestBodyTypedDict, + operations.ApproveProgramApplicationRequestBody, + operations.ApproveProgramApplicationRequestBodyTypedDict, ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> operations.ApprovePartnerApplicationResponseBody: + ) -> operations.ApproveProgramApplicationResponseBody: r"""Approve a partner application Approve a pending partner application to your program. The partner will be enrolled in the specified group and notified of the approval. @@ -426,13 +426,13 @@ async def approve_async( if not isinstance(request, BaseModel): request = utils.unmarshal( - request, operations.ApprovePartnerApplicationRequestBody + request, operations.ApproveProgramApplicationRequestBody ) - request = cast(operations.ApprovePartnerApplicationRequestBody, request) + request = cast(operations.ApproveProgramApplicationRequestBody, request) req = self._build_request_async( method="POST", - path="/partners/applications/approve", + path="/program-applications/approve", base_url=base_url, url_variables=url_variables, request=request, @@ -448,7 +448,7 @@ async def approve_async( False, False, "json", - operations.ApprovePartnerApplicationRequestBody, + operations.ApproveProgramApplicationRequestBody, ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -466,10 +466,10 @@ async def approve_async( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="approvePartnerApplication", + operation_id="approveProgramApplication", oauth2_scopes=None, security_source=self.sdk_configuration.security, - tags=["Partner Applications"], + tags=["Program Applications"], extensions=None, ), request=req, @@ -480,7 +480,7 @@ async def approve_async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response( - operations.ApprovePartnerApplicationResponseBody, http_res + operations.ApproveProgramApplicationResponseBody, http_res ) if utils.match_response(http_res, "400", "application/json"): response_data = unmarshal_json_response(errors.BadRequestData, http_res) @@ -528,14 +528,14 @@ def reject( self, *, request: Union[ - operations.RejectPartnerApplicationRequestBody, - operations.RejectPartnerApplicationRequestBodyTypedDict, + operations.RejectProgramApplicationRequestBody, + operations.RejectProgramApplicationRequestBodyTypedDict, ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> operations.RejectPartnerApplicationResponseBody: + ) -> operations.RejectProgramApplicationResponseBody: r"""Reject a partner application Reject a pending partner application to your program. The partner will be notified via email that their application was not approved. @@ -558,13 +558,13 @@ def reject( if not isinstance(request, BaseModel): request = utils.unmarshal( - request, operations.RejectPartnerApplicationRequestBody + request, operations.RejectProgramApplicationRequestBody ) - request = cast(operations.RejectPartnerApplicationRequestBody, request) + request = cast(operations.RejectProgramApplicationRequestBody, request) req = self._build_request( method="POST", - path="/partners/applications/reject", + path="/program-applications/reject", base_url=base_url, url_variables=url_variables, request=request, @@ -580,7 +580,7 @@ def reject( False, False, "json", - operations.RejectPartnerApplicationRequestBody, + operations.RejectProgramApplicationRequestBody, ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -598,10 +598,10 @@ def reject( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="rejectPartnerApplication", + operation_id="rejectProgramApplication", oauth2_scopes=None, security_source=self.sdk_configuration.security, - tags=["Partner Applications"], + tags=["Program Applications"], extensions=None, ), request=req, @@ -612,7 +612,7 @@ def reject( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response( - operations.RejectPartnerApplicationResponseBody, http_res + operations.RejectProgramApplicationResponseBody, http_res ) if utils.match_response(http_res, "400", "application/json"): response_data = unmarshal_json_response(errors.BadRequestData, http_res) @@ -660,14 +660,14 @@ async def reject_async( self, *, request: Union[ - operations.RejectPartnerApplicationRequestBody, - operations.RejectPartnerApplicationRequestBodyTypedDict, + operations.RejectProgramApplicationRequestBody, + operations.RejectProgramApplicationRequestBodyTypedDict, ], retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> operations.RejectPartnerApplicationResponseBody: + ) -> operations.RejectProgramApplicationResponseBody: r"""Reject a partner application Reject a pending partner application to your program. The partner will be notified via email that their application was not approved. @@ -690,13 +690,13 @@ async def reject_async( if not isinstance(request, BaseModel): request = utils.unmarshal( - request, operations.RejectPartnerApplicationRequestBody + request, operations.RejectProgramApplicationRequestBody ) - request = cast(operations.RejectPartnerApplicationRequestBody, request) + request = cast(operations.RejectProgramApplicationRequestBody, request) req = self._build_request_async( method="POST", - path="/partners/applications/reject", + path="/program-applications/reject", base_url=base_url, url_variables=url_variables, request=request, @@ -712,7 +712,7 @@ async def reject_async( False, False, "json", - operations.RejectPartnerApplicationRequestBody, + operations.RejectProgramApplicationRequestBody, ), allow_empty_value=None, timeout_ms=timeout_ms, @@ -730,10 +730,10 @@ async def reject_async( hook_ctx=HookContext( config=self.sdk_configuration, base_url=base_url or "", - operation_id="rejectPartnerApplication", + operation_id="rejectProgramApplication", oauth2_scopes=None, security_source=self.sdk_configuration.security, - tags=["Partner Applications"], + tags=["Program Applications"], extensions=None, ), request=req, @@ -744,7 +744,7 @@ async def reject_async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): return unmarshal_json_response( - operations.RejectPartnerApplicationResponseBody, http_res + operations.RejectProgramApplicationResponseBody, http_res ) if utils.match_response(http_res, "400", "application/json"): response_data = unmarshal_json_response(errors.BadRequestData, http_res) diff --git a/src/dub/sdk.py b/src/dub/sdk.py index 9b28d63f..c3ef54f6 100644 --- a/src/dub/sdk.py +++ b/src/dub/sdk.py @@ -26,9 +26,9 @@ from dub.events import Events from dub.folders import Folders from dub.links import Links - from dub.partner_applications import PartnerApplications from dub.partners import Partners from dub.payouts import Payouts + from dub.program_applications import ProgramApplications from dub.qr_codes import QRCodes from dub.tags import Tags from dub.track import Track @@ -46,7 +46,7 @@ class Dub(BaseSDK): track: "Track" customers: "Customers" partners: "Partners" - partner_applications: "PartnerApplications" + program_applications: "ProgramApplications" discount_codes: "DiscountCodes" commissions: "Commissions" payouts: "Payouts" @@ -63,7 +63,7 @@ class Dub(BaseSDK): "track": ("dub.track", "Track"), "customers": ("dub.customers", "Customers"), "partners": ("dub.partners", "Partners"), - "partner_applications": ("dub.partner_applications", "PartnerApplications"), + "program_applications": ("dub.program_applications", "ProgramApplications"), "discount_codes": ("dub.discount_codes", "DiscountCodes"), "commissions": ("dub.commissions", "Commissions"), "payouts": ("dub.payouts", "Payouts"), diff --git a/src/dub/utils/__init__.py b/src/dub/utils/__init__.py index 7af3b82c..6d6c5c3f 100644 --- a/src/dub/utils/__init__.py +++ b/src/dub/utils/__init__.py @@ -34,6 +34,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: from .requestbodies import serialize_request_body, SerializedRequestBody from .security import get_security from .serializers import ( + ALLOW_UNKNOWN_UNION_VARIANTS, get_pydantic_model, marshal_json, unmarshal, @@ -104,6 +105,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: "stream_to_bytes", "stream_to_bytes_async", "template_url", + "ALLOW_UNKNOWN_UNION_VARIANTS", "unmarshal", "unmarshal_json", "validate_decimal", @@ -126,6 +128,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: "parse_duration": ".datetimes", "get_global_from_env": ".values", "get_headers": ".headers", + "ALLOW_UNKNOWN_UNION_VARIANTS": ".serializers", "get_pydantic_model": ".serializers", "get_query_params": ".queryparams", "get_response_headers": ".headers", diff --git a/src/dub/utils/datetimes.py b/src/dub/utils/datetimes.py index adad2476..688c29a5 100644 --- a/src/dub/utils/datetimes.py +++ b/src/dub/utils/datetimes.py @@ -35,3 +35,7 @@ def parse_duration(duration_string: str) -> timedelta: pydantic, which is already a runtime dependency of the SDK. """ return _DURATION_ADAPTER.validate_python(duration_string) + + +def format_duration(duration: timedelta) -> str: + return _DURATION_ADAPTER.dump_python(duration, mode="json") diff --git a/src/dub/utils/serializers.py b/src/dub/utils/serializers.py index 1031ed93..5e57d36e 100644 --- a/src/dub/utils/serializers.py +++ b/src/dub/utils/serializers.py @@ -112,11 +112,26 @@ def validate(c): return validate +ALLOW_UNKNOWN_UNION_VARIANTS = "speakeasy_allow_unknown_union_variants" +"""Validation-context key enabling the Unknown fallback on open discriminated +unions. The SDK sets it when deserializing server responses; validation +without it (e.g. of user-constructed request payloads) stays strict. Pass +``context={ALLOW_UNKNOWN_UNION_VARIANTS: True}`` to ``model_validate`` to +opt in when parsing response payloads manually.""" + + def unmarshal_json(raw, typ: Any) -> Any: - return unmarshal(from_json(raw), typ, coerce_iterables=False) + return unmarshal( + from_json(raw), typ, coerce_iterables=False, allow_unknown_union_variants=True + ) -def unmarshal(val, typ: Any, coerce_iterables: bool = True) -> Any: +def unmarshal( + val, + typ: Any, + coerce_iterables: bool = True, + allow_unknown_union_variants: bool = False, +) -> Any: if coerce_iterables: val = _coerce_iterables_for_type(val, typ) unmarshaller = create_model( @@ -125,7 +140,12 @@ def unmarshal(val, typ: Any, coerce_iterables: bool = True) -> Any: __config__=ConfigDict(populate_by_name=True, arbitrary_types_allowed=True), ) - m = unmarshaller(body=val) + if allow_unknown_union_variants: + m = unmarshaller.model_validate( + {"body": val}, context={ALLOW_UNKNOWN_UNION_VARIANTS: True} + ) + else: + m = unmarshaller(body=val) # pyright: ignore[reportAttributeAccessIssue] return m.body # type: ignore diff --git a/src/dub/utils/url.py b/src/dub/utils/url.py index c78ccbae..8eeaa7b0 100644 --- a/src/dub/utils/url.py +++ b/src/dub/utils/url.py @@ -1,6 +1,5 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from decimal import Decimal from typing import ( Any, Dict, @@ -105,7 +104,7 @@ def _populate_path_params( else: pp_vals.append(f"{pp_key},{_val_to_string(param[pp_key])}") path_param_values[f_name] = ",".join(pp_vals) - elif not isinstance(param, (str, int, float, complex, bool, Decimal)): + elif isinstance(param, BaseModel): param_fields: Dict[str, FieldInfo] = param.__class__.model_fields for name in param_fields: param_field = param_fields[name] @@ -132,7 +131,7 @@ def _populate_path_params( f"{param_name},{_val_to_string(param_field_val)}" ) path_param_values[f_name] = ",".join(pp_vals) - elif _is_set(param): + else: path_param_values[f_name] = _val_to_string(param) return globals_already_populated diff --git a/src/dub/utils/values.py b/src/dub/utils/values.py index ac217f47..094755b7 100644 --- a/src/dub/utils/values.py +++ b/src/dub/utils/values.py @@ -1,6 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from datetime import datetime +from datetime import datetime, timedelta from enum import Enum from email.message import Message from functools import partial @@ -13,6 +13,7 @@ from ..types.basemodel import Unset +from .datetimes import format_duration from .serializers import marshal_json from .metadata import ParamMetadata, find_field_metadata @@ -117,6 +118,8 @@ def _val_to_string(val) -> str: return str(val).lower() if isinstance(val, datetime): return str(val.isoformat().replace("+00:00", "Z")) + if isinstance(val, timedelta): + return format_duration(val) if isinstance(val, Enum): return str(val.value)