From d23d51a801eb37945a13301deb21f7abe301169e Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 12 Feb 2025 00:27:48 +0000 Subject: [PATCH 1/2] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.488.0 --- .speakeasy/gen.lock | 201 ++++++++-- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 14 +- Gemfile.lock | 2 +- README.md | 8 + RELEASES.md | 12 +- codeSamples.yaml | 34 +- docs/models/operations/accesslevel.md | 11 + .../operations/createfolderrequestbody.md | 9 + .../models/operations/createfolderresponse.md | 20 + .../operations/createlinkrequestbody.md | 1 + .../operations/createpartnerdiscount.md | 14 - .../operations/createpartnerinterval.md | 9 - .../operations/createpartnerlinklinkprops.md | 1 + .../createpartnerlinkrequestbody.md | 16 +- .../operations/createpartnerresponsebody.md | 40 +- docs/models/operations/createpartnertype.md | 9 - docs/models/operations/data.md | 1 + docs/models/operations/deletefolderrequest.md | 8 + .../models/operations/deletefolderresponse.md | 20 + .../operations/deletefolderresponsebody.md | 10 + .../models/operations/getlinkscountrequest.md | 1 + docs/models/operations/getlinksrequest.md | 1 + docs/models/operations/interval.md | 4 +- docs/models/operations/linkprops.md | 1 + docs/models/operations/listeventsrequest.md | 1 + docs/models/operations/listfoldersrequest.md | 8 + docs/models/operations/listfoldersresponse.md | 20 + docs/models/operations/queryparamgroupby.md | 12 + docs/models/operations/queryparaminterval.md | 4 +- docs/models/operations/requestbody.md | 1 + .../operations/retrieveanalyticsrequest.md | 1 + ...rievepartneranalyticsqueryparaminterval.md | 19 + .../retrievepartneranalyticsrequest.md | 15 + .../retrievepartneranalyticsresponse.md | 20 + .../operations/updatefolderaccesslevel.md | 11 + docs/models/operations/updatefolderrequest.md | 9 + .../operations/updatefolderrequestbody.md | 9 + .../models/operations/updatefolderresponse.md | 20 + .../operations/updatelinkrequestbody.md | 1 + .../operations/upsertlinkrequestbody.md | 1 + .../operations/upsertpartnerlinklinkprops.md | 1 + .../upsertpartnerlinkrequestbody.md | 16 +- docs/models/shared/accesslevel.md | 11 + docs/models/shared/folderschema.md | 13 + docs/models/shared/link.md | 1 + docs/models/shared/linkschema.md | 1 + docs/models/shared/workspaceschema.md | 1 + docs/sdks/folders/README.md | 169 +++++++++ docs/sdks/partners/README.md | 46 ++- dub.gemspec | 2 +- lib/dub.rb | 1 + lib/open_api_sdk/dub.rb | 3 +- lib/open_api_sdk/folders.rb | 359 ++++++++++++++++++ lib/open_api_sdk/models/operations.rb | 19 +- ...eatepartner_interval.rb => accesslevel.rb} | 8 +- .../operations/createfolder_requestbody.rb | 27 ++ .../operations/createfolder_response.rb | 60 +++ .../operations/createlink_requestbody.rb | 7 +- .../operations/createpartner_discount.rb | 42 -- .../operations/createpartner_responsebody.rb | 34 +- .../operations/createpartnerlink_linkprops.rb | 7 +- .../createpartnerlink_requestbody.rb | 10 +- lib/open_api_sdk/models/operations/data.rb | 7 +- .../models/operations/deletefolder_request.rb | 24 ++ .../operations/deletefolder_response.rb | 60 +++ .../operations/deletefolder_responsebody.rb | 24 ++ .../models/operations/getlinks_request.rb | 7 +- .../operations/getlinkscount_request.rb | 7 +- .../models/operations/interval.rb | 4 +- .../models/operations/linkprops.rb | 7 +- .../models/operations/listevents_request.rb | 7 +- .../models/operations/listfolders_request.rb | 24 ++ .../models/operations/listfolders_response.rb | 60 +++ .../models/operations/queryparam_groupby.rb | 19 + .../models/operations/queryparam_interval.rb | 4 +- .../models/operations/requestbody.rb | 7 +- .../operations/retrieveanalytics_request.rb | 7 +- ...evepartneranalytics_queryparam_interval.rb | 26 ++ .../retrievepartneranalytics_request.rb | 45 +++ .../retrievepartneranalytics_response.rb | 60 +++ ...er_type.rb => updatefolder_accesslevel.rb} | 8 +- .../models/operations/updatefolder_request.rb | 27 ++ .../operations/updatefolder_requestbody.rb | 27 ++ .../operations/updatefolder_response.rb | 60 +++ .../operations/updatelink_requestbody.rb | 7 +- .../operations/upsertlink_requestbody.rb | 7 +- .../operations/upsertpartnerlink_linkprops.rb | 7 +- .../upsertpartnerlink_requestbody.rb | 10 +- lib/open_api_sdk/models/shared.rb | 2 + lib/open_api_sdk/models/shared/accesslevel.rb | 18 + .../models/shared/folderschema.rb | 39 ++ lib/open_api_sdk/models/shared/link.rb | 7 +- lib/open_api_sdk/models/shared/linkschema.rb | 7 +- .../models/shared/workspaceschema.rb | 7 +- lib/open_api_sdk/partners.rb | 79 ++++ lib/open_api_sdk/sdkconfiguration.rb | 4 +- 97 files changed, 1924 insertions(+), 230 deletions(-) create mode 100644 docs/models/operations/accesslevel.md create mode 100644 docs/models/operations/createfolderrequestbody.md create mode 100644 docs/models/operations/createfolderresponse.md delete mode 100644 docs/models/operations/createpartnerdiscount.md delete mode 100644 docs/models/operations/createpartnerinterval.md delete mode 100644 docs/models/operations/createpartnertype.md create mode 100644 docs/models/operations/deletefolderrequest.md create mode 100644 docs/models/operations/deletefolderresponse.md create mode 100644 docs/models/operations/deletefolderresponsebody.md create mode 100644 docs/models/operations/listfoldersrequest.md create mode 100644 docs/models/operations/listfoldersresponse.md create mode 100644 docs/models/operations/queryparamgroupby.md create mode 100644 docs/models/operations/retrievepartneranalyticsqueryparaminterval.md create mode 100644 docs/models/operations/retrievepartneranalyticsrequest.md create mode 100644 docs/models/operations/retrievepartneranalyticsresponse.md create mode 100644 docs/models/operations/updatefolderaccesslevel.md create mode 100644 docs/models/operations/updatefolderrequest.md create mode 100644 docs/models/operations/updatefolderrequestbody.md create mode 100644 docs/models/operations/updatefolderresponse.md create mode 100644 docs/models/shared/accesslevel.md create mode 100644 docs/models/shared/folderschema.md create mode 100644 docs/sdks/folders/README.md create mode 100644 lib/open_api_sdk/folders.rb rename lib/open_api_sdk/models/operations/{createpartner_interval.rb => accesslevel.rb} (55%) create mode 100644 lib/open_api_sdk/models/operations/createfolder_requestbody.rb create mode 100644 lib/open_api_sdk/models/operations/createfolder_response.rb delete mode 100644 lib/open_api_sdk/models/operations/createpartner_discount.rb create mode 100644 lib/open_api_sdk/models/operations/deletefolder_request.rb create mode 100644 lib/open_api_sdk/models/operations/deletefolder_response.rb create mode 100644 lib/open_api_sdk/models/operations/deletefolder_responsebody.rb create mode 100644 lib/open_api_sdk/models/operations/listfolders_request.rb create mode 100644 lib/open_api_sdk/models/operations/listfolders_response.rb create mode 100644 lib/open_api_sdk/models/operations/queryparam_groupby.rb create mode 100644 lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb create mode 100644 lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb create mode 100644 lib/open_api_sdk/models/operations/retrievepartneranalytics_response.rb rename lib/open_api_sdk/models/operations/{createpartner_type.rb => updatefolder_accesslevel.rb} (51%) create mode 100644 lib/open_api_sdk/models/operations/updatefolder_request.rb create mode 100644 lib/open_api_sdk/models/operations/updatefolder_requestbody.rb create mode 100644 lib/open_api_sdk/models/operations/updatefolder_response.rb create mode 100644 lib/open_api_sdk/models/shared/accesslevel.rb create mode 100644 lib/open_api_sdk/models/shared/folderschema.rb diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index a1f21a2..5f4e8be 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 5a2dd83e-da98-455b-8ef9-0100a914efdf management: - docChecksum: a7b1bff0696d0e354d1e5a6b91b8ae7f + docChecksum: 24e29770dbf567bc2b877159fa7eab18 docVersion: 0.0.1 - speakeasyVersion: 1.487.0 + speakeasyVersion: 1.488.0 generationVersion: 2.506.0 - releaseVersion: 0.2.2-alpha.62 - configChecksum: 9121977e32728c1d037c1adadbef2dfa + releaseVersion: 0.2.2-alpha.63 + configChecksum: 5196f81956a8984761a28d2d69a91ff3 repoURL: https://github.com/dubinc/dub-ruby.git installationURL: https://github.com/dubinc/dub-ruby published: true @@ -27,6 +27,7 @@ generatedFiles: - Gemfile.lock - Rakefile - USAGE.md + - docs/models/operations/accesslevel.md - docs/models/operations/bulkcreatelinksresponse.md - docs/models/operations/bulkdeletelinksrequest.md - docs/models/operations/bulkdeletelinksresponse.md @@ -49,17 +50,16 @@ generatedFiles: - docs/models/operations/createembedtokenrequestbody.md - docs/models/operations/createembedtokenresponse.md - docs/models/operations/createembedtokenresponsebody.md + - docs/models/operations/createfolderrequestbody.md + - docs/models/operations/createfolderresponse.md - docs/models/operations/createlinkrequestbody.md - docs/models/operations/createlinkresponse.md - - docs/models/operations/createpartnerdiscount.md - - docs/models/operations/createpartnerinterval.md - docs/models/operations/createpartnerlinklinkprops.md - docs/models/operations/createpartnerlinkrequestbody.md - docs/models/operations/createpartnerlinkresponse.md - docs/models/operations/createpartnerrequestbody.md - docs/models/operations/createpartnerresponse.md - docs/models/operations/createpartnerresponsebody.md - - docs/models/operations/createpartnertype.md - docs/models/operations/createtagrequestbody.md - docs/models/operations/createtagresponse.md - docs/models/operations/customer.md @@ -70,6 +70,9 @@ generatedFiles: - docs/models/operations/deletedomainrequest.md - docs/models/operations/deletedomainresponse.md - docs/models/operations/deletedomainresponsebody.md + - docs/models/operations/deletefolderrequest.md + - docs/models/operations/deletefolderresponse.md + - docs/models/operations/deletefolderresponsebody.md - docs/models/operations/deletelinkrequest.md - docs/models/operations/deletelinkresponse.md - docs/models/operations/deletelinkresponsebody.md @@ -116,10 +119,13 @@ generatedFiles: - docs/models/operations/listdomainsresponse.md - docs/models/operations/listeventsrequest.md - docs/models/operations/listeventsresponse.md + - docs/models/operations/listfoldersrequest.md + - docs/models/operations/listfoldersresponse.md - docs/models/operations/order.md - docs/models/operations/partner.md - docs/models/operations/paymentprocessor.md - docs/models/operations/queryparamevent.md + - docs/models/operations/queryparamgroupby.md - docs/models/operations/queryparaminterval.md - docs/models/operations/queryparamsortby.md - docs/models/operations/queryparamsortorder.md @@ -128,6 +134,9 @@ generatedFiles: - docs/models/operations/responsebody.md - docs/models/operations/retrieveanalyticsrequest.md - docs/models/operations/retrieveanalyticsresponse.md + - docs/models/operations/retrievepartneranalyticsqueryparaminterval.md + - docs/models/operations/retrievepartneranalyticsrequest.md + - docs/models/operations/retrievepartneranalyticsresponse.md - docs/models/operations/sale.md - docs/models/operations/sort.md - docs/models/operations/sortby.md @@ -154,6 +163,10 @@ generatedFiles: - docs/models/operations/updatedomainrequest.md - docs/models/operations/updatedomainrequestbody.md - docs/models/operations/updatedomainresponse.md + - docs/models/operations/updatefolderaccesslevel.md + - docs/models/operations/updatefolderrequest.md + - docs/models/operations/updatefolderrequestbody.md + - docs/models/operations/updatefolderresponse.md - docs/models/operations/updatelinkrequest.md - docs/models/operations/updatelinkrequestbody.md - docs/models/operations/updatelinkresponse.md @@ -169,6 +182,7 @@ generatedFiles: - docs/models/operations/upsertpartnerlinklinkprops.md - docs/models/operations/upsertpartnerlinkrequestbody.md - docs/models/operations/upsertpartnerlinkresponse.md + - docs/models/shared/accesslevel.md - docs/models/shared/badrequest.md - docs/models/shared/click.md - docs/models/shared/clickevent.md @@ -184,6 +198,7 @@ generatedFiles: - docs/models/shared/domainschema.md - docs/models/shared/error.md - docs/models/shared/event.md + - docs/models/shared/folderschema.md - docs/models/shared/forbidden.md - docs/models/shared/forbiddencode.md - docs/models/shared/forbiddenerror.md @@ -222,6 +237,7 @@ generatedFiles: - docs/sdks/dub/README.md - docs/sdks/embedtokens/README.md - docs/sdks/events/README.md + - docs/sdks/folders/README.md - docs/sdks/links/README.md - docs/sdks/metatags/README.md - docs/sdks/partners/README.md @@ -237,9 +253,11 @@ generatedFiles: - lib/open_api_sdk/dub.rb - lib/open_api_sdk/embed_tokens.rb - lib/open_api_sdk/events.rb + - lib/open_api_sdk/folders.rb - lib/open_api_sdk/links.rb - lib/open_api_sdk/metatags.rb - lib/open_api_sdk/models/operations.rb + - lib/open_api_sdk/models/operations/accesslevel.rb - lib/open_api_sdk/models/operations/bulkcreatelinks_response.rb - lib/open_api_sdk/models/operations/bulkdeletelinks_request.rb - lib/open_api_sdk/models/operations/bulkdeletelinks_response.rb @@ -262,14 +280,13 @@ generatedFiles: - lib/open_api_sdk/models/operations/createembedtoken_requestbody.rb - lib/open_api_sdk/models/operations/createembedtoken_response.rb - lib/open_api_sdk/models/operations/createembedtoken_responsebody.rb + - lib/open_api_sdk/models/operations/createfolder_requestbody.rb + - lib/open_api_sdk/models/operations/createfolder_response.rb - lib/open_api_sdk/models/operations/createlink_requestbody.rb - lib/open_api_sdk/models/operations/createlink_response.rb - - lib/open_api_sdk/models/operations/createpartner_discount.rb - - lib/open_api_sdk/models/operations/createpartner_interval.rb - lib/open_api_sdk/models/operations/createpartner_requestbody.rb - lib/open_api_sdk/models/operations/createpartner_response.rb - lib/open_api_sdk/models/operations/createpartner_responsebody.rb - - lib/open_api_sdk/models/operations/createpartner_type.rb - lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb - lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb - lib/open_api_sdk/models/operations/createpartnerlink_response.rb @@ -283,6 +300,9 @@ generatedFiles: - lib/open_api_sdk/models/operations/deletedomain_request.rb - lib/open_api_sdk/models/operations/deletedomain_response.rb - lib/open_api_sdk/models/operations/deletedomain_responsebody.rb + - lib/open_api_sdk/models/operations/deletefolder_request.rb + - lib/open_api_sdk/models/operations/deletefolder_response.rb + - lib/open_api_sdk/models/operations/deletefolder_responsebody.rb - lib/open_api_sdk/models/operations/deletelink_request.rb - lib/open_api_sdk/models/operations/deletelink_response.rb - lib/open_api_sdk/models/operations/deletelink_responsebody.rb @@ -329,10 +349,13 @@ generatedFiles: - lib/open_api_sdk/models/operations/listdomains_response.rb - lib/open_api_sdk/models/operations/listevents_request.rb - lib/open_api_sdk/models/operations/listevents_response.rb + - lib/open_api_sdk/models/operations/listfolders_request.rb + - lib/open_api_sdk/models/operations/listfolders_response.rb - lib/open_api_sdk/models/operations/order.rb - lib/open_api_sdk/models/operations/partner.rb - lib/open_api_sdk/models/operations/paymentprocessor.rb - lib/open_api_sdk/models/operations/queryparam_event.rb + - lib/open_api_sdk/models/operations/queryparam_groupby.rb - lib/open_api_sdk/models/operations/queryparam_interval.rb - lib/open_api_sdk/models/operations/queryparam_sortby.rb - lib/open_api_sdk/models/operations/queryparam_sortorder.rb @@ -341,6 +364,9 @@ generatedFiles: - lib/open_api_sdk/models/operations/responsebody.rb - lib/open_api_sdk/models/operations/retrieveanalytics_request.rb - lib/open_api_sdk/models/operations/retrieveanalytics_response.rb + - lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb + - lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb + - lib/open_api_sdk/models/operations/retrievepartneranalytics_response.rb - lib/open_api_sdk/models/operations/sale.rb - lib/open_api_sdk/models/operations/sort.rb - lib/open_api_sdk/models/operations/sortby.rb @@ -367,6 +393,10 @@ generatedFiles: - lib/open_api_sdk/models/operations/updatedomain_request.rb - lib/open_api_sdk/models/operations/updatedomain_requestbody.rb - lib/open_api_sdk/models/operations/updatedomain_response.rb + - lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb + - lib/open_api_sdk/models/operations/updatefolder_request.rb + - lib/open_api_sdk/models/operations/updatefolder_requestbody.rb + - lib/open_api_sdk/models/operations/updatefolder_response.rb - lib/open_api_sdk/models/operations/updatelink_request.rb - lib/open_api_sdk/models/operations/updatelink_requestbody.rb - lib/open_api_sdk/models/operations/updatelink_response.rb @@ -383,6 +413,7 @@ generatedFiles: - lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb - lib/open_api_sdk/models/operations/upsertpartnerlink_response.rb - lib/open_api_sdk/models/shared.rb + - lib/open_api_sdk/models/shared/accesslevel.rb - lib/open_api_sdk/models/shared/badrequest.rb - lib/open_api_sdk/models/shared/click.rb - lib/open_api_sdk/models/shared/clickevent.rb @@ -398,6 +429,7 @@ generatedFiles: - lib/open_api_sdk/models/shared/domainschema.rb - lib/open_api_sdk/models/shared/error.rb - lib/open_api_sdk/models/shared/event.rb + - lib/open_api_sdk/models/shared/folderschema.rb - lib/open_api_sdk/models/shared/forbidden.rb - lib/open_api_sdk/models/shared/forbidden_code.rb - lib/open_api_sdk/models/shared/forbidden_error.rb @@ -486,7 +518,7 @@ examples: application/json: {"url": "https://google.com", "externalId": "123456", "tagIds": ["clux0rgak00011..."]} responses: "200": - application/json: {"id": "", "domain": "low-packaging.info", "key": "", "url": "https://black-and-white-secrecy.org/", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1740169958586", "expiredUrl": "https://substantial-morbidity.net", "password": "B9652A4R_UwKP9k", "proxy": true, "title": "", "description": "supposing whoa coordination affect hmph worth once which", "image": "https://loremflickr.com/1110/3081?lock=857615867280802", "video": "https://picsum.videos/seed/ZYhaGNJVW/3723/2471", "rewrite": false, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "pink"}, {"id": "", "name": "", "color": "green"}], "webhookIds": [], "comments": "gah aha what lobotomise apud overwork snuggle midst er", "shortLink": "https://royal-fen.biz/", "qrCode": "https://impolite-dish.biz", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 4539.75, "lastClicked": "", "leads": 1494.13, "sales": 4098.74, "saleAmount": 5858.44, "createdAt": "1727971238100", "updatedAt": "1737249232202", "projectId": ""} + application/json: {"id": "", "domain": "low-packaging.info", "key": "", "url": "https://black-and-white-secrecy.org/", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1740169958586", "expiredUrl": "https://substantial-morbidity.net", "password": "B9652A4R_UwKP9k", "proxy": true, "title": "", "description": "supposing whoa coordination affect hmph worth once which", "image": "https://loremflickr.com/1110/3081?lock=857615867280802", "video": "https://picsum.videos/seed/ZYhaGNJVW/3723/2471", "rewrite": false, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "pink"}, {"id": "", "name": "", "color": "green"}], "folderId": "", "webhookIds": [], "comments": "gah aha what lobotomise apud overwork snuggle midst er", "shortLink": "https://royal-fen.biz/", "qrCode": "https://impolite-dish.biz", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 4539.75, "lastClicked": "", "leads": 1494.13, "sales": 4098.74, "saleAmount": 5858.44, "createdAt": "1727971238100", "updatedAt": "1737249232202", "projectId": ""} "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": @@ -513,7 +545,7 @@ examples: pageSize: 50 responses: "200": - application/json: [{"id": "", "domain": "neglected-plastic.biz", "key": "", "url": "https://crooked-overload.name/", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1740049351653", "expiredUrl": "https://roasted-language.name/", "password": "COyVtOrvIw1vLIJ", "proxy": true, "title": "", "description": "cleverly blossom defiantly", "image": "https://picsum.photos/seed/FhMx4/296/3347", "video": "https://picsum.videos/seed/gk5Gr0OXM/244/1177", "rewrite": false, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": false, "tagId": "", "tags": [], "webhookIds": [""], "comments": "eek censor tenement commonly softly boo massive sorrowful aw strict behind along energetic oddball pasta thread vestment meanwhile likely up", "shortLink": "https://lucky-volleyball.biz", "qrCode": "https://discrete-omelet.net/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 8772.27, "lastClicked": "", "leads": 7675.46, "sales": 4128.54, "saleAmount": 9422.58, "createdAt": "1714691552492", "updatedAt": "1737277107511", "projectId": ""}, {"id": "", "domain": "superficial-membership.info", "key": "", "url": "https://cuddly-scenario.info", "trackConversion": false, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1768414685482", "expiredUrl": "https://same-self-confidence.org/", "password": "a0JVb2ZsCSHb4yM", "proxy": true, "title": "", "description": "though char while beneath while", "image": "https://loremflickr.com/3318/2916?lock=3354329708523999", "video": "https://loremflickr.com/3154/1911?lock=2861440677696192", "rewrite": true, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "pink"}, {"id": "", "name": "", "color": "purple"}, {"id": "", "name": "", "color": "blue"}], "webhookIds": ["", ""], "comments": "yet questioningly anenst secret burgeon duh powerfully considering", "shortLink": "https://illustrious-design.org", "qrCode": "https://ajar-granny.org", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 6146.37, "lastClicked": "", "leads": 2846.28, "sales": 7343.54, "saleAmount": 5266.88, "createdAt": "1713717573234", "updatedAt": "1737263881603", "projectId": ""}, {"id": "", "domain": "pure-barracks.net", "key": "", "url": "https://familiar-colonialism.biz", "trackConversion": false, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1752193985611", "expiredUrl": "https://troubled-sport.info/", "password": "fb1iI7zKb7nCPxu", "proxy": true, "title": "", "description": "archaeology coaxingly ew", "image": "https://picsum.photos/seed/KrNp1ys/560/3633", "video": "https://loremflickr.com/881/3817?lock=3749541747594262", "rewrite": false, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [], "webhookIds": ["", "", ""], "comments": "wholly onto tightly stiff polarisation commercial ugh lift long serpentine stint zowie upbeat degrease fervently gah boom furthermore", "shortLink": "https://untimely-pear.biz", "qrCode": "https://burly-hawk.name/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 3790.69, "lastClicked": "", "leads": 7094.85, "sales": 5436.75, "saleAmount": 5719.21, "createdAt": "1728990456937", "updatedAt": "1737281522911", "projectId": ""}] + application/json: [{"id": "", "domain": "neglected-plastic.biz", "key": "", "url": "https://crooked-overload.name/", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1740049351653", "expiredUrl": "https://roasted-language.name/", "password": "COyVtOrvIw1vLIJ", "proxy": true, "title": "", "description": "cleverly blossom defiantly", "image": "https://picsum.photos/seed/FhMx4/296/3347", "video": "https://picsum.videos/seed/gk5Gr0OXM/244/1177", "rewrite": false, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": false, "tagId": "", "tags": [], "folderId": "", "webhookIds": [""], "comments": "eek censor tenement commonly softly boo massive sorrowful aw strict behind along energetic oddball pasta thread vestment meanwhile likely up", "shortLink": "https://lucky-volleyball.biz", "qrCode": "https://discrete-omelet.net/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 8772.27, "lastClicked": "", "leads": 7675.46, "sales": 4128.54, "saleAmount": 9422.58, "createdAt": "1714691552492", "updatedAt": "1737277107511", "projectId": ""}, {"id": "", "domain": "superficial-membership.info", "key": "", "url": "https://cuddly-scenario.info", "trackConversion": false, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1768414685482", "expiredUrl": "https://same-self-confidence.org/", "password": "a0JVb2ZsCSHb4yM", "proxy": true, "title": "", "description": "though char while beneath while", "image": "https://loremflickr.com/3318/2916?lock=3354329708523999", "video": "https://loremflickr.com/3154/1911?lock=2861440677696192", "rewrite": true, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "pink"}, {"id": "", "name": "", "color": "purple"}, {"id": "", "name": "", "color": "blue"}], "folderId": "", "webhookIds": ["", ""], "comments": "yet questioningly anenst secret burgeon duh powerfully considering", "shortLink": "https://illustrious-design.org", "qrCode": "https://ajar-granny.org", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 6146.37, "lastClicked": "", "leads": 2846.28, "sales": 7343.54, "saleAmount": 5266.88, "createdAt": "1713717573234", "updatedAt": "1737263881603", "projectId": ""}, {"id": "", "domain": "pure-barracks.net", "key": "", "url": "https://familiar-colonialism.biz", "trackConversion": false, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1752193985611", "expiredUrl": "https://troubled-sport.info/", "password": "fb1iI7zKb7nCPxu", "proxy": true, "title": "", "description": "archaeology coaxingly ew", "image": "https://picsum.photos/seed/KrNp1ys/560/3633", "video": "https://loremflickr.com/881/3817?lock=3749541747594262", "rewrite": false, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [], "folderId": "", "webhookIds": ["", "", ""], "comments": "wholly onto tightly stiff polarisation commercial ugh lift long serpentine stint zowie upbeat degrease fervently gah boom furthermore", "shortLink": "https://untimely-pear.biz", "qrCode": "https://burly-hawk.name/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 3790.69, "lastClicked": "", "leads": 7094.85, "sales": 5436.75, "saleAmount": 5719.21, "createdAt": "1728990456937", "updatedAt": "1737281522911", "projectId": ""}] "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": @@ -563,7 +595,7 @@ examples: externalId: "123456" responses: "200": - application/json: {"id": "", "domain": "rural-mathematics.name", "key": "", "url": "https://willing-impostor.info", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1766886676342", "expiredUrl": "https://stiff-bidet.biz/", "password": "UmEgZU18kgjdwKI", "proxy": true, "title": "", "description": "restructure gadzooks alongside daily", "image": "https://picsum.photos/seed/45aEFZ1/2964/2015", "video": "https://loremflickr.com/2551/2755?lock=8039426390897665", "rewrite": true, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": false, "tagId": "", "tags": [{"id": "", "name": "", "color": "pink"}], "webhookIds": ["", "", ""], "comments": "huzzah bell unabashedly unwilling disk modulo offset pacemaker violently plait trench guilt like claw incidentally", "shortLink": "https://parched-executor.com", "qrCode": "https://old-incandescence.biz/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 9864.75, "lastClicked": "", "leads": 5433.15, "sales": 4138.54, "saleAmount": 6841.97, "createdAt": "1719919221533", "updatedAt": "1737284174992", "projectId": ""} + application/json: {"id": "", "domain": "rural-mathematics.name", "key": "", "url": "https://willing-impostor.info", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1766886676342", "expiredUrl": "https://stiff-bidet.biz/", "password": "UmEgZU18kgjdwKI", "proxy": true, "title": "", "description": "restructure gadzooks alongside daily", "image": "https://picsum.photos/seed/45aEFZ1/2964/2015", "video": "https://loremflickr.com/2551/2755?lock=8039426390897665", "rewrite": true, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": false, "tagId": "", "tags": [{"id": "", "name": "", "color": "pink"}], "folderId": "", "webhookIds": ["", "", ""], "comments": "huzzah bell unabashedly unwilling disk modulo offset pacemaker violently plait trench guilt like claw incidentally", "shortLink": "https://parched-executor.com", "qrCode": "https://old-incandescence.biz/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 9864.75, "lastClicked": "", "leads": 5433.15, "sales": 4138.54, "saleAmount": 6841.97, "createdAt": "1719919221533", "updatedAt": "1737284174992", "projectId": ""} "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": @@ -591,7 +623,7 @@ examples: application/json: {"url": "https://google.com", "externalId": "123456", "tagIds": ["clux0rgak00011..."]} responses: "200": - application/json: {"id": "", "domain": "tinted-nectarine.info", "key": "", "url": "https://powerless-juggernaut.org", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1751425103616", "expiredUrl": "https://extra-large-chapel.net/", "password": "uMjbGhnJP7Bopud", "proxy": false, "title": "", "description": "hungrily where woot royal duh", "image": "https://loremflickr.com/704/1105?lock=531882236227436", "video": "https://loremflickr.com/1732/307?lock=7953362777850438", "rewrite": true, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": false, "tagId": "", "tags": [], "webhookIds": [""], "comments": "during since anxiously lightly ultimately in likely opera please antelope exotic fussy", "shortLink": "https://handy-scaffold.org", "qrCode": "https://misguided-range.org", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 2245.52, "lastClicked": "", "leads": 2073.2, "sales": 7745.3, "saleAmount": 1379.57, "createdAt": "1711415830558", "updatedAt": "1737271254855", "projectId": ""} + application/json: {"id": "", "domain": "tinted-nectarine.info", "key": "", "url": "https://powerless-juggernaut.org", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1751425103616", "expiredUrl": "https://extra-large-chapel.net/", "password": "uMjbGhnJP7Bopud", "proxy": false, "title": "", "description": "hungrily where woot royal duh", "image": "https://loremflickr.com/704/1105?lock=531882236227436", "video": "https://loremflickr.com/1732/307?lock=7953362777850438", "rewrite": true, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": false, "tagId": "", "tags": [], "folderId": "", "webhookIds": [""], "comments": "during since anxiously lightly ultimately in likely opera please antelope exotic fussy", "shortLink": "https://handy-scaffold.org", "qrCode": "https://misguided-range.org", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 2245.52, "lastClicked": "", "leads": 2073.2, "sales": 7745.3, "saleAmount": 1379.57, "createdAt": "1711415830558", "updatedAt": "1737271254855", "projectId": ""} "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": @@ -667,7 +699,7 @@ examples: application/json: {"data": {"url": "https://google.com", "tagIds": ["clux0rgak00011..."]}} responses: "200": - application/json: [{"id": "", "domain": "old-lox.org", "key": "", "url": "https://angelic-cellar.org/", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1768652946712", "expiredUrl": "https://wordy-version.org", "password": "MRdLF0naLtN5wKv", "proxy": false, "title": "", "description": "convalesce failing faint", "image": "https://loremflickr.com/3643/399?lock=5328086824987349", "video": "https://loremflickr.com/2566/3076?lock=8474317426529991", "rewrite": true, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "purple"}], "webhookIds": ["", ""], "comments": "because freckle yin armoire woot plastic vista duh loyally judicious likewise", "shortLink": "https://clean-volleyball.info", "qrCode": "https://lovable-alligator.org/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 964.22, "lastClicked": "", "leads": 7553.21, "sales": 5339.39, "saleAmount": 2285.23, "createdAt": "1736011669899", "updatedAt": "1737308330656", "projectId": ""}, {"id": "", "domain": "first-aftermath.biz", "key": "", "url": "https://negative-hospitalization.com", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1761129212955", "expiredUrl": "https://whirlwind-galoshes.name", "password": "sL_6uLsdcLcIbbW", "proxy": true, "title": "", "description": "fat who midst aside alert excepting magnetize", "image": "https://loremflickr.com/1915/2418?lock=8396781847242257", "video": "https://picsum.videos/seed/tB24orBy/3081/3461", "rewrite": true, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "pink"}, {"id": "", "name": "", "color": "green"}, {"id": "", "name": "", "color": "purple"}], "webhookIds": [""], "comments": "blah verify soybean now aha moment improbable via inside after bonnet however overcoat gee whether substantiate feminize openly modulo", "shortLink": "https://inborn-commercial.com/", "qrCode": "https://excited-epic.info/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 7613.83, "lastClicked": "", "leads": 8591.44, "sales": 9883.56, "saleAmount": 2770.07, "createdAt": "1729246173810", "updatedAt": "1737310203681", "projectId": ""}] + application/json: [{"id": "", "domain": "old-lox.org", "key": "", "url": "https://angelic-cellar.org/", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1768652946712", "expiredUrl": "https://wordy-version.org", "password": "MRdLF0naLtN5wKv", "proxy": false, "title": "", "description": "convalesce failing faint", "image": "https://loremflickr.com/3643/399?lock=5328086824987349", "video": "https://loremflickr.com/2566/3076?lock=8474317426529991", "rewrite": true, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "purple"}], "folderId": "", "webhookIds": ["", ""], "comments": "because freckle yin armoire woot plastic vista duh loyally judicious likewise", "shortLink": "https://clean-volleyball.info", "qrCode": "https://lovable-alligator.org/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 964.22, "lastClicked": "", "leads": 7553.21, "sales": 5339.39, "saleAmount": 2285.23, "createdAt": "1736011669899", "updatedAt": "1737308330656", "projectId": ""}, {"id": "", "domain": "first-aftermath.biz", "key": "", "url": "https://negative-hospitalization.com", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1761129212955", "expiredUrl": "https://whirlwind-galoshes.name", "password": "sL_6uLsdcLcIbbW", "proxy": true, "title": "", "description": "fat who midst aside alert excepting magnetize", "image": "https://loremflickr.com/1915/2418?lock=8396781847242257", "video": "https://picsum.videos/seed/tB24orBy/3081/3461", "rewrite": true, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "pink"}, {"id": "", "name": "", "color": "green"}, {"id": "", "name": "", "color": "purple"}], "folderId": "", "webhookIds": [""], "comments": "blah verify soybean now aha moment improbable via inside after bonnet however overcoat gee whether substantiate feminize openly modulo", "shortLink": "https://inborn-commercial.com/", "qrCode": "https://excited-epic.info/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 7613.83, "lastClicked": "", "leads": 8591.44, "sales": 9883.56, "saleAmount": 2770.07, "createdAt": "1729246173810", "updatedAt": "1737310203681", "projectId": ""}] "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": @@ -718,7 +750,7 @@ examples: application/json: {"url": "https://google.com", "externalId": "123456", "tagIds": ["clux0rgak00011..."]} responses: "200": - application/json: {"id": "", "domain": "neat-instruction.info", "key": "", "url": "https://entire-rubric.com/", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1759309031063", "expiredUrl": "https://accurate-postbox.info", "password": "WcftWRnnmyj_UKT", "proxy": true, "title": "", "description": "account supposing bakeware", "image": "https://loremflickr.com/473/1522?lock=3086614550931103", "video": "https://loremflickr.com/513/908?lock=5606571816595400", "rewrite": false, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [], "webhookIds": ["", "", ""], "comments": "characterization whenever an secret uh-huh incidentally a that", "shortLink": "https://glorious-draft.name/", "qrCode": "https://warped-lifestyle.info/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 2566.71, "lastClicked": "", "leads": 4393.08, "sales": 2587.95, "saleAmount": 8832.25, "createdAt": "1724246540922", "updatedAt": "1737313540796", "projectId": ""} + application/json: {"id": "", "domain": "neat-instruction.info", "key": "", "url": "https://entire-rubric.com/", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": true, "expiresAt": "1759309031063", "expiredUrl": "https://accurate-postbox.info", "password": "WcftWRnnmyj_UKT", "proxy": true, "title": "", "description": "account supposing bakeware", "image": "https://loremflickr.com/473/1522?lock=3086614550931103", "video": "https://loremflickr.com/513/908?lock=5606571816595400", "rewrite": false, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [], "folderId": "", "webhookIds": ["", "", ""], "comments": "characterization whenever an secret uh-huh incidentally a that", "shortLink": "https://glorious-draft.name/", "qrCode": "https://warped-lifestyle.info/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 2566.71, "lastClicked": "", "leads": 4393.08, "sales": 2587.95, "saleAmount": 8832.25, "createdAt": "1724246540922", "updatedAt": "1737313540796", "projectId": ""} "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": @@ -782,7 +814,7 @@ examples: refererUrl: "https://dub.co/blog" responses: "200": - application/json: [{"event": "click", "click": {"id": "", "timestamp": "", "url": "https://remorseful-concentration.biz", "country": "Cameroon", "city": "Nikolaustown", "region": "", "continent": "North America", "device": "Desktop", "browser": "Chrome", "os": "Blackberry", "referer": "memorable-overcoat.com", "refererUrl": "https://hidden-jet.com/", "ip": "cda1:7c0d:9e31:d2a9:9a2b:c9c6:823e:0dee"}, "link": {"id": "", "domain": "bowed-poppy.name", "key": "", "url": "https://substantial-yin.com", "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "expiresAt": "1742535180986", "expiredUrl": "https://tasty-sarong.com/", "password": "kTh9aKnjQvMfiGb", "title": "", "description": "censor tenement commonly softly boo massive sorrowful", "image": "https://loremflickr.com/650/731?lock=3490957837371075", "video": "https://picsum.videos/seed/CifVJN/3581/99", "ios": "", "android": "", "geo": {}, "tagId": "", "tags": [{"id": "", "name": "", "color": "purple"}, {"id": "", "name": "", "color": "yellow"}, {"id": "", "name": "", "color": "blue"}], "webhookIds": ["", ""], "comments": "overheard swerve than bicycle twine huzzah obnoxiously after crooked enthusiastically flustered ack sticky without linseed finger inasmuch hydrolyze", "shortLink": "https://each-carnival.org/", "qrCode": "https://wiggly-blowgun.name", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 1899.83, "lastClicked": "", "leads": 8926.31, "sales": 1866.93, "saleAmount": 1073.35, "createdAt": "1721424118919", "updatedAt": "1737286595043", "projectId": ""}, "click_id": "", "link_id": "", "domain": "red-populist.biz", "key": "", "url": "https://faraway-strait.com", "continent": "Africa", "country": "Samoa", "city": "Sioux Falls", "device": "Mobile", "browser": "Firefox", "os": "iOS", "qr": 7884.8, "ip": "31.81.88.183"}, {"event": "click", "click": {"id": "", "timestamp": "", "url": "https://tender-representation.name/", "country": "Latvia", "city": "Ferrytown", "region": "", "continent": "South America", "device": "Mobile", "browser": "Chrome", "os": "iOS", "referer": "excellent-wedding.com", "refererUrl": "https://smooth-swing.net", "ip": "159.227.22.122"}, "link": {"id": "", "domain": "right-toothbrush.org", "key": "", "url": "https://unique-cemetery.name/", "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "expiresAt": "1749566468098", "expiredUrl": "https://genuine-secret.name", "password": "88fquzaxdapYd5p", "title": "", "description": "mid aw disconnection which", "image": "https://picsum.photos/seed/ibXLXFqYe/3357/1452", "video": "https://picsum.videos/seed/OmvVTn/3768/1798", "ios": "", "android": "", "geo": {}, "tagId": "", "tags": [], "webhookIds": [""], "comments": "reproachfully upon zowie alligator next inwardly ripe solicit that willing", "shortLink": "https://interesting-baseboard.biz", "qrCode": "https://circular-intellect.com", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 5884.43, "lastClicked": "", "leads": 5842.84, "sales": 7512.8, "saleAmount": 1707.02, "createdAt": "1731569193336", "updatedAt": "1737252746649", "projectId": ""}, "click_id": "", "link_id": "", "domain": "lavish-hydrant.org", "key": "", "url": "https://next-cricket.biz/", "continent": "Africa", "country": "Palau", "city": "Lindstad", "device": "Mobile", "browser": "Firefox", "os": "Windows Phone", "qr": 7476.87, "ip": "fa97:4d9b:f7cf:4c5d:273f:1edb:e4fe:ad8d"}, {"event": "click", "click": {"id": "", "timestamp": "", "url": "https://splendid-octave.biz", "country": "Cote d'Ivoire", "city": "East Alejandrinstead", "region": "", "continent": "South America", "device": "Desktop", "browser": "Chrome", "os": "iOS", "referer": "grounded-travel.com", "refererUrl": "https://warlike-institute.biz", "ip": "0342:1414:66e5:ade5:429e:8fbc:a89d:7d5e"}, "link": {"id": "", "domain": "general-stranger.biz", "key": "", "url": "https://dead-fraudster.name/", "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "expiresAt": "1760344563906", "expiredUrl": "https://flawless-cash.com/", "password": "ibaQd9T3I6zDNBi", "title": "", "description": "blind allegation finally wrongly acidly lavish unless for dividend", "image": "https://picsum.photos/seed/woZyy/3531/2372", "video": "https://picsum.videos/seed/VpOZ1Bjo/2051/2578", "ios": "", "android": "", "geo": {}, "tagId": "", "tags": [{"id": "", "name": "", "color": "red"}], "webhookIds": ["", ""], "comments": "oddball as limply from anticodon avaricious our where solicit needily", "shortLink": "https://evil-eggplant.org", "qrCode": "https://aged-lava.com/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 9412.1, "lastClicked": "", "leads": 7561.14, "sales": 3040.42, "saleAmount": 1760.14, "createdAt": "1734830078655", "updatedAt": "1737327963859", "projectId": ""}, "click_id": "", "link_id": "", "domain": "peppery-birdcage.org", "key": "", "url": "https://lavish-jet.net", "continent": "Europe", "country": "France", "city": "Port Annette", "device": "Mobile", "browser": "Firefox", "os": "iOS", "qr": 3573.93, "ip": "f79f:5f3c:ca8d:cfdd:2f22:7e3f:d8eb:d3ab"}] + application/json: [{"event": "click", "click": {"id": "", "timestamp": "", "url": "https://remorseful-concentration.biz", "country": "Cameroon", "city": "Nikolaustown", "region": "", "continent": "North America", "device": "Desktop", "browser": "Chrome", "os": "Blackberry", "referer": "memorable-overcoat.com", "refererUrl": "https://hidden-jet.com/", "ip": "cda1:7c0d:9e31:d2a9:9a2b:c9c6:823e:0dee"}, "link": {"id": "", "domain": "bowed-poppy.name", "key": "", "url": "https://substantial-yin.com", "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "expiresAt": "1742535180986", "expiredUrl": "https://tasty-sarong.com/", "password": "kTh9aKnjQvMfiGb", "title": "", "description": "censor tenement commonly softly boo massive sorrowful", "image": "https://loremflickr.com/650/731?lock=3490957837371075", "video": "https://picsum.videos/seed/CifVJN/3581/99", "ios": "", "android": "", "geo": {}, "tagId": "", "tags": [{"id": "", "name": "", "color": "purple"}, {"id": "", "name": "", "color": "yellow"}, {"id": "", "name": "", "color": "blue"}], "folderId": "", "webhookIds": ["", ""], "comments": "overheard swerve than bicycle twine huzzah obnoxiously after crooked enthusiastically flustered ack sticky without linseed finger inasmuch hydrolyze", "shortLink": "https://each-carnival.org/", "qrCode": "https://wiggly-blowgun.name", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 1899.83, "lastClicked": "", "leads": 8926.31, "sales": 1866.93, "saleAmount": 1073.35, "createdAt": "1721424118919", "updatedAt": "1737286595043", "projectId": ""}, "click_id": "", "link_id": "", "domain": "red-populist.biz", "key": "", "url": "https://faraway-strait.com", "continent": "Africa", "country": "Samoa", "city": "Sioux Falls", "device": "Mobile", "browser": "Firefox", "os": "iOS", "qr": 7884.8, "ip": "31.81.88.183"}, {"event": "click", "click": {"id": "", "timestamp": "", "url": "https://tender-representation.name/", "country": "Latvia", "city": "Ferrytown", "region": "", "continent": "South America", "device": "Mobile", "browser": "Chrome", "os": "iOS", "referer": "excellent-wedding.com", "refererUrl": "https://smooth-swing.net", "ip": "159.227.22.122"}, "link": {"id": "", "domain": "right-toothbrush.org", "key": "", "url": "https://unique-cemetery.name/", "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "expiresAt": "1749566468098", "expiredUrl": "https://genuine-secret.name", "password": "88fquzaxdapYd5p", "title": "", "description": "mid aw disconnection which", "image": "https://picsum.photos/seed/ibXLXFqYe/3357/1452", "video": "https://picsum.videos/seed/OmvVTn/3768/1798", "ios": "", "android": "", "geo": {}, "tagId": "", "tags": [], "folderId": "", "webhookIds": [""], "comments": "reproachfully upon zowie alligator next inwardly ripe solicit that willing", "shortLink": "https://interesting-baseboard.biz", "qrCode": "https://circular-intellect.com", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 5884.43, "lastClicked": "", "leads": 5842.84, "sales": 7512.8, "saleAmount": 1707.02, "createdAt": "1731569193336", "updatedAt": "1737252746649", "projectId": ""}, "click_id": "", "link_id": "", "domain": "lavish-hydrant.org", "key": "", "url": "https://next-cricket.biz/", "continent": "Africa", "country": "Palau", "city": "Lindstad", "device": "Mobile", "browser": "Firefox", "os": "Windows Phone", "qr": 7476.87, "ip": "fa97:4d9b:f7cf:4c5d:273f:1edb:e4fe:ad8d"}, {"event": "click", "click": {"id": "", "timestamp": "", "url": "https://splendid-octave.biz", "country": "Cote d'Ivoire", "city": "East Alejandrinstead", "region": "", "continent": "South America", "device": "Desktop", "browser": "Chrome", "os": "iOS", "referer": "grounded-travel.com", "refererUrl": "https://warlike-institute.biz", "ip": "0342:1414:66e5:ade5:429e:8fbc:a89d:7d5e"}, "link": {"id": "", "domain": "general-stranger.biz", "key": "", "url": "https://dead-fraudster.name/", "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "expiresAt": "1760344563906", "expiredUrl": "https://flawless-cash.com/", "password": "ibaQd9T3I6zDNBi", "title": "", "description": "blind allegation finally wrongly acidly lavish unless for dividend", "image": "https://picsum.photos/seed/woZyy/3531/2372", "video": "https://picsum.videos/seed/VpOZ1Bjo/2051/2578", "ios": "", "android": "", "geo": {}, "tagId": "", "tags": [{"id": "", "name": "", "color": "red"}], "folderId": "", "webhookIds": ["", ""], "comments": "oddball as limply from anticodon avaricious our where solicit needily", "shortLink": "https://evil-eggplant.org", "qrCode": "https://aged-lava.com/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 9412.1, "lastClicked": "", "leads": 7561.14, "sales": 3040.42, "saleAmount": 1760.14, "createdAt": "1734830078655", "updatedAt": "1737327963859", "projectId": ""}, "click_id": "", "link_id": "", "domain": "peppery-birdcage.org", "key": "", "url": "https://lavish-jet.net", "continent": "Europe", "country": "France", "city": "Port Annette", "device": "Mobile", "browser": "Firefox", "os": "iOS", "qr": 3573.93, "ip": "f79f:5f3c:ca8d:cfdd:2f22:7e3f:d8eb:d3ab"}] "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": @@ -1192,7 +1224,7 @@ examples: idOrSlug: "" responses: "200": - application/json: {"id": "", "name": "", "slug": "", "logo": "", "inviteCode": "", "plan": "business extra", "stripeId": "", "billingCycleStart": 5588.34, "paymentFailedAt": "", "stripeConnectId": "", "usage": 5442.21, "usageLimit": 5212.35, "linksUsage": 9699.61, "linksLimit": 4580.49, "salesUsage": 4508.24, "salesLimit": 2627.95, "domainsLimit": 2134.57, "tagsLimit": 9371.46, "usersLimit": 4381.42, "aiUsage": 8013.73, "aiLimit": 788.88, "conversionEnabled": true, "dotLinkClaimed": true, "partnersEnabled": true, "createdAt": "1723223056781", "users": [{"role": "owner"}, {"role": "member"}, {"role": "member"}], "domains": [{"slug": "acme.com", "primary": true, "verified": true}, {"slug": "acme.com", "primary": true, "verified": true}], "store": {"key": "", "key1": "", "key2": ""}, "allowedHostnames": ["dub.sh"]} + application/json: {"id": "", "name": "", "slug": "", "logo": "", "inviteCode": "", "plan": "business extra", "stripeId": "", "billingCycleStart": 5588.34, "paymentFailedAt": "", "stripeConnectId": "", "usage": 5442.21, "usageLimit": 5212.35, "linksUsage": 9699.61, "linksLimit": 4580.49, "salesUsage": 4508.24, "salesLimit": 2627.95, "domainsLimit": 2134.57, "tagsLimit": 9371.46, "foldersLimit": 7003.47, "usersLimit": 4381.42, "aiUsage": 8013.73, "aiLimit": 788.88, "conversionEnabled": true, "dotLinkClaimed": true, "partnersEnabled": true, "createdAt": "1723223056781", "users": [{"role": "owner"}, {"role": "member"}, {"role": "member"}], "domains": [{"slug": "acme.com", "primary": true, "verified": true}, {"slug": "acme.com", "primary": true, "verified": true}], "store": {"key": "", "key1": "", "key2": ""}, "allowedHostnames": ["dub.sh"]} "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": @@ -1218,7 +1250,7 @@ examples: idOrSlug: "" responses: "200": - application/json: {"id": "", "name": "", "slug": "", "logo": "", "inviteCode": "", "plan": "enterprise", "stripeId": "", "billingCycleStart": 5971.29, "paymentFailedAt": "", "stripeConnectId": "", "usage": 3446.2, "usageLimit": 9914.64, "linksUsage": 6276.9, "linksLimit": 4888.52, "salesUsage": 9840.08, "salesLimit": 540.62, "domainsLimit": 8965.01, "tagsLimit": 4468.63, "usersLimit": 3115.07, "aiUsage": 2494.4, "aiLimit": 1395.79, "conversionEnabled": false, "dotLinkClaimed": false, "partnersEnabled": true, "createdAt": "1720441680204", "users": [{"role": "member"}, {"role": "owner"}, {"role": "owner"}], "domains": [{"slug": "acme.com", "primary": false, "verified": true}, {"slug": "acme.com", "primary": false, "verified": true}, {"slug": "acme.com", "primary": true, "verified": true}], "store": {"key": "", "key1": "", "key2": ""}, "allowedHostnames": ["dub.sh"]} + application/json: {"id": "", "name": "", "slug": "", "logo": "", "inviteCode": "", "plan": "enterprise", "stripeId": "", "billingCycleStart": 5971.29, "paymentFailedAt": "", "stripeConnectId": "", "usage": 3446.2, "usageLimit": 9914.64, "linksUsage": 6276.9, "linksLimit": 4888.52, "salesUsage": 9840.08, "salesLimit": 540.62, "domainsLimit": 8965.01, "tagsLimit": 4468.63, "foldersLimit": 8574.78, "usersLimit": 3115.07, "aiUsage": 2494.4, "aiLimit": 1395.79, "conversionEnabled": false, "dotLinkClaimed": false, "partnersEnabled": true, "createdAt": "1720441680204", "users": [{"role": "member"}, {"role": "owner"}, {"role": "owner"}], "domains": [{"slug": "acme.com", "primary": false, "verified": true}, {"slug": "acme.com", "primary": false, "verified": true}, {"slug": "acme.com", "primary": true, "verified": true}], "store": {"key": "", "key1": "", "key2": ""}, "allowedHostnames": ["dub.sh"]} "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": @@ -1300,7 +1332,7 @@ examples: application/json: {"programId": "", "name": "", "email": "Loyal79@yahoo.com", "username": "Aaliyah_Borer", "linkProps": {"externalId": "123456", "tagIds": ["clux0rgak00011..."]}} responses: "201": - application/json: {"id": "", "name": "", "email": "Loyal79@yahoo.com", "image": "https://loremflickr.com/1/679?lock=7139282333236917", "country": "Slovenia", "bio": "", "stripeConnectId": "", "payoutsEnabled": false, "createdAt": "1730216871840", "updatedAt": "1738020328182", "status": "pending", "links": [{"id": "", "domain": "probable-heating.com", "key": "", "shortLink": "https://standard-utilization.com/", "url": "https://brisk-seafood.net/", "clicks": 5862.2, "leads": 7524.38, "sales": 9574.09, "saleAmount": 3570.21}], "commissionAmount": 155.52, "earnings": 5235.23, "clicks": 2596.29, "leads": 177.59, "sales": 2303.13, "salesAmount": 2113.37} + application/json: {"id": "", "name": "", "email": "Loyal79@yahoo.com", "image": "https://loremflickr.com/1/679?lock=7139282333236917", "country": "Slovenia", "createdAt": "1730216871840", "status": "pending", "programId": "", "tenantId": "", "links": [{"id": "", "domain": "probable-heating.com", "key": "", "shortLink": "https://standard-utilization.com/", "url": "https://brisk-seafood.net/", "clicks": 5862.2, "leads": 7524.38, "sales": 9574.09, "saleAmount": 3570.21}], "clicks": 2596.29, "leads": 177.59, "sales": 2303.13, "saleAmount": 4865.89, "earnings": 5235.23} "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": @@ -1325,7 +1357,7 @@ examples: application/json: {"programId": "", "url": "https://necessary-brief.name", "linkProps": {"externalId": "123456", "tagIds": ["clux0rgak00011..."]}} responses: "201": - application/json: {"id": "", "domain": "inferior-louse.org", "key": "", "url": "https://lighthearted-subexpression.net", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1754305632811", "expiredUrl": "https://acceptable-solution.com", "password": "CRFmmigZdFo7_Sd", "proxy": true, "title": "", "description": "merrily stay ouch starch glittering repeat", "image": "https://picsum.photos/seed/qQVGzy2/555/2692", "video": "https://picsum.videos/seed/tYFhXY/1788/3108", "rewrite": true, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": false, "tagId": "", "tags": [{"id": "", "name": "", "color": "purple"}], "webhookIds": [""], "comments": "per blissfully maintainer moist lest unless", "shortLink": "https://equatorial-mouser.biz", "qrCode": "https://wry-baritone.net/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 2531.62, "lastClicked": "", "leads": 189.59, "sales": 4658.39, "saleAmount": 9705.38, "createdAt": "1719659714941", "updatedAt": "1738625113730", "projectId": ""} + application/json: {"id": "", "domain": "inferior-louse.org", "key": "", "url": "https://lighthearted-subexpression.net", "trackConversion": true, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1754305632811", "expiredUrl": "https://acceptable-solution.com", "password": "CRFmmigZdFo7_Sd", "proxy": true, "title": "", "description": "merrily stay ouch starch glittering repeat", "image": "https://picsum.photos/seed/qQVGzy2/555/2692", "video": "https://picsum.videos/seed/tYFhXY/1788/3108", "rewrite": true, "doIndex": false, "ios": "", "android": "", "geo": {}, "publicStats": false, "tagId": "", "tags": [{"id": "", "name": "", "color": "purple"}], "folderId": "", "webhookIds": [""], "comments": "per blissfully maintainer moist lest unless", "shortLink": "https://equatorial-mouser.biz", "qrCode": "https://wry-baritone.net/", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 2531.62, "lastClicked": "", "leads": 189.59, "sales": 4658.39, "saleAmount": 9705.38, "createdAt": "1719659714941", "updatedAt": "1738625113730", "projectId": ""} "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": @@ -1350,7 +1382,132 @@ examples: application/json: {"programId": "", "url": "https://unsteady-lobster.com/", "linkProps": {"externalId": "123456", "tagIds": ["clux0rgak00011..."]}} responses: "200": - application/json: {"id": "", "domain": "snoopy-exasperation.name", "key": "", "url": "https://defenseless-suitcase.org/", "trackConversion": false, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1758310011121", "expiredUrl": "https://serene-pants.com", "password": "Fj89Olng6LL82os", "proxy": false, "title": "", "description": "flashy petticoat than discontinue blink remand", "image": "https://picsum.photos/seed/v1k3M4GxN/2021/480", "video": "https://picsum.videos/seed/LiWqM7t/1298/1639", "rewrite": true, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "green"}], "webhookIds": ["", ""], "comments": "doubtfully brr up behind above slake maroon upside-down repeatedly source while obstruct oof questionably familiar hidden into", "shortLink": "https://waterlogged-valentine.name", "qrCode": "https://quintessential-bowler.net", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 5717.16, "lastClicked": "", "leads": 6527.5, "sales": 7465.08, "saleAmount": 8176.49, "createdAt": "1722447375210", "updatedAt": "1738812840712", "projectId": ""} + application/json: {"id": "", "domain": "snoopy-exasperation.name", "key": "", "url": "https://defenseless-suitcase.org/", "trackConversion": false, "externalId": "", "tenantId": "", "programId": "", "partnerId": "", "archived": false, "expiresAt": "1758310011121", "expiredUrl": "https://serene-pants.com", "password": "Fj89Olng6LL82os", "proxy": false, "title": "", "description": "flashy petticoat than discontinue blink remand", "image": "https://picsum.photos/seed/v1k3M4GxN/2021/480", "video": "https://picsum.videos/seed/LiWqM7t/1298/1639", "rewrite": true, "doIndex": true, "ios": "", "android": "", "geo": {}, "publicStats": true, "tagId": "", "tags": [{"id": "", "name": "", "color": "green"}], "folderId": "", "webhookIds": ["", ""], "comments": "doubtfully brr up behind above slake maroon upside-down repeatedly source while obstruct oof questionably familiar hidden into", "shortLink": "https://waterlogged-valentine.name", "qrCode": "https://quintessential-bowler.net", "utm_source": "", "utm_medium": "", "utm_campaign": "", "utm_term": "", "utm_content": "", "userId": "", "workspaceId": "", "clicks": 5717.16, "lastClicked": "", "leads": 6527.5, "sales": 7465.08, "saleAmount": 8176.49, "createdAt": "1722447375210", "updatedAt": "1738812840712", "projectId": ""} + "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"}} + createFolder: + speakeasy-default-create-folder: + responses: + "201": + application/json: {"id": "", "name": "", "accessLevel": "read", "linkCount": 6384.24, "createdAt": "1720948972255", "updatedAt": "1739245233715"} + "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"}} + listFolders: + speakeasy-default-list-folders: + responses: + "200": + application/json: [{"id": "", "name": "", "accessLevel": "write", "linkCount": 6783.17, "createdAt": "1713388175774", "updatedAt": "1739253472019"}, {"id": "", "name": "", "accessLevel": "read", "linkCount": 6355.32, "createdAt": "1727947722137", "updatedAt": "1739235143393"}, {"id": "", "name": "", "accessLevel": "write", "linkCount": 861.4, "createdAt": "1709944391778", "updatedAt": "1739293063749"}] + "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"}} + updateFolder: + speakeasy-default-update-folder: + parameters: + path: + id: "" + responses: + "200": + application/json: {"id": "", "name": "", "accessLevel": "write", "linkCount": 5971.29, "createdAt": "1718651958435", "updatedAt": "1739319286220"} + "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"}} + deleteFolder: + speakeasy-default-delete-folder: + parameters: + path: + id: "" + responses: + "200": + application/json: {"id": ""} + "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"}} + retrievePartnerAnalytics: + speakeasy-default-retrieve-partner-analytics: + parameters: + query: + timezone: "America/New_York" + programId: "" + responses: + "200": + application/json: "" "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": diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 3fe8ea0..935b610 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -13,7 +13,7 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false ruby: - version: 0.2.2-alpha.62 + version: 0.2.2-alpha.63 author: Dub description: Ruby Client SDK Generated by Speakeasy imports: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 5e18953..7c2adef 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,21 +1,21 @@ -speakeasyVersion: 1.487.0 +speakeasyVersion: 1.488.0 sources: dub: sourceNamespace: dub - sourceRevisionDigest: sha256:371140ed311988935048aad28f29cf2934b0ceee28b12a09114080c4083d5acb - sourceBlobDigest: sha256:302af5af57801c13e8eae76439ce161f3027ad63927e360e1152ba4f786f7d91 + sourceRevisionDigest: sha256:01fe07c77ed882057c70a46306223dc7e936dc237a9805e9df560541f52f78b3 + sourceBlobDigest: sha256:cefa494187073dd8bb1eebde5639c67f6f8ede53421ce7fd329ea379e75153ca tags: - latest - - speakeasy-sdk-regen-1738888006 + - speakeasy-sdk-regen-1739147271 - 0.0.1 targets: my-first-target: source: dub sourceNamespace: dub - sourceRevisionDigest: sha256:371140ed311988935048aad28f29cf2934b0ceee28b12a09114080c4083d5acb - sourceBlobDigest: sha256:302af5af57801c13e8eae76439ce161f3027ad63927e360e1152ba4f786f7d91 + sourceRevisionDigest: sha256:01fe07c77ed882057c70a46306223dc7e936dc237a9805e9df560541f52f78b3 + sourceBlobDigest: sha256:cefa494187073dd8bb1eebde5639c67f6f8ede53421ce7fd329ea379e75153ca codeSamplesNamespace: code-samples-ruby-my-first-target - codeSamplesRevisionDigest: sha256:08b1e0e9763b6355dce8368f90a844a0821f6b6048c44a41ffb22d1968125e26 + codeSamplesRevisionDigest: sha256:e292c506290ee30432b4accd12d5d64fb8473b118501ce025d09cc34ed0b39d3 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/Gemfile.lock b/Gemfile.lock index ee88f7b..7e91b3d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - dub (0.2.2.pre.alpha.62) + dub (0.2.2.pre.alpha.63) faraday faraday-multipart rack diff --git a/README.md b/README.md index a32ff73..0a99048 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,13 @@ end * [list](docs/sdks/events/README.md#list) - Retrieve a list of events +### [folders](docs/sdks/folders/README.md) + +* [create](docs/sdks/folders/README.md#create) - Create a new folder +* [list](docs/sdks/folders/README.md#list) - Retrieve a list of folders +* [update](docs/sdks/folders/README.md#update) - Update a folder +* [delete](docs/sdks/folders/README.md#delete) - Delete a folder + ### [links](docs/sdks/links/README.md) * [create](docs/sdks/links/README.md#create) - Create a new link @@ -159,6 +166,7 @@ end * [create](docs/sdks/partners/README.md#create) - Create a new partner * [create_link](docs/sdks/partners/README.md#create_link) - Create a link for a partner * [upsert_link](docs/sdks/partners/README.md#upsert_link) - Upsert a link for a partner +* [analytics](docs/sdks/partners/README.md#analytics) - Retrieve analytics for a partner ### [qr_codes](docs/sdks/qrcodes/README.md) diff --git a/RELEASES.md b/RELEASES.md index 55d787e..295cd64 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -768,4 +768,14 @@ Based on: ### Generated - [ruby v0.2.2-alpha.62] . ### Releases -- [Ruby Gems v0.2.2-alpha.62] https://rubygems.org/gems/dub/versions/0.2.2-alpha.62 - . \ No newline at end of file +- [Ruby Gems v0.2.2-alpha.62] https://rubygems.org/gems/dub/versions/0.2.2-alpha.62 - . + +## 2025-02-12 00:26:34 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.488.0 (2.506.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [ruby v0.2.2-alpha.63] . +### Releases +- [Ruby Gems v0.2.2-alpha.63] https://rubygems.org/gems/dub/versions/0.2.2-alpha.63 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index 37b0db0..f55c371 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -63,6 +63,30 @@ actions: - "lang": "ruby" "label": "listEvents" "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n\nreq = ::OpenApiSDK::Operations::ListEventsRequest.new(\n timezone: \"America/New_York\",\n city: \"New York\",\n device: \"Desktop\",\n browser: \"Chrome\",\n os: \"Windows\",\n referer: \"google.com\",\n referer_url: \"https://dub.co/blog\",\n)\n \nres = s.events.list(req)\n\nif ! res.click_events.nil?\n # handle response\nend" + - target: $["paths"]["/folders"]["get"] + update: + "x-codeSamples": + - "lang": "ruby" + "label": "listFolders" + "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n\nreq = ::OpenApiSDK::Operations::ListFoldersRequest.new()\n \nres = s.folders.list(req)\n\nif ! res.folder_schemas.nil?\n # handle response\nend" + - target: $["paths"]["/folders"]["post"] + update: + "x-codeSamples": + - "lang": "ruby" + "label": "createFolder" + "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n\nreq = ::OpenApiSDK::Operations::CreateFolderRequestBody.new(\n name: \"\",\n)\n \nres = s.folders.create(req)\n\nif ! res.folder_schema.nil?\n # handle response\nend" + - target: $["paths"]["/folders/{id}"]["delete"] + update: + "x-codeSamples": + - "lang": "ruby" + "label": "deleteFolder" + "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n \nres = s.folders.delete(id=\"\")\n\nif ! res.object.nil?\n # handle response\nend" + - target: $["paths"]["/folders/{id}"]["patch"] + update: + "x-codeSamples": + - "lang": "ruby" + "label": "updateFolder" + "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n \nres = s.folders.update(id=\"\", request_body=::OpenApiSDK::Operations::UpdateFolderRequestBody.new())\n\nif ! res.folder_schema.nil?\n # handle response\nend" - target: $["paths"]["/links"]["get"] update: "x-codeSamples": @@ -135,18 +159,24 @@ actions: - "lang": "ruby" "label": "createPartner" "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n\nreq = ::OpenApiSDK::Operations::CreatePartnerRequestBody.new(\n program_id: \"\",\n name: \"\",\n email: \"Loyal79@yahoo.com\",\n username: \"Aaliyah_Borer\",\n link_props: ::OpenApiSDK::Operations::LinkProps.new(\n external_id: \"123456\",\n tag_ids: [\n \"clux0rgak00011...\",\n ],\n ),\n)\n \nres = s.partners.create(req)\n\nif ! res.object.nil?\n # handle response\nend" + - target: $["paths"]["/partners/analytics"]["get"] + update: + "x-codeSamples": + - "lang": "ruby" + "label": "retrievePartnerAnalytics" + "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n\nreq = ::OpenApiSDK::Operations::RetrievePartnerAnalyticsRequest.new(\n timezone: \"America/New_York\",\n program_id: \"\",\n)\n \nres = s.partners.analytics(req)\n\nif ! res.one_of.nil?\n # handle response\nend" - target: $["paths"]["/partners/links"]["post"] update: "x-codeSamples": - "lang": "ruby" "label": "createPartnerLink" - "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n\nreq = ::OpenApiSDK::Operations::CreatePartnerLinkRequestBody.new(\n program_id: \"\",\n url: \"https://necessary-brief.name\",\n link_props: ::OpenApiSDK::Operations::CreatePartnerLinkLinkProps.new(\n external_id: \"123456\",\n tag_ids: [\n \"clux0rgak00011...\",\n ],\n ),\n)\n \nres = s.partners.create_link(req)\n\nif ! res.link_schema.nil?\n # handle response\nend" + "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n\nreq = ::OpenApiSDK::Operations::CreatePartnerLinkRequestBody.new(\n program_id: \"\",\n link_props: ::OpenApiSDK::Operations::CreatePartnerLinkLinkProps.new(\n external_id: \"123456\",\n tag_ids: [\n \"clux0rgak00011...\",\n ],\n ),\n)\n \nres = s.partners.create_link(req)\n\nif ! res.link_schema.nil?\n # handle response\nend" - target: $["paths"]["/partners/links/upsert"]["put"] update: "x-codeSamples": - "lang": "ruby" "label": "upsertPartnerLink" - "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n\nreq = ::OpenApiSDK::Operations::UpsertPartnerLinkRequestBody.new(\n program_id: \"\",\n url: \"https://unsteady-lobster.com/\",\n link_props: ::OpenApiSDK::Operations::UpsertPartnerLinkLinkProps.new(\n external_id: \"123456\",\n tag_ids: [\n \"clux0rgak00011...\",\n ],\n ),\n)\n \nres = s.partners.upsert_link(req)\n\nif ! res.link_schema.nil?\n # handle response\nend" + "source": "require 'dub'\n\n\ns = ::OpenApiSDK::Dub.new\ns.config_security(\n ::OpenApiSDK::Shared::Security.new(\n token: \"DUB_API_KEY\",\n )\n)\n\n\nreq = ::OpenApiSDK::Operations::UpsertPartnerLinkRequestBody.new(\n program_id: \"\",\n link_props: ::OpenApiSDK::Operations::UpsertPartnerLinkLinkProps.new(\n external_id: \"123456\",\n tag_ids: [\n \"clux0rgak00011...\",\n ],\n ),\n)\n \nres = s.partners.upsert_link(req)\n\nif ! res.link_schema.nil?\n # handle response\nend" - target: $["paths"]["/qr"]["get"] update: "x-codeSamples": diff --git a/docs/models/operations/accesslevel.md b/docs/models/operations/accesslevel.md new file mode 100644 index 0000000..4bff1ab --- /dev/null +++ b/docs/models/operations/accesslevel.md @@ -0,0 +1,11 @@ +# AccessLevel + +The access level of the folder within the workspace. + + +## Values + +| Name | Value | +| ------- | ------- | +| `READ` | read | +| `WRITE` | write | \ No newline at end of file diff --git a/docs/models/operations/createfolderrequestbody.md b/docs/models/operations/createfolderrequestbody.md new file mode 100644 index 0000000..11723cc --- /dev/null +++ b/docs/models/operations/createfolderrequestbody.md @@ -0,0 +1,9 @@ +# CreateFolderRequestBody + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `name` | *::String* | :heavy_check_mark: | The name of the folder. | +| `access_level` | [T.nilable(::OpenApiSDK::Operations::AccessLevel)](../../models/operations/accesslevel.md) | :heavy_minus_sign: | The access level of the folder within the workspace. | \ No newline at end of file diff --git a/docs/models/operations/createfolderresponse.md b/docs/models/operations/createfolderresponse.md new file mode 100644 index 0000000..f54377f --- /dev/null +++ b/docs/models/operations/createfolderresponse.md @@ -0,0 +1,20 @@ +# CreateFolderResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `folder_schema` | [T.nilable(::OpenApiSDK::Shared::FolderSchema)](../../models/shared/folderschema.md) | :heavy_minus_sign: | The created folder | +| `bad_request` | [T.nilable(::OpenApiSDK::Shared::BadRequest)](../../models/shared/badrequest.md) | :heavy_minus_sign: | The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). | +| `unauthorized` | [T.nilable(::OpenApiSDK::Shared::Unauthorized)](../../models/shared/unauthorized.md) | :heavy_minus_sign: | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | +| `forbidden` | [T.nilable(::OpenApiSDK::Shared::Forbidden)](../../models/shared/forbidden.md) | :heavy_minus_sign: | The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. | +| `not_found` | [T.nilable(::OpenApiSDK::Shared::NotFound)](../../models/shared/notfound.md) | :heavy_minus_sign: | The server cannot find the requested resource. | +| `conflict` | [T.nilable(::OpenApiSDK::Shared::Conflict)](../../models/shared/conflict.md) | :heavy_minus_sign: | This response is sent when a request conflicts with the current state of the server. | +| `invite_expired` | [T.nilable(::OpenApiSDK::Shared::InviteExpired)](../../models/shared/inviteexpired.md) | :heavy_minus_sign: | This response is sent when the requested content has been permanently deleted from server, with no forwarding address. | +| `unprocessable_entity` | [T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)](../../models/shared/unprocessableentity.md) | :heavy_minus_sign: | The request was well-formed but was unable to be followed due to semantic errors. | +| `rate_limit_exceeded` | [T.nilable(::OpenApiSDK::Shared::RateLimitExceeded)](../../models/shared/ratelimitexceeded.md) | :heavy_minus_sign: | The user has sent too many requests in a given amount of time ("rate limiting") | +| `internal_server_error` | [T.nilable(::OpenApiSDK::Shared::InternalServerError)](../../models/shared/internalservererror.md) | :heavy_minus_sign: | The server has encountered a situation it does not know how to handle. | \ No newline at end of file diff --git a/docs/models/operations/createlinkrequestbody.md b/docs/models/operations/createlinkrequestbody.md index 0d2f398..4968ade 100644 --- a/docs/models/operations/createlinkrequestbody.md +++ b/docs/models/operations/createlinkrequestbody.md @@ -19,6 +19,7 @@ | ~~`tag_id`~~ | *T.nilable(::String)* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The unique ID existing folder to assign the short link to. | | | `comments` | *T.nilable(::String)* | :heavy_minus_sign: | The comments for the short link. | | | `expires_at` | *T.nilable(::String)* | :heavy_minus_sign: | The date and time when the short link will expire at. | | | `expired_url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | diff --git a/docs/models/operations/createpartnerdiscount.md b/docs/models/operations/createpartnerdiscount.md deleted file mode 100644 index 91f8ac3..0000000 --- a/docs/models/operations/createpartnerdiscount.md +++ /dev/null @@ -1,14 +0,0 @@ -# CreatePartnerDiscount - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -| `id` | *::String* | :heavy_check_mark: | N/A | -| `coupon_id` | *::String* | :heavy_check_mark: | N/A | -| `coupon_test_id` | *::String* | :heavy_check_mark: | N/A | -| `amount` | *::Float* | :heavy_check_mark: | N/A | -| `type` | [::OpenApiSDK::Operations::CreatePartnerType](../../models/operations/createpartnertype.md) | :heavy_check_mark: | N/A | -| `duration` | *::Float* | :heavy_check_mark: | N/A | -| `interval` | [::OpenApiSDK::Operations::CreatePartnerInterval](../../models/operations/createpartnerinterval.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/createpartnerinterval.md b/docs/models/operations/createpartnerinterval.md deleted file mode 100644 index 79fb641..0000000 --- a/docs/models/operations/createpartnerinterval.md +++ /dev/null @@ -1,9 +0,0 @@ -# CreatePartnerInterval - - -## Values - -| Name | Value | -| ------- | ------- | -| `MONTH` | month | -| `YEAR` | year | \ No newline at end of file diff --git a/docs/models/operations/createpartnerlinklinkprops.md b/docs/models/operations/createpartnerlinklinkprops.md index fa15db6..574f927 100644 --- a/docs/models/operations/createpartnerlinklinkprops.md +++ b/docs/models/operations/createpartnerlinklinkprops.md @@ -14,6 +14,7 @@ Additional properties that you can pass to the partner's short link. Will be use | `archived` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The unique ID existing folder to assign the short link to. | | | `comments` | *T.nilable(::String)* | :heavy_minus_sign: | The comments for the short link. | | | `expires_at` | *T.nilable(::String)* | :heavy_minus_sign: | The date and time when the short link will expire at. | | | `expired_url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | diff --git a/docs/models/operations/createpartnerlinkrequestbody.md b/docs/models/operations/createpartnerlinkrequestbody.md index 92909ca..43f3b0d 100644 --- a/docs/models/operations/createpartnerlinkrequestbody.md +++ b/docs/models/operations/createpartnerlinkrequestbody.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| `program_id` | *::String* | :heavy_check_mark: | The ID of the program that the partner is enrolled in. | -| `partner_id` | *T.nilable(::String)* | :heavy_minus_sign: | The ID of the partner to create a link for. Will take precedence over `tenantId` if provided. | -| `tenant_id` | *T.nilable(::String)* | :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` | *::String* | :heavy_check_mark: | The URL to shorten. Will throw an error if the domain doesn't match the program's default URL domain. | -| `key` | *T.nilable(::String)* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | -| `link_props` | [T.nilable(::OpenApiSDK::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 | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `program_id` | *::String* | :heavy_check_mark: | The ID of the program that the partner is enrolled in. | +| `partner_id` | *T.nilable(::String)* | :heavy_minus_sign: | The ID of the partner to create a link for. Will take precedence over `tenantId` if provided. | +| `tenant_id` | *T.nilable(::String)* | :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` | *T.nilable(::String)* | :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` | *T.nilable(::String)* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | +| `link_props` | [T.nilable(::OpenApiSDK::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 b221655..48b3d8f 100644 --- a/docs/models/operations/createpartnerresponsebody.md +++ b/docs/models/operations/createpartnerresponsebody.md @@ -5,25 +5,21 @@ The created partner ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `id` | *::String* | :heavy_check_mark: | N/A | -| `name` | *::String* | :heavy_check_mark: | N/A | -| `email` | *::String* | :heavy_check_mark: | N/A | -| `image` | *::String* | :heavy_check_mark: | N/A | -| `country` | *::String* | :heavy_check_mark: | N/A | -| `bio` | *::String* | :heavy_check_mark: | N/A | -| `stripe_connect_id` | *::String* | :heavy_check_mark: | N/A | -| `coupon_id` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | -| `payouts_enabled` | *T::Boolean* | :heavy_check_mark: | N/A | -| `created_at` | *::String* | :heavy_check_mark: | N/A | -| `updated_at` | *::String* | :heavy_check_mark: | N/A | -| `status` | [::OpenApiSDK::Operations::Status](../../models/operations/status.md) | :heavy_check_mark: | N/A | -| `links` | T::Array<[::OpenApiSDK::Operations::Links](../../models/operations/links.md)> | :heavy_check_mark: | N/A | -| `discount` | [T.nilable(::OpenApiSDK::Operations::CreatePartnerDiscount)](../../models/operations/createpartnerdiscount.md) | :heavy_minus_sign: | N/A | -| `commission_amount` | *::Float* | :heavy_check_mark: | N/A | -| `earnings` | *::Float* | :heavy_check_mark: | N/A | -| `clicks` | *::Float* | :heavy_check_mark: | N/A | -| `leads` | *::Float* | :heavy_check_mark: | N/A | -| `sales` | *::Float* | :heavy_check_mark: | N/A | -| `sales_amount` | *::Float* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *::String* | :heavy_check_mark: | N/A | +| `name` | *::String* | :heavy_check_mark: | N/A | +| `email` | *::String* | :heavy_check_mark: | N/A | +| `image` | *::String* | :heavy_check_mark: | N/A | +| `description` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | +| `country` | *::String* | :heavy_check_mark: | N/A | +| `created_at` | *::String* | :heavy_check_mark: | N/A | +| `status` | [::OpenApiSDK::Operations::Status](../../models/operations/status.md) | :heavy_check_mark: | N/A | +| `program_id` | *::String* | :heavy_check_mark: | N/A | +| `tenant_id` | *::String* | :heavy_check_mark: | N/A | +| `links` | T::Array<[::OpenApiSDK::Operations::Links](../../models/operations/links.md)> | :heavy_check_mark: | N/A | +| `clicks` | *::Float* | :heavy_check_mark: | N/A | +| `leads` | *::Float* | :heavy_check_mark: | N/A | +| `sales` | *::Float* | :heavy_check_mark: | N/A | +| `sale_amount` | *::Float* | :heavy_check_mark: | N/A | +| `earnings` | *::Float* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/createpartnertype.md b/docs/models/operations/createpartnertype.md deleted file mode 100644 index 5116b4b..0000000 --- a/docs/models/operations/createpartnertype.md +++ /dev/null @@ -1,9 +0,0 @@ -# CreatePartnerType - - -## Values - -| Name | Value | -| ------------ | ------------ | -| `PERCENTAGE` | percentage | -| `FLAT` | flat | \ No newline at end of file diff --git a/docs/models/operations/data.md b/docs/models/operations/data.md index 84b4bdf..15263fa 100644 --- a/docs/models/operations/data.md +++ b/docs/models/operations/data.md @@ -15,6 +15,7 @@ | ~~`tag_id`~~ | *T.nilable(::String)* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The unique ID existing folder to assign the short link to. | | | `comments` | *T.nilable(::String)* | :heavy_minus_sign: | The comments for the short link. | | | `expires_at` | *T.nilable(::String)* | :heavy_minus_sign: | The date and time when the short link will expire at. | | | `expired_url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | diff --git a/docs/models/operations/deletefolderrequest.md b/docs/models/operations/deletefolderrequest.md new file mode 100644 index 0000000..8dfac36 --- /dev/null +++ b/docs/models/operations/deletefolderrequest.md @@ -0,0 +1,8 @@ +# DeleteFolderRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `id` | *::String* | :heavy_check_mark: | The ID of the folder to delete. | \ No newline at end of file diff --git a/docs/models/operations/deletefolderresponse.md b/docs/models/operations/deletefolderresponse.md new file mode 100644 index 0000000..05dc7d5 --- /dev/null +++ b/docs/models/operations/deletefolderresponse.md @@ -0,0 +1,20 @@ +# DeleteFolderResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [T.nilable(::OpenApiSDK::Operations::DeleteFolderResponseBody)](../../models/operations/deletefolderresponsebody.md) | :heavy_minus_sign: | The deleted folder ID. | +| `bad_request` | [T.nilable(::OpenApiSDK::Shared::BadRequest)](../../models/shared/badrequest.md) | :heavy_minus_sign: | The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). | +| `unauthorized` | [T.nilable(::OpenApiSDK::Shared::Unauthorized)](../../models/shared/unauthorized.md) | :heavy_minus_sign: | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | +| `forbidden` | [T.nilable(::OpenApiSDK::Shared::Forbidden)](../../models/shared/forbidden.md) | :heavy_minus_sign: | The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. | +| `not_found` | [T.nilable(::OpenApiSDK::Shared::NotFound)](../../models/shared/notfound.md) | :heavy_minus_sign: | The server cannot find the requested resource. | +| `conflict` | [T.nilable(::OpenApiSDK::Shared::Conflict)](../../models/shared/conflict.md) | :heavy_minus_sign: | This response is sent when a request conflicts with the current state of the server. | +| `invite_expired` | [T.nilable(::OpenApiSDK::Shared::InviteExpired)](../../models/shared/inviteexpired.md) | :heavy_minus_sign: | This response is sent when the requested content has been permanently deleted from server, with no forwarding address. | +| `unprocessable_entity` | [T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)](../../models/shared/unprocessableentity.md) | :heavy_minus_sign: | The request was well-formed but was unable to be followed due to semantic errors. | +| `rate_limit_exceeded` | [T.nilable(::OpenApiSDK::Shared::RateLimitExceeded)](../../models/shared/ratelimitexceeded.md) | :heavy_minus_sign: | The user has sent too many requests in a given amount of time ("rate limiting") | +| `internal_server_error` | [T.nilable(::OpenApiSDK::Shared::InternalServerError)](../../models/shared/internalservererror.md) | :heavy_minus_sign: | The server has encountered a situation it does not know how to handle. | \ No newline at end of file diff --git a/docs/models/operations/deletefolderresponsebody.md b/docs/models/operations/deletefolderresponsebody.md new file mode 100644 index 0000000..ffaea7e --- /dev/null +++ b/docs/models/operations/deletefolderresponsebody.md @@ -0,0 +1,10 @@ +# DeleteFolderResponseBody + +The deleted folder ID. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `id` | *::String* | :heavy_check_mark: | The ID of the deleted folder. | \ No newline at end of file diff --git a/docs/models/operations/getlinkscountrequest.md b/docs/models/operations/getlinkscountrequest.md index 843e5ea..5a0d03d 100644 --- a/docs/models/operations/getlinkscountrequest.md +++ b/docs/models/operations/getlinkscountrequest.md @@ -9,6 +9,7 @@ | `tag_id` | *T.nilable(::String)* | :heavy_minus_sign: | Deprecated. Use `tagIds` instead. The tag ID to filter the links by. | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The tag IDs to filter the links by. | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The folder ID to filter the links by. | | `search` | *T.nilable(::String)* | :heavy_minus_sign: | The search term to filter the links by. The search term will be matched against the short link slug and the destination url. | | `user_id` | *T.nilable(::String)* | :heavy_minus_sign: | The user ID to filter the links by. | | `tenant_id` | *T.nilable(::String)* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, will only return links for the specified tenant. | diff --git a/docs/models/operations/getlinksrequest.md b/docs/models/operations/getlinksrequest.md index ee66ce5..272597b 100644 --- a/docs/models/operations/getlinksrequest.md +++ b/docs/models/operations/getlinksrequest.md @@ -9,6 +9,7 @@ | `tag_id` | *T.nilable(::String)* | :heavy_minus_sign: | Deprecated. Use `tagIds` instead. The tag ID to filter the links by. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The tag IDs to filter the links by. | | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The folder ID to filter the links by. | | | `search` | *T.nilable(::String)* | :heavy_minus_sign: | The search term to filter the links by. The search term will be matched against the short link slug and the destination url. | | | `user_id` | *T.nilable(::String)* | :heavy_minus_sign: | The user ID to filter the links by. | | | `tenant_id` | *T.nilable(::String)* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. If set, will only return links for the specified tenant. | | diff --git a/docs/models/operations/interval.md b/docs/models/operations/interval.md index c9ebecd..4dd0a27 100644 --- a/docs/models/operations/interval.md +++ b/docs/models/operations/interval.md @@ -11,7 +11,9 @@ The interval to retrieve analytics for. If undefined, defaults to 24h. | `SEVEND` | 7d | | `THIRTYD` | 30d | | `NINETYD` | 90d | -| `YTD` | ytd | | `ONEY` | 1y | +| `MTD` | mtd | +| `QTD` | qtd | +| `YTD` | ytd | | `ALL` | all | | `ALL_UNFILTERED` | all_unfiltered | \ No newline at end of file diff --git a/docs/models/operations/linkprops.md b/docs/models/operations/linkprops.md index 6bed729..74d6c33 100644 --- a/docs/models/operations/linkprops.md +++ b/docs/models/operations/linkprops.md @@ -14,6 +14,7 @@ Additional properties that you can pass to the partner's short link. Will be use | `archived` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The unique ID existing folder to assign the short link to. | | | `comments` | *T.nilable(::String)* | :heavy_minus_sign: | The comments for the short link. | | | `expires_at` | *T.nilable(::String)* | :heavy_minus_sign: | The date and time when the short link will expire at. | | | `expired_url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | diff --git a/docs/models/operations/listeventsrequest.md b/docs/models/operations/listeventsrequest.md index d291d6a..90dd723 100644 --- a/docs/models/operations/listeventsrequest.md +++ b/docs/models/operations/listeventsrequest.md @@ -30,6 +30,7 @@ | `url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to retrieve analytics for. | | | `tag_id` | *T.nilable(::String)* | :heavy_minus_sign: | Deprecated. Use `tagIds` instead. The tag ID to retrieve analytics for. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The tag IDs to retrieve analytics for. | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The folder ID to retrieve analytics for. If not provided, return analytics for unsorted links. | | | `qr` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Deprecated. Use the `trigger` field instead. Filter for QR code scans. If true, filter for QR codes only. If false, filter for links only. If undefined, return both. | | | `root` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both. | | | `utm_source` | *T.nilable(::String)* | :heavy_minus_sign: | The UTM source of the short link. | | diff --git a/docs/models/operations/listfoldersrequest.md b/docs/models/operations/listfoldersrequest.md new file mode 100644 index 0000000..2017063 --- /dev/null +++ b/docs/models/operations/listfoldersrequest.md @@ -0,0 +1,8 @@ +# ListFoldersRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | +| `search` | *T.nilable(::String)* | :heavy_minus_sign: | The search term to filter the folders by. | \ No newline at end of file diff --git a/docs/models/operations/listfoldersresponse.md b/docs/models/operations/listfoldersresponse.md new file mode 100644 index 0000000..87b4264 --- /dev/null +++ b/docs/models/operations/listfoldersresponse.md @@ -0,0 +1,20 @@ +# ListFoldersResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `folder_schemas` | T::Array<[::OpenApiSDK::Shared::FolderSchema](../../models/shared/folderschema.md)> | :heavy_minus_sign: | A list of folders | +| `bad_request` | [T.nilable(::OpenApiSDK::Shared::BadRequest)](../../models/shared/badrequest.md) | :heavy_minus_sign: | The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). | +| `unauthorized` | [T.nilable(::OpenApiSDK::Shared::Unauthorized)](../../models/shared/unauthorized.md) | :heavy_minus_sign: | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | +| `forbidden` | [T.nilable(::OpenApiSDK::Shared::Forbidden)](../../models/shared/forbidden.md) | :heavy_minus_sign: | The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. | +| `not_found` | [T.nilable(::OpenApiSDK::Shared::NotFound)](../../models/shared/notfound.md) | :heavy_minus_sign: | The server cannot find the requested resource. | +| `conflict` | [T.nilable(::OpenApiSDK::Shared::Conflict)](../../models/shared/conflict.md) | :heavy_minus_sign: | This response is sent when a request conflicts with the current state of the server. | +| `invite_expired` | [T.nilable(::OpenApiSDK::Shared::InviteExpired)](../../models/shared/inviteexpired.md) | :heavy_minus_sign: | This response is sent when the requested content has been permanently deleted from server, with no forwarding address. | +| `unprocessable_entity` | [T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)](../../models/shared/unprocessableentity.md) | :heavy_minus_sign: | The request was well-formed but was unable to be followed due to semantic errors. | +| `rate_limit_exceeded` | [T.nilable(::OpenApiSDK::Shared::RateLimitExceeded)](../../models/shared/ratelimitexceeded.md) | :heavy_minus_sign: | The user has sent too many requests in a given amount of time ("rate limiting") | +| `internal_server_error` | [T.nilable(::OpenApiSDK::Shared::InternalServerError)](../../models/shared/internalservererror.md) | :heavy_minus_sign: | The server has encountered a situation it does not know how to handle. | \ No newline at end of file diff --git a/docs/models/operations/queryparamgroupby.md b/docs/models/operations/queryparamgroupby.md new file mode 100644 index 0000000..63a36e2 --- /dev/null +++ b/docs/models/operations/queryparamgroupby.md @@ -0,0 +1,12 @@ +# QueryParamGroupBy + +The parameter to group the analytics data points by. Defaults to `count` if undefined. + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `TOP_LINKS` | top_links | +| `TIMESERIES` | timeseries | +| `COUNT` | count | \ No newline at end of file diff --git a/docs/models/operations/queryparaminterval.md b/docs/models/operations/queryparaminterval.md index 0b66ed7..6096c37 100644 --- a/docs/models/operations/queryparaminterval.md +++ b/docs/models/operations/queryparaminterval.md @@ -11,6 +11,8 @@ The interval to retrieve events for. Takes precedence over start and end. If und | `SEVEND` | 7d | | `THIRTYD` | 30d | | `NINETYD` | 90d | -| `YTD` | ytd | | `ONEY` | 1y | +| `MTD` | mtd | +| `QTD` | qtd | +| `YTD` | ytd | | `ALL` | all | \ No newline at end of file diff --git a/docs/models/operations/requestbody.md b/docs/models/operations/requestbody.md index 2ca04d8..d5f579c 100644 --- a/docs/models/operations/requestbody.md +++ b/docs/models/operations/requestbody.md @@ -19,6 +19,7 @@ | ~~`tag_id`~~ | *T.nilable(::String)* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The unique ID existing folder to assign the short link to. | | | `comments` | *T.nilable(::String)* | :heavy_minus_sign: | The comments for the short link. | | | `expires_at` | *T.nilable(::String)* | :heavy_minus_sign: | The date and time when the short link will expire at. | | | `expired_url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | diff --git a/docs/models/operations/retrieveanalyticsrequest.md b/docs/models/operations/retrieveanalyticsrequest.md index 75f815c..7a77315 100644 --- a/docs/models/operations/retrieveanalyticsrequest.md +++ b/docs/models/operations/retrieveanalyticsrequest.md @@ -31,6 +31,7 @@ | `url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to retrieve analytics for. | | | `tag_id` | *T.nilable(::String)* | :heavy_minus_sign: | Deprecated. Use `tagIds` instead. The tag ID to retrieve analytics for. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The tag IDs to retrieve analytics for. | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The folder ID to retrieve analytics for. If not provided, return analytics for unsorted links. | | | `qr` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Deprecated. Use the `trigger` field instead. Filter for QR code scans. If true, filter for QR codes only. If false, filter for links only. If undefined, return both. | | | `root` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both. | | | `utm_source` | *T.nilable(::String)* | :heavy_minus_sign: | The UTM source of the short link. | | diff --git a/docs/models/operations/retrievepartneranalyticsqueryparaminterval.md b/docs/models/operations/retrievepartneranalyticsqueryparaminterval.md new file mode 100644 index 0000000..58292fb --- /dev/null +++ b/docs/models/operations/retrievepartneranalyticsqueryparaminterval.md @@ -0,0 +1,19 @@ +# RetrievePartnerAnalyticsQueryParamInterval + +The interval to retrieve analytics for. If undefined, defaults to 24h. + + +## Values + +| Name | Value | +| ---------------- | ---------------- | +| `TWENTY_FOURH` | 24h | +| `SEVEND` | 7d | +| `THIRTYD` | 30d | +| `NINETYD` | 90d | +| `ONEY` | 1y | +| `MTD` | mtd | +| `QTD` | qtd | +| `YTD` | ytd | +| `ALL` | all | +| `ALL_UNFILTERED` | all_unfiltered | \ No newline at end of file diff --git a/docs/models/operations/retrievepartneranalyticsrequest.md b/docs/models/operations/retrievepartneranalyticsrequest.md new file mode 100644 index 0000000..0b82f3b --- /dev/null +++ b/docs/models/operations/retrievepartneranalyticsrequest.md @@ -0,0 +1,15 @@ +# RetrievePartnerAnalyticsRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `partner_id` | *T.nilable(::String)* | :heavy_minus_sign: | The ID of the partner to retrieve analytics for. | | +| `tenant_id` | *T.nilable(::String)* | :heavy_minus_sign: | The ID of the tenant that created the link inside your system. | | +| `interval` | [T.nilable(::OpenApiSDK::Operations::RetrievePartnerAnalyticsQueryParamInterval)](../../models/operations/retrievepartneranalyticsqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. If undefined, defaults to 24h. | | +| `start` | *T.nilable(::String)* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. Takes precedence over `interval`. | | +| `end_` | *T.nilable(::String)* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. Takes precedence over `interval`. | | +| `timezone` | *T.nilable(::String)* | :heavy_minus_sign: | The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC. | America/New_York | +| `group_by` | [T.nilable(::OpenApiSDK::Operations::QueryParamGroupBy)](../../models/operations/queryparamgroupby.md) | :heavy_minus_sign: | The parameter to group the analytics data points by. Defaults to `count` if undefined. | | +| `program_id` | *::String* | :heavy_check_mark: | The ID of the program to retrieve analytics for. | | \ No newline at end of file diff --git a/docs/models/operations/retrievepartneranalyticsresponse.md b/docs/models/operations/retrievepartneranalyticsresponse.md new file mode 100644 index 0000000..d5bf39f --- /dev/null +++ b/docs/models/operations/retrievepartneranalyticsresponse.md @@ -0,0 +1,20 @@ +# RetrievePartnerAnalyticsResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `one_of` | *T.nilable(::Object)* | :heavy_minus_sign: | Partner analytics data | +| `bad_request` | [T.nilable(::OpenApiSDK::Shared::BadRequest)](../../models/shared/badrequest.md) | :heavy_minus_sign: | The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). | +| `unauthorized` | [T.nilable(::OpenApiSDK::Shared::Unauthorized)](../../models/shared/unauthorized.md) | :heavy_minus_sign: | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | +| `forbidden` | [T.nilable(::OpenApiSDK::Shared::Forbidden)](../../models/shared/forbidden.md) | :heavy_minus_sign: | The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. | +| `not_found` | [T.nilable(::OpenApiSDK::Shared::NotFound)](../../models/shared/notfound.md) | :heavy_minus_sign: | The server cannot find the requested resource. | +| `conflict` | [T.nilable(::OpenApiSDK::Shared::Conflict)](../../models/shared/conflict.md) | :heavy_minus_sign: | This response is sent when a request conflicts with the current state of the server. | +| `invite_expired` | [T.nilable(::OpenApiSDK::Shared::InviteExpired)](../../models/shared/inviteexpired.md) | :heavy_minus_sign: | This response is sent when the requested content has been permanently deleted from server, with no forwarding address. | +| `unprocessable_entity` | [T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)](../../models/shared/unprocessableentity.md) | :heavy_minus_sign: | The request was well-formed but was unable to be followed due to semantic errors. | +| `rate_limit_exceeded` | [T.nilable(::OpenApiSDK::Shared::RateLimitExceeded)](../../models/shared/ratelimitexceeded.md) | :heavy_minus_sign: | The user has sent too many requests in a given amount of time ("rate limiting") | +| `internal_server_error` | [T.nilable(::OpenApiSDK::Shared::InternalServerError)](../../models/shared/internalservererror.md) | :heavy_minus_sign: | The server has encountered a situation it does not know how to handle. | \ No newline at end of file diff --git a/docs/models/operations/updatefolderaccesslevel.md b/docs/models/operations/updatefolderaccesslevel.md new file mode 100644 index 0000000..f4daa0d --- /dev/null +++ b/docs/models/operations/updatefolderaccesslevel.md @@ -0,0 +1,11 @@ +# UpdateFolderAccessLevel + +The access level of the folder within the workspace. + + +## Values + +| Name | Value | +| ------- | ------- | +| `READ` | read | +| `WRITE` | write | \ No newline at end of file diff --git a/docs/models/operations/updatefolderrequest.md b/docs/models/operations/updatefolderrequest.md new file mode 100644 index 0000000..1ed6405 --- /dev/null +++ b/docs/models/operations/updatefolderrequest.md @@ -0,0 +1,9 @@ +# UpdateFolderRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `id` | *::String* | :heavy_check_mark: | The ID of the folder to update. | +| `request_body` | [T.nilable(::OpenApiSDK::Operations::UpdateFolderRequestBody)](../../models/operations/updatefolderrequestbody.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/updatefolderrequestbody.md b/docs/models/operations/updatefolderrequestbody.md new file mode 100644 index 0000000..6a10e59 --- /dev/null +++ b/docs/models/operations/updatefolderrequestbody.md @@ -0,0 +1,9 @@ +# UpdateFolderRequestBody + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `name` | *T.nilable(::String)* | :heavy_minus_sign: | The name of the folder. | +| `access_level` | [T.nilable(::OpenApiSDK::Operations::UpdateFolderAccessLevel)](../../models/operations/updatefolderaccesslevel.md) | :heavy_minus_sign: | The access level of the folder within the workspace. | \ No newline at end of file diff --git a/docs/models/operations/updatefolderresponse.md b/docs/models/operations/updatefolderresponse.md new file mode 100644 index 0000000..184b836 --- /dev/null +++ b/docs/models/operations/updatefolderresponse.md @@ -0,0 +1,20 @@ +# UpdateFolderResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `folder_schema` | [T.nilable(::OpenApiSDK::Shared::FolderSchema)](../../models/shared/folderschema.md) | :heavy_minus_sign: | The updated folder. | +| `bad_request` | [T.nilable(::OpenApiSDK::Shared::BadRequest)](../../models/shared/badrequest.md) | :heavy_minus_sign: | The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). | +| `unauthorized` | [T.nilable(::OpenApiSDK::Shared::Unauthorized)](../../models/shared/unauthorized.md) | :heavy_minus_sign: | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. | +| `forbidden` | [T.nilable(::OpenApiSDK::Shared::Forbidden)](../../models/shared/forbidden.md) | :heavy_minus_sign: | The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. | +| `not_found` | [T.nilable(::OpenApiSDK::Shared::NotFound)](../../models/shared/notfound.md) | :heavy_minus_sign: | The server cannot find the requested resource. | +| `conflict` | [T.nilable(::OpenApiSDK::Shared::Conflict)](../../models/shared/conflict.md) | :heavy_minus_sign: | This response is sent when a request conflicts with the current state of the server. | +| `invite_expired` | [T.nilable(::OpenApiSDK::Shared::InviteExpired)](../../models/shared/inviteexpired.md) | :heavy_minus_sign: | This response is sent when the requested content has been permanently deleted from server, with no forwarding address. | +| `unprocessable_entity` | [T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)](../../models/shared/unprocessableentity.md) | :heavy_minus_sign: | The request was well-formed but was unable to be followed due to semantic errors. | +| `rate_limit_exceeded` | [T.nilable(::OpenApiSDK::Shared::RateLimitExceeded)](../../models/shared/ratelimitexceeded.md) | :heavy_minus_sign: | The user has sent too many requests in a given amount of time ("rate limiting") | +| `internal_server_error` | [T.nilable(::OpenApiSDK::Shared::InternalServerError)](../../models/shared/internalservererror.md) | :heavy_minus_sign: | The server has encountered a situation it does not know how to handle. | \ No newline at end of file diff --git a/docs/models/operations/updatelinkrequestbody.md b/docs/models/operations/updatelinkrequestbody.md index 88f9676..543c770 100644 --- a/docs/models/operations/updatelinkrequestbody.md +++ b/docs/models/operations/updatelinkrequestbody.md @@ -19,6 +19,7 @@ | ~~`tag_id`~~ | *T.nilable(::String)* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The unique ID existing folder to assign the short link to. | | | `comments` | *T.nilable(::String)* | :heavy_minus_sign: | The comments for the short link. | | | `expires_at` | *T.nilable(::String)* | :heavy_minus_sign: | The date and time when the short link will expire at. | | | `expired_url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | diff --git a/docs/models/operations/upsertlinkrequestbody.md b/docs/models/operations/upsertlinkrequestbody.md index 8175247..957d36c 100644 --- a/docs/models/operations/upsertlinkrequestbody.md +++ b/docs/models/operations/upsertlinkrequestbody.md @@ -19,6 +19,7 @@ | ~~`tag_id`~~ | *T.nilable(::String)* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The unique ID existing folder to assign the short link to. | | | `comments` | *T.nilable(::String)* | :heavy_minus_sign: | The comments for the short link. | | | `expires_at` | *T.nilable(::String)* | :heavy_minus_sign: | The date and time when the short link will expire at. | | | `expired_url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | diff --git a/docs/models/operations/upsertpartnerlinklinkprops.md b/docs/models/operations/upsertpartnerlinklinkprops.md index 26e1e77..46cb771 100644 --- a/docs/models/operations/upsertpartnerlinklinkprops.md +++ b/docs/models/operations/upsertpartnerlinklinkprops.md @@ -14,6 +14,7 @@ Additional properties that you can pass to the partner's short link. Will be use | `archived` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Whether the short link is archived. Defaults to `false` if not provided. | | | `tag_ids` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] | | `tag_names` | *T.nilable(::Object)* | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | | +| `folder_id` | *T.nilable(::String)* | :heavy_minus_sign: | The unique ID existing folder to assign the short link to. | | | `comments` | *T.nilable(::String)* | :heavy_minus_sign: | The comments for the short link. | | | `expires_at` | *T.nilable(::String)* | :heavy_minus_sign: | The date and time when the short link will expire at. | | | `expired_url` | *T.nilable(::String)* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | | diff --git a/docs/models/operations/upsertpartnerlinkrequestbody.md b/docs/models/operations/upsertpartnerlinkrequestbody.md index 7eb938f..e8e9e5f 100644 --- a/docs/models/operations/upsertpartnerlinkrequestbody.md +++ b/docs/models/operations/upsertpartnerlinkrequestbody.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| `program_id` | *::String* | :heavy_check_mark: | The ID of the program that the partner is enrolled in. | -| `partner_id` | *T.nilable(::String)* | :heavy_minus_sign: | The ID of the partner to create a link for. Will take precedence over `tenantId` if provided. | -| `tenant_id` | *T.nilable(::String)* | :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` | *::String* | :heavy_check_mark: | The URL to shorten. Will throw an error if the domain doesn't match the program's default URL domain. | -| `key` | *T.nilable(::String)* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | -| `link_props` | [T.nilable(::OpenApiSDK::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 +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `program_id` | *::String* | :heavy_check_mark: | The ID of the program that the partner is enrolled in. | +| `partner_id` | *T.nilable(::String)* | :heavy_minus_sign: | The ID of the partner to create a link for. Will take precedence over `tenantId` if provided. | +| `tenant_id` | *T.nilable(::String)* | :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` | *T.nilable(::String)* | :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` | *T.nilable(::String)* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | +| `link_props` | [T.nilable(::OpenApiSDK::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/models/shared/accesslevel.md b/docs/models/shared/accesslevel.md new file mode 100644 index 0000000..4bff1ab --- /dev/null +++ b/docs/models/shared/accesslevel.md @@ -0,0 +1,11 @@ +# AccessLevel + +The access level of the folder within the workspace. + + +## Values + +| Name | Value | +| ------- | ------- | +| `READ` | read | +| `WRITE` | write | \ No newline at end of file diff --git a/docs/models/shared/folderschema.md b/docs/models/shared/folderschema.md new file mode 100644 index 0000000..b5239c5 --- /dev/null +++ b/docs/models/shared/folderschema.md @@ -0,0 +1,13 @@ +# FolderSchema + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `id` | *::String* | :heavy_check_mark: | The unique ID of the folder. | +| `name` | *::String* | :heavy_check_mark: | The name of the folder. | +| `access_level` | [::OpenApiSDK::Shared::AccessLevel](../../models/shared/accesslevel.md) | :heavy_check_mark: | The access level of the folder within the workspace. | +| `link_count` | *::Float* | :heavy_check_mark: | The number of links in the folder. | +| `created_at` | *::String* | :heavy_check_mark: | The date the folder was created. | +| `updated_at` | *::String* | :heavy_check_mark: | The date the folder was updated. | \ No newline at end of file diff --git a/docs/models/shared/link.md b/docs/models/shared/link.md index cf2ce20..801d85e 100644 --- a/docs/models/shared/link.md +++ b/docs/models/shared/link.md @@ -31,6 +31,7 @@ | `public_stats` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | | ~~`tag_id`~~ | *::String* | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The unique ID of the tag assigned to the short link. This field is deprecated – use `tags` instead. | | `tags` | T::Array<[::OpenApiSDK::Shared::TagSchema](../../models/shared/tagschema.md)> | :heavy_check_mark: | The tags assigned to the short link. | +| `folder_id` | *::String* | :heavy_check_mark: | The unique ID of the folder assigned to the short link. | | `webhook_ids` | T::Array<*::String*> | :heavy_check_mark: | The IDs of the webhooks that the short link is associated with. | | `comments` | *::String* | :heavy_check_mark: | The comments for the short link. | | `short_link` | *::String* | :heavy_check_mark: | The full URL of the short link, including the https protocol (e.g. `https://dub.sh/try`). | diff --git a/docs/models/shared/linkschema.md b/docs/models/shared/linkschema.md index 6adf046..8289d58 100644 --- a/docs/models/shared/linkschema.md +++ b/docs/models/shared/linkschema.md @@ -31,6 +31,7 @@ | `public_stats` | *T::Boolean* | :heavy_check_mark: | Whether the short link's stats are publicly accessible. | | ~~`tag_id`~~ | *::String* | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

The unique ID of the tag assigned to the short link. This field is deprecated – use `tags` instead. | | `tags` | T::Array<[::OpenApiSDK::Shared::TagSchema](../../models/shared/tagschema.md)> | :heavy_check_mark: | The tags assigned to the short link. | +| `folder_id` | *::String* | :heavy_check_mark: | The unique ID of the folder assigned to the short link. | | `webhook_ids` | T::Array<*::String*> | :heavy_check_mark: | The IDs of the webhooks that the short link is associated with. | | `comments` | *::String* | :heavy_check_mark: | The comments for the short link. | | `short_link` | *::String* | :heavy_check_mark: | The full URL of the short link, including the https protocol (e.g. `https://dub.sh/try`). | diff --git a/docs/models/shared/workspaceschema.md b/docs/models/shared/workspaceschema.md index c7c4da2..a395636 100644 --- a/docs/models/shared/workspaceschema.md +++ b/docs/models/shared/workspaceschema.md @@ -23,6 +23,7 @@ | `sales_limit` | *::Float* | :heavy_check_mark: | The limit of tracked revenue in the current billing cycle (in cents). | | | `domains_limit` | *::Float* | :heavy_check_mark: | The domains limit of the workspace. | | | `tags_limit` | *::Float* | :heavy_check_mark: | The tags limit of the workspace. | | +| `folders_limit` | *::Float* | :heavy_check_mark: | The folders limit of the workspace. | | | `users_limit` | *::Float* | :heavy_check_mark: | The users limit of the workspace. | | | `ai_usage` | *::Float* | :heavy_check_mark: | The AI usage of the workspace. | | | `ai_limit` | *::Float* | :heavy_check_mark: | The AI limit of the workspace. | | diff --git a/docs/sdks/folders/README.md b/docs/sdks/folders/README.md new file mode 100644 index 0000000..c4d06f1 --- /dev/null +++ b/docs/sdks/folders/README.md @@ -0,0 +1,169 @@ +# Folders +(*folders*) + +## Overview + +### Available Operations + +* [create](#create) - Create a new folder +* [list](#list) - Retrieve a list of folders +* [update](#update) - Update a folder +* [delete](#delete) - Delete a folder + +## create + +Create a new folder for the authenticated workspace. + +### Example Usage + +```ruby +require 'dub' + + +s = ::OpenApiSDK::Dub.new +s.config_security( + ::OpenApiSDK::Shared::Security.new( + token: "DUB_API_KEY", + ) +) + + +req = ::OpenApiSDK::Operations::CreateFolderRequestBody.new( + name: "", +) + +res = s.folders.create(req) + +if ! res.folder_schema.nil? + # handle response +end + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| `request` | [::OpenApiSDK::Operations::CreateFolderRequestBody](../../models/operations/createfolderrequestbody.md) | :heavy_check_mark: | The request object to use for the request. | + +### Response + +**[T.nilable(::OpenApiSDK::Operations::CreateFolderResponse)](../../models/operations/createfolderresponse.md)** + + + +## list + +Retrieve a list of folders for the authenticated workspace. + +### Example Usage + +```ruby +require 'dub' + + +s = ::OpenApiSDK::Dub.new +s.config_security( + ::OpenApiSDK::Shared::Security.new( + token: "DUB_API_KEY", + ) +) + + +req = ::OpenApiSDK::Operations::ListFoldersRequest.new() + +res = s.folders.list(req) + +if ! res.folder_schemas.nil? + # handle response +end + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `request` | [::OpenApiSDK::Operations::ListFoldersRequest](../../models/operations/listfoldersrequest.md) | :heavy_check_mark: | The request object to use for the request. | + +### Response + +**[T.nilable(::OpenApiSDK::Operations::ListFoldersResponse)](../../models/operations/listfoldersresponse.md)** + + + +## update + +Update a folder in the workspace. + +### Example Usage + +```ruby +require 'dub' + + +s = ::OpenApiSDK::Dub.new +s.config_security( + ::OpenApiSDK::Shared::Security.new( + token: "DUB_API_KEY", + ) +) + + +res = s.folders.update(id="", request_body=::OpenApiSDK::Operations::UpdateFolderRequestBody.new()) + +if ! res.folder_schema.nil? + # handle response +end + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `id` | *::String* | :heavy_check_mark: | The ID of the folder to update. | +| `request_body` | [T.nilable(::OpenApiSDK::Operations::UpdateFolderRequestBody)](../../models/operations/updatefolderrequestbody.md) | :heavy_minus_sign: | N/A | + +### Response + +**[T.nilable(::OpenApiSDK::Operations::UpdateFolderResponse)](../../models/operations/updatefolderresponse.md)** + + + +## delete + +Delete a folder from the workspace. All existing links will still work, but they will no longer be associated with this folder. + +### Example Usage + +```ruby +require 'dub' + + +s = ::OpenApiSDK::Dub.new +s.config_security( + ::OpenApiSDK::Shared::Security.new( + token: "DUB_API_KEY", + ) +) + + +res = s.folders.delete(id="") + +if ! res.object.nil? + # handle response +end + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `id` | *::String* | :heavy_check_mark: | The ID of the folder to delete. | + +### Response + +**[T.nilable(::OpenApiSDK::Operations::DeleteFolderResponse)](../../models/operations/deletefolderresponse.md)** + diff --git a/docs/sdks/partners/README.md b/docs/sdks/partners/README.md index 4504d21..d68fa04 100644 --- a/docs/sdks/partners/README.md +++ b/docs/sdks/partners/README.md @@ -8,6 +8,7 @@ * [create](#create) - Create a new partner * [create_link](#create_link) - Create a link for a partner * [upsert_link](#upsert_link) - Upsert a link for a partner +* [analytics](#analytics) - Retrieve analytics for a partner ## create @@ -80,7 +81,6 @@ s.config_security( req = ::OpenApiSDK::Operations::CreatePartnerLinkRequestBody.new( program_id: "", - url: "https://necessary-brief.name", link_props: ::OpenApiSDK::Operations::CreatePartnerLinkLinkProps.new( external_id: "123456", tag_ids: [ @@ -129,7 +129,6 @@ s.config_security( req = ::OpenApiSDK::Operations::UpsertPartnerLinkRequestBody.new( program_id: "", - url: "https://unsteady-lobster.com/", link_props: ::OpenApiSDK::Operations::UpsertPartnerLinkLinkProps.new( external_id: "123456", tag_ids: [ @@ -156,3 +155,46 @@ end **[T.nilable(::OpenApiSDK::Operations::UpsertPartnerLinkResponse)](../../models/operations/upsertpartnerlinkresponse.md)** + + +## analytics + +Retrieve analytics for a partner within a program. The response type vary based on the `groupBy` query parameter. + +### Example Usage + +```ruby +require 'dub' + + +s = ::OpenApiSDK::Dub.new +s.config_security( + ::OpenApiSDK::Shared::Security.new( + token: "DUB_API_KEY", + ) +) + + +req = ::OpenApiSDK::Operations::RetrievePartnerAnalyticsRequest.new( + timezone: "America/New_York", + program_id: "", +) + +res = s.partners.analytics(req) + +if ! res.one_of.nil? + # handle response +end + +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `request` | [::OpenApiSDK::Operations::RetrievePartnerAnalyticsRequest](../../models/operations/retrievepartneranalyticsrequest.md) | :heavy_check_mark: | The request object to use for the request. | + +### Response + +**[T.nilable(::OpenApiSDK::Operations::RetrievePartnerAnalyticsResponse)](../../models/operations/retrievepartneranalyticsresponse.md)** + diff --git a/dub.gemspec b/dub.gemspec index 249b9d0..409dd85 100644 --- a/dub.gemspec +++ b/dub.gemspec @@ -4,7 +4,7 @@ $LOAD_PATH.push File.expand_path('lib', __dir__) Gem::Specification.new do |s| s.name = 'dub' - s.version = '0.2.2-alpha.62' + s.version = '0.2.2-alpha.63' s.platform = Gem::Platform::RUBY s.licenses = ['Apache-2.0'] s.summary = '' diff --git a/lib/dub.rb b/lib/dub.rb index dad85ef..1e4838a 100644 --- a/lib/dub.rb +++ b/lib/dub.rb @@ -11,6 +11,7 @@ module OpenApiSDK autoload :Analytics, 'open_api_sdk/analytics' autoload :Events, 'open_api_sdk/events' autoload :Tags, 'open_api_sdk/tags' + autoload :Folders, 'open_api_sdk/folders' autoload :Domains, 'open_api_sdk/domains' autoload :Track, 'open_api_sdk/track' autoload :Customers, 'open_api_sdk/customers' diff --git a/lib/open_api_sdk/dub.rb b/lib/open_api_sdk/dub.rb index 2f4c8a7..4bebe6c 100644 --- a/lib/open_api_sdk/dub.rb +++ b/lib/open_api_sdk/dub.rb @@ -13,7 +13,7 @@ module OpenApiSDK class Dub extend T::Sig - attr_accessor :links, :analytics, :events, :tags, :domains, :track, :customers, :partners, :workspaces, :embed_tokens, :qr_codes, :metatags + attr_accessor :links, :analytics, :events, :tags, :folders, :domains, :track, :customers, :partners, :workspaces, :embed_tokens, :qr_codes, :metatags sig do params(client: Faraday::Request, @@ -79,6 +79,7 @@ def init_sdks @analytics = Analytics.new(@sdk_configuration) @events = Events.new(@sdk_configuration) @tags = Tags.new(@sdk_configuration) + @folders = Folders.new(@sdk_configuration) @domains = Domains.new(@sdk_configuration) @track = Track.new(@sdk_configuration) @customers = Customers.new(@sdk_configuration) diff --git a/lib/open_api_sdk/folders.rb b/lib/open_api_sdk/folders.rb new file mode 100644 index 0000000..9321a47 --- /dev/null +++ b/lib/open_api_sdk/folders.rb @@ -0,0 +1,359 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + +require 'faraday' +require 'faraday/multipart' +require 'sorbet-runtime' + +module OpenApiSDK + extend T::Sig + class Folders + extend T::Sig + + + sig { params(sdk_config: SDKConfiguration).void } + def initialize(sdk_config) + @sdk_configuration = sdk_config + end + + + sig { params(request: T.nilable(::OpenApiSDK::Operations::CreateFolderRequestBody)).returns(::OpenApiSDK::Operations::CreateFolderResponse) } + def create(request) + # create - Create a new folder + # Create a new folder for the authenticated workspace. + url, params = @sdk_configuration.get_server_details + base_url = Utils.template_url(url, params) + url = "#{base_url}/folders" + headers = {} + req_content_type, data, form = Utils.serialize_request_body(request, :request, :json) + headers['content-type'] = req_content_type + headers['Accept'] = 'application/json' + headers['user-agent'] = @sdk_configuration.user_agent + + r = @sdk_configuration.client.post(url) do |req| + req.headers = headers + Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil? + if form + req.body = Utils.encode_form(form) + elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded') + req.body = URI.encode_www_form(data) + else + req.body = data + end + end + + content_type = r.headers.fetch('Content-Type', 'application/octet-stream') + + res = ::OpenApiSDK::Operations::CreateFolderResponse.new( + status_code: r.status, content_type: content_type, raw_response: r + ) + if r.status == 201 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::FolderSchema) + res.folder_schema = out + end + elsif r.status == 400 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::BadRequest) + res.bad_request = out + end + elsif r.status == 401 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Unauthorized) + res.unauthorized = out + end + elsif r.status == 403 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Forbidden) + res.forbidden = out + end + elsif r.status == 404 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::NotFound) + res.not_found = out + end + elsif r.status == 409 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Conflict) + res.conflict = out + end + elsif r.status == 410 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InviteExpired) + res.invite_expired = out + end + elsif r.status == 422 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::UnprocessableEntity) + res.unprocessable_entity = out + end + elsif r.status == 429 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::RateLimitExceeded) + res.rate_limit_exceeded = out + end + elsif r.status == 500 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InternalServerError) + res.internal_server_error = out + end + end + + res + end + + + sig { params(request: T.nilable(::OpenApiSDK::Operations::ListFoldersRequest)).returns(::OpenApiSDK::Operations::ListFoldersResponse) } + def list(request) + # list - Retrieve a list of folders + # Retrieve a list of folders for the authenticated workspace. + url, params = @sdk_configuration.get_server_details + base_url = Utils.template_url(url, params) + url = "#{base_url}/folders" + headers = {} + query_params = Utils.get_query_params(::OpenApiSDK::Operations::ListFoldersRequest, request) + headers['Accept'] = 'application/json' + headers['user-agent'] = @sdk_configuration.user_agent + + r = @sdk_configuration.client.get(url) do |req| + req.headers = headers + req.params = query_params + Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil? + end + + content_type = r.headers.fetch('Content-Type', 'application/octet-stream') + + res = ::OpenApiSDK::Operations::ListFoldersResponse.new( + status_code: r.status, content_type: content_type, raw_response: r + ) + if r.status == 200 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, T::Array[::OpenApiSDK::Shared::FolderSchema]) + res.folder_schemas = out + end + elsif r.status == 400 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::BadRequest) + res.bad_request = out + end + elsif r.status == 401 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Unauthorized) + res.unauthorized = out + end + elsif r.status == 403 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Forbidden) + res.forbidden = out + end + elsif r.status == 404 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::NotFound) + res.not_found = out + end + elsif r.status == 409 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Conflict) + res.conflict = out + end + elsif r.status == 410 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InviteExpired) + res.invite_expired = out + end + elsif r.status == 422 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::UnprocessableEntity) + res.unprocessable_entity = out + end + elsif r.status == 429 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::RateLimitExceeded) + res.rate_limit_exceeded = out + end + elsif r.status == 500 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InternalServerError) + res.internal_server_error = out + end + end + + res + end + + + sig { params(request: T.nilable(::OpenApiSDK::Operations::UpdateFolderRequest)).returns(::OpenApiSDK::Operations::UpdateFolderResponse) } + def update(request) + # update - Update a folder + # Update a folder in the workspace. + url, params = @sdk_configuration.get_server_details + base_url = Utils.template_url(url, params) + url = Utils.generate_url( + ::OpenApiSDK::Operations::UpdateFolderRequest, + base_url, + '/folders/{id}', + request + ) + headers = {} + req_content_type, data, form = Utils.serialize_request_body(request, :request_body, :json) + headers['content-type'] = req_content_type + headers['Accept'] = 'application/json' + headers['user-agent'] = @sdk_configuration.user_agent + + r = @sdk_configuration.client.patch(url) do |req| + req.headers = headers + Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil? + if form + req.body = Utils.encode_form(form) + elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded') + req.body = URI.encode_www_form(data) + else + req.body = data + end + end + + content_type = r.headers.fetch('Content-Type', 'application/octet-stream') + + res = ::OpenApiSDK::Operations::UpdateFolderResponse.new( + status_code: r.status, content_type: content_type, raw_response: r + ) + if r.status == 200 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::FolderSchema) + res.folder_schema = out + end + elsif r.status == 400 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::BadRequest) + res.bad_request = out + end + elsif r.status == 401 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Unauthorized) + res.unauthorized = out + end + elsif r.status == 403 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Forbidden) + res.forbidden = out + end + elsif r.status == 404 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::NotFound) + res.not_found = out + end + elsif r.status == 409 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Conflict) + res.conflict = out + end + elsif r.status == 410 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InviteExpired) + res.invite_expired = out + end + elsif r.status == 422 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::UnprocessableEntity) + res.unprocessable_entity = out + end + elsif r.status == 429 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::RateLimitExceeded) + res.rate_limit_exceeded = out + end + elsif r.status == 500 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InternalServerError) + res.internal_server_error = out + end + end + + res + end + + + sig { params(request: T.nilable(::OpenApiSDK::Operations::DeleteFolderRequest)).returns(::OpenApiSDK::Operations::DeleteFolderResponse) } + def delete(request) + # delete - Delete a folder + # Delete a folder from the workspace. All existing links will still work, but they will no longer be associated with this folder. + url, params = @sdk_configuration.get_server_details + base_url = Utils.template_url(url, params) + url = Utils.generate_url( + ::OpenApiSDK::Operations::DeleteFolderRequest, + base_url, + '/folders/{id}', + request + ) + headers = {} + headers['Accept'] = 'application/json' + headers['user-agent'] = @sdk_configuration.user_agent + + r = @sdk_configuration.client.delete(url) do |req| + req.headers = headers + Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil? + end + + content_type = r.headers.fetch('Content-Type', 'application/octet-stream') + + res = ::OpenApiSDK::Operations::DeleteFolderResponse.new( + status_code: r.status, content_type: content_type, raw_response: r + ) + if r.status == 200 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Operations::DeleteFolderResponseBody) + res.object = out + end + elsif r.status == 400 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::BadRequest) + res.bad_request = out + end + elsif r.status == 401 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Unauthorized) + res.unauthorized = out + end + elsif r.status == 403 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Forbidden) + res.forbidden = out + end + elsif r.status == 404 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::NotFound) + res.not_found = out + end + elsif r.status == 409 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Conflict) + res.conflict = out + end + elsif r.status == 410 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InviteExpired) + res.invite_expired = out + end + elsif r.status == 422 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::UnprocessableEntity) + res.unprocessable_entity = out + end + elsif r.status == 429 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::RateLimitExceeded) + res.rate_limit_exceeded = out + end + elsif r.status == 500 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InternalServerError) + res.internal_server_error = out + end + end + + res + end + end +end diff --git a/lib/open_api_sdk/models/operations.rb b/lib/open_api_sdk/models/operations.rb index cae40c9..c02dbba 100644 --- a/lib/open_api_sdk/models/operations.rb +++ b/lib/open_api_sdk/models/operations.rb @@ -60,6 +60,18 @@ module Operations autoload :DeleteTagRequest, 'open_api_sdk/models/operations/deletetag_request.rb' autoload :DeleteTagResponseBody, 'open_api_sdk/models/operations/deletetag_responsebody.rb' autoload :DeleteTagResponse, 'open_api_sdk/models/operations/deletetag_response.rb' + autoload :AccessLevel, 'open_api_sdk/models/operations/accesslevel.rb' + autoload :CreateFolderRequestBody, 'open_api_sdk/models/operations/createfolder_requestbody.rb' + autoload :CreateFolderResponse, 'open_api_sdk/models/operations/createfolder_response.rb' + autoload :ListFoldersRequest, 'open_api_sdk/models/operations/listfolders_request.rb' + autoload :ListFoldersResponse, 'open_api_sdk/models/operations/listfolders_response.rb' + autoload :UpdateFolderAccessLevel, 'open_api_sdk/models/operations/updatefolder_accesslevel.rb' + autoload :UpdateFolderRequestBody, 'open_api_sdk/models/operations/updatefolder_requestbody.rb' + autoload :UpdateFolderRequest, 'open_api_sdk/models/operations/updatefolder_request.rb' + autoload :UpdateFolderResponse, 'open_api_sdk/models/operations/updatefolder_response.rb' + autoload :DeleteFolderRequest, 'open_api_sdk/models/operations/deletefolder_request.rb' + autoload :DeleteFolderResponseBody, 'open_api_sdk/models/operations/deletefolder_responsebody.rb' + autoload :DeleteFolderResponse, 'open_api_sdk/models/operations/deletefolder_response.rb' autoload :CreateDomainRequestBody, 'open_api_sdk/models/operations/createdomain_requestbody.rb' autoload :CreateDomainResponse, 'open_api_sdk/models/operations/createdomain_response.rb' autoload :ListDomainsRequest, 'open_api_sdk/models/operations/listdomains_request.rb' @@ -122,9 +134,6 @@ module Operations autoload :CreatePartnerRequestBody, 'open_api_sdk/models/operations/createpartner_requestbody.rb' autoload :Status, 'open_api_sdk/models/operations/status.rb' autoload :Links, 'open_api_sdk/models/operations/links.rb' - autoload :CreatePartnerType, 'open_api_sdk/models/operations/createpartner_type.rb' - autoload :CreatePartnerInterval, 'open_api_sdk/models/operations/createpartner_interval.rb' - autoload :CreatePartnerDiscount, 'open_api_sdk/models/operations/createpartner_discount.rb' autoload :CreatePartnerResponseBody, 'open_api_sdk/models/operations/createpartner_responsebody.rb' autoload :CreatePartnerResponse, 'open_api_sdk/models/operations/createpartner_response.rb' autoload :CreatePartnerLinkLinkProps, 'open_api_sdk/models/operations/createpartnerlink_linkprops.rb' @@ -133,6 +142,10 @@ module Operations autoload :UpsertPartnerLinkLinkProps, 'open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb' autoload :UpsertPartnerLinkRequestBody, 'open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb' autoload :UpsertPartnerLinkResponse, 'open_api_sdk/models/operations/upsertpartnerlink_response.rb' + autoload :RetrievePartnerAnalyticsQueryParamInterval, 'open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb' + autoload :QueryParamGroupBy, 'open_api_sdk/models/operations/queryparam_groupby.rb' + autoload :RetrievePartnerAnalyticsRequest, 'open_api_sdk/models/operations/retrievepartneranalytics_request.rb' + autoload :RetrievePartnerAnalyticsResponse, 'open_api_sdk/models/operations/retrievepartneranalytics_response.rb' autoload :GetWorkspaceRequest, 'open_api_sdk/models/operations/getworkspace_request.rb' autoload :GetWorkspaceResponse, 'open_api_sdk/models/operations/getworkspace_response.rb' autoload :UpdateWorkspaceRequestBody, 'open_api_sdk/models/operations/updateworkspace_requestbody.rb' diff --git a/lib/open_api_sdk/models/operations/createpartner_interval.rb b/lib/open_api_sdk/models/operations/accesslevel.rb similarity index 55% rename from lib/open_api_sdk/models/operations/createpartner_interval.rb rename to lib/open_api_sdk/models/operations/accesslevel.rb index 4a64aef..6d01b6f 100644 --- a/lib/open_api_sdk/models/operations/createpartner_interval.rb +++ b/lib/open_api_sdk/models/operations/accesslevel.rb @@ -7,11 +7,11 @@ module OpenApiSDK module Operations - - class CreatePartnerInterval < T::Enum + # AccessLevel - The access level of the folder within the workspace. + class AccessLevel < T::Enum enums do - MONTH = new('month') - YEAR = new('year') + READ = new('read') + WRITE = new('write') end end end diff --git a/lib/open_api_sdk/models/operations/createfolder_requestbody.rb b/lib/open_api_sdk/models/operations/createfolder_requestbody.rb new file mode 100644 index 0000000..d8aaec1 --- /dev/null +++ b/lib/open_api_sdk/models/operations/createfolder_requestbody.rb @@ -0,0 +1,27 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class CreateFolderRequestBody < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # The name of the folder. + field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } } + # The access level of the folder within the workspace. + field :access_level, T.nilable(::OpenApiSDK::Operations::AccessLevel), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('accessLevel'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::AccessLevel, true) } } + + + sig { params(name: ::String, access_level: T.nilable(::OpenApiSDK::Operations::AccessLevel)).void } + def initialize(name: nil, access_level: nil) + @name = name + @access_level = access_level + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/createfolder_response.rb b/lib/open_api_sdk/models/operations/createfolder_response.rb new file mode 100644 index 0000000..254cb9f --- /dev/null +++ b/lib/open_api_sdk/models/operations/createfolder_response.rb @@ -0,0 +1,60 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class CreateFolderResponse < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # HTTP response content type for this operation + field :content_type, ::String + # Raw HTTP response; suitable for custom response parsing + field :raw_response, ::Faraday::Response + # HTTP response status code for this operation + field :status_code, ::Integer + # The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + field :bad_request, T.nilable(::OpenApiSDK::Shared::BadRequest) + # This response is sent when a request conflicts with the current state of the server. + field :conflict, T.nilable(::OpenApiSDK::Shared::Conflict) + # The created folder + field :folder_schema, T.nilable(::OpenApiSDK::Shared::FolderSchema) + # The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. + field :forbidden, T.nilable(::OpenApiSDK::Shared::Forbidden) + # The server has encountered a situation it does not know how to handle. + field :internal_server_error, T.nilable(::OpenApiSDK::Shared::InternalServerError) + # This response is sent when the requested content has been permanently deleted from server, with no forwarding address. + field :invite_expired, T.nilable(::OpenApiSDK::Shared::InviteExpired) + # The server cannot find the requested resource. + field :not_found, T.nilable(::OpenApiSDK::Shared::NotFound) + # The user has sent too many requests in a given amount of time ("rate limiting") + field :rate_limit_exceeded, T.nilable(::OpenApiSDK::Shared::RateLimitExceeded) + # Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + field :unauthorized, T.nilable(::OpenApiSDK::Shared::Unauthorized) + # The request was well-formed but was unable to be followed due to semantic errors. + field :unprocessable_entity, T.nilable(::OpenApiSDK::Shared::UnprocessableEntity) + + + sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer, bad_request: T.nilable(::OpenApiSDK::Shared::BadRequest), conflict: T.nilable(::OpenApiSDK::Shared::Conflict), folder_schema: T.nilable(::OpenApiSDK::Shared::FolderSchema), forbidden: T.nilable(::OpenApiSDK::Shared::Forbidden), internal_server_error: T.nilable(::OpenApiSDK::Shared::InternalServerError), invite_expired: T.nilable(::OpenApiSDK::Shared::InviteExpired), not_found: T.nilable(::OpenApiSDK::Shared::NotFound), rate_limit_exceeded: T.nilable(::OpenApiSDK::Shared::RateLimitExceeded), unauthorized: T.nilable(::OpenApiSDK::Shared::Unauthorized), unprocessable_entity: T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)).void } + def initialize(content_type: nil, raw_response: nil, status_code: nil, bad_request: nil, conflict: nil, folder_schema: nil, forbidden: nil, internal_server_error: nil, invite_expired: nil, not_found: nil, rate_limit_exceeded: nil, unauthorized: nil, unprocessable_entity: nil) + @content_type = content_type + @raw_response = raw_response + @status_code = status_code + @bad_request = bad_request + @conflict = conflict + @folder_schema = folder_schema + @forbidden = forbidden + @internal_server_error = internal_server_error + @invite_expired = invite_expired + @not_found = not_found + @rate_limit_exceeded = rate_limit_exceeded + @unauthorized = unauthorized + @unprocessable_entity = unprocessable_entity + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/createlink_requestbody.rb b/lib/open_api_sdk/models/operations/createlink_requestbody.rb index ff4d890..0f59c8e 100644 --- a/lib/open_api_sdk/models/operations/createlink_requestbody.rb +++ b/lib/open_api_sdk/models/operations/createlink_requestbody.rb @@ -31,6 +31,8 @@ class CreateLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } # 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. field :external_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } } + # The unique ID existing folder to assign the short link to. + field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. field :geo, T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('geo') } } # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og @@ -87,8 +89,8 @@ class CreateLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented field :webhook_ids, T.nilable(T::Array[::String]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('webhookIds') } } - sig { params(url: ::String, android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } - def initialize(url: nil, android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) + sig { params(url: ::String, android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), folder_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } + def initialize(url: nil, android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) @url = url @android = android @archived = archived @@ -99,6 +101,7 @@ def initialize(url: nil, android: nil, archived: nil, comments: nil, description @expired_url = expired_url @expires_at = expires_at @external_id = external_id + @folder_id = folder_id @geo = geo @image = image @ios = ios diff --git a/lib/open_api_sdk/models/operations/createpartner_discount.rb b/lib/open_api_sdk/models/operations/createpartner_discount.rb deleted file mode 100644 index 255f1b3..0000000 --- a/lib/open_api_sdk/models/operations/createpartner_discount.rb +++ /dev/null @@ -1,42 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module OpenApiSDK - module Operations - - - class CreatePartnerDiscount < ::OpenApiSDK::Utils::FieldAugmented - extend T::Sig - - - field :amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('amount') } } - - field :coupon_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('couponId') } } - - field :coupon_test_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('couponTestId') } } - - field :duration, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } } - - field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } } - - field :interval, ::OpenApiSDK::Operations::CreatePartnerInterval, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('interval'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::CreatePartnerInterval, false) } } - - field :type, ::OpenApiSDK::Operations::CreatePartnerType, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::CreatePartnerType, false) } } - - - sig { params(amount: ::Float, coupon_id: ::String, coupon_test_id: ::String, duration: ::Float, id: ::String, interval: ::OpenApiSDK::Operations::CreatePartnerInterval, type: ::OpenApiSDK::Operations::CreatePartnerType).void } - def initialize(amount: nil, coupon_id: nil, coupon_test_id: nil, duration: nil, id: nil, interval: nil, type: nil) - @amount = amount - @coupon_id = coupon_id - @coupon_test_id = coupon_test_id - @duration = duration - @id = id - @interval = interval - @type = type - end - end - end -end diff --git a/lib/open_api_sdk/models/operations/createpartner_responsebody.rb b/lib/open_api_sdk/models/operations/createpartner_responsebody.rb index dac3105..7ddb350 100644 --- a/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +++ b/lib/open_api_sdk/models/operations/createpartner_responsebody.rb @@ -12,12 +12,8 @@ class CreatePartnerResponseBody < ::OpenApiSDK::Utils::FieldAugmented extend T::Sig - field :bio, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bio') } } - field :clicks, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clicks') } } - field :commission_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('commissionAmount') } } - field :country, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country') } } field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt') } } @@ -36,28 +32,22 @@ class CreatePartnerResponseBody < ::OpenApiSDK::Utils::FieldAugmented field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } } - field :payouts_enabled, T::Boolean, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabled') } } + field :program_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('programId') } } - field :sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } } + field :sale_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleAmount') } } - field :sales_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('salesAmount') } } + field :sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } } field :status, ::OpenApiSDK::Operations::Status, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::Status, false) } } - field :stripe_connect_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('stripeConnectId') } } - - field :updated_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } } - - field :coupon_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('couponId') } } + field :tenant_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tenantId') } } - field :discount, T.nilable(::OpenApiSDK::Operations::CreatePartnerDiscount), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('discount') } } + field :description, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } } - sig { params(bio: ::String, clicks: ::Float, commission_amount: ::Float, country: ::String, created_at: ::String, earnings: ::Float, email: ::String, id: ::String, image: ::String, leads: ::Float, links: T::Array[::OpenApiSDK::Operations::Links], name: ::String, payouts_enabled: T::Boolean, sales: ::Float, sales_amount: ::Float, status: ::OpenApiSDK::Operations::Status, stripe_connect_id: ::String, updated_at: ::String, coupon_id: T.nilable(::String), discount: T.nilable(::OpenApiSDK::Operations::CreatePartnerDiscount)).void } - def initialize(bio: nil, clicks: nil, commission_amount: nil, country: nil, created_at: nil, earnings: nil, email: nil, id: nil, image: nil, leads: nil, links: nil, name: nil, payouts_enabled: nil, sales: nil, sales_amount: nil, status: nil, stripe_connect_id: nil, updated_at: nil, coupon_id: nil, discount: nil) - @bio = bio + sig { params(clicks: ::Float, country: ::String, created_at: ::String, earnings: ::Float, email: ::String, id: ::String, image: ::String, leads: ::Float, links: T::Array[::OpenApiSDK::Operations::Links], name: ::String, program_id: ::String, sale_amount: ::Float, sales: ::Float, status: ::OpenApiSDK::Operations::Status, tenant_id: ::String, description: T.nilable(::String)).void } + def initialize(clicks: nil, country: nil, created_at: nil, earnings: nil, email: nil, id: nil, image: nil, leads: nil, links: nil, name: nil, program_id: nil, sale_amount: nil, sales: nil, status: nil, tenant_id: nil, description: nil) @clicks = clicks - @commission_amount = commission_amount @country = country @created_at = created_at @earnings = earnings @@ -67,14 +57,12 @@ def initialize(bio: nil, clicks: nil, commission_amount: nil, country: nil, crea @leads = leads @links = links @name = name - @payouts_enabled = payouts_enabled + @program_id = program_id + @sale_amount = sale_amount @sales = sales - @sales_amount = sales_amount @status = status - @stripe_connect_id = stripe_connect_id - @updated_at = updated_at - @coupon_id = coupon_id - @discount = discount + @tenant_id = tenant_id + @description = description end end end diff --git a/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb b/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb index 68a6f68..c91c651 100644 --- a/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb +++ b/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb @@ -27,6 +27,8 @@ class CreatePartnerLinkLinkProps < ::OpenApiSDK::Utils::FieldAugmented field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } # 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. field :external_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } } + # The unique ID existing folder to assign the short link to. + field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og field :image, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('image') } } # The iOS destination URL for the short link for iOS device targeting. @@ -65,8 +67,8 @@ class CreatePartnerLinkLinkProps < ::OpenApiSDK::Utils::FieldAugmented field :video, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('video') } } - sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), proxy: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String)).void } - def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, external_id: nil, image: nil, ios: nil, partner_id: nil, password: nil, prefix: nil, proxy: nil, ref: nil, rewrite: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil) + sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), folder_id: T.nilable(::String), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), proxy: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String)).void } + def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, image: nil, ios: nil, partner_id: nil, password: nil, prefix: nil, proxy: nil, ref: nil, rewrite: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil) @android = android @archived = archived @comments = comments @@ -75,6 +77,7 @@ def initialize(android: nil, archived: nil, comments: nil, description: nil, do_ @expired_url = expired_url @expires_at = expires_at @external_id = external_id + @folder_id = folder_id @image = image @ios = ios @partner_id = partner_id diff --git a/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb b/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb index 28e29a6..d518b63 100644 --- a/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb +++ b/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb @@ -13,8 +13,6 @@ class CreatePartnerLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented # The ID of the program that the partner is enrolled in. field :program_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('programId') } } - # The URL to shorten. Will throw an error if the domain doesn't match the program's default URL domain. - field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url') } } # The short link slug. If not provided, a random 7-character slug will be generated. field :key, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } } # Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner. @@ -23,16 +21,18 @@ class CreatePartnerLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented field :partner_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('partnerId') } } # The ID of the partner in your system. If both `partnerId` and `tenantId` are not provided, an error will be thrown. field :tenant_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tenantId') } } + # 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. + field :url, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url') } } - sig { params(program_id: ::String, url: ::String, key: T.nilable(::String), link_props: T.nilable(::OpenApiSDK::Operations::CreatePartnerLinkLinkProps), partner_id: T.nilable(::String), tenant_id: T.nilable(::String)).void } - def initialize(program_id: nil, url: nil, key: nil, link_props: nil, partner_id: nil, tenant_id: nil) + sig { params(program_id: ::String, key: T.nilable(::String), link_props: T.nilable(::OpenApiSDK::Operations::CreatePartnerLinkLinkProps), partner_id: T.nilable(::String), tenant_id: T.nilable(::String), url: T.nilable(::String)).void } + def initialize(program_id: nil, key: nil, link_props: nil, partner_id: nil, tenant_id: nil, url: nil) @program_id = program_id - @url = url @key = key @link_props = link_props @partner_id = partner_id @tenant_id = tenant_id + @url = url end end end diff --git a/lib/open_api_sdk/models/operations/data.rb b/lib/open_api_sdk/models/operations/data.rb index 8f98d59..3540a69 100644 --- a/lib/open_api_sdk/models/operations/data.rb +++ b/lib/open_api_sdk/models/operations/data.rb @@ -25,6 +25,8 @@ class Data < ::OpenApiSDK::Utils::FieldAugmented field :expired_url, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiredUrl') } } # The date and time when the short link will expire at. field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } + # The unique ID existing folder to assign the short link to. + field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. field :geo, T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('geo') } } # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og @@ -79,8 +81,8 @@ class Data < ::OpenApiSDK::Utils::FieldAugmented field :webhook_ids, T.nilable(T::Array[::String]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('webhookIds') } } - sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } - def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, geo: nil, image: nil, ios: nil, partner_id: nil, password: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) + sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), folder_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } + def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, folder_id: nil, geo: nil, image: nil, ios: nil, partner_id: nil, password: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) @android = android @archived = archived @comments = comments @@ -88,6 +90,7 @@ def initialize(android: nil, archived: nil, comments: nil, description: nil, do_ @do_index = do_index @expired_url = expired_url @expires_at = expires_at + @folder_id = folder_id @geo = geo @image = image @ios = ios diff --git a/lib/open_api_sdk/models/operations/deletefolder_request.rb b/lib/open_api_sdk/models/operations/deletefolder_request.rb new file mode 100644 index 0000000..ae0a947 --- /dev/null +++ b/lib/open_api_sdk/models/operations/deletefolder_request.rb @@ -0,0 +1,24 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class DeleteFolderRequest < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # The ID of the folder to delete. + field :id, ::String, { 'path_param': { 'field_name': 'id', 'style': 'simple', 'explode': false } } + + + sig { params(id: ::String).void } + def initialize(id: nil) + @id = id + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/deletefolder_response.rb b/lib/open_api_sdk/models/operations/deletefolder_response.rb new file mode 100644 index 0000000..2097bf9 --- /dev/null +++ b/lib/open_api_sdk/models/operations/deletefolder_response.rb @@ -0,0 +1,60 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class DeleteFolderResponse < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # HTTP response content type for this operation + field :content_type, ::String + # Raw HTTP response; suitable for custom response parsing + field :raw_response, ::Faraday::Response + # HTTP response status code for this operation + field :status_code, ::Integer + # The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + field :bad_request, T.nilable(::OpenApiSDK::Shared::BadRequest) + # This response is sent when a request conflicts with the current state of the server. + field :conflict, T.nilable(::OpenApiSDK::Shared::Conflict) + # The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. + field :forbidden, T.nilable(::OpenApiSDK::Shared::Forbidden) + # The server has encountered a situation it does not know how to handle. + field :internal_server_error, T.nilable(::OpenApiSDK::Shared::InternalServerError) + # This response is sent when the requested content has been permanently deleted from server, with no forwarding address. + field :invite_expired, T.nilable(::OpenApiSDK::Shared::InviteExpired) + # The server cannot find the requested resource. + field :not_found, T.nilable(::OpenApiSDK::Shared::NotFound) + # The deleted folder ID. + field :object, T.nilable(::OpenApiSDK::Operations::DeleteFolderResponseBody) + # The user has sent too many requests in a given amount of time ("rate limiting") + field :rate_limit_exceeded, T.nilable(::OpenApiSDK::Shared::RateLimitExceeded) + # Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + field :unauthorized, T.nilable(::OpenApiSDK::Shared::Unauthorized) + # The request was well-formed but was unable to be followed due to semantic errors. + field :unprocessable_entity, T.nilable(::OpenApiSDK::Shared::UnprocessableEntity) + + + sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer, bad_request: T.nilable(::OpenApiSDK::Shared::BadRequest), conflict: T.nilable(::OpenApiSDK::Shared::Conflict), forbidden: T.nilable(::OpenApiSDK::Shared::Forbidden), internal_server_error: T.nilable(::OpenApiSDK::Shared::InternalServerError), invite_expired: T.nilable(::OpenApiSDK::Shared::InviteExpired), not_found: T.nilable(::OpenApiSDK::Shared::NotFound), object: T.nilable(::OpenApiSDK::Operations::DeleteFolderResponseBody), rate_limit_exceeded: T.nilable(::OpenApiSDK::Shared::RateLimitExceeded), unauthorized: T.nilable(::OpenApiSDK::Shared::Unauthorized), unprocessable_entity: T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)).void } + def initialize(content_type: nil, raw_response: nil, status_code: nil, bad_request: nil, conflict: nil, forbidden: nil, internal_server_error: nil, invite_expired: nil, not_found: nil, object: nil, rate_limit_exceeded: nil, unauthorized: nil, unprocessable_entity: nil) + @content_type = content_type + @raw_response = raw_response + @status_code = status_code + @bad_request = bad_request + @conflict = conflict + @forbidden = forbidden + @internal_server_error = internal_server_error + @invite_expired = invite_expired + @not_found = not_found + @object = object + @rate_limit_exceeded = rate_limit_exceeded + @unauthorized = unauthorized + @unprocessable_entity = unprocessable_entity + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/deletefolder_responsebody.rb b/lib/open_api_sdk/models/operations/deletefolder_responsebody.rb new file mode 100644 index 0000000..2a512fa --- /dev/null +++ b/lib/open_api_sdk/models/operations/deletefolder_responsebody.rb @@ -0,0 +1,24 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + # The deleted folder ID. + class DeleteFolderResponseBody < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # The ID of the deleted folder. + field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } } + + + sig { params(id: ::String).void } + def initialize(id: nil) + @id = id + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/getlinks_request.rb b/lib/open_api_sdk/models/operations/getlinks_request.rb index 1d823c8..b7f0571 100644 --- a/lib/open_api_sdk/models/operations/getlinks_request.rb +++ b/lib/open_api_sdk/models/operations/getlinks_request.rb @@ -13,6 +13,8 @@ class GetLinksRequest < ::OpenApiSDK::Utils::FieldAugmented # The domain to filter the links by. E.g. `ac.me`. If not provided, all links for the workspace will be returned. field :domain, T.nilable(::String), { 'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': true } } + # The folder ID to filter the links by. + field :folder_id, T.nilable(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } } # The page number for pagination. field :page, T.nilable(::Float), { 'query_param': { 'field_name': 'page', 'style': 'form', 'explode': true } } # The number of items per page. @@ -41,9 +43,10 @@ class GetLinksRequest < ::OpenApiSDK::Utils::FieldAugmented field :with_tags, T.nilable(T::Boolean), { 'query_param': { 'field_name': 'withTags', 'style': 'form', 'explode': true } } - sig { params(domain: T.nilable(::String), page: T.nilable(::Float), page_size: T.nilable(::Float), search: T.nilable(::String), show_archived: T.nilable(T::Boolean), sort: T.nilable(::OpenApiSDK::Operations::Sort), sort_by: T.nilable(::OpenApiSDK::Operations::SortBy), sort_order: T.nilable(::OpenApiSDK::Operations::SortOrder), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), user_id: T.nilable(::String), with_tags: T.nilable(T::Boolean)).void } - def initialize(domain: nil, page: nil, page_size: nil, search: nil, show_archived: nil, sort: nil, sort_by: nil, sort_order: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, user_id: nil, with_tags: nil) + sig { params(domain: T.nilable(::String), folder_id: T.nilable(::String), page: T.nilable(::Float), page_size: T.nilable(::Float), search: T.nilable(::String), show_archived: T.nilable(T::Boolean), sort: T.nilable(::OpenApiSDK::Operations::Sort), sort_by: T.nilable(::OpenApiSDK::Operations::SortBy), sort_order: T.nilable(::OpenApiSDK::Operations::SortOrder), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), user_id: T.nilable(::String), with_tags: T.nilable(T::Boolean)).void } + def initialize(domain: nil, folder_id: nil, page: nil, page_size: nil, search: nil, show_archived: nil, sort: nil, sort_by: nil, sort_order: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, user_id: nil, with_tags: nil) @domain = domain + @folder_id = folder_id @page = page @page_size = page_size @search = search diff --git a/lib/open_api_sdk/models/operations/getlinkscount_request.rb b/lib/open_api_sdk/models/operations/getlinkscount_request.rb index 6322d6a..6c6b141 100644 --- a/lib/open_api_sdk/models/operations/getlinkscount_request.rb +++ b/lib/open_api_sdk/models/operations/getlinkscount_request.rb @@ -13,6 +13,8 @@ class GetLinksCountRequest < ::OpenApiSDK::Utils::FieldAugmented # The domain to filter the links by. E.g. `ac.me`. If not provided, all links for the workspace will be returned. field :domain, T.nilable(::String), { 'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': true } } + # The folder ID to filter the links by. + field :folder_id, T.nilable(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } } # The field to group the links by. field :group_by, T.nilable(::Object), { 'query_param': { 'field_name': 'groupBy', 'style': 'form', 'explode': true } } # The search term to filter the links by. The search term will be matched against the short link slug and the destination url. @@ -33,9 +35,10 @@ class GetLinksCountRequest < ::OpenApiSDK::Utils::FieldAugmented field :with_tags, T.nilable(T::Boolean), { 'query_param': { 'field_name': 'withTags', 'style': 'form', 'explode': true } } - sig { params(domain: T.nilable(::String), group_by: T.nilable(::Object), search: T.nilable(::String), show_archived: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), user_id: T.nilable(::String), with_tags: T.nilable(T::Boolean)).void } - def initialize(domain: nil, group_by: nil, search: nil, show_archived: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, user_id: nil, with_tags: nil) + sig { params(domain: T.nilable(::String), folder_id: T.nilable(::String), group_by: T.nilable(::Object), search: T.nilable(::String), show_archived: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), user_id: T.nilable(::String), with_tags: T.nilable(T::Boolean)).void } + def initialize(domain: nil, folder_id: nil, group_by: nil, search: nil, show_archived: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, user_id: nil, with_tags: nil) @domain = domain + @folder_id = folder_id @group_by = group_by @search = search @show_archived = show_archived diff --git a/lib/open_api_sdk/models/operations/interval.rb b/lib/open_api_sdk/models/operations/interval.rb index a031c6c..8f92a6d 100644 --- a/lib/open_api_sdk/models/operations/interval.rb +++ b/lib/open_api_sdk/models/operations/interval.rb @@ -14,8 +14,10 @@ class Interval < T::Enum SEVEND = new('7d') THIRTYD = new('30d') NINETYD = new('90d') - YTD = new('ytd') ONEY = new('1y') + MTD = new('mtd') + QTD = new('qtd') + YTD = new('ytd') ALL = new('all') ALL_UNFILTERED = new('all_unfiltered') end diff --git a/lib/open_api_sdk/models/operations/linkprops.rb b/lib/open_api_sdk/models/operations/linkprops.rb index 26509fc..243dc16 100644 --- a/lib/open_api_sdk/models/operations/linkprops.rb +++ b/lib/open_api_sdk/models/operations/linkprops.rb @@ -27,6 +27,8 @@ class LinkProps < ::OpenApiSDK::Utils::FieldAugmented field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } # 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. field :external_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } } + # The unique ID existing folder to assign the short link to. + field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og field :image, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('image') } } # The iOS destination URL for the short link for iOS device targeting. @@ -65,8 +67,8 @@ class LinkProps < ::OpenApiSDK::Utils::FieldAugmented field :video, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('video') } } - sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), proxy: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String)).void } - def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, external_id: nil, image: nil, ios: nil, partner_id: nil, password: nil, prefix: nil, proxy: nil, ref: nil, rewrite: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil) + sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), folder_id: T.nilable(::String), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), proxy: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String)).void } + def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, image: nil, ios: nil, partner_id: nil, password: nil, prefix: nil, proxy: nil, ref: nil, rewrite: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil) @android = android @archived = archived @comments = comments @@ -75,6 +77,7 @@ def initialize(android: nil, archived: nil, comments: nil, description: nil, do_ @expired_url = expired_url @expires_at = expires_at @external_id = external_id + @folder_id = folder_id @image = image @ios = ios @partner_id = partner_id diff --git a/lib/open_api_sdk/models/operations/listevents_request.rb b/lib/open_api_sdk/models/operations/listevents_request.rb index bdb97ec..172584c 100644 --- a/lib/open_api_sdk/models/operations/listevents_request.rb +++ b/lib/open_api_sdk/models/operations/listevents_request.rb @@ -29,6 +29,8 @@ class ListEventsRequest < ::OpenApiSDK::Utils::FieldAugmented field :event, T.nilable(::OpenApiSDK::Operations::QueryParamEvent), { 'query_param': { 'field_name': 'event', 'style': 'form', 'explode': true } } # This is the ID of the link in the your database. Must be prefixed with 'ext_' when passed as a query parameter. field :external_id, T.nilable(::String), { 'query_param': { 'field_name': 'externalId', 'style': 'form', 'explode': true } } + # The folder ID to retrieve analytics for. If not provided, return analytics for unsorted links. + field :folder_id, T.nilable(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } } # The interval to retrieve events for. Takes precedence over start and end. If undefined, defaults to 24h. field :interval, T.nilable(::OpenApiSDK::Operations::QueryParamInterval), { 'query_param': { 'field_name': 'interval', 'style': 'form', 'explode': true } } # The short link slug. @@ -87,8 +89,8 @@ class ListEventsRequest < ::OpenApiSDK::Utils::FieldAugmented field :utm_term, T.nilable(::String), { 'query_param': { 'field_name': 'utm_term', 'style': 'form', 'explode': true } } - sig { params(browser: T.nilable(::String), city: T.nilable(::String), continent: T.nilable(::OpenApiSDK::Shared::ContinentCode), country: T.nilable(::OpenApiSDK::Shared::CountryCode), device: T.nilable(::String), domain: T.nilable(::String), end_: T.nilable(::String), event: T.nilable(::OpenApiSDK::Operations::QueryParamEvent), external_id: T.nilable(::String), interval: T.nilable(::OpenApiSDK::Operations::QueryParamInterval), key: T.nilable(::String), limit: T.nilable(::Float), link_id: T.nilable(::String), order: T.nilable(::OpenApiSDK::Operations::Order), os: T.nilable(::String), page: T.nilable(::Float), partner_id: T.nilable(::String), program_id: T.nilable(::String), qr: T.nilable(T::Boolean), referer: T.nilable(::String), referer_url: T.nilable(::String), region: T.nilable(::String), root: T.nilable(T::Boolean), sort_by: T.nilable(::OpenApiSDK::Operations::QueryParamSortBy), sort_order: T.nilable(::OpenApiSDK::Operations::QueryParamSortOrder), start: T.nilable(::String), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tenant_id: T.nilable(::String), timezone: T.nilable(::String), trigger: T.nilable(::OpenApiSDK::Operations::QueryParamTrigger), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String)).void } - def initialize(browser: nil, city: nil, continent: nil, country: nil, device: nil, domain: nil, end_: nil, event: nil, external_id: nil, interval: nil, key: nil, limit: nil, link_id: nil, order: nil, os: nil, page: nil, partner_id: nil, program_id: nil, qr: nil, referer: nil, referer_url: nil, region: nil, root: nil, sort_by: nil, sort_order: nil, start: nil, tag_id: nil, tag_ids: nil, tenant_id: nil, timezone: nil, trigger: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil) + sig { params(browser: T.nilable(::String), city: T.nilable(::String), continent: T.nilable(::OpenApiSDK::Shared::ContinentCode), country: T.nilable(::OpenApiSDK::Shared::CountryCode), device: T.nilable(::String), domain: T.nilable(::String), end_: T.nilable(::String), event: T.nilable(::OpenApiSDK::Operations::QueryParamEvent), external_id: T.nilable(::String), folder_id: T.nilable(::String), interval: T.nilable(::OpenApiSDK::Operations::QueryParamInterval), key: T.nilable(::String), limit: T.nilable(::Float), link_id: T.nilable(::String), order: T.nilable(::OpenApiSDK::Operations::Order), os: T.nilable(::String), page: T.nilable(::Float), partner_id: T.nilable(::String), program_id: T.nilable(::String), qr: T.nilable(T::Boolean), referer: T.nilable(::String), referer_url: T.nilable(::String), region: T.nilable(::String), root: T.nilable(T::Boolean), sort_by: T.nilable(::OpenApiSDK::Operations::QueryParamSortBy), sort_order: T.nilable(::OpenApiSDK::Operations::QueryParamSortOrder), start: T.nilable(::String), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tenant_id: T.nilable(::String), timezone: T.nilable(::String), trigger: T.nilable(::OpenApiSDK::Operations::QueryParamTrigger), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String)).void } + def initialize(browser: nil, city: nil, continent: nil, country: nil, device: nil, domain: nil, end_: nil, event: nil, external_id: nil, folder_id: nil, interval: nil, key: nil, limit: nil, link_id: nil, order: nil, os: nil, page: nil, partner_id: nil, program_id: nil, qr: nil, referer: nil, referer_url: nil, region: nil, root: nil, sort_by: nil, sort_order: nil, start: nil, tag_id: nil, tag_ids: nil, tenant_id: nil, timezone: nil, trigger: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil) @browser = browser @city = city @continent = continent @@ -98,6 +100,7 @@ def initialize(browser: nil, city: nil, continent: nil, country: nil, device: ni @end_ = end_ @event = event @external_id = external_id + @folder_id = folder_id @interval = interval @key = key @limit = limit diff --git a/lib/open_api_sdk/models/operations/listfolders_request.rb b/lib/open_api_sdk/models/operations/listfolders_request.rb new file mode 100644 index 0000000..0183f5c --- /dev/null +++ b/lib/open_api_sdk/models/operations/listfolders_request.rb @@ -0,0 +1,24 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class ListFoldersRequest < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # The search term to filter the folders by. + field :search, T.nilable(::String), { 'query_param': { 'field_name': 'search', 'style': 'form', 'explode': true } } + + + sig { params(search: T.nilable(::String)).void } + def initialize(search: nil) + @search = search + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/listfolders_response.rb b/lib/open_api_sdk/models/operations/listfolders_response.rb new file mode 100644 index 0000000..64f0eca --- /dev/null +++ b/lib/open_api_sdk/models/operations/listfolders_response.rb @@ -0,0 +1,60 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class ListFoldersResponse < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # HTTP response content type for this operation + field :content_type, ::String + # Raw HTTP response; suitable for custom response parsing + field :raw_response, ::Faraday::Response + # HTTP response status code for this operation + field :status_code, ::Integer + # The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + field :bad_request, T.nilable(::OpenApiSDK::Shared::BadRequest) + # This response is sent when a request conflicts with the current state of the server. + field :conflict, T.nilable(::OpenApiSDK::Shared::Conflict) + # A list of folders + field :folder_schemas, T.nilable(T::Array[::OpenApiSDK::Shared::FolderSchema]) + # The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. + field :forbidden, T.nilable(::OpenApiSDK::Shared::Forbidden) + # The server has encountered a situation it does not know how to handle. + field :internal_server_error, T.nilable(::OpenApiSDK::Shared::InternalServerError) + # This response is sent when the requested content has been permanently deleted from server, with no forwarding address. + field :invite_expired, T.nilable(::OpenApiSDK::Shared::InviteExpired) + # The server cannot find the requested resource. + field :not_found, T.nilable(::OpenApiSDK::Shared::NotFound) + # The user has sent too many requests in a given amount of time ("rate limiting") + field :rate_limit_exceeded, T.nilable(::OpenApiSDK::Shared::RateLimitExceeded) + # Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + field :unauthorized, T.nilable(::OpenApiSDK::Shared::Unauthorized) + # The request was well-formed but was unable to be followed due to semantic errors. + field :unprocessable_entity, T.nilable(::OpenApiSDK::Shared::UnprocessableEntity) + + + sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer, bad_request: T.nilable(::OpenApiSDK::Shared::BadRequest), conflict: T.nilable(::OpenApiSDK::Shared::Conflict), folder_schemas: T.nilable(T::Array[::OpenApiSDK::Shared::FolderSchema]), forbidden: T.nilable(::OpenApiSDK::Shared::Forbidden), internal_server_error: T.nilable(::OpenApiSDK::Shared::InternalServerError), invite_expired: T.nilable(::OpenApiSDK::Shared::InviteExpired), not_found: T.nilable(::OpenApiSDK::Shared::NotFound), rate_limit_exceeded: T.nilable(::OpenApiSDK::Shared::RateLimitExceeded), unauthorized: T.nilable(::OpenApiSDK::Shared::Unauthorized), unprocessable_entity: T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)).void } + def initialize(content_type: nil, raw_response: nil, status_code: nil, bad_request: nil, conflict: nil, folder_schemas: nil, forbidden: nil, internal_server_error: nil, invite_expired: nil, not_found: nil, rate_limit_exceeded: nil, unauthorized: nil, unprocessable_entity: nil) + @content_type = content_type + @raw_response = raw_response + @status_code = status_code + @bad_request = bad_request + @conflict = conflict + @folder_schemas = folder_schemas + @forbidden = forbidden + @internal_server_error = internal_server_error + @invite_expired = invite_expired + @not_found = not_found + @rate_limit_exceeded = rate_limit_exceeded + @unauthorized = unauthorized + @unprocessable_entity = unprocessable_entity + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/queryparam_groupby.rb b/lib/open_api_sdk/models/operations/queryparam_groupby.rb new file mode 100644 index 0000000..a5e3ddf --- /dev/null +++ b/lib/open_api_sdk/models/operations/queryparam_groupby.rb @@ -0,0 +1,19 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + # QueryParamGroupBy - The parameter to group the analytics data points by. Defaults to `count` if undefined. + class QueryParamGroupBy < T::Enum + enums do + TOP_LINKS = new('top_links') + TIMESERIES = new('timeseries') + COUNT = new('count') + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/queryparam_interval.rb b/lib/open_api_sdk/models/operations/queryparam_interval.rb index e4f1d0d..f44ec22 100644 --- a/lib/open_api_sdk/models/operations/queryparam_interval.rb +++ b/lib/open_api_sdk/models/operations/queryparam_interval.rb @@ -14,8 +14,10 @@ class QueryParamInterval < T::Enum SEVEND = new('7d') THIRTYD = new('30d') NINETYD = new('90d') - YTD = new('ytd') ONEY = new('1y') + MTD = new('mtd') + QTD = new('qtd') + YTD = new('ytd') ALL = new('all') end end diff --git a/lib/open_api_sdk/models/operations/requestbody.rb b/lib/open_api_sdk/models/operations/requestbody.rb index 1bc1f26..e97d606 100644 --- a/lib/open_api_sdk/models/operations/requestbody.rb +++ b/lib/open_api_sdk/models/operations/requestbody.rb @@ -31,6 +31,8 @@ class RequestBody < ::OpenApiSDK::Utils::FieldAugmented field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } # 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. field :external_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } } + # The unique ID existing folder to assign the short link to. + field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. field :geo, T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('geo') } } # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og @@ -87,8 +89,8 @@ class RequestBody < ::OpenApiSDK::Utils::FieldAugmented field :webhook_ids, T.nilable(T::Array[::String]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('webhookIds') } } - sig { params(url: ::String, android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } - def initialize(url: nil, android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) + sig { params(url: ::String, android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), folder_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } + def initialize(url: nil, android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) @url = url @android = android @archived = archived @@ -99,6 +101,7 @@ def initialize(url: nil, android: nil, archived: nil, comments: nil, description @expired_url = expired_url @expires_at = expires_at @external_id = external_id + @folder_id = folder_id @geo = geo @image = image @ios = ios diff --git a/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb b/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb index 703c707..758b660 100644 --- a/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +++ b/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb @@ -29,6 +29,8 @@ class RetrieveAnalyticsRequest < ::OpenApiSDK::Utils::FieldAugmented field :event, T.nilable(::OpenApiSDK::Operations::Event), { 'query_param': { 'field_name': 'event', 'style': 'form', 'explode': true } } # This is the ID of the link in the your database. Must be prefixed with 'ext_' when passed as a query parameter. field :external_id, T.nilable(::String), { 'query_param': { 'field_name': 'externalId', 'style': 'form', 'explode': true } } + # The folder ID to retrieve analytics for. If not provided, return analytics for unsorted links. + field :folder_id, T.nilable(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } } # The parameter to group the analytics data points by. Defaults to `count` if undefined. field :group_by, T.nilable(::OpenApiSDK::Operations::GroupBy), { 'query_param': { 'field_name': 'groupBy', 'style': 'form', 'explode': true } } # The interval to retrieve analytics for. If undefined, defaults to 24h. @@ -79,8 +81,8 @@ class RetrieveAnalyticsRequest < ::OpenApiSDK::Utils::FieldAugmented field :utm_term, T.nilable(::String), { 'query_param': { 'field_name': 'utm_term', 'style': 'form', 'explode': true } } - sig { params(browser: T.nilable(::String), city: T.nilable(::String), continent: T.nilable(::OpenApiSDK::Shared::ContinentCode), country: T.nilable(::OpenApiSDK::Shared::CountryCode), device: T.nilable(::String), domain: T.nilable(::String), end_: T.nilable(::String), event: T.nilable(::OpenApiSDK::Operations::Event), external_id: T.nilable(::String), group_by: T.nilable(::OpenApiSDK::Operations::GroupBy), interval: T.nilable(::OpenApiSDK::Operations::Interval), key: T.nilable(::String), link_id: T.nilable(::String), os: T.nilable(::String), partner_id: T.nilable(::String), program_id: T.nilable(::String), qr: T.nilable(T::Boolean), referer: T.nilable(::String), referer_url: T.nilable(::String), region: T.nilable(::String), root: T.nilable(T::Boolean), start: T.nilable(::String), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tenant_id: T.nilable(::String), timezone: T.nilable(::String), trigger: T.nilable(::OpenApiSDK::Operations::Trigger), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String)).void } - def initialize(browser: nil, city: nil, continent: nil, country: nil, device: nil, domain: nil, end_: nil, event: nil, external_id: nil, group_by: nil, interval: nil, key: nil, link_id: nil, os: nil, partner_id: nil, program_id: nil, qr: nil, referer: nil, referer_url: nil, region: nil, root: nil, start: nil, tag_id: nil, tag_ids: nil, tenant_id: nil, timezone: nil, trigger: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil) + sig { params(browser: T.nilable(::String), city: T.nilable(::String), continent: T.nilable(::OpenApiSDK::Shared::ContinentCode), country: T.nilable(::OpenApiSDK::Shared::CountryCode), device: T.nilable(::String), domain: T.nilable(::String), end_: T.nilable(::String), event: T.nilable(::OpenApiSDK::Operations::Event), external_id: T.nilable(::String), folder_id: T.nilable(::String), group_by: T.nilable(::OpenApiSDK::Operations::GroupBy), interval: T.nilable(::OpenApiSDK::Operations::Interval), key: T.nilable(::String), link_id: T.nilable(::String), os: T.nilable(::String), partner_id: T.nilable(::String), program_id: T.nilable(::String), qr: T.nilable(T::Boolean), referer: T.nilable(::String), referer_url: T.nilable(::String), region: T.nilable(::String), root: T.nilable(T::Boolean), start: T.nilable(::String), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tenant_id: T.nilable(::String), timezone: T.nilable(::String), trigger: T.nilable(::OpenApiSDK::Operations::Trigger), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String)).void } + def initialize(browser: nil, city: nil, continent: nil, country: nil, device: nil, domain: nil, end_: nil, event: nil, external_id: nil, folder_id: nil, group_by: nil, interval: nil, key: nil, link_id: nil, os: nil, partner_id: nil, program_id: nil, qr: nil, referer: nil, referer_url: nil, region: nil, root: nil, start: nil, tag_id: nil, tag_ids: nil, tenant_id: nil, timezone: nil, trigger: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil) @browser = browser @city = city @continent = continent @@ -90,6 +92,7 @@ def initialize(browser: nil, city: nil, continent: nil, country: nil, device: ni @end_ = end_ @event = event @external_id = external_id + @folder_id = folder_id @group_by = group_by @interval = interval @key = key diff --git a/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb b/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb new file mode 100644 index 0000000..f83253e --- /dev/null +++ b/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb @@ -0,0 +1,26 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + # RetrievePartnerAnalyticsQueryParamInterval - The interval to retrieve analytics for. If undefined, defaults to 24h. + class RetrievePartnerAnalyticsQueryParamInterval < T::Enum + enums do + TWENTY_FOURH = new('24h') + SEVEND = new('7d') + THIRTYD = new('30d') + NINETYD = new('90d') + ONEY = new('1y') + MTD = new('mtd') + QTD = new('qtd') + YTD = new('ytd') + ALL = new('all') + ALL_UNFILTERED = new('all_unfiltered') + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb b/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb new file mode 100644 index 0000000..615f373 --- /dev/null +++ b/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb @@ -0,0 +1,45 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class RetrievePartnerAnalyticsRequest < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # The ID of the program to retrieve analytics for. + field :program_id, ::String, { 'query_param': { 'field_name': 'programId', 'style': 'form', 'explode': true } } + # The end date and time when to retrieve analytics from. If not provided, defaults to the current date. Takes precedence over `interval`. + field :end_, T.nilable(::String), { 'query_param': { 'field_name': 'end', 'style': 'form', 'explode': true } } + # The parameter to group the analytics data points by. Defaults to `count` if undefined. + field :group_by, T.nilable(::OpenApiSDK::Operations::QueryParamGroupBy), { 'query_param': { 'field_name': 'groupBy', 'style': 'form', 'explode': true } } + # The interval to retrieve analytics for. If undefined, defaults to 24h. + field :interval, T.nilable(::OpenApiSDK::Operations::RetrievePartnerAnalyticsQueryParamInterval), { 'query_param': { 'field_name': 'interval', 'style': 'form', 'explode': true } } + # The ID of the partner to retrieve analytics for. + field :partner_id, T.nilable(::String), { 'query_param': { 'field_name': 'partnerId', 'style': 'form', 'explode': true } } + # The start date and time when to retrieve analytics from. Takes precedence over `interval`. + field :start, T.nilable(::String), { 'query_param': { 'field_name': 'start', 'style': 'form', 'explode': true } } + # The ID of the tenant that created the link inside your system. + field :tenant_id, T.nilable(::String), { 'query_param': { 'field_name': 'tenantId', 'style': 'form', 'explode': true } } + # The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC. + field :timezone, T.nilable(::String), { 'query_param': { 'field_name': 'timezone', 'style': 'form', 'explode': true } } + + + sig { params(program_id: ::String, end_: T.nilable(::String), group_by: T.nilable(::OpenApiSDK::Operations::QueryParamGroupBy), interval: T.nilable(::OpenApiSDK::Operations::RetrievePartnerAnalyticsQueryParamInterval), partner_id: T.nilable(::String), start: T.nilable(::String), tenant_id: T.nilable(::String), timezone: T.nilable(::String)).void } + def initialize(program_id: nil, end_: nil, group_by: nil, interval: nil, partner_id: nil, start: nil, tenant_id: nil, timezone: nil) + @program_id = program_id + @end_ = end_ + @group_by = group_by + @interval = interval + @partner_id = partner_id + @start = start + @tenant_id = tenant_id + @timezone = timezone + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/retrievepartneranalytics_response.rb b/lib/open_api_sdk/models/operations/retrievepartneranalytics_response.rb new file mode 100644 index 0000000..15954f8 --- /dev/null +++ b/lib/open_api_sdk/models/operations/retrievepartneranalytics_response.rb @@ -0,0 +1,60 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class RetrievePartnerAnalyticsResponse < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # HTTP response content type for this operation + field :content_type, ::String + # Raw HTTP response; suitable for custom response parsing + field :raw_response, ::Faraday::Response + # HTTP response status code for this operation + field :status_code, ::Integer + # The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + field :bad_request, T.nilable(::OpenApiSDK::Shared::BadRequest) + # This response is sent when a request conflicts with the current state of the server. + field :conflict, T.nilable(::OpenApiSDK::Shared::Conflict) + # The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. + field :forbidden, T.nilable(::OpenApiSDK::Shared::Forbidden) + # The server has encountered a situation it does not know how to handle. + field :internal_server_error, T.nilable(::OpenApiSDK::Shared::InternalServerError) + # This response is sent when the requested content has been permanently deleted from server, with no forwarding address. + field :invite_expired, T.nilable(::OpenApiSDK::Shared::InviteExpired) + # The server cannot find the requested resource. + field :not_found, T.nilable(::OpenApiSDK::Shared::NotFound) + # Partner analytics data + field :one_of, T.nilable(::Object) + # The user has sent too many requests in a given amount of time ("rate limiting") + field :rate_limit_exceeded, T.nilable(::OpenApiSDK::Shared::RateLimitExceeded) + # Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + field :unauthorized, T.nilable(::OpenApiSDK::Shared::Unauthorized) + # The request was well-formed but was unable to be followed due to semantic errors. + field :unprocessable_entity, T.nilable(::OpenApiSDK::Shared::UnprocessableEntity) + + + sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer, bad_request: T.nilable(::OpenApiSDK::Shared::BadRequest), conflict: T.nilable(::OpenApiSDK::Shared::Conflict), forbidden: T.nilable(::OpenApiSDK::Shared::Forbidden), internal_server_error: T.nilable(::OpenApiSDK::Shared::InternalServerError), invite_expired: T.nilable(::OpenApiSDK::Shared::InviteExpired), not_found: T.nilable(::OpenApiSDK::Shared::NotFound), one_of: T.nilable(::Object), rate_limit_exceeded: T.nilable(::OpenApiSDK::Shared::RateLimitExceeded), unauthorized: T.nilable(::OpenApiSDK::Shared::Unauthorized), unprocessable_entity: T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)).void } + def initialize(content_type: nil, raw_response: nil, status_code: nil, bad_request: nil, conflict: nil, forbidden: nil, internal_server_error: nil, invite_expired: nil, not_found: nil, one_of: nil, rate_limit_exceeded: nil, unauthorized: nil, unprocessable_entity: nil) + @content_type = content_type + @raw_response = raw_response + @status_code = status_code + @bad_request = bad_request + @conflict = conflict + @forbidden = forbidden + @internal_server_error = internal_server_error + @invite_expired = invite_expired + @not_found = not_found + @one_of = one_of + @rate_limit_exceeded = rate_limit_exceeded + @unauthorized = unauthorized + @unprocessable_entity = unprocessable_entity + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/createpartner_type.rb b/lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb similarity index 51% rename from lib/open_api_sdk/models/operations/createpartner_type.rb rename to lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb index 03aa622..ab18bbb 100644 --- a/lib/open_api_sdk/models/operations/createpartner_type.rb +++ b/lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb @@ -7,11 +7,11 @@ module OpenApiSDK module Operations - - class CreatePartnerType < T::Enum + # UpdateFolderAccessLevel - The access level of the folder within the workspace. + class UpdateFolderAccessLevel < T::Enum enums do - PERCENTAGE = new('percentage') - FLAT = new('flat') + READ = new('read') + WRITE = new('write') end end end diff --git a/lib/open_api_sdk/models/operations/updatefolder_request.rb b/lib/open_api_sdk/models/operations/updatefolder_request.rb new file mode 100644 index 0000000..84b8bbc --- /dev/null +++ b/lib/open_api_sdk/models/operations/updatefolder_request.rb @@ -0,0 +1,27 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class UpdateFolderRequest < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # The ID of the folder to update. + field :id, ::String, { 'path_param': { 'field_name': 'id', 'style': 'simple', 'explode': false } } + + field :request_body, T.nilable(::OpenApiSDK::Operations::UpdateFolderRequestBody), { 'request': { 'media_type': 'application/json' } } + + + sig { params(id: ::String, request_body: T.nilable(::OpenApiSDK::Operations::UpdateFolderRequestBody)).void } + def initialize(id: nil, request_body: nil) + @id = id + @request_body = request_body + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb b/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb new file mode 100644 index 0000000..4a8afd3 --- /dev/null +++ b/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb @@ -0,0 +1,27 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class UpdateFolderRequestBody < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # The access level of the folder within the workspace. + field :access_level, T.nilable(::OpenApiSDK::Operations::UpdateFolderAccessLevel), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('accessLevel'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::UpdateFolderAccessLevel, true) } } + # The name of the folder. + field :name, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } } + + + sig { params(access_level: T.nilable(::OpenApiSDK::Operations::UpdateFolderAccessLevel), name: T.nilable(::String)).void } + def initialize(access_level: nil, name: nil) + @access_level = access_level + @name = name + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/updatefolder_response.rb b/lib/open_api_sdk/models/operations/updatefolder_response.rb new file mode 100644 index 0000000..ceb613e --- /dev/null +++ b/lib/open_api_sdk/models/operations/updatefolder_response.rb @@ -0,0 +1,60 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Operations + + + class UpdateFolderResponse < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # HTTP response content type for this operation + field :content_type, ::String + # Raw HTTP response; suitable for custom response parsing + field :raw_response, ::Faraday::Response + # HTTP response status code for this operation + field :status_code, ::Integer + # The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + field :bad_request, T.nilable(::OpenApiSDK::Shared::BadRequest) + # This response is sent when a request conflicts with the current state of the server. + field :conflict, T.nilable(::OpenApiSDK::Shared::Conflict) + # The updated folder. + field :folder_schema, T.nilable(::OpenApiSDK::Shared::FolderSchema) + # The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server. + field :forbidden, T.nilable(::OpenApiSDK::Shared::Forbidden) + # The server has encountered a situation it does not know how to handle. + field :internal_server_error, T.nilable(::OpenApiSDK::Shared::InternalServerError) + # This response is sent when the requested content has been permanently deleted from server, with no forwarding address. + field :invite_expired, T.nilable(::OpenApiSDK::Shared::InviteExpired) + # The server cannot find the requested resource. + field :not_found, T.nilable(::OpenApiSDK::Shared::NotFound) + # The user has sent too many requests in a given amount of time ("rate limiting") + field :rate_limit_exceeded, T.nilable(::OpenApiSDK::Shared::RateLimitExceeded) + # Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + field :unauthorized, T.nilable(::OpenApiSDK::Shared::Unauthorized) + # The request was well-formed but was unable to be followed due to semantic errors. + field :unprocessable_entity, T.nilable(::OpenApiSDK::Shared::UnprocessableEntity) + + + sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer, bad_request: T.nilable(::OpenApiSDK::Shared::BadRequest), conflict: T.nilable(::OpenApiSDK::Shared::Conflict), folder_schema: T.nilable(::OpenApiSDK::Shared::FolderSchema), forbidden: T.nilable(::OpenApiSDK::Shared::Forbidden), internal_server_error: T.nilable(::OpenApiSDK::Shared::InternalServerError), invite_expired: T.nilable(::OpenApiSDK::Shared::InviteExpired), not_found: T.nilable(::OpenApiSDK::Shared::NotFound), rate_limit_exceeded: T.nilable(::OpenApiSDK::Shared::RateLimitExceeded), unauthorized: T.nilable(::OpenApiSDK::Shared::Unauthorized), unprocessable_entity: T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)).void } + def initialize(content_type: nil, raw_response: nil, status_code: nil, bad_request: nil, conflict: nil, folder_schema: nil, forbidden: nil, internal_server_error: nil, invite_expired: nil, not_found: nil, rate_limit_exceeded: nil, unauthorized: nil, unprocessable_entity: nil) + @content_type = content_type + @raw_response = raw_response + @status_code = status_code + @bad_request = bad_request + @conflict = conflict + @folder_schema = folder_schema + @forbidden = forbidden + @internal_server_error = internal_server_error + @invite_expired = invite_expired + @not_found = not_found + @rate_limit_exceeded = rate_limit_exceeded + @unauthorized = unauthorized + @unprocessable_entity = unprocessable_entity + end + end + end +end diff --git a/lib/open_api_sdk/models/operations/updatelink_requestbody.rb b/lib/open_api_sdk/models/operations/updatelink_requestbody.rb index 6539863..6fca82f 100644 --- a/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +++ b/lib/open_api_sdk/models/operations/updatelink_requestbody.rb @@ -29,6 +29,8 @@ class UpdateLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } # 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. field :external_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } } + # The unique ID existing folder to assign the short link to. + field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. field :geo, T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('geo') } } # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og @@ -87,8 +89,8 @@ class UpdateLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented field :webhook_ids, T.nilable(T::Array[::String]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('webhookIds') } } - sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } - def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) + sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), folder_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), url: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } + def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, url: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) @android = android @archived = archived @comments = comments @@ -98,6 +100,7 @@ def initialize(android: nil, archived: nil, comments: nil, description: nil, do_ @expired_url = expired_url @expires_at = expires_at @external_id = external_id + @folder_id = folder_id @geo = geo @image = image @ios = ios diff --git a/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb b/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb index a5bec6b..a4aa0c0 100644 --- a/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +++ b/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb @@ -31,6 +31,8 @@ class UpsertLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } # 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. field :external_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } } + # The unique ID existing folder to assign the short link to. + field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. field :geo, T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('geo') } } # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og @@ -87,8 +89,8 @@ class UpsertLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented field :webhook_ids, T.nilable(T::Array[::String]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('webhookIds') } } - sig { params(url: ::String, android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } - def initialize(url: nil, android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) + sig { params(url: ::String, android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), folder_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void } + def initialize(url: nil, android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil) @url = url @android = android @archived = archived @@ -99,6 +101,7 @@ def initialize(url: nil, android: nil, archived: nil, comments: nil, description @expired_url = expired_url @expires_at = expires_at @external_id = external_id + @folder_id = folder_id @geo = geo @image = image @ios = ios diff --git a/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb b/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb index a4a66e6..fb27ae0 100644 --- a/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb +++ b/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb @@ -27,6 +27,8 @@ class UpsertPartnerLinkLinkProps < ::OpenApiSDK::Utils::FieldAugmented field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } # 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. field :external_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } } + # The unique ID existing folder to assign the short link to. + field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og field :image, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('image') } } # The iOS destination URL for the short link for iOS device targeting. @@ -65,8 +67,8 @@ class UpsertPartnerLinkLinkProps < ::OpenApiSDK::Utils::FieldAugmented field :video, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('video') } } - sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), proxy: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String)).void } - def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, external_id: nil, image: nil, ios: nil, partner_id: nil, password: nil, prefix: nil, proxy: nil, ref: nil, rewrite: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil) + sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), folder_id: T.nilable(::String), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), proxy: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String)).void } + def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, image: nil, ios: nil, partner_id: nil, password: nil, prefix: nil, proxy: nil, ref: nil, rewrite: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil) @android = android @archived = archived @comments = comments @@ -75,6 +77,7 @@ def initialize(android: nil, archived: nil, comments: nil, description: nil, do_ @expired_url = expired_url @expires_at = expires_at @external_id = external_id + @folder_id = folder_id @image = image @ios = ios @partner_id = partner_id diff --git a/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb b/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb index e3149c3..a17308a 100644 --- a/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb +++ b/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb @@ -13,8 +13,6 @@ class UpsertPartnerLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented # The ID of the program that the partner is enrolled in. field :program_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('programId') } } - # The URL to shorten. Will throw an error if the domain doesn't match the program's default URL domain. - field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url') } } # The short link slug. If not provided, a random 7-character slug will be generated. field :key, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } } # Additional properties that you can pass to the partner's short link. Will be used to override the default link properties for this partner. @@ -23,16 +21,18 @@ class UpsertPartnerLinkRequestBody < ::OpenApiSDK::Utils::FieldAugmented field :partner_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('partnerId') } } # The ID of the partner in your system. If both `partnerId` and `tenantId` are not provided, an error will be thrown. field :tenant_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tenantId') } } + # 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. + field :url, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url') } } - sig { params(program_id: ::String, url: ::String, key: T.nilable(::String), link_props: T.nilable(::OpenApiSDK::Operations::UpsertPartnerLinkLinkProps), partner_id: T.nilable(::String), tenant_id: T.nilable(::String)).void } - def initialize(program_id: nil, url: nil, key: nil, link_props: nil, partner_id: nil, tenant_id: nil) + sig { params(program_id: ::String, key: T.nilable(::String), link_props: T.nilable(::OpenApiSDK::Operations::UpsertPartnerLinkLinkProps), partner_id: T.nilable(::String), tenant_id: T.nilable(::String), url: T.nilable(::String)).void } + def initialize(program_id: nil, key: nil, link_props: nil, partner_id: nil, tenant_id: nil, url: nil) @program_id = program_id - @url = url @key = key @link_props = link_props @partner_id = partner_id @tenant_id = tenant_id + @url = url end end end diff --git a/lib/open_api_sdk/models/shared.rb b/lib/open_api_sdk/models/shared.rb index ce48910..0387bf7 100644 --- a/lib/open_api_sdk/models/shared.rb +++ b/lib/open_api_sdk/models/shared.rb @@ -44,6 +44,8 @@ module Shared autoload :ClickEventGeo, 'open_api_sdk/models/shared/clickevent_geo.rb' autoload :Link, 'open_api_sdk/models/shared/link.rb' autoload :ClickEvent, 'open_api_sdk/models/shared/clickevent.rb' + autoload :AccessLevel, 'open_api_sdk/models/shared/accesslevel.rb' + autoload :FolderSchema, 'open_api_sdk/models/shared/folderschema.rb' autoload :RegisteredDomain, 'open_api_sdk/models/shared/registereddomain.rb' autoload :DomainSchema, 'open_api_sdk/models/shared/domainschema.rb' autoload :Plan, 'open_api_sdk/models/shared/plan.rb' diff --git a/lib/open_api_sdk/models/shared/accesslevel.rb b/lib/open_api_sdk/models/shared/accesslevel.rb new file mode 100644 index 0000000..e83cf7b --- /dev/null +++ b/lib/open_api_sdk/models/shared/accesslevel.rb @@ -0,0 +1,18 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Shared + + # AccessLevel - The access level of the folder within the workspace. + class AccessLevel < T::Enum + enums do + READ = new('read') + WRITE = new('write') + end + end + end +end diff --git a/lib/open_api_sdk/models/shared/folderschema.rb b/lib/open_api_sdk/models/shared/folderschema.rb new file mode 100644 index 0000000..10d52d9 --- /dev/null +++ b/lib/open_api_sdk/models/shared/folderschema.rb @@ -0,0 +1,39 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module OpenApiSDK + module Shared + + + class FolderSchema < ::OpenApiSDK::Utils::FieldAugmented + extend T::Sig + + # The access level of the folder within the workspace. + field :access_level, ::OpenApiSDK::Shared::AccessLevel, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('accessLevel'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Shared::AccessLevel, false) } } + # The date the folder was created. + field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt') } } + # The unique ID of the folder. + field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } } + # The number of links in the folder. + field :link_count, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('linkCount') } } + # The name of the folder. + field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } } + # The date the folder was updated. + field :updated_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } } + + + sig { params(access_level: ::OpenApiSDK::Shared::AccessLevel, created_at: ::String, id: ::String, link_count: ::Float, name: ::String, updated_at: ::String).void } + def initialize(access_level: nil, created_at: nil, id: nil, link_count: nil, name: nil, updated_at: nil) + @access_level = access_level + @created_at = created_at + @id = id + @link_count = link_count + @name = name + @updated_at = updated_at + end + end + end +end diff --git a/lib/open_api_sdk/models/shared/link.rb b/lib/open_api_sdk/models/shared/link.rb index f4eeb6d..fb932d2 100644 --- a/lib/open_api_sdk/models/shared/link.rb +++ b/lib/open_api_sdk/models/shared/link.rb @@ -29,6 +29,8 @@ class Link < ::OpenApiSDK::Utils::FieldAugmented field :expires_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } # 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. field :external_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } } + # The unique ID of the folder assigned to the short link. + field :folder_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. Learn more: https://d.to/geo field :geo, ::OpenApiSDK::Shared::ClickEventGeo, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('geo') } } # The unique ID of the short link. @@ -107,8 +109,8 @@ class Link < ::OpenApiSDK::Utils::FieldAugmented field :track_conversion, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('trackConversion') } } - sig { params(android: ::String, clicks: ::Float, comments: ::String, created_at: ::String, description: ::String, domain: ::String, expired_url: ::String, expires_at: ::String, external_id: ::String, geo: ::OpenApiSDK::Shared::ClickEventGeo, id: ::String, image: ::String, ios: ::String, key: ::String, last_clicked: ::String, leads: ::Float, partner_id: ::String, password: ::String, program_id: ::String, project_id: ::String, qr_code: ::String, sale_amount: ::Float, sales: ::Float, short_link: ::String, tag_id: ::String, tags: T::Array[::OpenApiSDK::Shared::TagSchema], tenant_id: ::String, title: ::String, updated_at: ::String, url: ::String, user_id: ::String, utm_campaign: ::String, utm_content: ::String, utm_medium: ::String, utm_source: ::String, utm_term: ::String, video: ::String, webhook_ids: T::Array[::String], workspace_id: ::String, archived: T.nilable(T::Boolean), do_index: T.nilable(T::Boolean), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), rewrite: T.nilable(T::Boolean), track_conversion: T.nilable(T::Boolean)).void } - def initialize(android: nil, clicks: nil, comments: nil, created_at: nil, description: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, geo: nil, id: nil, image: nil, ios: nil, key: nil, last_clicked: nil, leads: nil, partner_id: nil, password: nil, program_id: nil, project_id: nil, qr_code: nil, sale_amount: nil, sales: nil, short_link: nil, tag_id: nil, tags: nil, tenant_id: nil, title: nil, updated_at: nil, url: nil, user_id: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil, workspace_id: nil, archived: nil, do_index: nil, proxy: nil, public_stats: nil, rewrite: nil, track_conversion: nil) + sig { params(android: ::String, clicks: ::Float, comments: ::String, created_at: ::String, description: ::String, domain: ::String, expired_url: ::String, expires_at: ::String, external_id: ::String, folder_id: ::String, geo: ::OpenApiSDK::Shared::ClickEventGeo, id: ::String, image: ::String, ios: ::String, key: ::String, last_clicked: ::String, leads: ::Float, partner_id: ::String, password: ::String, program_id: ::String, project_id: ::String, qr_code: ::String, sale_amount: ::Float, sales: ::Float, short_link: ::String, tag_id: ::String, tags: T::Array[::OpenApiSDK::Shared::TagSchema], tenant_id: ::String, title: ::String, updated_at: ::String, url: ::String, user_id: ::String, utm_campaign: ::String, utm_content: ::String, utm_medium: ::String, utm_source: ::String, utm_term: ::String, video: ::String, webhook_ids: T::Array[::String], workspace_id: ::String, archived: T.nilable(T::Boolean), do_index: T.nilable(T::Boolean), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), rewrite: T.nilable(T::Boolean), track_conversion: T.nilable(T::Boolean)).void } + def initialize(android: nil, clicks: nil, comments: nil, created_at: nil, description: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, geo: nil, id: nil, image: nil, ios: nil, key: nil, last_clicked: nil, leads: nil, partner_id: nil, password: nil, program_id: nil, project_id: nil, qr_code: nil, sale_amount: nil, sales: nil, short_link: nil, tag_id: nil, tags: nil, tenant_id: nil, title: nil, updated_at: nil, url: nil, user_id: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil, workspace_id: nil, archived: nil, do_index: nil, proxy: nil, public_stats: nil, rewrite: nil, track_conversion: nil) @android = android @clicks = clicks @comments = comments @@ -118,6 +120,7 @@ def initialize(android: nil, clicks: nil, comments: nil, created_at: nil, descri @expired_url = expired_url @expires_at = expires_at @external_id = external_id + @folder_id = folder_id @geo = geo @id = id @image = image diff --git a/lib/open_api_sdk/models/shared/linkschema.rb b/lib/open_api_sdk/models/shared/linkschema.rb index 6adf36b..c3c3de3 100644 --- a/lib/open_api_sdk/models/shared/linkschema.rb +++ b/lib/open_api_sdk/models/shared/linkschema.rb @@ -33,6 +33,8 @@ class LinkSchema < ::OpenApiSDK::Utils::FieldAugmented field :expires_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } } # 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. field :external_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } } + # The unique ID of the folder assigned to the short link. + field :folder_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } } # Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. Learn more: https://d.to/geo field :geo, ::OpenApiSDK::Shared::Geo, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('geo') } } # The unique ID of the short link. @@ -107,8 +109,8 @@ class LinkSchema < ::OpenApiSDK::Utils::FieldAugmented field :workspace_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('workspaceId') } } - sig { params(android: ::String, archived: T::Boolean, clicks: ::Float, comments: ::String, created_at: ::String, description: ::String, do_index: T::Boolean, domain: ::String, expired_url: ::String, expires_at: ::String, external_id: ::String, geo: ::OpenApiSDK::Shared::Geo, id: ::String, image: ::String, ios: ::String, key: ::String, last_clicked: ::String, leads: ::Float, partner_id: ::String, password: ::String, program_id: ::String, project_id: ::String, proxy: T::Boolean, public_stats: T::Boolean, qr_code: ::String, rewrite: T::Boolean, sale_amount: ::Float, sales: ::Float, short_link: ::String, tag_id: ::String, tags: T::Array[::OpenApiSDK::Shared::TagSchema], tenant_id: ::String, title: ::String, track_conversion: T::Boolean, updated_at: ::String, url: ::String, user_id: ::String, utm_campaign: ::String, utm_content: ::String, utm_medium: ::String, utm_source: ::String, utm_term: ::String, video: ::String, webhook_ids: T::Array[::String], workspace_id: ::String).void } - def initialize(android: nil, archived: nil, clicks: nil, comments: nil, created_at: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, geo: nil, id: nil, image: nil, ios: nil, key: nil, last_clicked: nil, leads: nil, partner_id: nil, password: nil, program_id: nil, project_id: nil, proxy: nil, public_stats: nil, qr_code: nil, rewrite: nil, sale_amount: nil, sales: nil, short_link: nil, tag_id: nil, tags: nil, tenant_id: nil, title: nil, track_conversion: nil, updated_at: nil, url: nil, user_id: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil, workspace_id: nil) + sig { params(android: ::String, archived: T::Boolean, clicks: ::Float, comments: ::String, created_at: ::String, description: ::String, do_index: T::Boolean, domain: ::String, expired_url: ::String, expires_at: ::String, external_id: ::String, folder_id: ::String, geo: ::OpenApiSDK::Shared::Geo, id: ::String, image: ::String, ios: ::String, key: ::String, last_clicked: ::String, leads: ::Float, partner_id: ::String, password: ::String, program_id: ::String, project_id: ::String, proxy: T::Boolean, public_stats: T::Boolean, qr_code: ::String, rewrite: T::Boolean, sale_amount: ::Float, sales: ::Float, short_link: ::String, tag_id: ::String, tags: T::Array[::OpenApiSDK::Shared::TagSchema], tenant_id: ::String, title: ::String, track_conversion: T::Boolean, updated_at: ::String, url: ::String, user_id: ::String, utm_campaign: ::String, utm_content: ::String, utm_medium: ::String, utm_source: ::String, utm_term: ::String, video: ::String, webhook_ids: T::Array[::String], workspace_id: ::String).void } + def initialize(android: nil, archived: nil, clicks: nil, comments: nil, created_at: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, geo: nil, id: nil, image: nil, ios: nil, key: nil, last_clicked: nil, leads: nil, partner_id: nil, password: nil, program_id: nil, project_id: nil, proxy: nil, public_stats: nil, qr_code: nil, rewrite: nil, sale_amount: nil, sales: nil, short_link: nil, tag_id: nil, tags: nil, tenant_id: nil, title: nil, track_conversion: nil, updated_at: nil, url: nil, user_id: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil, workspace_id: nil) @android = android @archived = archived @clicks = clicks @@ -120,6 +122,7 @@ def initialize(android: nil, archived: nil, clicks: nil, comments: nil, created_ @expired_url = expired_url @expires_at = expires_at @external_id = external_id + @folder_id = folder_id @geo = geo @id = id @image = image diff --git a/lib/open_api_sdk/models/shared/workspaceschema.rb b/lib/open_api_sdk/models/shared/workspaceschema.rb index b1784b1..dd3df24 100644 --- a/lib/open_api_sdk/models/shared/workspaceschema.rb +++ b/lib/open_api_sdk/models/shared/workspaceschema.rb @@ -29,6 +29,8 @@ class WorkspaceSchema < ::OpenApiSDK::Utils::FieldAugmented field :domains_limit, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('domainsLimit') } } # Whether the workspace has claimed a free .link domain. (dub.link/free) field :dot_link_claimed, T::Boolean, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('dotLinkClaimed') } } + # The folders limit of the workspace. + field :folders_limit, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('foldersLimit') } } # The unique ID of the workspace. field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } } # The invite code of the workspace. @@ -73,8 +75,8 @@ class WorkspaceSchema < ::OpenApiSDK::Utils::FieldAugmented field :flags, T.nilable(T::Hash[Symbol, T::Boolean]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('flags') } } - sig { params(ai_limit: ::Float, ai_usage: ::Float, allowed_hostnames: T::Array[::String], billing_cycle_start: ::Float, conversion_enabled: T::Boolean, created_at: ::String, domains: T::Array[::OpenApiSDK::Shared::Domains], domains_limit: ::Float, dot_link_claimed: T::Boolean, id: ::String, invite_code: ::String, links_limit: ::Float, links_usage: ::Float, logo: ::String, name: ::String, partners_enabled: T::Boolean, payment_failed_at: ::String, plan: ::OpenApiSDK::Shared::Plan, sales_limit: ::Float, sales_usage: ::Float, slug: ::String, store: T::Hash[Symbol, ::Object], stripe_connect_id: ::String, stripe_id: ::String, tags_limit: ::Float, usage: ::Float, usage_limit: ::Float, users: T::Array[::OpenApiSDK::Shared::Users], users_limit: ::Float, flags: T.nilable(T::Hash[Symbol, T::Boolean])).void } - def initialize(ai_limit: nil, ai_usage: nil, allowed_hostnames: nil, billing_cycle_start: nil, conversion_enabled: nil, created_at: nil, domains: nil, domains_limit: nil, dot_link_claimed: nil, id: nil, invite_code: nil, links_limit: nil, links_usage: nil, logo: nil, name: nil, partners_enabled: nil, payment_failed_at: nil, plan: nil, sales_limit: nil, sales_usage: nil, slug: nil, store: nil, stripe_connect_id: nil, stripe_id: nil, tags_limit: nil, usage: nil, usage_limit: nil, users: nil, users_limit: nil, flags: nil) + sig { params(ai_limit: ::Float, ai_usage: ::Float, allowed_hostnames: T::Array[::String], billing_cycle_start: ::Float, conversion_enabled: T::Boolean, created_at: ::String, domains: T::Array[::OpenApiSDK::Shared::Domains], domains_limit: ::Float, dot_link_claimed: T::Boolean, folders_limit: ::Float, id: ::String, invite_code: ::String, links_limit: ::Float, links_usage: ::Float, logo: ::String, name: ::String, partners_enabled: T::Boolean, payment_failed_at: ::String, plan: ::OpenApiSDK::Shared::Plan, sales_limit: ::Float, sales_usage: ::Float, slug: ::String, store: T::Hash[Symbol, ::Object], stripe_connect_id: ::String, stripe_id: ::String, tags_limit: ::Float, usage: ::Float, usage_limit: ::Float, users: T::Array[::OpenApiSDK::Shared::Users], users_limit: ::Float, flags: T.nilable(T::Hash[Symbol, T::Boolean])).void } + def initialize(ai_limit: nil, ai_usage: nil, allowed_hostnames: nil, billing_cycle_start: nil, conversion_enabled: nil, created_at: nil, domains: nil, domains_limit: nil, dot_link_claimed: nil, folders_limit: nil, id: nil, invite_code: nil, links_limit: nil, links_usage: nil, logo: nil, name: nil, partners_enabled: nil, payment_failed_at: nil, plan: nil, sales_limit: nil, sales_usage: nil, slug: nil, store: nil, stripe_connect_id: nil, stripe_id: nil, tags_limit: nil, usage: nil, usage_limit: nil, users: nil, users_limit: nil, flags: nil) @ai_limit = ai_limit @ai_usage = ai_usage @allowed_hostnames = allowed_hostnames @@ -84,6 +86,7 @@ def initialize(ai_limit: nil, ai_usage: nil, allowed_hostnames: nil, billing_cyc @domains = domains @domains_limit = domains_limit @dot_link_claimed = dot_link_claimed + @folders_limit = folders_limit @id = id @invite_code = invite_code @links_limit = links_limit diff --git a/lib/open_api_sdk/partners.rb b/lib/open_api_sdk/partners.rb index 0169e0c..11cfd72 100644 --- a/lib/open_api_sdk/partners.rb +++ b/lib/open_api_sdk/partners.rb @@ -275,5 +275,84 @@ def upsert_link(request) res end + + + sig { params(request: T.nilable(::OpenApiSDK::Operations::RetrievePartnerAnalyticsRequest)).returns(::OpenApiSDK::Operations::RetrievePartnerAnalyticsResponse) } + def analytics(request) + # analytics - Retrieve analytics for a partner + # Retrieve analytics for a partner within a program. The response type vary based on the `groupBy` query parameter. + url, params = @sdk_configuration.get_server_details + base_url = Utils.template_url(url, params) + url = "#{base_url}/partners/analytics" + headers = {} + query_params = Utils.get_query_params(::OpenApiSDK::Operations::RetrievePartnerAnalyticsRequest, request) + headers['Accept'] = 'application/json' + headers['user-agent'] = @sdk_configuration.user_agent + + r = @sdk_configuration.client.get(url) do |req| + req.headers = headers + req.params = query_params + Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil? + end + + content_type = r.headers.fetch('Content-Type', 'application/octet-stream') + + res = ::OpenApiSDK::Operations::RetrievePartnerAnalyticsResponse.new( + status_code: r.status, content_type: content_type, raw_response: r + ) + if r.status == 200 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::Object) + res.one_of = out + end + elsif r.status == 400 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::BadRequest) + res.bad_request = out + end + elsif r.status == 401 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Unauthorized) + res.unauthorized = out + end + elsif r.status == 403 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Forbidden) + res.forbidden = out + end + elsif r.status == 404 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::NotFound) + res.not_found = out + end + elsif r.status == 409 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Conflict) + res.conflict = out + end + elsif r.status == 410 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InviteExpired) + res.invite_expired = out + end + elsif r.status == 422 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::UnprocessableEntity) + res.unprocessable_entity = out + end + elsif r.status == 429 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::RateLimitExceeded) + res.rate_limit_exceeded = out + end + elsif r.status == 500 + if Utils.match_content_type(content_type, 'application/json') + out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InternalServerError) + res.internal_server_error = out + end + end + + res + end end end diff --git a/lib/open_api_sdk/sdkconfiguration.rb b/lib/open_api_sdk/sdkconfiguration.rb index 2305b17..269b418 100644 --- a/lib/open_api_sdk/sdkconfiguration.rb +++ b/lib/open_api_sdk/sdkconfiguration.rb @@ -38,9 +38,9 @@ def initialize(client, security, server_url, server_idx) @security = security @language = 'ruby' @openapi_doc_version = '0.0.1' - @sdk_version = '0.2.2-alpha.62' + @sdk_version = '0.2.2-alpha.63' @gen_version = '2.506.0' - @user_agent = 'speakeasy-sdk/ruby 0.2.2-alpha.62 2.506.0 0.0.1 dub' + @user_agent = 'speakeasy-sdk/ruby 0.2.2-alpha.63 2.506.0 0.0.1 dub' end sig { returns([String, T::Hash[Symbol, String]]) } From 667e99e3b6ccf08b5bfdfc8d0d72b436cbe91230 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 00:27:51 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow