diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index 9b3d1c1..cc9c152 100755
--- a/.speakeasy/gen.lock
+++ b/.speakeasy/gen.lock
@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: ab657d60-207e-43a4-8cc8-692a672950ed
management:
- docChecksum: 61ca2a4d60218732e7611140e6caf8d9
+ docChecksum: 325f4eff71e08b965879b29076b63bb6
docVersion: 0.0.1
- speakeasyVersion: 1.292.0
- generationVersion: 2.332.4
- releaseVersion: 0.0.4
- configChecksum: 0301d07ee936849da0870396e0ca94b1
+ speakeasyVersion: 1.294.0
+ generationVersion: 2.333.3
+ releaseVersion: 0.0.5
+ configChecksum: 5f8f57e69b3759e7482159b6f2795d2b
repoURL: https://github.com/dubinc/dub-python.git
installationURL: https://github.com/dubinc/dub-python.git
published: true
@@ -28,7 +28,7 @@ features:
nullables: 0.1.0
responseFormat: 0.1.0
sdkHooks: 0.1.0
- unions: 2.82.6
+ unions: 2.82.7
generatedFiles:
- src/dub/sdkconfiguration.py
- src/dub/links.py
@@ -38,6 +38,7 @@ generatedFiles:
- src/dub/workspaces.py
- src/dub/tags.py
- src/dub/domains.py
+ - src/dub/track.py
- src/dub/metatags.py
- src/dub/sdk.py
- py.typed
@@ -88,10 +89,17 @@ generatedFiles:
- src/dub/models/operations/updatedomain.py
- src/dub/models/operations/setprimarydomain.py
- src/dub/models/operations/transferdomain.py
+ - src/dub/models/operations/tracklead.py
+ - src/dub/models/operations/tracksale.py
+ - src/dub/models/operations/trackcustomer.py
- src/dub/models/operations/getmetatags.py
- src/dub/models/components/linkschema.py
- src/dub/models/components/tagschema.py
- src/dub/models/components/httpmetadata.py
+ - src/dub/models/components/linkgeotargeting.py
+ - src/dub/models/components/countrycode.py
+ - src/dub/models/components/clicksbycountry.py
+ - src/dub/models/components/clicksbycities.py
- src/dub/models/components/workspaceschema.py
- src/dub/models/components/domainschema.py
- src/dub/models/components/security.py
@@ -119,7 +127,6 @@ generatedFiles:
- docs/models/operations/createlinkglobals.md
- docs/models/operations/tagids.md
- docs/models/operations/tagnames.md
- - docs/models/operations/geo.md
- docs/models/operations/createlinkrequestbody.md
- docs/models/operations/createlinkresponse.md
- docs/models/operations/getlinkscountglobals.md
@@ -140,20 +147,17 @@ generatedFiles:
- docs/models/operations/updatelinkglobals.md
- docs/models/operations/updatelinktagids.md
- docs/models/operations/updatelinktagnames.md
- - docs/models/operations/updatelinkgeo.md
- docs/models/operations/updatelinkrequestbody.md
- docs/models/operations/updatelinkrequest.md
- docs/models/operations/updatelinkresponse.md
- docs/models/operations/bulkcreatelinksglobals.md
- docs/models/operations/bulkcreatelinkstagids.md
- docs/models/operations/bulkcreatelinkstagnames.md
- - docs/models/operations/bulkcreatelinksgeo.md
- docs/models/operations/requestbody.md
- docs/models/operations/bulkcreatelinksresponse.md
- docs/models/operations/upsertlinkglobals.md
- docs/models/operations/upsertlinktagids.md
- docs/models/operations/upsertlinktagnames.md
- - docs/models/operations/upsertlinkgeo.md
- docs/models/operations/upsertlinkrequestbody.md
- docs/models/operations/upsertlinkresponse.md
- docs/models/operations/level.md
@@ -161,124 +165,96 @@ generatedFiles:
- docs/models/operations/getqrcoderesponse.md
- docs/models/operations/gettimeseriesbyclicksdeprecatedglobals.md
- docs/models/operations/gettimeseriesbyclicksdeprecatedqueryparaminterval.md
- - docs/models/operations/gettimeseriesbyclicksdeprecatedqueryparamcountry.md
- docs/models/operations/gettimeseriesbyclicksdeprecatedrequest.md
- docs/models/operations/gettimeseriesbyclicksdeprecatedresponsebody.md
- docs/models/operations/gettimeseriesbyclicksdeprecatedresponse.md
- docs/models/operations/getcountriesbyclicksdeprecatedglobals.md
- docs/models/operations/getcountriesbyclicksdeprecatedqueryparaminterval.md
- - docs/models/operations/getcountriesbyclicksdeprecatedqueryparamcountry.md
- docs/models/operations/getcountriesbyclicksdeprecatedrequest.md
- - docs/models/operations/getcountriesbyclicksdeprecatedcountry.md
- - docs/models/operations/getcountriesbyclicksdeprecatedresponsebody.md
- docs/models/operations/getcountriesbyclicksdeprecatedresponse.md
- docs/models/operations/getcitiesbyclicksdeprecatedglobals.md
- docs/models/operations/getcitiesbyclicksdeprecatedqueryparaminterval.md
- - docs/models/operations/getcitiesbyclicksdeprecatedqueryparamcountry.md
- docs/models/operations/getcitiesbyclicksdeprecatedrequest.md
- - docs/models/operations/getcitiesbyclicksdeprecatedcountry.md
- - docs/models/operations/getcitiesbyclicksdeprecatedresponsebody.md
- docs/models/operations/getcitiesbyclicksdeprecatedresponse.md
- docs/models/operations/getdevicesbyclicksdeprecatedglobals.md
- docs/models/operations/getdevicesbyclicksdeprecatedqueryparaminterval.md
- - docs/models/operations/getdevicesbyclicksdeprecatedqueryparamcountry.md
- docs/models/operations/getdevicesbyclicksdeprecatedrequest.md
- docs/models/operations/getdevicesbyclicksdeprecatedresponsebody.md
- docs/models/operations/getdevicesbyclicksdeprecatedresponse.md
- docs/models/operations/getbrowsersbyclicksdeprecatedglobals.md
- docs/models/operations/getbrowsersbyclicksdeprecatedqueryparaminterval.md
- - docs/models/operations/getbrowsersbyclicksdeprecatedqueryparamcountry.md
- docs/models/operations/getbrowsersbyclicksdeprecatedrequest.md
- docs/models/operations/getbrowsersbyclicksdeprecatedresponsebody.md
- docs/models/operations/getbrowsersbyclicksdeprecatedresponse.md
- docs/models/operations/getosbyclicksdeprecatedglobals.md
- docs/models/operations/getosbyclicksdeprecatedqueryparaminterval.md
- - docs/models/operations/getosbyclicksdeprecatedqueryparamcountry.md
- docs/models/operations/getosbyclicksdeprecatedrequest.md
- docs/models/operations/getosbyclicksdeprecatedresponsebody.md
- docs/models/operations/getosbyclicksdeprecatedresponse.md
- docs/models/operations/getreferersbyclicksdeprecatedglobals.md
- docs/models/operations/getreferersbyclicksdeprecatedqueryparaminterval.md
- - docs/models/operations/getreferersbyclicksdeprecatedqueryparamcountry.md
- docs/models/operations/getreferersbyclicksdeprecatedrequest.md
- docs/models/operations/getreferersbyclicksdeprecatedresponsebody.md
- docs/models/operations/getreferersbyclicksdeprecatedresponse.md
- docs/models/operations/gettoplinksbyclicksdeprecatedglobals.md
- docs/models/operations/gettoplinksbyclicksdeprecatedqueryparaminterval.md
- - docs/models/operations/gettoplinksbyclicksdeprecatedqueryparamcountry.md
- docs/models/operations/gettoplinksbyclicksdeprecatedrequest.md
- docs/models/operations/gettoplinksbyclicksdeprecatedresponsebody.md
- docs/models/operations/gettoplinksbyclicksdeprecatedresponse.md
- docs/models/operations/gettopurlsbyclicksdeprecatedglobals.md
- docs/models/operations/gettopurlsbyclicksdeprecatedqueryparaminterval.md
- - docs/models/operations/gettopurlsbyclicksdeprecatedqueryparamcountry.md
- docs/models/operations/gettopurlsbyclicksdeprecatedrequest.md
- docs/models/operations/gettopurlsbyclicksdeprecatedresponsebody.md
- docs/models/operations/gettopurlsbyclicksdeprecatedresponse.md
- docs/models/operations/getclickscountglobals.md
- docs/models/operations/interval.md
- - docs/models/operations/country.md
- docs/models/operations/getclickscountrequest.md
- docs/models/operations/getclickscountresponse.md
- docs/models/operations/gettimeseriesbyclicksglobals.md
- docs/models/operations/queryparaminterval.md
- - docs/models/operations/queryparamcountry.md
- docs/models/operations/gettimeseriesbyclicksrequest.md
- docs/models/operations/responsebody.md
- docs/models/operations/gettimeseriesbyclicksresponse.md
- docs/models/operations/getcountriesbyclicksglobals.md
- docs/models/operations/getcountriesbyclicksqueryparaminterval.md
- - docs/models/operations/getcountriesbyclicksqueryparamcountry.md
- docs/models/operations/getcountriesbyclicksrequest.md
- - docs/models/operations/getcountriesbyclickscountry.md
- - docs/models/operations/getcountriesbyclicksresponsebody.md
- docs/models/operations/getcountriesbyclicksresponse.md
- docs/models/operations/getcitiesbyclicksglobals.md
- docs/models/operations/getcitiesbyclicksqueryparaminterval.md
- - docs/models/operations/getcitiesbyclicksqueryparamcountry.md
- docs/models/operations/getcitiesbyclicksrequest.md
- - docs/models/operations/getcitiesbyclickscountry.md
- - docs/models/operations/getcitiesbyclicksresponsebody.md
- docs/models/operations/getcitiesbyclicksresponse.md
- docs/models/operations/getdevicesbyclicksglobals.md
- docs/models/operations/getdevicesbyclicksqueryparaminterval.md
- - docs/models/operations/getdevicesbyclicksqueryparamcountry.md
- docs/models/operations/getdevicesbyclicksrequest.md
- docs/models/operations/getdevicesbyclicksresponsebody.md
- docs/models/operations/getdevicesbyclicksresponse.md
- docs/models/operations/getbrowsersbyclicksglobals.md
- docs/models/operations/getbrowsersbyclicksqueryparaminterval.md
- - docs/models/operations/getbrowsersbyclicksqueryparamcountry.md
- docs/models/operations/getbrowsersbyclicksrequest.md
- docs/models/operations/getbrowsersbyclicksresponsebody.md
- docs/models/operations/getbrowsersbyclicksresponse.md
- docs/models/operations/getosbyclicksglobals.md
- docs/models/operations/getosbyclicksqueryparaminterval.md
- - docs/models/operations/getosbyclicksqueryparamcountry.md
- docs/models/operations/getosbyclicksrequest.md
- docs/models/operations/getosbyclicksresponsebody.md
- docs/models/operations/getosbyclicksresponse.md
- docs/models/operations/getreferersbyclicksglobals.md
- docs/models/operations/getreferersbyclicksqueryparaminterval.md
- - docs/models/operations/getreferersbyclicksqueryparamcountry.md
- docs/models/operations/getreferersbyclicksrequest.md
- docs/models/operations/getreferersbyclicksresponsebody.md
- docs/models/operations/getreferersbyclicksresponse.md
- docs/models/operations/gettoplinksbyclicksglobals.md
- docs/models/operations/gettoplinksbyclicksqueryparaminterval.md
- - docs/models/operations/gettoplinksbyclicksqueryparamcountry.md
- docs/models/operations/gettoplinksbyclicksrequest.md
- docs/models/operations/gettoplinksbyclicksresponsebody.md
- docs/models/operations/gettoplinksbyclicksresponse.md
- docs/models/operations/gettopurlsbyclicksglobals.md
- docs/models/operations/gettopurlsbyclicksqueryparaminterval.md
- - docs/models/operations/gettopurlsbyclicksqueryparamcountry.md
- docs/models/operations/gettopurlsbyclicksrequest.md
- docs/models/operations/gettopurlsbyclicksresponsebody.md
- docs/models/operations/gettopurlsbyclicksresponse.md
- docs/models/operations/getclickscountdeprecatedglobals.md
- docs/models/operations/getclickscountdeprecatedqueryparaminterval.md
- - docs/models/operations/getclickscountdeprecatedqueryparamcountry.md
- docs/models/operations/getclickscountdeprecatedrequest.md
- docs/models/operations/getclickscountdeprecatedresponse.md
- docs/models/operations/getworkspacesresponse.md
@@ -316,6 +292,16 @@ generatedFiles:
- docs/models/operations/transferdomainrequestbody.md
- docs/models/operations/transferdomainrequest.md
- docs/models/operations/transferdomainresponse.md
+ - docs/models/operations/trackleadrequestbody.md
+ - docs/models/operations/trackleadresponsebody.md
+ - docs/models/operations/trackleadresponse.md
+ - docs/models/operations/paymentprocessor.md
+ - docs/models/operations/tracksalerequestbody.md
+ - docs/models/operations/tracksaleresponsebody.md
+ - docs/models/operations/tracksaleresponse.md
+ - docs/models/operations/trackcustomerrequestbody.md
+ - docs/models/operations/trackcustomerresponsebody.md
+ - docs/models/operations/trackcustomerresponse.md
- docs/models/operations/getmetatagsrequest.md
- docs/models/operations/getmetatagsresponsebody.md
- docs/models/operations/getmetatagsresponse.md
@@ -324,6 +310,12 @@ generatedFiles:
- docs/models/components/color.md
- docs/models/components/tagschema.md
- docs/models/components/httpmetadata.md
+ - docs/models/components/linkgeotargeting.md
+ - docs/models/components/countrycode.md
+ - docs/models/components/country.md
+ - docs/models/components/clicksbycountry.md
+ - docs/models/components/clicksbycitiescountry.md
+ - docs/models/components/clicksbycities.md
- docs/models/components/plan.md
- docs/models/components/role.md
- docs/models/components/users.md
@@ -368,6 +360,7 @@ generatedFiles:
- docs/sdks/workspaces/README.md
- docs/sdks/tags/README.md
- docs/sdks/domains/README.md
+ - docs/sdks/track/README.md
- docs/sdks/metatags/README.md
- USAGE.md
- .gitattributes
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index b3402c3..e14541e 100755
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -12,7 +12,7 @@ generation:
auth:
oAuth2ClientCredentialsEnabled: true
python:
- version: 0.0.4
+ version: 0.0.5
additionalDependencies:
dependencies: {}
extraDependencies:
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index a580327..63329d8 100644
--- a/.speakeasy/workflow.lock
+++ b/.speakeasy/workflow.lock
@@ -1,9 +1,9 @@
-speakeasyVersion: 1.292.0
+speakeasyVersion: 1.294.0
sources:
dub:
sourceNamespace: dub
- sourceRevisionDigest: sha256:8764339e2c93fe1cdd106792f96afece31b510782a1769c7fd2563d9c153bf0a
- sourceBlobDigest: sha256:5081f0c0ee177058d72587c71c669abdf045d9d0ba266aa394822483e3b3304f
+ sourceRevisionDigest: sha256:19f15aa281bffcfd42942e4596bc531bcb625951c318cf5a7f95b597accb74a4
+ sourceBlobDigest: sha256:22a143ed72e71214dbdfe9275bd9a4efcb3eeadb7ba61cae3e1a71a184b6daa5
tags:
- latest
- main
@@ -11,8 +11,8 @@ targets:
my-first-target:
source: dub
sourceNamespace: dub
- sourceRevisionDigest: sha256:8764339e2c93fe1cdd106792f96afece31b510782a1769c7fd2563d9c153bf0a
- sourceBlobDigest: sha256:5081f0c0ee177058d72587c71c669abdf045d9d0ba266aa394822483e3b3304f
+ sourceRevisionDigest: sha256:19f15aa281bffcfd42942e4596bc531bcb625951c318cf5a7f95b597accb74a4
+ sourceBlobDigest: sha256:22a143ed72e71214dbdfe9275bd9a4efcb3eeadb7ba61cae3e1a71a184b6daa5
outLocation: /github/workspace/repo
workflow:
workflowVersion: 1.0.0
diff --git a/README.md b/README.md
index c5bfb92..0c9f3df 100644
--- a/README.md
+++ b/README.md
@@ -142,6 +142,12 @@ if res.link_schema is not None:
* [set_primary](docs/sdks/domains/README.md#set_primary) - Set a domain as primary
* [transfer](docs/sdks/domains/README.md#transfer) - Transfer a domain
+### [track](docs/sdks/track/README.md)
+
+* [lead](docs/sdks/track/README.md#lead) - Track a lead
+* [sale](docs/sdks/track/README.md#sale) - Track a sale
+* [customer](docs/sdks/track/README.md#customer) - Track a customer
+
### [metatags](docs/sdks/metatags/README.md)
* [get](docs/sdks/metatags/README.md#get) - Retrieve the metatags for a URL
diff --git a/RELEASES.md b/RELEASES.md
index 3460b78..45896e1 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -26,4 +26,14 @@ Based on:
### Generated
- [python v0.0.4] .
### Releases
-- [PyPI v0.0.4] https://pypi.org/project/dub/0.0.4 - .
\ No newline at end of file
+- [PyPI v0.0.4] https://pypi.org/project/dub/0.0.4 - .
+
+## 2024-05-21 18:56:30
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.294.0 (2.333.3) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [python v0.0.5] .
+### Releases
+- [PyPI v0.0.5] https://pypi.org/project/dub/0.0.5 - .
\ No newline at end of file
diff --git a/docs/models/components/clicksbycities.md b/docs/models/components/clicksbycities.md
new file mode 100644
index 0000000..d37687a
--- /dev/null
+++ b/docs/models/components/clicksbycities.md
@@ -0,0 +1,10 @@
+# ClicksByCities
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
+| `city` | *str* | :heavy_check_mark: | The name of the city |
+| `country` | [components.ClicksByCitiesCountry](../../models/components/clicksbycitiescountry.md) | :heavy_check_mark: | The 2-letter country code of the city: https://d.to/geo |
+| `clicks` | *float* | :heavy_check_mark: | The number of clicks from this city |
\ No newline at end of file
diff --git a/docs/models/operations/getcitiesbyclickscountry.md b/docs/models/components/clicksbycitiescountry.md
similarity index 99%
rename from docs/models/operations/getcitiesbyclickscountry.md
rename to docs/models/components/clicksbycitiescountry.md
index d65fadb..ddf6313 100644
--- a/docs/models/operations/getcitiesbyclickscountry.md
+++ b/docs/models/components/clicksbycitiescountry.md
@@ -1,4 +1,4 @@
-# GetCitiesByClicksCountry
+# ClicksByCitiesCountry
The 2-letter country code of the city: https://d.to/geo
diff --git a/docs/models/components/clicksbycountry.md b/docs/models/components/clicksbycountry.md
new file mode 100644
index 0000000..2fdc3a7
--- /dev/null
+++ b/docs/models/components/clicksbycountry.md
@@ -0,0 +1,9 @@
+# ClicksByCountry
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `country` | [components.Country](../../models/components/country.md) | :heavy_check_mark: | The 2-letter country code: https://d.to/geo |
+| `clicks` | *float* | :heavy_check_mark: | The number of clicks from this country |
\ No newline at end of file
diff --git a/docs/models/operations/country.md b/docs/models/components/country.md
similarity index 99%
rename from docs/models/operations/country.md
rename to docs/models/components/country.md
index 2f041bc..16b2c6e 100644
--- a/docs/models/operations/country.md
+++ b/docs/models/components/country.md
@@ -1,6 +1,6 @@
# Country
-The country to retrieve analytics for.
+The 2-letter country code: https://d.to/geo
## Values
diff --git a/docs/models/operations/queryparamcountry.md b/docs/models/components/countrycode.md
similarity index 99%
rename from docs/models/operations/queryparamcountry.md
rename to docs/models/components/countrycode.md
index 3c74fbd..4ec380d 100644
--- a/docs/models/operations/queryparamcountry.md
+++ b/docs/models/components/countrycode.md
@@ -1,4 +1,4 @@
-# QueryParamCountry
+# CountryCode
The country to retrieve analytics for.
diff --git a/docs/models/components/domainschema.md b/docs/models/components/domainschema.md
index b0fc1fa..fa63998 100644
--- a/docs/models/components/domainschema.md
+++ b/docs/models/components/domainschema.md
@@ -13,5 +13,6 @@
| `verified` | *Optional[bool]* | :heavy_minus_sign: | Whether the domain is verified. | |
| `primary` | *Optional[bool]* | :heavy_minus_sign: | Whether the domain is the primary domain for the workspace. | |
| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the domain is archived. | |
+| `noindex` | *Optional[bool]* | :heavy_minus_sign: | Prevent search engines from indexing the domain. | |
| `placeholder` | *Optional[str]* | :heavy_minus_sign: | Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened. | https://dub.co/help/article/what-is-dub |
| `clicks` | *Optional[float]* | :heavy_minus_sign: | The number of clicks on the domain. | |
\ No newline at end of file
diff --git a/docs/models/operations/geo.md b/docs/models/components/linkgeotargeting.md
similarity index 99%
rename from docs/models/operations/geo.md
rename to docs/models/components/linkgeotargeting.md
index b57242e..156e893 100644
--- a/docs/models/operations/geo.md
+++ b/docs/models/components/linkgeotargeting.md
@@ -1,4 +1,4 @@
-# Geo
+# LinkGeoTargeting
Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`.
diff --git a/docs/models/components/workspaceschema.md b/docs/models/components/workspaceschema.md
index 562583f..beaad1f 100644
--- a/docs/models/components/workspaceschema.md
+++ b/docs/models/components/workspaceschema.md
@@ -18,8 +18,10 @@
| `plan` | [components.Plan](../../models/components/plan.md) | :heavy_check_mark: | The plan of the workspace. |
| `stripe_id` | *Optional[str]* | :heavy_check_mark: | The Stripe ID of the workspace. |
| `billing_cycle_start` | *float* | :heavy_check_mark: | The date and time when the billing cycle starts for the workspace. |
+| `stripe_connect_id` | *Optional[str]* | :heavy_check_mark: | [BETA]: The Stripe Connect ID of the workspace. |
| `created_at` | *str* | :heavy_check_mark: | The date and time when the workspace was created. |
| `users` | List[[components.Users](../../models/components/users.md)] | :heavy_check_mark: | The role of the authenticated user in the workspace. |
| `domains` | List[[components.Domains](../../models/components/domains.md)] | :heavy_check_mark: | The domains of the workspace. |
| `invite_code` | *Optional[str]* | :heavy_check_mark: | The invite code of the workspace. |
-| `logo` | *Optional[str]* | :heavy_minus_sign: | The logo of the workspace. |
\ No newline at end of file
+| `logo` | *Optional[str]* | :heavy_minus_sign: | The logo of the workspace. |
+| `beta_tester` | *Optional[bool]* | :heavy_minus_sign: | Whether the workspace is enrolled in the beta testing program. |
\ No newline at end of file
diff --git a/docs/models/operations/adddomainrequestbody.md b/docs/models/operations/adddomainrequestbody.md
index 17da714..e192301 100644
--- a/docs/models/operations/adddomainrequestbody.md
+++ b/docs/models/operations/adddomainrequestbody.md
@@ -10,4 +10,5 @@
| `target` | *Optional[str]* | :heavy_minus_sign: | The page your users will get redirected to when they visit your domain. | https://acme.com/landing |
| `expired_url` | *Optional[str]* | :heavy_minus_sign: | Redirect users to a specific URL when any link under this domain has expired. | https://acme.com/expired |
| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether to archive this domain. `false` will unarchive a previously archived domain. | false |
+| `noindex` | *Optional[bool]* | :heavy_minus_sign: | Prevent search engines from indexing the domain. Defaults to `false`. | |
| `placeholder` | *Optional[str]* | :heavy_minus_sign: | Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened. | https://dub.co/help/article/what-is-dub |
\ No newline at end of file
diff --git a/docs/models/operations/bulkcreatelinksgeo.md b/docs/models/operations/bulkcreatelinksgeo.md
deleted file mode 100644
index 067ef79..0000000
--- a/docs/models/operations/bulkcreatelinksgeo.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# BulkCreateLinksGeo
-
-Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`.
-
-
-## Fields
-
-| Field | Type | Required | Description |
-| ------------------ | ------------------ | ------------------ | ------------------ |
-| `af` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `al` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `as_` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ad` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ao` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ai` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `aq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ag` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ar` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `am` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `aw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `au` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `at` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `az` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bs` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `by` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `be` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ba` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `br` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `io` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ca` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ky` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `td` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cx` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `co` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `km` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ck` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ci` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `do` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ec` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `eg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `er` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ee` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `et` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ga` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ge` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `de` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ht` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `va` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `is_` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `in_` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ir` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `iq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ie` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `il` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `it` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `jm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `jp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `jo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ke` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ki` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `la` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ls` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ly` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `li` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `my` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ml` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `yt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mx` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `md` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ms` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ma` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `na` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `np` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ni` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ne` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ng` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `no` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `om` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ps` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pa` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `py` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pe` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ph` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `qa` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `re` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ro` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ru` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `rw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ws` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `st` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sa` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `si` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `so` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `za` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gs` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `es` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `se` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ch` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `th` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `to` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ug` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ua` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ae` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `us` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `um` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `uy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `uz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ve` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `wf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `eh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ye` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `zm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `zw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ax` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `im` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `je` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `me` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `rs` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sx` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ss` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `xk` | *Optional[str]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/createlinkrequestbody.md b/docs/models/operations/createlinkrequestbody.md
index 5711cdb..101efc9 100644
--- a/docs/models/operations/createlinkrequestbody.md
+++ b/docs/models/operations/createlinkrequestbody.md
@@ -10,11 +10,12 @@
| `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | |
| `external_id` | *Optional[str]* | :heavy_minus_sign: | This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter. | 123456 |
| `prefix` | *Optional[str]* | :heavy_minus_sign: | The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided. | |
+| `track_conversion` | *Optional[bool]* | :heavy_minus_sign: | Whether to track conversions for the short link. | |
| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. | |
| `public_stats` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link's stats are publicly accessible. | |
| ~~`tag_id`~~ | *Optional[str]* | :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` | [Optional[Union[str, List[str]]]](../../models/operations/tagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] |
-| `tag_names` | [Optional[Union[str, List[str]]]](../../models/operations/tagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | |
+| `tag_ids` | [Optional[operations.TagIds]](../../models/operations/tagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] |
+| `tag_names` | [Optional[operations.TagNames]](../../models/operations/tagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | |
| `comments` | *Optional[str]* | :heavy_minus_sign: | The comments for the short link. | |
| `expires_at` | *Optional[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | |
| `expired_url` | *Optional[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | |
@@ -26,4 +27,4 @@
| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. | |
| `ios` | *Optional[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | |
| `android` | *Optional[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | |
-| `geo` | [Optional[operations.Geo]](../../models/operations/geo.md) | :heavy_minus_sign: | Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. | |
\ No newline at end of file
+| `geo` | [Optional[components.LinkGeoTargeting]](../../models/components/linkgeotargeting.md) | :heavy_minus_sign: | Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. | |
\ No newline at end of file
diff --git a/docs/models/operations/getbrowsersbyclicksdeprecatedqueryparamcountry.md b/docs/models/operations/getbrowsersbyclicksdeprecatedqueryparamcountry.md
deleted file mode 100644
index 8ef9178..0000000
--- a/docs/models/operations/getbrowsersbyclicksdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetBrowsersByClicksDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getbrowsersbyclicksdeprecatedrequest.md b/docs/models/operations/getbrowsersbyclicksdeprecatedrequest.md
index 319b203..44f03cc 100644
--- a/docs/models/operations/getbrowsersbyclicksdeprecatedrequest.md
+++ b/docs/models/operations/getbrowsersbyclicksdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetBrowsersByClicksDeprecatedQueryParamInterval]](../../models/operations/getbrowsersbyclicksdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetBrowsersByClicksDeprecatedQueryParamCountry]](../../models/operations/getbrowsersbyclicksdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getbrowsersbyclicksqueryparamcountry.md b/docs/models/operations/getbrowsersbyclicksqueryparamcountry.md
deleted file mode 100644
index 3ba03c6..0000000
--- a/docs/models/operations/getbrowsersbyclicksqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetBrowsersByClicksQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getbrowsersbyclicksrequest.md b/docs/models/operations/getbrowsersbyclicksrequest.md
index 16b324c..1ee9d04 100644
--- a/docs/models/operations/getbrowsersbyclicksrequest.md
+++ b/docs/models/operations/getbrowsersbyclicksrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetBrowsersByClicksQueryParamInterval]](../../models/operations/getbrowsersbyclicksqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetBrowsersByClicksQueryParamCountry]](../../models/operations/getbrowsersbyclicksqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getcitiesbyclicksdeprecatedcountry.md b/docs/models/operations/getcitiesbyclicksdeprecatedcountry.md
deleted file mode 100644
index ec7a5ca..0000000
--- a/docs/models/operations/getcitiesbyclicksdeprecatedcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetCitiesByClicksDeprecatedCountry
-
-The 2-letter country code of the city: https://d.to/geo
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getcitiesbyclicksdeprecatedqueryparamcountry.md b/docs/models/operations/getcitiesbyclicksdeprecatedqueryparamcountry.md
deleted file mode 100644
index e327723..0000000
--- a/docs/models/operations/getcitiesbyclicksdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetCitiesByClicksDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getcitiesbyclicksdeprecatedrequest.md b/docs/models/operations/getcitiesbyclicksdeprecatedrequest.md
index b47dcba..1f67cd8 100644
--- a/docs/models/operations/getcitiesbyclicksdeprecatedrequest.md
+++ b/docs/models/operations/getcitiesbyclicksdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetCitiesByClicksDeprecatedQueryParamInterval]](../../models/operations/getcitiesbyclicksdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetCitiesByClicksDeprecatedQueryParamCountry]](../../models/operations/getcitiesbyclicksdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getcitiesbyclicksdeprecatedresponse.md b/docs/models/operations/getcitiesbyclicksdeprecatedresponse.md
index b6798b5..f4d3400 100644
--- a/docs/models/operations/getcitiesbyclicksdeprecatedresponse.md
+++ b/docs/models/operations/getcitiesbyclicksdeprecatedresponse.md
@@ -3,7 +3,7 @@
## Fields
-| Field | Type | Required | Description |
-| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
-| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
-| `response_bodies` | List[[operations.GetCitiesByClicksDeprecatedResponseBody](../../models/operations/getcitiesbyclicksdeprecatedresponsebody.md)] | :heavy_minus_sign: | The top cities by number of clicks |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `clicks_by_cities` | List[[components.ClicksByCities](../../models/components/clicksbycities.md)] | :heavy_minus_sign: | The top cities by number of clicks |
\ No newline at end of file
diff --git a/docs/models/operations/getcitiesbyclicksdeprecatedresponsebody.md b/docs/models/operations/getcitiesbyclicksdeprecatedresponsebody.md
deleted file mode 100644
index 13d9b3f..0000000
--- a/docs/models/operations/getcitiesbyclicksdeprecatedresponsebody.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# GetCitiesByClicksDeprecatedResponseBody
-
-
-## Fields
-
-| Field | Type | Required | Description |
-| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
-| `city` | *str* | :heavy_check_mark: | The name of the city |
-| `country` | [operations.GetCitiesByClicksDeprecatedCountry](../../models/operations/getcitiesbyclicksdeprecatedcountry.md) | :heavy_check_mark: | The 2-letter country code of the city: https://d.to/geo |
-| `clicks` | *float* | :heavy_check_mark: | The number of clicks from this city |
\ No newline at end of file
diff --git a/docs/models/operations/getcitiesbyclicksqueryparamcountry.md b/docs/models/operations/getcitiesbyclicksqueryparamcountry.md
deleted file mode 100644
index ecbf496..0000000
--- a/docs/models/operations/getcitiesbyclicksqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetCitiesByClicksQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getcitiesbyclicksrequest.md b/docs/models/operations/getcitiesbyclicksrequest.md
index ebd801c..376837c 100644
--- a/docs/models/operations/getcitiesbyclicksrequest.md
+++ b/docs/models/operations/getcitiesbyclicksrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetCitiesByClicksQueryParamInterval]](../../models/operations/getcitiesbyclicksqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetCitiesByClicksQueryParamCountry]](../../models/operations/getcitiesbyclicksqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getcitiesbyclicksresponse.md b/docs/models/operations/getcitiesbyclicksresponse.md
index 5fba0d6..95eeba7 100644
--- a/docs/models/operations/getcitiesbyclicksresponse.md
+++ b/docs/models/operations/getcitiesbyclicksresponse.md
@@ -3,7 +3,7 @@
## Fields
-| Field | Type | Required | Description |
-| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
-| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
-| `response_bodies` | List[[operations.GetCitiesByClicksResponseBody](../../models/operations/getcitiesbyclicksresponsebody.md)] | :heavy_minus_sign: | The top cities by number of clicks |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `clicks_by_cities` | List[[components.ClicksByCities](../../models/components/clicksbycities.md)] | :heavy_minus_sign: | The top cities by number of clicks |
\ No newline at end of file
diff --git a/docs/models/operations/getcitiesbyclicksresponsebody.md b/docs/models/operations/getcitiesbyclicksresponsebody.md
deleted file mode 100644
index f5968d3..0000000
--- a/docs/models/operations/getcitiesbyclicksresponsebody.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# GetCitiesByClicksResponseBody
-
-
-## Fields
-
-| Field | Type | Required | Description |
-| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
-| `city` | *str* | :heavy_check_mark: | The name of the city |
-| `country` | [operations.GetCitiesByClicksCountry](../../models/operations/getcitiesbyclickscountry.md) | :heavy_check_mark: | The 2-letter country code of the city: https://d.to/geo |
-| `clicks` | *float* | :heavy_check_mark: | The number of clicks from this city |
\ No newline at end of file
diff --git a/docs/models/operations/getclickscountdeprecatedqueryparamcountry.md b/docs/models/operations/getclickscountdeprecatedqueryparamcountry.md
deleted file mode 100644
index 7ebaf1c..0000000
--- a/docs/models/operations/getclickscountdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetClicksCountDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getclickscountdeprecatedrequest.md b/docs/models/operations/getclickscountdeprecatedrequest.md
index c7a2b6a..3be6d4f 100644
--- a/docs/models/operations/getclickscountdeprecatedrequest.md
+++ b/docs/models/operations/getclickscountdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetClicksCountDeprecatedQueryParamInterval]](../../models/operations/getclickscountdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetClicksCountDeprecatedQueryParamCountry]](../../models/operations/getclickscountdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getclickscountrequest.md b/docs/models/operations/getclickscountrequest.md
index 86e2f92..f5eecde 100644
--- a/docs/models/operations/getclickscountrequest.md
+++ b/docs/models/operations/getclickscountrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.Interval]](../../models/operations/interval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.Country]](../../models/operations/country.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getcountriesbyclickscountry.md b/docs/models/operations/getcountriesbyclickscountry.md
deleted file mode 100644
index 1f02edb..0000000
--- a/docs/models/operations/getcountriesbyclickscountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetCountriesByClicksCountry
-
-The 2-letter country code: https://d.to/geo
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getcountriesbyclicksdeprecatedcountry.md b/docs/models/operations/getcountriesbyclicksdeprecatedcountry.md
deleted file mode 100644
index c57bbe9..0000000
--- a/docs/models/operations/getcountriesbyclicksdeprecatedcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetCountriesByClicksDeprecatedCountry
-
-The 2-letter country code: https://d.to/geo
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getcountriesbyclicksdeprecatedqueryparamcountry.md b/docs/models/operations/getcountriesbyclicksdeprecatedqueryparamcountry.md
deleted file mode 100644
index 0825b14..0000000
--- a/docs/models/operations/getcountriesbyclicksdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetCountriesByClicksDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getcountriesbyclicksdeprecatedrequest.md b/docs/models/operations/getcountriesbyclicksdeprecatedrequest.md
index 50f46b9..a0bb6a7 100644
--- a/docs/models/operations/getcountriesbyclicksdeprecatedrequest.md
+++ b/docs/models/operations/getcountriesbyclicksdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetCountriesByClicksDeprecatedQueryParamInterval]](../../models/operations/getcountriesbyclicksdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetCountriesByClicksDeprecatedQueryParamCountry]](../../models/operations/getcountriesbyclicksdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getcountriesbyclicksdeprecatedresponse.md b/docs/models/operations/getcountriesbyclicksdeprecatedresponse.md
index 64f57fb..3b34541 100644
--- a/docs/models/operations/getcountriesbyclicksdeprecatedresponse.md
+++ b/docs/models/operations/getcountriesbyclicksdeprecatedresponse.md
@@ -3,7 +3,7 @@
## Fields
-| Field | Type | Required | Description |
-| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
-| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
-| `response_bodies` | List[[operations.GetCountriesByClicksDeprecatedResponseBody](../../models/operations/getcountriesbyclicksdeprecatedresponsebody.md)] | :heavy_minus_sign: | The top countries by number of clicks |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `clicks_by_countries` | List[[components.ClicksByCountry](../../models/components/clicksbycountry.md)] | :heavy_minus_sign: | The top countries by number of clicks |
\ No newline at end of file
diff --git a/docs/models/operations/getcountriesbyclicksdeprecatedresponsebody.md b/docs/models/operations/getcountriesbyclicksdeprecatedresponsebody.md
deleted file mode 100644
index cc1fa56..0000000
--- a/docs/models/operations/getcountriesbyclicksdeprecatedresponsebody.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# GetCountriesByClicksDeprecatedResponseBody
-
-
-## Fields
-
-| Field | Type | Required | Description |
-| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
-| `country` | [operations.GetCountriesByClicksDeprecatedCountry](../../models/operations/getcountriesbyclicksdeprecatedcountry.md) | :heavy_check_mark: | The 2-letter country code: https://d.to/geo |
-| `clicks` | *float* | :heavy_check_mark: | The number of clicks from this country |
\ No newline at end of file
diff --git a/docs/models/operations/getcountriesbyclicksqueryparamcountry.md b/docs/models/operations/getcountriesbyclicksqueryparamcountry.md
deleted file mode 100644
index 2d38043..0000000
--- a/docs/models/operations/getcountriesbyclicksqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetCountriesByClicksQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getcountriesbyclicksrequest.md b/docs/models/operations/getcountriesbyclicksrequest.md
index d98f1dc..4d22c1c 100644
--- a/docs/models/operations/getcountriesbyclicksrequest.md
+++ b/docs/models/operations/getcountriesbyclicksrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetCountriesByClicksQueryParamInterval]](../../models/operations/getcountriesbyclicksqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetCountriesByClicksQueryParamCountry]](../../models/operations/getcountriesbyclicksqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getcountriesbyclicksresponse.md b/docs/models/operations/getcountriesbyclicksresponse.md
index 625cd57..3907a2f 100644
--- a/docs/models/operations/getcountriesbyclicksresponse.md
+++ b/docs/models/operations/getcountriesbyclicksresponse.md
@@ -3,7 +3,7 @@
## Fields
-| Field | Type | Required | Description |
-| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
-| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
-| `response_bodies` | List[[operations.GetCountriesByClicksResponseBody](../../models/operations/getcountriesbyclicksresponsebody.md)] | :heavy_minus_sign: | The top countries by number of clicks |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `clicks_by_countries` | List[[components.ClicksByCountry](../../models/components/clicksbycountry.md)] | :heavy_minus_sign: | The top countries by number of clicks |
\ No newline at end of file
diff --git a/docs/models/operations/getcountriesbyclicksresponsebody.md b/docs/models/operations/getcountriesbyclicksresponsebody.md
deleted file mode 100644
index 053b934..0000000
--- a/docs/models/operations/getcountriesbyclicksresponsebody.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# GetCountriesByClicksResponseBody
-
-
-## Fields
-
-| Field | Type | Required | Description |
-| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
-| `country` | [operations.GetCountriesByClicksCountry](../../models/operations/getcountriesbyclickscountry.md) | :heavy_check_mark: | The 2-letter country code: https://d.to/geo |
-| `clicks` | *float* | :heavy_check_mark: | The number of clicks from this country |
\ No newline at end of file
diff --git a/docs/models/operations/getdevicesbyclicksdeprecatedqueryparamcountry.md b/docs/models/operations/getdevicesbyclicksdeprecatedqueryparamcountry.md
deleted file mode 100644
index 3ae2d34..0000000
--- a/docs/models/operations/getdevicesbyclicksdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetDevicesByClicksDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getdevicesbyclicksdeprecatedrequest.md b/docs/models/operations/getdevicesbyclicksdeprecatedrequest.md
index 748ef61..8e7974b 100644
--- a/docs/models/operations/getdevicesbyclicksdeprecatedrequest.md
+++ b/docs/models/operations/getdevicesbyclicksdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetDevicesByClicksDeprecatedQueryParamInterval]](../../models/operations/getdevicesbyclicksdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetDevicesByClicksDeprecatedQueryParamCountry]](../../models/operations/getdevicesbyclicksdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getdevicesbyclicksqueryparamcountry.md b/docs/models/operations/getdevicesbyclicksqueryparamcountry.md
deleted file mode 100644
index 2a13f84..0000000
--- a/docs/models/operations/getdevicesbyclicksqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetDevicesByClicksQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getdevicesbyclicksrequest.md b/docs/models/operations/getdevicesbyclicksrequest.md
index 4ed4d69..ecc8410 100644
--- a/docs/models/operations/getdevicesbyclicksrequest.md
+++ b/docs/models/operations/getdevicesbyclicksrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetDevicesByClicksQueryParamInterval]](../../models/operations/getdevicesbyclicksqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetDevicesByClicksQueryParamCountry]](../../models/operations/getdevicesbyclicksqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getlinkscountrequest.md b/docs/models/operations/getlinkscountrequest.md
index db6dc7f..60090fb 100644
--- a/docs/models/operations/getlinkscountrequest.md
+++ b/docs/models/operations/getlinkscountrequest.md
@@ -7,10 +7,10 @@
| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `domain` | *Optional[str]* | :heavy_minus_sign: | The domain to filter the links by. E.g. `ac.me`. If not provided, all links for the workspace will be returned. |
| `tag_id` | *Optional[str]* | :heavy_minus_sign: | The tag ID to filter the links by. This field is deprecated – use `tagIds` instead. |
-| `tag_ids` | [Optional[Union[str, List[str]]]](../../models/operations/getlinkscountqueryparamtagids.md) | :heavy_minus_sign: | The tag IDs to filter the links by. |
-| `tag_names` | [Optional[Union[str, List[str]]]](../../models/operations/getlinkscountqueryparamtagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). |
+| `tag_ids` | [Optional[operations.GetLinksCountQueryParamTagIds]](../../models/operations/getlinkscountqueryparamtagids.md) | :heavy_minus_sign: | The tag IDs to filter the links by. |
+| `tag_names` | [Optional[operations.GetLinksCountQueryParamTagNames]](../../models/operations/getlinkscountqueryparamtagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). |
| `search` | *Optional[str]* | :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` | *Optional[str]* | :heavy_minus_sign: | The user ID to filter the links by. |
| `show_archived` | *Optional[bool]* | :heavy_minus_sign: | Whether to include archived links in the response. Defaults to `false` if not provided. |
| `with_tags` | *Optional[bool]* | :heavy_minus_sign: | Whether to include tags in the response. Defaults to `false` if not provided. |
-| `group_by` | [Optional[Union[operations.One, operations.Two]]](../../models/operations/groupby.md) | :heavy_minus_sign: | The field to group the links by. |
\ No newline at end of file
+| `group_by` | [Optional[operations.GroupBy]](../../models/operations/groupby.md) | :heavy_minus_sign: | The field to group the links by. |
\ No newline at end of file
diff --git a/docs/models/operations/getlinksrequest.md b/docs/models/operations/getlinksrequest.md
index abf1543..4e1e358 100644
--- a/docs/models/operations/getlinksrequest.md
+++ b/docs/models/operations/getlinksrequest.md
@@ -7,8 +7,8 @@
| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `domain` | *Optional[str]* | :heavy_minus_sign: | The domain to filter the links by. E.g. `ac.me`. If not provided, all links for the workspace will be returned. |
| `tag_id` | *Optional[str]* | :heavy_minus_sign: | The tag ID to filter the links by. This field is deprecated – use `tagIds` instead. |
-| `tag_ids` | [Optional[Union[str, List[str]]]](../../models/operations/queryparamtagids.md) | :heavy_minus_sign: | The tag IDs to filter the links by. |
-| `tag_names` | [Optional[Union[str, List[str]]]](../../models/operations/queryparamtagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). |
+| `tag_ids` | [Optional[operations.QueryParamTagIds]](../../models/operations/queryparamtagids.md) | :heavy_minus_sign: | The tag IDs to filter the links by. |
+| `tag_names` | [Optional[operations.QueryParamTagNames]](../../models/operations/queryparamtagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). |
| `search` | *Optional[str]* | :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` | *Optional[str]* | :heavy_minus_sign: | The user ID to filter the links by. |
| `show_archived` | *Optional[bool]* | :heavy_minus_sign: | Whether to include archived links in the response. Defaults to `false` if not provided. |
diff --git a/docs/models/operations/getosbyclicksdeprecatedqueryparamcountry.md b/docs/models/operations/getosbyclicksdeprecatedqueryparamcountry.md
deleted file mode 100644
index f187cab..0000000
--- a/docs/models/operations/getosbyclicksdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetOSByClicksDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getosbyclicksdeprecatedrequest.md b/docs/models/operations/getosbyclicksdeprecatedrequest.md
index 4f067b8..b1982ff 100644
--- a/docs/models/operations/getosbyclicksdeprecatedrequest.md
+++ b/docs/models/operations/getosbyclicksdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetOSByClicksDeprecatedQueryParamInterval]](../../models/operations/getosbyclicksdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetOSByClicksDeprecatedQueryParamCountry]](../../models/operations/getosbyclicksdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getosbyclicksqueryparamcountry.md b/docs/models/operations/getosbyclicksqueryparamcountry.md
deleted file mode 100644
index 1709659..0000000
--- a/docs/models/operations/getosbyclicksqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetOSByClicksQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getosbyclicksrequest.md b/docs/models/operations/getosbyclicksrequest.md
index e488cb6..7407016 100644
--- a/docs/models/operations/getosbyclicksrequest.md
+++ b/docs/models/operations/getosbyclicksrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetOSByClicksQueryParamInterval]](../../models/operations/getosbyclicksqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetOSByClicksQueryParamCountry]](../../models/operations/getosbyclicksqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getreferersbyclicksdeprecatedqueryparamcountry.md b/docs/models/operations/getreferersbyclicksdeprecatedqueryparamcountry.md
deleted file mode 100644
index 7e64bfa..0000000
--- a/docs/models/operations/getreferersbyclicksdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetReferersByClicksDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getreferersbyclicksdeprecatedrequest.md b/docs/models/operations/getreferersbyclicksdeprecatedrequest.md
index a876f0c..f06d187 100644
--- a/docs/models/operations/getreferersbyclicksdeprecatedrequest.md
+++ b/docs/models/operations/getreferersbyclicksdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetReferersByClicksDeprecatedQueryParamInterval]](../../models/operations/getreferersbyclicksdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetReferersByClicksDeprecatedQueryParamCountry]](../../models/operations/getreferersbyclicksdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/getreferersbyclicksqueryparamcountry.md b/docs/models/operations/getreferersbyclicksqueryparamcountry.md
deleted file mode 100644
index 852b130..0000000
--- a/docs/models/operations/getreferersbyclicksqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetReferersByClicksQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/getreferersbyclicksrequest.md b/docs/models/operations/getreferersbyclicksrequest.md
index 8824007..e88c62a 100644
--- a/docs/models/operations/getreferersbyclicksrequest.md
+++ b/docs/models/operations/getreferersbyclicksrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetReferersByClicksQueryParamInterval]](../../models/operations/getreferersbyclicksqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetReferersByClicksQueryParamCountry]](../../models/operations/getreferersbyclicksqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/gettimeseriesbyclicksdeprecatedqueryparamcountry.md b/docs/models/operations/gettimeseriesbyclicksdeprecatedqueryparamcountry.md
deleted file mode 100644
index 7e0bb72..0000000
--- a/docs/models/operations/gettimeseriesbyclicksdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetTimeseriesByClicksDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/gettimeseriesbyclicksdeprecatedrequest.md b/docs/models/operations/gettimeseriesbyclicksdeprecatedrequest.md
index d59a68a..ed196b0 100644
--- a/docs/models/operations/gettimeseriesbyclicksdeprecatedrequest.md
+++ b/docs/models/operations/gettimeseriesbyclicksdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetTimeseriesByClicksDeprecatedQueryParamInterval]](../../models/operations/gettimeseriesbyclicksdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetTimeseriesByClicksDeprecatedQueryParamCountry]](../../models/operations/gettimeseriesbyclicksdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/gettimeseriesbyclicksrequest.md b/docs/models/operations/gettimeseriesbyclicksrequest.md
index fdcfd58..39a97ca 100644
--- a/docs/models/operations/gettimeseriesbyclicksrequest.md
+++ b/docs/models/operations/gettimeseriesbyclicksrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.QueryParamInterval]](../../models/operations/queryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.QueryParamCountry]](../../models/operations/queryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/gettoplinksbyclicksdeprecatedqueryparamcountry.md b/docs/models/operations/gettoplinksbyclicksdeprecatedqueryparamcountry.md
deleted file mode 100644
index 80ea4dd..0000000
--- a/docs/models/operations/gettoplinksbyclicksdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetTopLinksByClicksDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/gettoplinksbyclicksdeprecatedrequest.md b/docs/models/operations/gettoplinksbyclicksdeprecatedrequest.md
index 223888b..70fbbd8 100644
--- a/docs/models/operations/gettoplinksbyclicksdeprecatedrequest.md
+++ b/docs/models/operations/gettoplinksbyclicksdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetTopLinksByClicksDeprecatedQueryParamInterval]](../../models/operations/gettoplinksbyclicksdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetTopLinksByClicksDeprecatedQueryParamCountry]](../../models/operations/gettoplinksbyclicksdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/gettoplinksbyclicksqueryparamcountry.md b/docs/models/operations/gettoplinksbyclicksqueryparamcountry.md
deleted file mode 100644
index 832b066..0000000
--- a/docs/models/operations/gettoplinksbyclicksqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetTopLinksByClicksQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/gettoplinksbyclicksrequest.md b/docs/models/operations/gettoplinksbyclicksrequest.md
index 70cca15..8c5de89 100644
--- a/docs/models/operations/gettoplinksbyclicksrequest.md
+++ b/docs/models/operations/gettoplinksbyclicksrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetTopLinksByClicksQueryParamInterval]](../../models/operations/gettoplinksbyclicksqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetTopLinksByClicksQueryParamCountry]](../../models/operations/gettoplinksbyclicksqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/gettopurlsbyclicksdeprecatedqueryparamcountry.md b/docs/models/operations/gettopurlsbyclicksdeprecatedqueryparamcountry.md
deleted file mode 100644
index f9fe702..0000000
--- a/docs/models/operations/gettopurlsbyclicksdeprecatedqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetTopURLsByClicksDeprecatedQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/gettopurlsbyclicksdeprecatedrequest.md b/docs/models/operations/gettopurlsbyclicksdeprecatedrequest.md
index 4d79bd1..cd3b349 100644
--- a/docs/models/operations/gettopurlsbyclicksdeprecatedrequest.md
+++ b/docs/models/operations/gettopurlsbyclicksdeprecatedrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetTopURLsByClicksDeprecatedQueryParamInterval]](../../models/operations/gettopurlsbyclicksdeprecatedqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetTopURLsByClicksDeprecatedQueryParamCountry]](../../models/operations/gettopurlsbyclicksdeprecatedqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/gettopurlsbyclicksqueryparamcountry.md b/docs/models/operations/gettopurlsbyclicksqueryparamcountry.md
deleted file mode 100644
index 91d38c0..0000000
--- a/docs/models/operations/gettopurlsbyclicksqueryparamcountry.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# GetTopURLsByClicksQueryParamCountry
-
-The country to retrieve analytics for.
-
-
-## Values
-
-| Name | Value |
-| ----- | ----- |
-| `AF` | AF |
-| `AL` | AL |
-| `DZ` | DZ |
-| `AS` | AS |
-| `AD` | AD |
-| `AO` | AO |
-| `AI` | AI |
-| `AQ` | AQ |
-| `AG` | AG |
-| `AR` | AR |
-| `AM` | AM |
-| `AW` | AW |
-| `AU` | AU |
-| `AT` | AT |
-| `AZ` | AZ |
-| `BS` | BS |
-| `BH` | BH |
-| `BD` | BD |
-| `BB` | BB |
-| `BY` | BY |
-| `BE` | BE |
-| `BZ` | BZ |
-| `BJ` | BJ |
-| `BM` | BM |
-| `BT` | BT |
-| `BO` | BO |
-| `BA` | BA |
-| `BW` | BW |
-| `BV` | BV |
-| `BR` | BR |
-| `IO` | IO |
-| `BN` | BN |
-| `BG` | BG |
-| `BF` | BF |
-| `BI` | BI |
-| `KH` | KH |
-| `CM` | CM |
-| `CA` | CA |
-| `CV` | CV |
-| `KY` | KY |
-| `CF` | CF |
-| `TD` | TD |
-| `CL` | CL |
-| `CN` | CN |
-| `CX` | CX |
-| `CC` | CC |
-| `CO` | CO |
-| `KM` | KM |
-| `CG` | CG |
-| `CD` | CD |
-| `CK` | CK |
-| `CR` | CR |
-| `CI` | CI |
-| `HR` | HR |
-| `CU` | CU |
-| `CY` | CY |
-| `CZ` | CZ |
-| `DK` | DK |
-| `DJ` | DJ |
-| `DM` | DM |
-| `DO` | DO |
-| `EC` | EC |
-| `EG` | EG |
-| `SV` | SV |
-| `GQ` | GQ |
-| `ER` | ER |
-| `EE` | EE |
-| `ET` | ET |
-| `FK` | FK |
-| `FO` | FO |
-| `FJ` | FJ |
-| `FI` | FI |
-| `FR` | FR |
-| `GF` | GF |
-| `PF` | PF |
-| `TF` | TF |
-| `GA` | GA |
-| `GM` | GM |
-| `GE` | GE |
-| `DE` | DE |
-| `GH` | GH |
-| `GI` | GI |
-| `GR` | GR |
-| `GL` | GL |
-| `GD` | GD |
-| `GP` | GP |
-| `GU` | GU |
-| `GT` | GT |
-| `GN` | GN |
-| `GW` | GW |
-| `GY` | GY |
-| `HT` | HT |
-| `HM` | HM |
-| `VA` | VA |
-| `HN` | HN |
-| `HK` | HK |
-| `HU` | HU |
-| `IS` | IS |
-| `IN` | IN |
-| `ID` | ID |
-| `IR` | IR |
-| `IQ` | IQ |
-| `IE` | IE |
-| `IL` | IL |
-| `IT` | IT |
-| `JM` | JM |
-| `JP` | JP |
-| `JO` | JO |
-| `KZ` | KZ |
-| `KE` | KE |
-| `KI` | KI |
-| `KP` | KP |
-| `KR` | KR |
-| `KW` | KW |
-| `KG` | KG |
-| `LA` | LA |
-| `LV` | LV |
-| `LB` | LB |
-| `LS` | LS |
-| `LR` | LR |
-| `LY` | LY |
-| `LI` | LI |
-| `LT` | LT |
-| `LU` | LU |
-| `MO` | MO |
-| `MG` | MG |
-| `MW` | MW |
-| `MY` | MY |
-| `MV` | MV |
-| `ML` | ML |
-| `MT` | MT |
-| `MH` | MH |
-| `MQ` | MQ |
-| `MR` | MR |
-| `MU` | MU |
-| `YT` | YT |
-| `MX` | MX |
-| `FM` | FM |
-| `MD` | MD |
-| `MC` | MC |
-| `MN` | MN |
-| `MS` | MS |
-| `MA` | MA |
-| `MZ` | MZ |
-| `MM` | MM |
-| `NA` | NA |
-| `NR` | NR |
-| `NP` | NP |
-| `NL` | NL |
-| `NC` | NC |
-| `NZ` | NZ |
-| `NI` | NI |
-| `NE` | NE |
-| `NG` | NG |
-| `NU` | NU |
-| `NF` | NF |
-| `MK` | MK |
-| `MP` | MP |
-| `NO` | NO |
-| `OM` | OM |
-| `PK` | PK |
-| `PW` | PW |
-| `PS` | PS |
-| `PA` | PA |
-| `PG` | PG |
-| `PY` | PY |
-| `PE` | PE |
-| `PH` | PH |
-| `PN` | PN |
-| `PL` | PL |
-| `PT` | PT |
-| `PR` | PR |
-| `QA` | QA |
-| `RE` | RE |
-| `RO` | RO |
-| `RU` | RU |
-| `RW` | RW |
-| `SH` | SH |
-| `KN` | KN |
-| `LC` | LC |
-| `PM` | PM |
-| `VC` | VC |
-| `WS` | WS |
-| `SM` | SM |
-| `ST` | ST |
-| `SA` | SA |
-| `SN` | SN |
-| `SC` | SC |
-| `SL` | SL |
-| `SG` | SG |
-| `SK` | SK |
-| `SI` | SI |
-| `SB` | SB |
-| `SO` | SO |
-| `ZA` | ZA |
-| `GS` | GS |
-| `ES` | ES |
-| `LK` | LK |
-| `SD` | SD |
-| `SR` | SR |
-| `SJ` | SJ |
-| `SZ` | SZ |
-| `SE` | SE |
-| `CH` | CH |
-| `SY` | SY |
-| `TW` | TW |
-| `TJ` | TJ |
-| `TZ` | TZ |
-| `TH` | TH |
-| `TL` | TL |
-| `TG` | TG |
-| `TK` | TK |
-| `TO` | TO |
-| `TT` | TT |
-| `TN` | TN |
-| `TR` | TR |
-| `TM` | TM |
-| `TC` | TC |
-| `TV` | TV |
-| `UG` | UG |
-| `UA` | UA |
-| `AE` | AE |
-| `GB` | GB |
-| `US` | US |
-| `UM` | UM |
-| `UY` | UY |
-| `UZ` | UZ |
-| `VU` | VU |
-| `VE` | VE |
-| `VN` | VN |
-| `VG` | VG |
-| `VI` | VI |
-| `WF` | WF |
-| `EH` | EH |
-| `YE` | YE |
-| `ZM` | ZM |
-| `ZW` | ZW |
-| `AX` | AX |
-| `BQ` | BQ |
-| `CW` | CW |
-| `GG` | GG |
-| `IM` | IM |
-| `JE` | JE |
-| `ME` | ME |
-| `BL` | BL |
-| `MF` | MF |
-| `RS` | RS |
-| `SX` | SX |
-| `SS` | SS |
-| `XK` | XK |
\ No newline at end of file
diff --git a/docs/models/operations/gettopurlsbyclicksrequest.md b/docs/models/operations/gettopurlsbyclicksrequest.md
index c310fea..5623b5d 100644
--- a/docs/models/operations/gettopurlsbyclicksrequest.md
+++ b/docs/models/operations/gettopurlsbyclicksrequest.md
@@ -12,7 +12,7 @@
| `interval` | [Optional[operations.GetTopURLsByClicksQueryParamInterval]](../../models/operations/gettopurlsbyclicksqueryparaminterval.md) | :heavy_minus_sign: | The interval to retrieve analytics for. Takes precedence over start and end. If undefined, defaults to 24h. |
| `start` | *Optional[str]* | :heavy_minus_sign: | The start date and time when to retrieve analytics from. |
| `end` | *Optional[str]* | :heavy_minus_sign: | The end date and time when to retrieve analytics from. If not provided, defaults to the current date. |
-| `country` | [Optional[operations.GetTopURLsByClicksQueryParamCountry]](../../models/operations/gettopurlsbyclicksqueryparamcountry.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
+| `country` | [Optional[components.CountryCode]](../../models/components/countrycode.md) | :heavy_minus_sign: | The country to retrieve analytics for. |
| `city` | *Optional[str]* | :heavy_minus_sign: | The city to retrieve analytics for. |
| `device` | *Optional[str]* | :heavy_minus_sign: | The device to retrieve analytics for. |
| `browser` | *Optional[str]* | :heavy_minus_sign: | The browser to retrieve analytics for. |
diff --git a/docs/models/operations/paymentprocessor.md b/docs/models/operations/paymentprocessor.md
new file mode 100644
index 0000000..301ca7c
--- /dev/null
+++ b/docs/models/operations/paymentprocessor.md
@@ -0,0 +1,12 @@
+# PaymentProcessor
+
+The payment processor via which the sale was made.
+
+
+## Values
+
+| Name | Value |
+| --------- | --------- |
+| `STRIPE` | stripe |
+| `SHOPIFY` | shopify |
+| `PADDLE` | paddle |
\ No newline at end of file
diff --git a/docs/models/operations/requestbody.md b/docs/models/operations/requestbody.md
index 3c69a63..9ff6034 100644
--- a/docs/models/operations/requestbody.md
+++ b/docs/models/operations/requestbody.md
@@ -10,11 +10,12 @@
| `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | |
| `external_id` | *Optional[str]* | :heavy_minus_sign: | This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter. | 123456 |
| `prefix` | *Optional[str]* | :heavy_minus_sign: | The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided. | |
+| `track_conversion` | *Optional[bool]* | :heavy_minus_sign: | Whether to track conversions for the short link. | |
| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. | |
| `public_stats` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link's stats are publicly accessible. | |
| ~~`tag_id`~~ | *Optional[str]* | :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` | [Optional[Union[str, List[str]]]](../../models/operations/bulkcreatelinkstagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] |
-| `tag_names` | [Optional[Union[str, List[str]]]](../../models/operations/bulkcreatelinkstagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | |
+| `tag_ids` | [Optional[operations.BulkCreateLinksTagIds]](../../models/operations/bulkcreatelinkstagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] |
+| `tag_names` | [Optional[operations.BulkCreateLinksTagNames]](../../models/operations/bulkcreatelinkstagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | |
| `comments` | *Optional[str]* | :heavy_minus_sign: | The comments for the short link. | |
| `expires_at` | *Optional[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | |
| `expired_url` | *Optional[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | |
@@ -26,4 +27,4 @@
| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. | |
| `ios` | *Optional[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | |
| `android` | *Optional[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | |
-| `geo` | [Optional[operations.BulkCreateLinksGeo]](../../models/operations/bulkcreatelinksgeo.md) | :heavy_minus_sign: | Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. | |
\ No newline at end of file
+| `geo` | [Optional[components.LinkGeoTargeting]](../../models/components/linkgeotargeting.md) | :heavy_minus_sign: | Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. | |
\ No newline at end of file
diff --git a/docs/models/operations/trackcustomerrequestbody.md b/docs/models/operations/trackcustomerrequestbody.md
new file mode 100644
index 0000000..3bd41cc
--- /dev/null
+++ b/docs/models/operations/trackcustomerrequestbody.md
@@ -0,0 +1,11 @@
+# TrackCustomerRequestBody
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| `customer_id` | *str* | :heavy_check_mark: | This is the unique identifier for the customer in the client's app. This is used to track the customer's journey. |
+| `customer_name` | *Optional[str]* | :heavy_minus_sign: | Name of the customer in the client's app. |
+| `customer_email` | *Optional[str]* | :heavy_minus_sign: | Email of the customer in the client's app. |
+| `customer_avatar` | *Optional[str]* | :heavy_minus_sign: | Avatar of the customer in the client's app. |
\ No newline at end of file
diff --git a/docs/models/operations/trackcustomerresponse.md b/docs/models/operations/trackcustomerresponse.md
new file mode 100644
index 0000000..60c3526
--- /dev/null
+++ b/docs/models/operations/trackcustomerresponse.md
@@ -0,0 +1,9 @@
+# TrackCustomerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `object` | [Optional[operations.TrackCustomerResponseBody]](../../models/operations/trackcustomerresponsebody.md) | :heavy_minus_sign: | A customer was tracked. |
\ No newline at end of file
diff --git a/docs/models/operations/trackcustomerresponsebody.md b/docs/models/operations/trackcustomerresponsebody.md
new file mode 100644
index 0000000..fca00b3
--- /dev/null
+++ b/docs/models/operations/trackcustomerresponsebody.md
@@ -0,0 +1,13 @@
+# TrackCustomerResponseBody
+
+A customer was tracked.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `customer_id` | *str* | :heavy_check_mark: | N/A |
+| `customer_name` | *Optional[str]* | :heavy_check_mark: | N/A |
+| `customer_email` | *Optional[str]* | :heavy_check_mark: | N/A |
+| `customer_avatar` | *Optional[str]* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/trackleadrequestbody.md b/docs/models/operations/trackleadrequestbody.md
new file mode 100644
index 0000000..9fc1715
--- /dev/null
+++ b/docs/models/operations/trackleadrequestbody.md
@@ -0,0 +1,14 @@
+# TrackLeadRequestBody
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| `click_id` | *str* | :heavy_check_mark: | The ID of the click in th Dub. You can read this value from `dclid` cookie. | |
+| `event_name` | *str* | :heavy_check_mark: | The name of the event to track. | Signup |
+| `customer_id` | *str* | :heavy_check_mark: | This is the unique identifier for the customer in the client's app. This is used to track the customer's journey. | |
+| `customer_name` | *Optional[str]* | :heavy_minus_sign: | Name of the customer in the client's app. | |
+| `customer_email` | *Optional[str]* | :heavy_minus_sign: | Email of the customer in the client's app. | |
+| `customer_avatar` | *Optional[str]* | :heavy_minus_sign: | Avatar of the customer in the client's app. | |
+| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | Additional metadata to be stored with the lead event | |
\ No newline at end of file
diff --git a/docs/models/operations/trackleadresponse.md b/docs/models/operations/trackleadresponse.md
new file mode 100644
index 0000000..c0d7f89
--- /dev/null
+++ b/docs/models/operations/trackleadresponse.md
@@ -0,0 +1,9 @@
+# TrackLeadResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
+| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `object` | [Optional[operations.TrackLeadResponseBody]](../../models/operations/trackleadresponsebody.md) | :heavy_minus_sign: | A lead was tracked. |
\ No newline at end of file
diff --git a/docs/models/operations/trackleadresponsebody.md b/docs/models/operations/trackleadresponsebody.md
new file mode 100644
index 0000000..342c60d
--- /dev/null
+++ b/docs/models/operations/trackleadresponsebody.md
@@ -0,0 +1,16 @@
+# TrackLeadResponseBody
+
+A lead was tracked.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `click_id` | *str* | :heavy_check_mark: | N/A |
+| `event_name` | *str* | :heavy_check_mark: | N/A |
+| `customer_id` | *str* | :heavy_check_mark: | N/A |
+| `customer_name` | *Optional[str]* | :heavy_check_mark: | N/A |
+| `customer_email` | *Optional[str]* | :heavy_check_mark: | N/A |
+| `customer_avatar` | *Optional[str]* | :heavy_check_mark: | N/A |
+| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/tracksalerequestbody.md b/docs/models/operations/tracksalerequestbody.md
new file mode 100644
index 0000000..16bd576
--- /dev/null
+++ b/docs/models/operations/tracksalerequestbody.md
@@ -0,0 +1,13 @@
+# TrackSaleRequestBody
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| `customer_id` | *str* | :heavy_check_mark: | This is the unique identifier for the customer in the client's app. This is used to track the customer's journey. |
+| `amount` | *int* | :heavy_check_mark: | The amount of the sale. Should be passed in cents. |
+| `payment_processor` | [operations.PaymentProcessor](../../models/operations/paymentprocessor.md) | :heavy_check_mark: | The payment processor via which the sale was made. |
+| `invoice_id` | *Optional[str]* | :heavy_minus_sign: | The invoice ID of the sale. |
+| `currency` | *Optional[str]* | :heavy_minus_sign: | The currency of the sale. Accepts ISO 4217 currency codes. |
+| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | Additional metadata to be stored with the sale event. |
\ No newline at end of file
diff --git a/docs/models/operations/tracksaleresponse.md b/docs/models/operations/tracksaleresponse.md
new file mode 100644
index 0000000..aed69a1
--- /dev/null
+++ b/docs/models/operations/tracksaleresponse.md
@@ -0,0 +1,9 @@
+# TrackSaleResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
+| `http_meta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `object` | [Optional[operations.TrackSaleResponseBody]](../../models/operations/tracksaleresponsebody.md) | :heavy_minus_sign: | A sale was tracked. |
\ No newline at end of file
diff --git a/docs/models/operations/tracksaleresponsebody.md b/docs/models/operations/tracksaleresponsebody.md
new file mode 100644
index 0000000..ec916f4
--- /dev/null
+++ b/docs/models/operations/tracksaleresponsebody.md
@@ -0,0 +1,15 @@
+# TrackSaleResponseBody
+
+A sale was tracked.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------- | ------------------- | ------------------- | ------------------- |
+| `customer_id` | *str* | :heavy_check_mark: | N/A |
+| `amount` | *float* | :heavy_check_mark: | N/A |
+| `payment_processor` | *str* | :heavy_check_mark: | N/A |
+| `invoice_id` | *Optional[str]* | :heavy_check_mark: | N/A |
+| `currency` | *str* | :heavy_check_mark: | N/A |
+| `metadata` | Dict[str, *Any*] | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/updatedomainrequestbody.md b/docs/models/operations/updatedomainrequestbody.md
index 3d811fa..7077f51 100644
--- a/docs/models/operations/updatedomainrequestbody.md
+++ b/docs/models/operations/updatedomainrequestbody.md
@@ -10,4 +10,5 @@
| `target` | *Optional[str]* | :heavy_minus_sign: | The page your users will get redirected to when they visit your domain. | https://acme.com/landing |
| `expired_url` | *Optional[str]* | :heavy_minus_sign: | Redirect users to a specific URL when any link under this domain has expired. | https://acme.com/expired |
| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether to archive this domain. `false` will unarchive a previously archived domain. | false |
+| `noindex` | *Optional[bool]* | :heavy_minus_sign: | Prevent search engines from indexing the domain. Defaults to `false`. | |
| `placeholder` | *Optional[str]* | :heavy_minus_sign: | Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened. | https://dub.co/help/article/what-is-dub |
\ No newline at end of file
diff --git a/docs/models/operations/updatelinkgeo.md b/docs/models/operations/updatelinkgeo.md
deleted file mode 100644
index 8ce8161..0000000
--- a/docs/models/operations/updatelinkgeo.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# UpdateLinkGeo
-
-Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`.
-
-
-## Fields
-
-| Field | Type | Required | Description |
-| ------------------ | ------------------ | ------------------ | ------------------ |
-| `af` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `al` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `as_` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ad` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ao` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ai` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `aq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ag` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ar` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `am` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `aw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `au` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `at` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `az` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bs` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `by` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `be` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ba` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `br` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `io` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ca` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ky` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `td` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cx` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `co` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `km` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ck` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ci` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `do` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ec` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `eg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `er` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ee` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `et` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ga` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ge` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `de` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ht` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `va` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `is_` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `in_` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ir` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `iq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ie` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `il` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `it` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `jm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `jp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `jo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ke` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ki` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `la` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ls` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ly` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `li` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `my` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ml` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `yt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mx` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `md` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ms` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ma` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `na` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `np` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ni` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ne` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ng` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `no` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `om` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ps` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pa` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `py` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pe` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ph` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `qa` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `re` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ro` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ru` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `rw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ws` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `st` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sa` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `si` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `so` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `za` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gs` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `es` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `se` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ch` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `th` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `to` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ug` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ua` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ae` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `us` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `um` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `uy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `uz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ve` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `wf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `eh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ye` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `zm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `zw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ax` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `im` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `je` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `me` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `rs` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sx` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ss` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `xk` | *Optional[str]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/updatelinkrequestbody.md b/docs/models/operations/updatelinkrequestbody.md
index f5e65f0..1c7880a 100644
--- a/docs/models/operations/updatelinkrequestbody.md
+++ b/docs/models/operations/updatelinkrequestbody.md
@@ -10,11 +10,12 @@
| `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | |
| `external_id` | *Optional[str]* | :heavy_minus_sign: | This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter. | 123456 |
| `prefix` | *Optional[str]* | :heavy_minus_sign: | The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided. | |
+| `track_conversion` | *Optional[bool]* | :heavy_minus_sign: | Whether to track conversions for the short link. | |
| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. | |
| `public_stats` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link's stats are publicly accessible. | |
| ~~`tag_id`~~ | *Optional[str]* | :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` | [Optional[Union[str, List[str]]]](../../models/operations/updatelinktagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] |
-| `tag_names` | [Optional[Union[str, List[str]]]](../../models/operations/updatelinktagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | |
+| `tag_ids` | [Optional[operations.UpdateLinkTagIds]](../../models/operations/updatelinktagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] |
+| `tag_names` | [Optional[operations.UpdateLinkTagNames]](../../models/operations/updatelinktagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | |
| `comments` | *Optional[str]* | :heavy_minus_sign: | The comments for the short link. | |
| `expires_at` | *Optional[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | |
| `expired_url` | *Optional[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | |
@@ -26,4 +27,4 @@
| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. | |
| `ios` | *Optional[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | |
| `android` | *Optional[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | |
-| `geo` | [Optional[operations.UpdateLinkGeo]](../../models/operations/updatelinkgeo.md) | :heavy_minus_sign: | Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. | |
\ No newline at end of file
+| `geo` | [Optional[components.LinkGeoTargeting]](../../models/components/linkgeotargeting.md) | :heavy_minus_sign: | Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. | |
\ No newline at end of file
diff --git a/docs/models/operations/upsertlinkgeo.md b/docs/models/operations/upsertlinkgeo.md
deleted file mode 100644
index 1b61795..0000000
--- a/docs/models/operations/upsertlinkgeo.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# UpsertLinkGeo
-
-Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`.
-
-
-## Fields
-
-| Field | Type | Required | Description |
-| ------------------ | ------------------ | ------------------ | ------------------ |
-| `af` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `al` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `as_` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ad` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ao` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ai` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `aq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ag` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ar` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `am` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `aw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `au` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `at` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `az` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bs` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `by` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `be` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ba` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `br` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `io` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ca` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ky` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `td` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cx` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `co` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `km` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ck` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ci` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `dm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `do` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ec` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `eg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `er` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ee` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `et` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ga` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ge` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `de` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ht` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `va` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `hu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `is_` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `in_` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ir` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `iq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ie` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `il` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `it` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `jm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `jp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `jo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ke` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ki` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `la` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ls` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ly` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `li` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mo` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `my` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ml` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `yt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mx` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `fm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `md` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ms` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ma` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `na` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `np` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ni` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ne` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ng` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `nf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mp` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `no` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `om` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ps` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pa` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `py` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pe` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ph` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `qa` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `re` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ro` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ru` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `rw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `kn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `pm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ws` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `st` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sa` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `si` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `so` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `za` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gs` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `es` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `lk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sd` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `se` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ch` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tj` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `th` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tk` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `to` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tt` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tr` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tc` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `tv` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ug` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ua` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ae` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gb` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `us` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `um` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `uy` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `uz` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vu` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ve` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vn` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `vi` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `wf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `eh` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ye` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `zm` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `zw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ax` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bq` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `cw` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `gg` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `im` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `je` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `me` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `bl` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `mf` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `rs` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `sx` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `ss` | *Optional[str]* | :heavy_minus_sign: | N/A |
-| `xk` | *Optional[str]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/upsertlinkrequestbody.md b/docs/models/operations/upsertlinkrequestbody.md
index 614762e..9d3c657 100644
--- a/docs/models/operations/upsertlinkrequestbody.md
+++ b/docs/models/operations/upsertlinkrequestbody.md
@@ -10,11 +10,12 @@
| `key` | *Optional[str]* | :heavy_minus_sign: | The short link slug. If not provided, a random 7-character slug will be generated. | |
| `external_id` | *Optional[str]* | :heavy_minus_sign: | This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter. | 123456 |
| `prefix` | *Optional[str]* | :heavy_minus_sign: | The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided. | |
+| `track_conversion` | *Optional[bool]* | :heavy_minus_sign: | Whether to track conversions for the short link. | |
| `archived` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link is archived. | |
| `public_stats` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link's stats are publicly accessible. | |
| ~~`tag_id`~~ | *Optional[str]* | :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` | [Optional[Union[str, List[str]]]](../../models/operations/upsertlinktagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] |
-| `tag_names` | [Optional[Union[str, List[str]]]](../../models/operations/upsertlinktagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | |
+| `tag_ids` | [Optional[operations.UpsertLinkTagIds]](../../models/operations/upsertlinktagids.md) | :heavy_minus_sign: | The unique IDs of the tags assigned to the short link. | [
"clux0rgak00011..."
] |
+| `tag_names` | [Optional[operations.UpsertLinkTagNames]](../../models/operations/upsertlinktagnames.md) | :heavy_minus_sign: | The unique name of the tags assigned to the short link (case insensitive). | |
| `comments` | *Optional[str]* | :heavy_minus_sign: | The comments for the short link. | |
| `expires_at` | *Optional[str]* | :heavy_minus_sign: | The date and time when the short link will expire at. | |
| `expired_url` | *Optional[str]* | :heavy_minus_sign: | The URL to redirect to when the short link has expired. | |
@@ -26,4 +27,4 @@
| `rewrite` | *Optional[bool]* | :heavy_minus_sign: | Whether the short link uses link cloaking. | |
| `ios` | *Optional[str]* | :heavy_minus_sign: | The iOS destination URL for the short link for iOS device targeting. | |
| `android` | *Optional[str]* | :heavy_minus_sign: | The Android destination URL for the short link for Android device targeting. | |
-| `geo` | [Optional[operations.UpsertLinkGeo]](../../models/operations/upsertlinkgeo.md) | :heavy_minus_sign: | Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. | |
\ No newline at end of file
+| `geo` | [Optional[components.LinkGeoTargeting]](../../models/components/linkgeotargeting.md) | :heavy_minus_sign: | Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. | |
\ No newline at end of file
diff --git a/docs/sdks/analytics/README.md b/docs/sdks/analytics/README.md
index f5df995..fbfe3d1 100644
--- a/docs/sdks/analytics/README.md
+++ b/docs/sdks/analytics/README.md
@@ -82,7 +82,7 @@ s = dub.Dub(
res = s.analytics.country(request=operations.GetCountriesByClicksDeprecatedRequest())
-if res.response_bodies is not None:
+if res.clicks_by_countries is not None:
# handle response
pass
@@ -132,7 +132,7 @@ s = dub.Dub(
res = s.analytics.city(request=operations.GetCitiesByClicksDeprecatedRequest())
-if res.response_bodies is not None:
+if res.clicks_by_cities is not None:
# handle response
pass
diff --git a/docs/sdks/clicks/README.md b/docs/sdks/clicks/README.md
index 7b5ef3a..0a36cf1 100644
--- a/docs/sdks/clicks/README.md
+++ b/docs/sdks/clicks/README.md
@@ -128,7 +128,7 @@ s = dub.Dub(
res = s.analytics.clicks.countries(request=operations.GetCountriesByClicksRequest())
-if res.response_bodies is not None:
+if res.clicks_by_countries is not None:
# handle response
pass
@@ -176,7 +176,7 @@ s = dub.Dub(
res = s.analytics.clicks.cities(request=operations.GetCitiesByClicksRequest())
-if res.response_bodies is not None:
+if res.clicks_by_cities is not None:
# handle response
pass
diff --git a/docs/sdks/track/README.md b/docs/sdks/track/README.md
new file mode 100644
index 0000000..17d74ab
--- /dev/null
+++ b/docs/sdks/track/README.md
@@ -0,0 +1,162 @@
+# Track
+(*track*)
+
+### Available Operations
+
+* [lead](#lead) - Track a lead
+* [sale](#sale) - Track a sale
+* [customer](#customer) - Track a customer
+
+## lead
+
+Track a lead for a short link.
+
+### Example Usage
+
+```python
+import dub
+from dub.models import operations
+
+s = dub.Dub(
+ token="DUB_API_KEY",
+ workspace_id='',
+)
+
+res = s.track.lead(request=operations.TrackLeadRequestBody(
+ click_id='',
+ event_name='Signup',
+ customer_id='',
+))
+
+if res.object is not None:
+ # handle response
+ pass
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `request` | [operations.TrackLeadRequestBody](../../models/operations/trackleadrequestbody.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[operations.TrackLeadResponse](../../models/operations/trackleadresponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------- | -------------------------- | -------------------------- |
+| errors.BadRequest | 400 | application/json |
+| errors.Unauthorized | 401 | application/json |
+| errors.Forbidden | 403 | application/json |
+| errors.NotFound | 404 | application/json |
+| errors.Conflict | 409 | application/json |
+| errors.InviteExpired | 410 | application/json |
+| errors.UnprocessableEntity | 422 | application/json |
+| errors.RateLimitExceeded | 429 | application/json |
+| errors.InternalServerError | 500 | application/json |
+| errors.SDKError | 4xx-5xx | */* |
+
+## sale
+
+Track a sale for a short link.
+
+### Example Usage
+
+```python
+import dub
+from dub.models import operations
+
+s = dub.Dub(
+ token="DUB_API_KEY",
+ workspace_id='',
+)
+
+res = s.track.sale(request=operations.TrackSaleRequestBody(
+ customer_id='',
+ amount=996500,
+ payment_processor=operations.PaymentProcessor.SHOPIFY,
+))
+
+if res.object is not None:
+ # handle response
+ pass
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `request` | [operations.TrackSaleRequestBody](../../models/operations/tracksalerequestbody.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[operations.TrackSaleResponse](../../models/operations/tracksaleresponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------- | -------------------------- | -------------------------- |
+| errors.BadRequest | 400 | application/json |
+| errors.Unauthorized | 401 | application/json |
+| errors.Forbidden | 403 | application/json |
+| errors.NotFound | 404 | application/json |
+| errors.Conflict | 409 | application/json |
+| errors.InviteExpired | 410 | application/json |
+| errors.UnprocessableEntity | 422 | application/json |
+| errors.RateLimitExceeded | 429 | application/json |
+| errors.InternalServerError | 500 | application/json |
+| errors.SDKError | 4xx-5xx | */* |
+
+## customer
+
+Track a customer for an authenticated workspace.
+
+### Example Usage
+
+```python
+import dub
+from dub.models import operations
+
+s = dub.Dub(
+ token="DUB_API_KEY",
+ workspace_id='',
+)
+
+res = s.track.customer(request=operations.TrackCustomerRequestBody(
+ customer_id='',
+))
+
+if res.object is not None:
+ # handle response
+ pass
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
+| `request` | [operations.TrackCustomerRequestBody](../../models/operations/trackcustomerrequestbody.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[operations.TrackCustomerResponse](../../models/operations/trackcustomerresponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------- | -------------------------- | -------------------------- |
+| errors.BadRequest | 400 | application/json |
+| errors.Unauthorized | 401 | application/json |
+| errors.Forbidden | 403 | application/json |
+| errors.NotFound | 404 | application/json |
+| errors.Conflict | 409 | application/json |
+| errors.InviteExpired | 410 | application/json |
+| errors.UnprocessableEntity | 422 | application/json |
+| errors.RateLimitExceeded | 429 | application/json |
+| errors.InternalServerError | 500 | application/json |
+| errors.SDKError | 4xx-5xx | */* |
diff --git a/pylintrc b/pylintrc
index 79564cb..57cd73b 100644
--- a/pylintrc
+++ b/pylintrc
@@ -183,6 +183,7 @@ good-names=i,
e,
os,
qr,
+ id,
af,
al,
dz,
@@ -279,7 +280,6 @@ good-names=i,
hn,
hk,
hu,
- id,
ir,
iq,
ie,
diff --git a/setup.py b/setup.py
index 9835e45..34c2e0b 100644
--- a/setup.py
+++ b/setup.py
@@ -19,7 +19,7 @@
setuptools.setup(
name='dub',
- version='0.0.4',
+ version='0.0.5',
author='Speakeasy',
description='Python Client SDK Generated by Speakeasy',
url='https://github.com/dubinc/dub-python.git',
diff --git a/src/dub/analytics.py b/src/dub/analytics.py
index e02ce58..58aeacd 100644
--- a/src/dub/analytics.py
+++ b/src/dub/analytics.py
@@ -211,8 +211,8 @@ def country(self, request: operations.GetCountriesByClicksDeprecatedRequest) ->
if http_res.status_code == 200:
# pylint: disable=no-else-return
if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
- out = utils.unmarshal_json(http_res.text, Optional[List[operations.GetCountriesByClicksDeprecatedResponseBody]])
- res.response_bodies = out
+ out = utils.unmarshal_json(http_res.text, Optional[List[components.ClicksByCountry]])
+ res.clicks_by_countries = out
else:
content_type = http_res.headers.get('Content-Type')
raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
@@ -349,8 +349,8 @@ def city(self, request: operations.GetCitiesByClicksDeprecatedRequest) -> operat
if http_res.status_code == 200:
# pylint: disable=no-else-return
if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
- out = utils.unmarshal_json(http_res.text, Optional[List[operations.GetCitiesByClicksDeprecatedResponseBody]])
- res.response_bodies = out
+ out = utils.unmarshal_json(http_res.text, Optional[List[components.ClicksByCities]])
+ res.clicks_by_cities = out
else:
content_type = http_res.headers.get('Content-Type')
raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
diff --git a/src/dub/clicks.py b/src/dub/clicks.py
index 3093a45..a30ff40 100644
--- a/src/dub/clicks.py
+++ b/src/dub/clicks.py
@@ -337,8 +337,8 @@ def countries(self, request: operations.GetCountriesByClicksRequest) -> operatio
if http_res.status_code == 200:
# pylint: disable=no-else-return
if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
- out = utils.unmarshal_json(http_res.text, Optional[List[operations.GetCountriesByClicksResponseBody]])
- res.response_bodies = out
+ out = utils.unmarshal_json(http_res.text, Optional[List[components.ClicksByCountry]])
+ res.clicks_by_countries = out
else:
content_type = http_res.headers.get('Content-Type')
raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
@@ -473,8 +473,8 @@ def cities(self, request: operations.GetCitiesByClicksRequest) -> operations.Get
if http_res.status_code == 200:
# pylint: disable=no-else-return
if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
- out = utils.unmarshal_json(http_res.text, Optional[List[operations.GetCitiesByClicksResponseBody]])
- res.response_bodies = out
+ out = utils.unmarshal_json(http_res.text, Optional[List[components.ClicksByCities]])
+ res.clicks_by_cities = out
else:
content_type = http_res.headers.get('Content-Type')
raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
diff --git a/src/dub/models/components/__init__.py b/src/dub/models/components/__init__.py
index c62308b..6a54602 100644
--- a/src/dub/models/components/__init__.py
+++ b/src/dub/models/components/__init__.py
@@ -1,10 +1,14 @@
"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+from .clicksbycities import *
+from .clicksbycountry import *
+from .countrycode import *
from .domainschema import *
from .httpmetadata import *
+from .linkgeotargeting import *
from .linkschema import *
from .security import *
from .tagschema import *
from .workspaceschema import *
-__all__ = ["Color","DomainSchema","Domains","Geo","HTTPMetadata","LinkSchema","Plan","Role","Security","TagSchema","Type","Users","WorkspaceSchema"]
+__all__ = ["ClicksByCities","ClicksByCitiesCountry","ClicksByCountry","Color","Country","CountryCode","DomainSchema","Domains","Geo","HTTPMetadata","LinkGeoTargeting","LinkSchema","Plan","Role","Security","TagSchema","Type","Users","WorkspaceSchema"]
diff --git a/src/dub/models/components/clicksbycities.py b/src/dub/models/components/clicksbycities.py
new file mode 100644
index 0000000..226b38e
--- /dev/null
+++ b/src/dub/models/components/clicksbycities.py
@@ -0,0 +1,274 @@
+"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+
+from __future__ import annotations
+import dataclasses
+from dataclasses_json import Undefined, dataclass_json
+from dub import utils
+from enum import Enum
+
+
+class ClicksByCitiesCountry(str, Enum):
+ r"""The 2-letter country code of the city: https://d.to/geo"""
+ AF = 'AF'
+ AL = 'AL'
+ DZ = 'DZ'
+ AS = 'AS'
+ AD = 'AD'
+ AO = 'AO'
+ AI = 'AI'
+ AQ = 'AQ'
+ AG = 'AG'
+ AR = 'AR'
+ AM = 'AM'
+ AW = 'AW'
+ AU = 'AU'
+ AT = 'AT'
+ AZ = 'AZ'
+ BS = 'BS'
+ BH = 'BH'
+ BD = 'BD'
+ BB = 'BB'
+ BY = 'BY'
+ BE = 'BE'
+ BZ = 'BZ'
+ BJ = 'BJ'
+ BM = 'BM'
+ BT = 'BT'
+ BO = 'BO'
+ BA = 'BA'
+ BW = 'BW'
+ BV = 'BV'
+ BR = 'BR'
+ IO = 'IO'
+ BN = 'BN'
+ BG = 'BG'
+ BF = 'BF'
+ BI = 'BI'
+ KH = 'KH'
+ CM = 'CM'
+ CA = 'CA'
+ CV = 'CV'
+ KY = 'KY'
+ CF = 'CF'
+ TD = 'TD'
+ CL = 'CL'
+ CN = 'CN'
+ CX = 'CX'
+ CC = 'CC'
+ CO = 'CO'
+ KM = 'KM'
+ CG = 'CG'
+ CD = 'CD'
+ CK = 'CK'
+ CR = 'CR'
+ CI = 'CI'
+ HR = 'HR'
+ CU = 'CU'
+ CY = 'CY'
+ CZ = 'CZ'
+ DK = 'DK'
+ DJ = 'DJ'
+ DM = 'DM'
+ DO = 'DO'
+ EC = 'EC'
+ EG = 'EG'
+ SV = 'SV'
+ GQ = 'GQ'
+ ER = 'ER'
+ EE = 'EE'
+ ET = 'ET'
+ FK = 'FK'
+ FO = 'FO'
+ FJ = 'FJ'
+ FI = 'FI'
+ FR = 'FR'
+ GF = 'GF'
+ PF = 'PF'
+ TF = 'TF'
+ GA = 'GA'
+ GM = 'GM'
+ GE = 'GE'
+ DE = 'DE'
+ GH = 'GH'
+ GI = 'GI'
+ GR = 'GR'
+ GL = 'GL'
+ GD = 'GD'
+ GP = 'GP'
+ GU = 'GU'
+ GT = 'GT'
+ GN = 'GN'
+ GW = 'GW'
+ GY = 'GY'
+ HT = 'HT'
+ HM = 'HM'
+ VA = 'VA'
+ HN = 'HN'
+ HK = 'HK'
+ HU = 'HU'
+ IS = 'IS'
+ IN = 'IN'
+ ID = 'ID'
+ IR = 'IR'
+ IQ = 'IQ'
+ IE = 'IE'
+ IL = 'IL'
+ IT = 'IT'
+ JM = 'JM'
+ JP = 'JP'
+ JO = 'JO'
+ KZ = 'KZ'
+ KE = 'KE'
+ KI = 'KI'
+ KP = 'KP'
+ KR = 'KR'
+ KW = 'KW'
+ KG = 'KG'
+ LA = 'LA'
+ LV = 'LV'
+ LB = 'LB'
+ LS = 'LS'
+ LR = 'LR'
+ LY = 'LY'
+ LI = 'LI'
+ LT = 'LT'
+ LU = 'LU'
+ MO = 'MO'
+ MG = 'MG'
+ MW = 'MW'
+ MY = 'MY'
+ MV = 'MV'
+ ML = 'ML'
+ MT = 'MT'
+ MH = 'MH'
+ MQ = 'MQ'
+ MR = 'MR'
+ MU = 'MU'
+ YT = 'YT'
+ MX = 'MX'
+ FM = 'FM'
+ MD = 'MD'
+ MC = 'MC'
+ MN = 'MN'
+ MS = 'MS'
+ MA = 'MA'
+ MZ = 'MZ'
+ MM = 'MM'
+ NA = 'NA'
+ NR = 'NR'
+ NP = 'NP'
+ NL = 'NL'
+ NC = 'NC'
+ NZ = 'NZ'
+ NI = 'NI'
+ NE = 'NE'
+ NG = 'NG'
+ NU = 'NU'
+ NF = 'NF'
+ MK = 'MK'
+ MP = 'MP'
+ NO = 'NO'
+ OM = 'OM'
+ PK = 'PK'
+ PW = 'PW'
+ PS = 'PS'
+ PA = 'PA'
+ PG = 'PG'
+ PY = 'PY'
+ PE = 'PE'
+ PH = 'PH'
+ PN = 'PN'
+ PL = 'PL'
+ PT = 'PT'
+ PR = 'PR'
+ QA = 'QA'
+ RE = 'RE'
+ RO = 'RO'
+ RU = 'RU'
+ RW = 'RW'
+ SH = 'SH'
+ KN = 'KN'
+ LC = 'LC'
+ PM = 'PM'
+ VC = 'VC'
+ WS = 'WS'
+ SM = 'SM'
+ ST = 'ST'
+ SA = 'SA'
+ SN = 'SN'
+ SC = 'SC'
+ SL = 'SL'
+ SG = 'SG'
+ SK = 'SK'
+ SI = 'SI'
+ SB = 'SB'
+ SO = 'SO'
+ ZA = 'ZA'
+ GS = 'GS'
+ ES = 'ES'
+ LK = 'LK'
+ SD = 'SD'
+ SR = 'SR'
+ SJ = 'SJ'
+ SZ = 'SZ'
+ SE = 'SE'
+ CH = 'CH'
+ SY = 'SY'
+ TW = 'TW'
+ TJ = 'TJ'
+ TZ = 'TZ'
+ TH = 'TH'
+ TL = 'TL'
+ TG = 'TG'
+ TK = 'TK'
+ TO = 'TO'
+ TT = 'TT'
+ TN = 'TN'
+ TR = 'TR'
+ TM = 'TM'
+ TC = 'TC'
+ TV = 'TV'
+ UG = 'UG'
+ UA = 'UA'
+ AE = 'AE'
+ GB = 'GB'
+ US = 'US'
+ UM = 'UM'
+ UY = 'UY'
+ UZ = 'UZ'
+ VU = 'VU'
+ VE = 'VE'
+ VN = 'VN'
+ VG = 'VG'
+ VI = 'VI'
+ WF = 'WF'
+ EH = 'EH'
+ YE = 'YE'
+ ZM = 'ZM'
+ ZW = 'ZW'
+ AX = 'AX'
+ BQ = 'BQ'
+ CW = 'CW'
+ GG = 'GG'
+ IM = 'IM'
+ JE = 'JE'
+ ME = 'ME'
+ BL = 'BL'
+ MF = 'MF'
+ RS = 'RS'
+ SX = 'SX'
+ SS = 'SS'
+ XK = 'XK'
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ClicksByCities:
+ city: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('city') }})
+ r"""The name of the city"""
+ country: ClicksByCitiesCountry = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('country') }})
+ r"""The 2-letter country code of the city: https://d.to/geo"""
+ clicks: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clicks') }})
+ r"""The number of clicks from this city"""
+
+
diff --git a/src/dub/models/components/clicksbycountry.py b/src/dub/models/components/clicksbycountry.py
new file mode 100644
index 0000000..48f2bf1
--- /dev/null
+++ b/src/dub/models/components/clicksbycountry.py
@@ -0,0 +1,272 @@
+"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+
+from __future__ import annotations
+import dataclasses
+from dataclasses_json import Undefined, dataclass_json
+from dub import utils
+from enum import Enum
+
+
+class Country(str, Enum):
+ r"""The 2-letter country code: https://d.to/geo"""
+ AF = 'AF'
+ AL = 'AL'
+ DZ = 'DZ'
+ AS = 'AS'
+ AD = 'AD'
+ AO = 'AO'
+ AI = 'AI'
+ AQ = 'AQ'
+ AG = 'AG'
+ AR = 'AR'
+ AM = 'AM'
+ AW = 'AW'
+ AU = 'AU'
+ AT = 'AT'
+ AZ = 'AZ'
+ BS = 'BS'
+ BH = 'BH'
+ BD = 'BD'
+ BB = 'BB'
+ BY = 'BY'
+ BE = 'BE'
+ BZ = 'BZ'
+ BJ = 'BJ'
+ BM = 'BM'
+ BT = 'BT'
+ BO = 'BO'
+ BA = 'BA'
+ BW = 'BW'
+ BV = 'BV'
+ BR = 'BR'
+ IO = 'IO'
+ BN = 'BN'
+ BG = 'BG'
+ BF = 'BF'
+ BI = 'BI'
+ KH = 'KH'
+ CM = 'CM'
+ CA = 'CA'
+ CV = 'CV'
+ KY = 'KY'
+ CF = 'CF'
+ TD = 'TD'
+ CL = 'CL'
+ CN = 'CN'
+ CX = 'CX'
+ CC = 'CC'
+ CO = 'CO'
+ KM = 'KM'
+ CG = 'CG'
+ CD = 'CD'
+ CK = 'CK'
+ CR = 'CR'
+ CI = 'CI'
+ HR = 'HR'
+ CU = 'CU'
+ CY = 'CY'
+ CZ = 'CZ'
+ DK = 'DK'
+ DJ = 'DJ'
+ DM = 'DM'
+ DO = 'DO'
+ EC = 'EC'
+ EG = 'EG'
+ SV = 'SV'
+ GQ = 'GQ'
+ ER = 'ER'
+ EE = 'EE'
+ ET = 'ET'
+ FK = 'FK'
+ FO = 'FO'
+ FJ = 'FJ'
+ FI = 'FI'
+ FR = 'FR'
+ GF = 'GF'
+ PF = 'PF'
+ TF = 'TF'
+ GA = 'GA'
+ GM = 'GM'
+ GE = 'GE'
+ DE = 'DE'
+ GH = 'GH'
+ GI = 'GI'
+ GR = 'GR'
+ GL = 'GL'
+ GD = 'GD'
+ GP = 'GP'
+ GU = 'GU'
+ GT = 'GT'
+ GN = 'GN'
+ GW = 'GW'
+ GY = 'GY'
+ HT = 'HT'
+ HM = 'HM'
+ VA = 'VA'
+ HN = 'HN'
+ HK = 'HK'
+ HU = 'HU'
+ IS = 'IS'
+ IN = 'IN'
+ ID = 'ID'
+ IR = 'IR'
+ IQ = 'IQ'
+ IE = 'IE'
+ IL = 'IL'
+ IT = 'IT'
+ JM = 'JM'
+ JP = 'JP'
+ JO = 'JO'
+ KZ = 'KZ'
+ KE = 'KE'
+ KI = 'KI'
+ KP = 'KP'
+ KR = 'KR'
+ KW = 'KW'
+ KG = 'KG'
+ LA = 'LA'
+ LV = 'LV'
+ LB = 'LB'
+ LS = 'LS'
+ LR = 'LR'
+ LY = 'LY'
+ LI = 'LI'
+ LT = 'LT'
+ LU = 'LU'
+ MO = 'MO'
+ MG = 'MG'
+ MW = 'MW'
+ MY = 'MY'
+ MV = 'MV'
+ ML = 'ML'
+ MT = 'MT'
+ MH = 'MH'
+ MQ = 'MQ'
+ MR = 'MR'
+ MU = 'MU'
+ YT = 'YT'
+ MX = 'MX'
+ FM = 'FM'
+ MD = 'MD'
+ MC = 'MC'
+ MN = 'MN'
+ MS = 'MS'
+ MA = 'MA'
+ MZ = 'MZ'
+ MM = 'MM'
+ NA = 'NA'
+ NR = 'NR'
+ NP = 'NP'
+ NL = 'NL'
+ NC = 'NC'
+ NZ = 'NZ'
+ NI = 'NI'
+ NE = 'NE'
+ NG = 'NG'
+ NU = 'NU'
+ NF = 'NF'
+ MK = 'MK'
+ MP = 'MP'
+ NO = 'NO'
+ OM = 'OM'
+ PK = 'PK'
+ PW = 'PW'
+ PS = 'PS'
+ PA = 'PA'
+ PG = 'PG'
+ PY = 'PY'
+ PE = 'PE'
+ PH = 'PH'
+ PN = 'PN'
+ PL = 'PL'
+ PT = 'PT'
+ PR = 'PR'
+ QA = 'QA'
+ RE = 'RE'
+ RO = 'RO'
+ RU = 'RU'
+ RW = 'RW'
+ SH = 'SH'
+ KN = 'KN'
+ LC = 'LC'
+ PM = 'PM'
+ VC = 'VC'
+ WS = 'WS'
+ SM = 'SM'
+ ST = 'ST'
+ SA = 'SA'
+ SN = 'SN'
+ SC = 'SC'
+ SL = 'SL'
+ SG = 'SG'
+ SK = 'SK'
+ SI = 'SI'
+ SB = 'SB'
+ SO = 'SO'
+ ZA = 'ZA'
+ GS = 'GS'
+ ES = 'ES'
+ LK = 'LK'
+ SD = 'SD'
+ SR = 'SR'
+ SJ = 'SJ'
+ SZ = 'SZ'
+ SE = 'SE'
+ CH = 'CH'
+ SY = 'SY'
+ TW = 'TW'
+ TJ = 'TJ'
+ TZ = 'TZ'
+ TH = 'TH'
+ TL = 'TL'
+ TG = 'TG'
+ TK = 'TK'
+ TO = 'TO'
+ TT = 'TT'
+ TN = 'TN'
+ TR = 'TR'
+ TM = 'TM'
+ TC = 'TC'
+ TV = 'TV'
+ UG = 'UG'
+ UA = 'UA'
+ AE = 'AE'
+ GB = 'GB'
+ US = 'US'
+ UM = 'UM'
+ UY = 'UY'
+ UZ = 'UZ'
+ VU = 'VU'
+ VE = 'VE'
+ VN = 'VN'
+ VG = 'VG'
+ VI = 'VI'
+ WF = 'WF'
+ EH = 'EH'
+ YE = 'YE'
+ ZM = 'ZM'
+ ZW = 'ZW'
+ AX = 'AX'
+ BQ = 'BQ'
+ CW = 'CW'
+ GG = 'GG'
+ IM = 'IM'
+ JE = 'JE'
+ ME = 'ME'
+ BL = 'BL'
+ MF = 'MF'
+ RS = 'RS'
+ SX = 'SX'
+ SS = 'SS'
+ XK = 'XK'
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ClicksByCountry:
+ country: Country = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('country') }})
+ r"""The 2-letter country code: https://d.to/geo"""
+ clicks: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clicks') }})
+ r"""The number of clicks from this country"""
+
+
diff --git a/src/dub/models/components/countrycode.py b/src/dub/models/components/countrycode.py
new file mode 100644
index 0000000..6ecb1de
--- /dev/null
+++ b/src/dub/models/components/countrycode.py
@@ -0,0 +1,258 @@
+"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+
+from __future__ import annotations
+from enum import Enum
+
+
+class CountryCode(str, Enum):
+ r"""The country to retrieve analytics for."""
+ AF = 'AF'
+ AL = 'AL'
+ DZ = 'DZ'
+ AS = 'AS'
+ AD = 'AD'
+ AO = 'AO'
+ AI = 'AI'
+ AQ = 'AQ'
+ AG = 'AG'
+ AR = 'AR'
+ AM = 'AM'
+ AW = 'AW'
+ AU = 'AU'
+ AT = 'AT'
+ AZ = 'AZ'
+ BS = 'BS'
+ BH = 'BH'
+ BD = 'BD'
+ BB = 'BB'
+ BY = 'BY'
+ BE = 'BE'
+ BZ = 'BZ'
+ BJ = 'BJ'
+ BM = 'BM'
+ BT = 'BT'
+ BO = 'BO'
+ BA = 'BA'
+ BW = 'BW'
+ BV = 'BV'
+ BR = 'BR'
+ IO = 'IO'
+ BN = 'BN'
+ BG = 'BG'
+ BF = 'BF'
+ BI = 'BI'
+ KH = 'KH'
+ CM = 'CM'
+ CA = 'CA'
+ CV = 'CV'
+ KY = 'KY'
+ CF = 'CF'
+ TD = 'TD'
+ CL = 'CL'
+ CN = 'CN'
+ CX = 'CX'
+ CC = 'CC'
+ CO = 'CO'
+ KM = 'KM'
+ CG = 'CG'
+ CD = 'CD'
+ CK = 'CK'
+ CR = 'CR'
+ CI = 'CI'
+ HR = 'HR'
+ CU = 'CU'
+ CY = 'CY'
+ CZ = 'CZ'
+ DK = 'DK'
+ DJ = 'DJ'
+ DM = 'DM'
+ DO = 'DO'
+ EC = 'EC'
+ EG = 'EG'
+ SV = 'SV'
+ GQ = 'GQ'
+ ER = 'ER'
+ EE = 'EE'
+ ET = 'ET'
+ FK = 'FK'
+ FO = 'FO'
+ FJ = 'FJ'
+ FI = 'FI'
+ FR = 'FR'
+ GF = 'GF'
+ PF = 'PF'
+ TF = 'TF'
+ GA = 'GA'
+ GM = 'GM'
+ GE = 'GE'
+ DE = 'DE'
+ GH = 'GH'
+ GI = 'GI'
+ GR = 'GR'
+ GL = 'GL'
+ GD = 'GD'
+ GP = 'GP'
+ GU = 'GU'
+ GT = 'GT'
+ GN = 'GN'
+ GW = 'GW'
+ GY = 'GY'
+ HT = 'HT'
+ HM = 'HM'
+ VA = 'VA'
+ HN = 'HN'
+ HK = 'HK'
+ HU = 'HU'
+ IS = 'IS'
+ IN = 'IN'
+ ID = 'ID'
+ IR = 'IR'
+ IQ = 'IQ'
+ IE = 'IE'
+ IL = 'IL'
+ IT = 'IT'
+ JM = 'JM'
+ JP = 'JP'
+ JO = 'JO'
+ KZ = 'KZ'
+ KE = 'KE'
+ KI = 'KI'
+ KP = 'KP'
+ KR = 'KR'
+ KW = 'KW'
+ KG = 'KG'
+ LA = 'LA'
+ LV = 'LV'
+ LB = 'LB'
+ LS = 'LS'
+ LR = 'LR'
+ LY = 'LY'
+ LI = 'LI'
+ LT = 'LT'
+ LU = 'LU'
+ MO = 'MO'
+ MG = 'MG'
+ MW = 'MW'
+ MY = 'MY'
+ MV = 'MV'
+ ML = 'ML'
+ MT = 'MT'
+ MH = 'MH'
+ MQ = 'MQ'
+ MR = 'MR'
+ MU = 'MU'
+ YT = 'YT'
+ MX = 'MX'
+ FM = 'FM'
+ MD = 'MD'
+ MC = 'MC'
+ MN = 'MN'
+ MS = 'MS'
+ MA = 'MA'
+ MZ = 'MZ'
+ MM = 'MM'
+ NA = 'NA'
+ NR = 'NR'
+ NP = 'NP'
+ NL = 'NL'
+ NC = 'NC'
+ NZ = 'NZ'
+ NI = 'NI'
+ NE = 'NE'
+ NG = 'NG'
+ NU = 'NU'
+ NF = 'NF'
+ MK = 'MK'
+ MP = 'MP'
+ NO = 'NO'
+ OM = 'OM'
+ PK = 'PK'
+ PW = 'PW'
+ PS = 'PS'
+ PA = 'PA'
+ PG = 'PG'
+ PY = 'PY'
+ PE = 'PE'
+ PH = 'PH'
+ PN = 'PN'
+ PL = 'PL'
+ PT = 'PT'
+ PR = 'PR'
+ QA = 'QA'
+ RE = 'RE'
+ RO = 'RO'
+ RU = 'RU'
+ RW = 'RW'
+ SH = 'SH'
+ KN = 'KN'
+ LC = 'LC'
+ PM = 'PM'
+ VC = 'VC'
+ WS = 'WS'
+ SM = 'SM'
+ ST = 'ST'
+ SA = 'SA'
+ SN = 'SN'
+ SC = 'SC'
+ SL = 'SL'
+ SG = 'SG'
+ SK = 'SK'
+ SI = 'SI'
+ SB = 'SB'
+ SO = 'SO'
+ ZA = 'ZA'
+ GS = 'GS'
+ ES = 'ES'
+ LK = 'LK'
+ SD = 'SD'
+ SR = 'SR'
+ SJ = 'SJ'
+ SZ = 'SZ'
+ SE = 'SE'
+ CH = 'CH'
+ SY = 'SY'
+ TW = 'TW'
+ TJ = 'TJ'
+ TZ = 'TZ'
+ TH = 'TH'
+ TL = 'TL'
+ TG = 'TG'
+ TK = 'TK'
+ TO = 'TO'
+ TT = 'TT'
+ TN = 'TN'
+ TR = 'TR'
+ TM = 'TM'
+ TC = 'TC'
+ TV = 'TV'
+ UG = 'UG'
+ UA = 'UA'
+ AE = 'AE'
+ GB = 'GB'
+ US = 'US'
+ UM = 'UM'
+ UY = 'UY'
+ UZ = 'UZ'
+ VU = 'VU'
+ VE = 'VE'
+ VN = 'VN'
+ VG = 'VG'
+ VI = 'VI'
+ WF = 'WF'
+ EH = 'EH'
+ YE = 'YE'
+ ZM = 'ZM'
+ ZW = 'ZW'
+ AX = 'AX'
+ BQ = 'BQ'
+ CW = 'CW'
+ GG = 'GG'
+ IM = 'IM'
+ JE = 'JE'
+ ME = 'ME'
+ BL = 'BL'
+ MF = 'MF'
+ RS = 'RS'
+ SX = 'SX'
+ SS = 'SS'
+ XK = 'XK'
diff --git a/src/dub/models/components/domainschema.py b/src/dub/models/components/domainschema.py
index 606d2fb..043812d 100644
--- a/src/dub/models/components/domainschema.py
+++ b/src/dub/models/components/domainschema.py
@@ -33,6 +33,8 @@ class DomainSchema:
r"""Whether the domain is the primary domain for the workspace."""
archived: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('archived'), 'exclude': lambda f: f is None }})
r"""Whether the domain is archived."""
+ noindex: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('noindex'), 'exclude': lambda f: f is None }})
+ r"""Prevent search engines from indexing the domain."""
placeholder: Optional[str] = dataclasses.field(default='https://dub.co/help/article/what-is-dub', metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('placeholder'), 'exclude': lambda f: f is None }})
r"""Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened."""
clicks: Optional[float] = dataclasses.field(default=0, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clicks'), 'exclude': lambda f: f is None }})
diff --git a/src/dub/models/components/linkgeotargeting.py b/src/dub/models/components/linkgeotargeting.py
new file mode 100644
index 0000000..c03c446
--- /dev/null
+++ b/src/dub/models/components/linkgeotargeting.py
@@ -0,0 +1,265 @@
+"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+
+from __future__ import annotations
+import dataclasses
+from dataclasses_json import Undefined, dataclass_json
+from dub import utils
+from typing import Optional
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class LinkGeoTargeting:
+ r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."""
+ af: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AF'), 'exclude': lambda f: f is None }})
+ al: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AL'), 'exclude': lambda f: f is None }})
+ dz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DZ'), 'exclude': lambda f: f is None }})
+ as_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AS'), 'exclude': lambda f: f is None }})
+ ad: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AD'), 'exclude': lambda f: f is None }})
+ ao: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AO'), 'exclude': lambda f: f is None }})
+ ai: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AI'), 'exclude': lambda f: f is None }})
+ aq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AQ'), 'exclude': lambda f: f is None }})
+ ag: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AG'), 'exclude': lambda f: f is None }})
+ ar: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AR'), 'exclude': lambda f: f is None }})
+ am: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AM'), 'exclude': lambda f: f is None }})
+ aw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AW'), 'exclude': lambda f: f is None }})
+ au: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AU'), 'exclude': lambda f: f is None }})
+ at: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AT'), 'exclude': lambda f: f is None }})
+ az: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AZ'), 'exclude': lambda f: f is None }})
+ bs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BS'), 'exclude': lambda f: f is None }})
+ bh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BH'), 'exclude': lambda f: f is None }})
+ bd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BD'), 'exclude': lambda f: f is None }})
+ bb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BB'), 'exclude': lambda f: f is None }})
+ by: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BY'), 'exclude': lambda f: f is None }})
+ be: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BE'), 'exclude': lambda f: f is None }})
+ bz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BZ'), 'exclude': lambda f: f is None }})
+ bj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BJ'), 'exclude': lambda f: f is None }})
+ bm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BM'), 'exclude': lambda f: f is None }})
+ bt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BT'), 'exclude': lambda f: f is None }})
+ bo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BO'), 'exclude': lambda f: f is None }})
+ ba: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BA'), 'exclude': lambda f: f is None }})
+ bw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BW'), 'exclude': lambda f: f is None }})
+ bv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BV'), 'exclude': lambda f: f is None }})
+ br: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BR'), 'exclude': lambda f: f is None }})
+ io: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IO'), 'exclude': lambda f: f is None }})
+ bn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BN'), 'exclude': lambda f: f is None }})
+ bg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BG'), 'exclude': lambda f: f is None }})
+ bf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BF'), 'exclude': lambda f: f is None }})
+ bi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BI'), 'exclude': lambda f: f is None }})
+ kh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KH'), 'exclude': lambda f: f is None }})
+ cm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CM'), 'exclude': lambda f: f is None }})
+ ca: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CA'), 'exclude': lambda f: f is None }})
+ cv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CV'), 'exclude': lambda f: f is None }})
+ ky: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KY'), 'exclude': lambda f: f is None }})
+ cf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CF'), 'exclude': lambda f: f is None }})
+ td: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TD'), 'exclude': lambda f: f is None }})
+ cl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CL'), 'exclude': lambda f: f is None }})
+ cn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CN'), 'exclude': lambda f: f is None }})
+ cx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CX'), 'exclude': lambda f: f is None }})
+ cc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CC'), 'exclude': lambda f: f is None }})
+ co: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CO'), 'exclude': lambda f: f is None }})
+ km: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KM'), 'exclude': lambda f: f is None }})
+ cg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CG'), 'exclude': lambda f: f is None }})
+ cd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CD'), 'exclude': lambda f: f is None }})
+ ck: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CK'), 'exclude': lambda f: f is None }})
+ cr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CR'), 'exclude': lambda f: f is None }})
+ ci: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CI'), 'exclude': lambda f: f is None }})
+ hr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HR'), 'exclude': lambda f: f is None }})
+ cu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CU'), 'exclude': lambda f: f is None }})
+ cy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CY'), 'exclude': lambda f: f is None }})
+ cz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CZ'), 'exclude': lambda f: f is None }})
+ dk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DK'), 'exclude': lambda f: f is None }})
+ dj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DJ'), 'exclude': lambda f: f is None }})
+ dm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DM'), 'exclude': lambda f: f is None }})
+ do: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DO'), 'exclude': lambda f: f is None }})
+ ec: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EC'), 'exclude': lambda f: f is None }})
+ eg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EG'), 'exclude': lambda f: f is None }})
+ sv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SV'), 'exclude': lambda f: f is None }})
+ gq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GQ'), 'exclude': lambda f: f is None }})
+ er: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ER'), 'exclude': lambda f: f is None }})
+ ee: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EE'), 'exclude': lambda f: f is None }})
+ et: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ET'), 'exclude': lambda f: f is None }})
+ fk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FK'), 'exclude': lambda f: f is None }})
+ fo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FO'), 'exclude': lambda f: f is None }})
+ fj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FJ'), 'exclude': lambda f: f is None }})
+ fi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FI'), 'exclude': lambda f: f is None }})
+ fr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FR'), 'exclude': lambda f: f is None }})
+ gf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GF'), 'exclude': lambda f: f is None }})
+ pf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PF'), 'exclude': lambda f: f is None }})
+ tf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TF'), 'exclude': lambda f: f is None }})
+ ga: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GA'), 'exclude': lambda f: f is None }})
+ gm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GM'), 'exclude': lambda f: f is None }})
+ ge: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GE'), 'exclude': lambda f: f is None }})
+ de: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DE'), 'exclude': lambda f: f is None }})
+ gh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GH'), 'exclude': lambda f: f is None }})
+ gi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GI'), 'exclude': lambda f: f is None }})
+ gr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GR'), 'exclude': lambda f: f is None }})
+ gl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GL'), 'exclude': lambda f: f is None }})
+ gd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GD'), 'exclude': lambda f: f is None }})
+ gp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GP'), 'exclude': lambda f: f is None }})
+ gu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GU'), 'exclude': lambda f: f is None }})
+ gt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GT'), 'exclude': lambda f: f is None }})
+ gn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GN'), 'exclude': lambda f: f is None }})
+ gw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GW'), 'exclude': lambda f: f is None }})
+ gy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GY'), 'exclude': lambda f: f is None }})
+ ht: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HT'), 'exclude': lambda f: f is None }})
+ hm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HM'), 'exclude': lambda f: f is None }})
+ va: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VA'), 'exclude': lambda f: f is None }})
+ hn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HN'), 'exclude': lambda f: f is None }})
+ hk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HK'), 'exclude': lambda f: f is None }})
+ hu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HU'), 'exclude': lambda f: f is None }})
+ is_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IS'), 'exclude': lambda f: f is None }})
+ in_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IN'), 'exclude': lambda f: f is None }})
+ id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ID'), 'exclude': lambda f: f is None }})
+ ir: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IR'), 'exclude': lambda f: f is None }})
+ iq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IQ'), 'exclude': lambda f: f is None }})
+ ie: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IE'), 'exclude': lambda f: f is None }})
+ il: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IL'), 'exclude': lambda f: f is None }})
+ it: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IT'), 'exclude': lambda f: f is None }})
+ jm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JM'), 'exclude': lambda f: f is None }})
+ jp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JP'), 'exclude': lambda f: f is None }})
+ jo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JO'), 'exclude': lambda f: f is None }})
+ kz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KZ'), 'exclude': lambda f: f is None }})
+ ke: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KE'), 'exclude': lambda f: f is None }})
+ ki: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KI'), 'exclude': lambda f: f is None }})
+ kp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KP'), 'exclude': lambda f: f is None }})
+ kr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KR'), 'exclude': lambda f: f is None }})
+ kw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KW'), 'exclude': lambda f: f is None }})
+ kg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KG'), 'exclude': lambda f: f is None }})
+ la: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LA'), 'exclude': lambda f: f is None }})
+ lv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LV'), 'exclude': lambda f: f is None }})
+ lb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LB'), 'exclude': lambda f: f is None }})
+ ls: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LS'), 'exclude': lambda f: f is None }})
+ lr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LR'), 'exclude': lambda f: f is None }})
+ ly: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LY'), 'exclude': lambda f: f is None }})
+ li: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LI'), 'exclude': lambda f: f is None }})
+ lt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LT'), 'exclude': lambda f: f is None }})
+ lu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LU'), 'exclude': lambda f: f is None }})
+ mo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MO'), 'exclude': lambda f: f is None }})
+ mg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MG'), 'exclude': lambda f: f is None }})
+ mw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MW'), 'exclude': lambda f: f is None }})
+ my: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MY'), 'exclude': lambda f: f is None }})
+ mv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MV'), 'exclude': lambda f: f is None }})
+ ml: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ML'), 'exclude': lambda f: f is None }})
+ mt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MT'), 'exclude': lambda f: f is None }})
+ mh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MH'), 'exclude': lambda f: f is None }})
+ mq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MQ'), 'exclude': lambda f: f is None }})
+ mr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MR'), 'exclude': lambda f: f is None }})
+ mu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MU'), 'exclude': lambda f: f is None }})
+ yt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YT'), 'exclude': lambda f: f is None }})
+ mx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MX'), 'exclude': lambda f: f is None }})
+ fm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FM'), 'exclude': lambda f: f is None }})
+ md: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MD'), 'exclude': lambda f: f is None }})
+ mc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MC'), 'exclude': lambda f: f is None }})
+ mn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MN'), 'exclude': lambda f: f is None }})
+ ms: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MS'), 'exclude': lambda f: f is None }})
+ ma: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MA'), 'exclude': lambda f: f is None }})
+ mz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MZ'), 'exclude': lambda f: f is None }})
+ mm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MM'), 'exclude': lambda f: f is None }})
+ na: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NA'), 'exclude': lambda f: f is None }})
+ nr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NR'), 'exclude': lambda f: f is None }})
+ np: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NP'), 'exclude': lambda f: f is None }})
+ nl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NL'), 'exclude': lambda f: f is None }})
+ nc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NC'), 'exclude': lambda f: f is None }})
+ nz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NZ'), 'exclude': lambda f: f is None }})
+ ni: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NI'), 'exclude': lambda f: f is None }})
+ ne: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NE'), 'exclude': lambda f: f is None }})
+ ng: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NG'), 'exclude': lambda f: f is None }})
+ nu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NU'), 'exclude': lambda f: f is None }})
+ nf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NF'), 'exclude': lambda f: f is None }})
+ mk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MK'), 'exclude': lambda f: f is None }})
+ mp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MP'), 'exclude': lambda f: f is None }})
+ no: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NO'), 'exclude': lambda f: f is None }})
+ om: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('OM'), 'exclude': lambda f: f is None }})
+ pk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PK'), 'exclude': lambda f: f is None }})
+ pw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PW'), 'exclude': lambda f: f is None }})
+ ps: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PS'), 'exclude': lambda f: f is None }})
+ pa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PA'), 'exclude': lambda f: f is None }})
+ pg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PG'), 'exclude': lambda f: f is None }})
+ py: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PY'), 'exclude': lambda f: f is None }})
+ pe: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PE'), 'exclude': lambda f: f is None }})
+ ph: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PH'), 'exclude': lambda f: f is None }})
+ pn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PN'), 'exclude': lambda f: f is None }})
+ pl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PL'), 'exclude': lambda f: f is None }})
+ pt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PT'), 'exclude': lambda f: f is None }})
+ pr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PR'), 'exclude': lambda f: f is None }})
+ qa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('QA'), 'exclude': lambda f: f is None }})
+ re: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RE'), 'exclude': lambda f: f is None }})
+ ro: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RO'), 'exclude': lambda f: f is None }})
+ ru: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RU'), 'exclude': lambda f: f is None }})
+ rw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RW'), 'exclude': lambda f: f is None }})
+ sh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SH'), 'exclude': lambda f: f is None }})
+ kn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KN'), 'exclude': lambda f: f is None }})
+ lc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LC'), 'exclude': lambda f: f is None }})
+ pm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PM'), 'exclude': lambda f: f is None }})
+ vc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VC'), 'exclude': lambda f: f is None }})
+ ws: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WS'), 'exclude': lambda f: f is None }})
+ sm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SM'), 'exclude': lambda f: f is None }})
+ st: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ST'), 'exclude': lambda f: f is None }})
+ sa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SA'), 'exclude': lambda f: f is None }})
+ sn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SN'), 'exclude': lambda f: f is None }})
+ sc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SC'), 'exclude': lambda f: f is None }})
+ sl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SL'), 'exclude': lambda f: f is None }})
+ sg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SG'), 'exclude': lambda f: f is None }})
+ sk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SK'), 'exclude': lambda f: f is None }})
+ si: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SI'), 'exclude': lambda f: f is None }})
+ sb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SB'), 'exclude': lambda f: f is None }})
+ so: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SO'), 'exclude': lambda f: f is None }})
+ za: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZA'), 'exclude': lambda f: f is None }})
+ gs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GS'), 'exclude': lambda f: f is None }})
+ es: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ES'), 'exclude': lambda f: f is None }})
+ lk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LK'), 'exclude': lambda f: f is None }})
+ sd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SD'), 'exclude': lambda f: f is None }})
+ sr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SR'), 'exclude': lambda f: f is None }})
+ sj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SJ'), 'exclude': lambda f: f is None }})
+ sz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SZ'), 'exclude': lambda f: f is None }})
+ se: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SE'), 'exclude': lambda f: f is None }})
+ ch: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CH'), 'exclude': lambda f: f is None }})
+ sy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SY'), 'exclude': lambda f: f is None }})
+ tw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TW'), 'exclude': lambda f: f is None }})
+ tj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TJ'), 'exclude': lambda f: f is None }})
+ tz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TZ'), 'exclude': lambda f: f is None }})
+ th: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TH'), 'exclude': lambda f: f is None }})
+ tl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TL'), 'exclude': lambda f: f is None }})
+ tg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TG'), 'exclude': lambda f: f is None }})
+ tk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TK'), 'exclude': lambda f: f is None }})
+ to: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TO'), 'exclude': lambda f: f is None }})
+ tt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TT'), 'exclude': lambda f: f is None }})
+ tn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TN'), 'exclude': lambda f: f is None }})
+ tr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TR'), 'exclude': lambda f: f is None }})
+ tm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TM'), 'exclude': lambda f: f is None }})
+ tc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TC'), 'exclude': lambda f: f is None }})
+ tv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TV'), 'exclude': lambda f: f is None }})
+ ug: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UG'), 'exclude': lambda f: f is None }})
+ ua: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UA'), 'exclude': lambda f: f is None }})
+ ae: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AE'), 'exclude': lambda f: f is None }})
+ gb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GB'), 'exclude': lambda f: f is None }})
+ us: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('US'), 'exclude': lambda f: f is None }})
+ um: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UM'), 'exclude': lambda f: f is None }})
+ uy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UY'), 'exclude': lambda f: f is None }})
+ uz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UZ'), 'exclude': lambda f: f is None }})
+ vu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VU'), 'exclude': lambda f: f is None }})
+ ve: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VE'), 'exclude': lambda f: f is None }})
+ vn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VN'), 'exclude': lambda f: f is None }})
+ vg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VG'), 'exclude': lambda f: f is None }})
+ vi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VI'), 'exclude': lambda f: f is None }})
+ wf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WF'), 'exclude': lambda f: f is None }})
+ eh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EH'), 'exclude': lambda f: f is None }})
+ ye: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YE'), 'exclude': lambda f: f is None }})
+ zm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZM'), 'exclude': lambda f: f is None }})
+ zw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZW'), 'exclude': lambda f: f is None }})
+ ax: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AX'), 'exclude': lambda f: f is None }})
+ bq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BQ'), 'exclude': lambda f: f is None }})
+ cw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CW'), 'exclude': lambda f: f is None }})
+ gg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GG'), 'exclude': lambda f: f is None }})
+ im: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IM'), 'exclude': lambda f: f is None }})
+ je: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JE'), 'exclude': lambda f: f is None }})
+ me: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ME'), 'exclude': lambda f: f is None }})
+ bl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BL'), 'exclude': lambda f: f is None }})
+ mf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MF'), 'exclude': lambda f: f is None }})
+ rs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RS'), 'exclude': lambda f: f is None }})
+ sx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SX'), 'exclude': lambda f: f is None }})
+ ss: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SS'), 'exclude': lambda f: f is None }})
+ xk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('XK'), 'exclude': lambda f: f is None }})
+
+
diff --git a/src/dub/models/components/workspaceschema.py b/src/dub/models/components/workspaceschema.py
index 9d5519a..7e9b5b8 100644
--- a/src/dub/models/components/workspaceschema.py
+++ b/src/dub/models/components/workspaceschema.py
@@ -75,6 +75,8 @@ class WorkspaceSchema:
r"""The Stripe ID of the workspace."""
billing_cycle_start: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('billingCycleStart') }})
r"""The date and time when the billing cycle starts for the workspace."""
+ stripe_connect_id: Optional[str] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('stripeConnectId') }})
+ r"""[BETA]: The Stripe Connect ID of the workspace."""
created_at: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('createdAt') }})
r"""The date and time when the workspace was created."""
users: List[Users] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('users') }})
@@ -85,5 +87,7 @@ class WorkspaceSchema:
r"""The invite code of the workspace."""
logo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('logo'), 'exclude': lambda f: f is WorkspaceSchema.UNSET }})
r"""The logo of the workspace."""
+ beta_tester: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('betaTester'), 'exclude': lambda f: f is None }})
+ r"""Whether the workspace is enrolled in the beta testing program."""
diff --git a/src/dub/models/operations/__init__.py b/src/dub/models/operations/__init__.py
index 6b7542a..c471c2f 100644
--- a/src/dub/models/operations/__init__.py
+++ b/src/dub/models/operations/__init__.py
@@ -37,9 +37,12 @@
from .getworkspaces import *
from .listdomains import *
from .setprimarydomain import *
+from .trackcustomer import *
+from .tracklead import *
+from .tracksale import *
from .transferdomain import *
from .updatedomain import *
from .updatelink import *
from .upsertlink import *
-__all__ = ["AddDomainGlobals","AddDomainRequestBody","AddDomainResponse","BulkCreateLinksGeo","BulkCreateLinksGlobals","BulkCreateLinksResponse","Color","Country","CreateLinkGlobals","CreateLinkRequestBody","CreateLinkResponse","CreateTagGlobals","CreateTagRequestBody","CreateTagResponse","CreateWorkspaceRequestBody","CreateWorkspaceResponse","DeleteDomainGlobals","DeleteDomainRequest","DeleteDomainResponse","DeleteDomainResponseBody","DeleteLinkGlobals","DeleteLinkRequest","DeleteLinkResponse","DeleteLinkResponseBody","Geo","GetBrowsersByClicksDeprecatedGlobals","GetBrowsersByClicksDeprecatedQueryParamCountry","GetBrowsersByClicksDeprecatedQueryParamInterval","GetBrowsersByClicksDeprecatedRequest","GetBrowsersByClicksDeprecatedResponse","GetBrowsersByClicksDeprecatedResponseBody","GetBrowsersByClicksGlobals","GetBrowsersByClicksQueryParamCountry","GetBrowsersByClicksQueryParamInterval","GetBrowsersByClicksRequest","GetBrowsersByClicksResponse","GetBrowsersByClicksResponseBody","GetCitiesByClicksCountry","GetCitiesByClicksDeprecatedCountry","GetCitiesByClicksDeprecatedGlobals","GetCitiesByClicksDeprecatedQueryParamCountry","GetCitiesByClicksDeprecatedQueryParamInterval","GetCitiesByClicksDeprecatedRequest","GetCitiesByClicksDeprecatedResponse","GetCitiesByClicksDeprecatedResponseBody","GetCitiesByClicksGlobals","GetCitiesByClicksQueryParamCountry","GetCitiesByClicksQueryParamInterval","GetCitiesByClicksRequest","GetCitiesByClicksResponse","GetCitiesByClicksResponseBody","GetClicksCountDeprecatedGlobals","GetClicksCountDeprecatedQueryParamCountry","GetClicksCountDeprecatedQueryParamInterval","GetClicksCountDeprecatedRequest","GetClicksCountDeprecatedResponse","GetClicksCountGlobals","GetClicksCountRequest","GetClicksCountResponse","GetCountriesByClicksCountry","GetCountriesByClicksDeprecatedCountry","GetCountriesByClicksDeprecatedGlobals","GetCountriesByClicksDeprecatedQueryParamCountry","GetCountriesByClicksDeprecatedQueryParamInterval","GetCountriesByClicksDeprecatedRequest","GetCountriesByClicksDeprecatedResponse","GetCountriesByClicksDeprecatedResponseBody","GetCountriesByClicksGlobals","GetCountriesByClicksQueryParamCountry","GetCountriesByClicksQueryParamInterval","GetCountriesByClicksRequest","GetCountriesByClicksResponse","GetCountriesByClicksResponseBody","GetDevicesByClicksDeprecatedGlobals","GetDevicesByClicksDeprecatedQueryParamCountry","GetDevicesByClicksDeprecatedQueryParamInterval","GetDevicesByClicksDeprecatedRequest","GetDevicesByClicksDeprecatedResponse","GetDevicesByClicksDeprecatedResponseBody","GetDevicesByClicksGlobals","GetDevicesByClicksQueryParamCountry","GetDevicesByClicksQueryParamInterval","GetDevicesByClicksRequest","GetDevicesByClicksResponse","GetDevicesByClicksResponseBody","GetLinkInfoGlobals","GetLinkInfoRequest","GetLinkInfoResponse","GetLinksCountGlobals","GetLinksCountRequest","GetLinksCountResponse","GetLinksGlobals","GetLinksRequest","GetLinksResponse","GetMetatagsRequest","GetMetatagsResponse","GetMetatagsResponseBody","GetOSByClicksDeprecatedGlobals","GetOSByClicksDeprecatedQueryParamCountry","GetOSByClicksDeprecatedQueryParamInterval","GetOSByClicksDeprecatedRequest","GetOSByClicksDeprecatedResponse","GetOSByClicksDeprecatedResponseBody","GetOSByClicksGlobals","GetOSByClicksQueryParamCountry","GetOSByClicksQueryParamInterval","GetOSByClicksRequest","GetOSByClicksResponse","GetOSByClicksResponseBody","GetQRCodeRequest","GetQRCodeResponse","GetReferersByClicksDeprecatedGlobals","GetReferersByClicksDeprecatedQueryParamCountry","GetReferersByClicksDeprecatedQueryParamInterval","GetReferersByClicksDeprecatedRequest","GetReferersByClicksDeprecatedResponse","GetReferersByClicksDeprecatedResponseBody","GetReferersByClicksGlobals","GetReferersByClicksQueryParamCountry","GetReferersByClicksQueryParamInterval","GetReferersByClicksRequest","GetReferersByClicksResponse","GetReferersByClicksResponseBody","GetTagsGlobals","GetTagsRequest","GetTagsResponse","GetTimeseriesByClicksDeprecatedGlobals","GetTimeseriesByClicksDeprecatedQueryParamCountry","GetTimeseriesByClicksDeprecatedQueryParamInterval","GetTimeseriesByClicksDeprecatedRequest","GetTimeseriesByClicksDeprecatedResponse","GetTimeseriesByClicksDeprecatedResponseBody","GetTimeseriesByClicksGlobals","GetTimeseriesByClicksRequest","GetTimeseriesByClicksResponse","GetTopLinksByClicksDeprecatedGlobals","GetTopLinksByClicksDeprecatedQueryParamCountry","GetTopLinksByClicksDeprecatedQueryParamInterval","GetTopLinksByClicksDeprecatedRequest","GetTopLinksByClicksDeprecatedResponse","GetTopLinksByClicksDeprecatedResponseBody","GetTopLinksByClicksGlobals","GetTopLinksByClicksQueryParamCountry","GetTopLinksByClicksQueryParamInterval","GetTopLinksByClicksRequest","GetTopLinksByClicksResponse","GetTopLinksByClicksResponseBody","GetTopURLsByClicksDeprecatedGlobals","GetTopURLsByClicksDeprecatedQueryParamCountry","GetTopURLsByClicksDeprecatedQueryParamInterval","GetTopURLsByClicksDeprecatedRequest","GetTopURLsByClicksDeprecatedResponse","GetTopURLsByClicksDeprecatedResponseBody","GetTopURLsByClicksGlobals","GetTopURLsByClicksQueryParamCountry","GetTopURLsByClicksQueryParamInterval","GetTopURLsByClicksRequest","GetTopURLsByClicksResponse","GetTopURLsByClicksResponseBody","GetWorkspaceRequest","GetWorkspaceResponse","GetWorkspacesResponse","Interval","Level","ListDomainsGlobals","ListDomainsRequest","ListDomainsResponse","One","QueryParamCountry","QueryParamInterval","RequestBody","ResponseBody","SetPrimaryDomainGlobals","SetPrimaryDomainRequest","SetPrimaryDomainResponse","Sort","TransferDomainGlobals","TransferDomainRequest","TransferDomainRequestBody","TransferDomainResponse","Two","Type","UpdateDomainGlobals","UpdateDomainRequest","UpdateDomainRequestBody","UpdateDomainResponse","UpdateDomainType","UpdateLinkGeo","UpdateLinkGlobals","UpdateLinkRequest","UpdateLinkRequestBody","UpdateLinkResponse","UpsertLinkGeo","UpsertLinkGlobals","UpsertLinkRequestBody","UpsertLinkResponse"]
+__all__ = ["AddDomainGlobals","AddDomainRequestBody","AddDomainResponse","BulkCreateLinksGlobals","BulkCreateLinksResponse","BulkCreateLinksTagIds","BulkCreateLinksTagNames","Color","CreateLinkGlobals","CreateLinkRequestBody","CreateLinkResponse","CreateTagGlobals","CreateTagRequestBody","CreateTagResponse","CreateWorkspaceRequestBody","CreateWorkspaceResponse","DeleteDomainGlobals","DeleteDomainRequest","DeleteDomainResponse","DeleteDomainResponseBody","DeleteLinkGlobals","DeleteLinkRequest","DeleteLinkResponse","DeleteLinkResponseBody","GetBrowsersByClicksDeprecatedGlobals","GetBrowsersByClicksDeprecatedQueryParamInterval","GetBrowsersByClicksDeprecatedRequest","GetBrowsersByClicksDeprecatedResponse","GetBrowsersByClicksDeprecatedResponseBody","GetBrowsersByClicksGlobals","GetBrowsersByClicksQueryParamInterval","GetBrowsersByClicksRequest","GetBrowsersByClicksResponse","GetBrowsersByClicksResponseBody","GetCitiesByClicksDeprecatedGlobals","GetCitiesByClicksDeprecatedQueryParamInterval","GetCitiesByClicksDeprecatedRequest","GetCitiesByClicksDeprecatedResponse","GetCitiesByClicksGlobals","GetCitiesByClicksQueryParamInterval","GetCitiesByClicksRequest","GetCitiesByClicksResponse","GetClicksCountDeprecatedGlobals","GetClicksCountDeprecatedQueryParamInterval","GetClicksCountDeprecatedRequest","GetClicksCountDeprecatedResponse","GetClicksCountGlobals","GetClicksCountRequest","GetClicksCountResponse","GetCountriesByClicksDeprecatedGlobals","GetCountriesByClicksDeprecatedQueryParamInterval","GetCountriesByClicksDeprecatedRequest","GetCountriesByClicksDeprecatedResponse","GetCountriesByClicksGlobals","GetCountriesByClicksQueryParamInterval","GetCountriesByClicksRequest","GetCountriesByClicksResponse","GetDevicesByClicksDeprecatedGlobals","GetDevicesByClicksDeprecatedQueryParamInterval","GetDevicesByClicksDeprecatedRequest","GetDevicesByClicksDeprecatedResponse","GetDevicesByClicksDeprecatedResponseBody","GetDevicesByClicksGlobals","GetDevicesByClicksQueryParamInterval","GetDevicesByClicksRequest","GetDevicesByClicksResponse","GetDevicesByClicksResponseBody","GetLinkInfoGlobals","GetLinkInfoRequest","GetLinkInfoResponse","GetLinksCountGlobals","GetLinksCountQueryParamTagIds","GetLinksCountQueryParamTagNames","GetLinksCountRequest","GetLinksCountResponse","GetLinksGlobals","GetLinksRequest","GetLinksResponse","GetMetatagsRequest","GetMetatagsResponse","GetMetatagsResponseBody","GetOSByClicksDeprecatedGlobals","GetOSByClicksDeprecatedQueryParamInterval","GetOSByClicksDeprecatedRequest","GetOSByClicksDeprecatedResponse","GetOSByClicksDeprecatedResponseBody","GetOSByClicksGlobals","GetOSByClicksQueryParamInterval","GetOSByClicksRequest","GetOSByClicksResponse","GetOSByClicksResponseBody","GetQRCodeRequest","GetQRCodeResponse","GetReferersByClicksDeprecatedGlobals","GetReferersByClicksDeprecatedQueryParamInterval","GetReferersByClicksDeprecatedRequest","GetReferersByClicksDeprecatedResponse","GetReferersByClicksDeprecatedResponseBody","GetReferersByClicksGlobals","GetReferersByClicksQueryParamInterval","GetReferersByClicksRequest","GetReferersByClicksResponse","GetReferersByClicksResponseBody","GetTagsGlobals","GetTagsRequest","GetTagsResponse","GetTimeseriesByClicksDeprecatedGlobals","GetTimeseriesByClicksDeprecatedQueryParamInterval","GetTimeseriesByClicksDeprecatedRequest","GetTimeseriesByClicksDeprecatedResponse","GetTimeseriesByClicksDeprecatedResponseBody","GetTimeseriesByClicksGlobals","GetTimeseriesByClicksRequest","GetTimeseriesByClicksResponse","GetTopLinksByClicksDeprecatedGlobals","GetTopLinksByClicksDeprecatedQueryParamInterval","GetTopLinksByClicksDeprecatedRequest","GetTopLinksByClicksDeprecatedResponse","GetTopLinksByClicksDeprecatedResponseBody","GetTopLinksByClicksGlobals","GetTopLinksByClicksQueryParamInterval","GetTopLinksByClicksRequest","GetTopLinksByClicksResponse","GetTopLinksByClicksResponseBody","GetTopURLsByClicksDeprecatedGlobals","GetTopURLsByClicksDeprecatedQueryParamInterval","GetTopURLsByClicksDeprecatedRequest","GetTopURLsByClicksDeprecatedResponse","GetTopURLsByClicksDeprecatedResponseBody","GetTopURLsByClicksGlobals","GetTopURLsByClicksQueryParamInterval","GetTopURLsByClicksRequest","GetTopURLsByClicksResponse","GetTopURLsByClicksResponseBody","GetWorkspaceRequest","GetWorkspaceResponse","GetWorkspacesResponse","GroupBy","Interval","Level","ListDomainsGlobals","ListDomainsRequest","ListDomainsResponse","One","PaymentProcessor","QueryParamInterval","QueryParamTagIds","QueryParamTagNames","RequestBody","ResponseBody","SetPrimaryDomainGlobals","SetPrimaryDomainRequest","SetPrimaryDomainResponse","Sort","TagIds","TagNames","TrackCustomerRequestBody","TrackCustomerResponse","TrackCustomerResponseBody","TrackLeadRequestBody","TrackLeadResponse","TrackLeadResponseBody","TrackSaleRequestBody","TrackSaleResponse","TrackSaleResponseBody","TransferDomainGlobals","TransferDomainRequest","TransferDomainRequestBody","TransferDomainResponse","Two","Type","UpdateDomainGlobals","UpdateDomainRequest","UpdateDomainRequestBody","UpdateDomainResponse","UpdateDomainType","UpdateLinkGlobals","UpdateLinkRequest","UpdateLinkRequestBody","UpdateLinkResponse","UpdateLinkTagIds","UpdateLinkTagNames","UpsertLinkGlobals","UpsertLinkRequestBody","UpsertLinkResponse","UpsertLinkTagIds","UpsertLinkTagNames"]
diff --git a/src/dub/models/operations/adddomain.py b/src/dub/models/operations/adddomain.py
index c529b74..a25a121 100644
--- a/src/dub/models/operations/adddomain.py
+++ b/src/dub/models/operations/adddomain.py
@@ -39,6 +39,8 @@ class AddDomainRequestBody:
r"""Redirect users to a specific URL when any link under this domain has expired."""
archived: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('archived'), 'exclude': lambda f: f is None }})
r"""Whether to archive this domain. `false` will unarchive a previously archived domain."""
+ noindex: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('noindex'), 'exclude': lambda f: f is None }})
+ r"""Prevent search engines from indexing the domain. Defaults to `false`."""
placeholder: Optional[str] = dataclasses.field(default='https://dub.co/help/article/what-is-dub', metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('placeholder'), 'exclude': lambda f: f is AddDomainRequestBody.UNSET }})
r"""Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened."""
diff --git a/src/dub/models/operations/bulkcreatelinks.py b/src/dub/models/operations/bulkcreatelinks.py
index 52c1a12..cfd0463 100644
--- a/src/dub/models/operations/bulkcreatelinks.py
+++ b/src/dub/models/operations/bulkcreatelinks.py
@@ -3,6 +3,7 @@
from __future__ import annotations
import dataclasses
from ...models.components import httpmetadata as components_httpmetadata
+from ...models.components import linkgeotargeting as components_linkgeotargeting
from ...models.components import linkschema as components_linkschema
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -17,263 +18,9 @@ class BulkCreateLinksGlobals:
+BulkCreateLinksTagIds = Union[str, List[str]]
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class BulkCreateLinksGeo:
- r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."""
- af: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AF'), 'exclude': lambda f: f is None }})
- al: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AL'), 'exclude': lambda f: f is None }})
- dz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DZ'), 'exclude': lambda f: f is None }})
- as_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AS'), 'exclude': lambda f: f is None }})
- ad: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AD'), 'exclude': lambda f: f is None }})
- ao: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AO'), 'exclude': lambda f: f is None }})
- ai: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AI'), 'exclude': lambda f: f is None }})
- aq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AQ'), 'exclude': lambda f: f is None }})
- ag: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AG'), 'exclude': lambda f: f is None }})
- ar: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AR'), 'exclude': lambda f: f is None }})
- am: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AM'), 'exclude': lambda f: f is None }})
- aw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AW'), 'exclude': lambda f: f is None }})
- au: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AU'), 'exclude': lambda f: f is None }})
- at: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AT'), 'exclude': lambda f: f is None }})
- az: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AZ'), 'exclude': lambda f: f is None }})
- bs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BS'), 'exclude': lambda f: f is None }})
- bh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BH'), 'exclude': lambda f: f is None }})
- bd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BD'), 'exclude': lambda f: f is None }})
- bb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BB'), 'exclude': lambda f: f is None }})
- by: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BY'), 'exclude': lambda f: f is None }})
- be: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BE'), 'exclude': lambda f: f is None }})
- bz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BZ'), 'exclude': lambda f: f is None }})
- bj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BJ'), 'exclude': lambda f: f is None }})
- bm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BM'), 'exclude': lambda f: f is None }})
- bt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BT'), 'exclude': lambda f: f is None }})
- bo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BO'), 'exclude': lambda f: f is None }})
- ba: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BA'), 'exclude': lambda f: f is None }})
- bw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BW'), 'exclude': lambda f: f is None }})
- bv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BV'), 'exclude': lambda f: f is None }})
- br: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BR'), 'exclude': lambda f: f is None }})
- io: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IO'), 'exclude': lambda f: f is None }})
- bn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BN'), 'exclude': lambda f: f is None }})
- bg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BG'), 'exclude': lambda f: f is None }})
- bf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BF'), 'exclude': lambda f: f is None }})
- bi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BI'), 'exclude': lambda f: f is None }})
- kh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KH'), 'exclude': lambda f: f is None }})
- cm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CM'), 'exclude': lambda f: f is None }})
- ca: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CA'), 'exclude': lambda f: f is None }})
- cv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CV'), 'exclude': lambda f: f is None }})
- ky: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KY'), 'exclude': lambda f: f is None }})
- cf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CF'), 'exclude': lambda f: f is None }})
- td: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TD'), 'exclude': lambda f: f is None }})
- cl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CL'), 'exclude': lambda f: f is None }})
- cn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CN'), 'exclude': lambda f: f is None }})
- cx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CX'), 'exclude': lambda f: f is None }})
- cc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CC'), 'exclude': lambda f: f is None }})
- co: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CO'), 'exclude': lambda f: f is None }})
- km: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KM'), 'exclude': lambda f: f is None }})
- cg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CG'), 'exclude': lambda f: f is None }})
- cd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CD'), 'exclude': lambda f: f is None }})
- ck: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CK'), 'exclude': lambda f: f is None }})
- cr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CR'), 'exclude': lambda f: f is None }})
- ci: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CI'), 'exclude': lambda f: f is None }})
- hr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HR'), 'exclude': lambda f: f is None }})
- cu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CU'), 'exclude': lambda f: f is None }})
- cy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CY'), 'exclude': lambda f: f is None }})
- cz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CZ'), 'exclude': lambda f: f is None }})
- dk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DK'), 'exclude': lambda f: f is None }})
- dj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DJ'), 'exclude': lambda f: f is None }})
- dm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DM'), 'exclude': lambda f: f is None }})
- do: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DO'), 'exclude': lambda f: f is None }})
- ec: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EC'), 'exclude': lambda f: f is None }})
- eg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EG'), 'exclude': lambda f: f is None }})
- sv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SV'), 'exclude': lambda f: f is None }})
- gq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GQ'), 'exclude': lambda f: f is None }})
- er: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ER'), 'exclude': lambda f: f is None }})
- ee: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EE'), 'exclude': lambda f: f is None }})
- et: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ET'), 'exclude': lambda f: f is None }})
- fk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FK'), 'exclude': lambda f: f is None }})
- fo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FO'), 'exclude': lambda f: f is None }})
- fj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FJ'), 'exclude': lambda f: f is None }})
- fi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FI'), 'exclude': lambda f: f is None }})
- fr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FR'), 'exclude': lambda f: f is None }})
- gf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GF'), 'exclude': lambda f: f is None }})
- pf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PF'), 'exclude': lambda f: f is None }})
- tf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TF'), 'exclude': lambda f: f is None }})
- ga: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GA'), 'exclude': lambda f: f is None }})
- gm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GM'), 'exclude': lambda f: f is None }})
- ge: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GE'), 'exclude': lambda f: f is None }})
- de: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DE'), 'exclude': lambda f: f is None }})
- gh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GH'), 'exclude': lambda f: f is None }})
- gi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GI'), 'exclude': lambda f: f is None }})
- gr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GR'), 'exclude': lambda f: f is None }})
- gl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GL'), 'exclude': lambda f: f is None }})
- gd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GD'), 'exclude': lambda f: f is None }})
- gp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GP'), 'exclude': lambda f: f is None }})
- gu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GU'), 'exclude': lambda f: f is None }})
- gt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GT'), 'exclude': lambda f: f is None }})
- gn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GN'), 'exclude': lambda f: f is None }})
- gw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GW'), 'exclude': lambda f: f is None }})
- gy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GY'), 'exclude': lambda f: f is None }})
- ht: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HT'), 'exclude': lambda f: f is None }})
- hm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HM'), 'exclude': lambda f: f is None }})
- va: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VA'), 'exclude': lambda f: f is None }})
- hn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HN'), 'exclude': lambda f: f is None }})
- hk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HK'), 'exclude': lambda f: f is None }})
- hu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HU'), 'exclude': lambda f: f is None }})
- is_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IS'), 'exclude': lambda f: f is None }})
- in_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IN'), 'exclude': lambda f: f is None }})
- id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ID'), 'exclude': lambda f: f is None }})
- ir: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IR'), 'exclude': lambda f: f is None }})
- iq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IQ'), 'exclude': lambda f: f is None }})
- ie: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IE'), 'exclude': lambda f: f is None }})
- il: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IL'), 'exclude': lambda f: f is None }})
- it: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IT'), 'exclude': lambda f: f is None }})
- jm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JM'), 'exclude': lambda f: f is None }})
- jp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JP'), 'exclude': lambda f: f is None }})
- jo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JO'), 'exclude': lambda f: f is None }})
- kz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KZ'), 'exclude': lambda f: f is None }})
- ke: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KE'), 'exclude': lambda f: f is None }})
- ki: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KI'), 'exclude': lambda f: f is None }})
- kp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KP'), 'exclude': lambda f: f is None }})
- kr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KR'), 'exclude': lambda f: f is None }})
- kw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KW'), 'exclude': lambda f: f is None }})
- kg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KG'), 'exclude': lambda f: f is None }})
- la: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LA'), 'exclude': lambda f: f is None }})
- lv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LV'), 'exclude': lambda f: f is None }})
- lb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LB'), 'exclude': lambda f: f is None }})
- ls: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LS'), 'exclude': lambda f: f is None }})
- lr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LR'), 'exclude': lambda f: f is None }})
- ly: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LY'), 'exclude': lambda f: f is None }})
- li: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LI'), 'exclude': lambda f: f is None }})
- lt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LT'), 'exclude': lambda f: f is None }})
- lu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LU'), 'exclude': lambda f: f is None }})
- mo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MO'), 'exclude': lambda f: f is None }})
- mg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MG'), 'exclude': lambda f: f is None }})
- mw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MW'), 'exclude': lambda f: f is None }})
- my: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MY'), 'exclude': lambda f: f is None }})
- mv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MV'), 'exclude': lambda f: f is None }})
- ml: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ML'), 'exclude': lambda f: f is None }})
- mt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MT'), 'exclude': lambda f: f is None }})
- mh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MH'), 'exclude': lambda f: f is None }})
- mq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MQ'), 'exclude': lambda f: f is None }})
- mr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MR'), 'exclude': lambda f: f is None }})
- mu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MU'), 'exclude': lambda f: f is None }})
- yt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YT'), 'exclude': lambda f: f is None }})
- mx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MX'), 'exclude': lambda f: f is None }})
- fm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FM'), 'exclude': lambda f: f is None }})
- md: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MD'), 'exclude': lambda f: f is None }})
- mc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MC'), 'exclude': lambda f: f is None }})
- mn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MN'), 'exclude': lambda f: f is None }})
- ms: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MS'), 'exclude': lambda f: f is None }})
- ma: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MA'), 'exclude': lambda f: f is None }})
- mz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MZ'), 'exclude': lambda f: f is None }})
- mm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MM'), 'exclude': lambda f: f is None }})
- na: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NA'), 'exclude': lambda f: f is None }})
- nr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NR'), 'exclude': lambda f: f is None }})
- np: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NP'), 'exclude': lambda f: f is None }})
- nl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NL'), 'exclude': lambda f: f is None }})
- nc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NC'), 'exclude': lambda f: f is None }})
- nz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NZ'), 'exclude': lambda f: f is None }})
- ni: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NI'), 'exclude': lambda f: f is None }})
- ne: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NE'), 'exclude': lambda f: f is None }})
- ng: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NG'), 'exclude': lambda f: f is None }})
- nu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NU'), 'exclude': lambda f: f is None }})
- nf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NF'), 'exclude': lambda f: f is None }})
- mk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MK'), 'exclude': lambda f: f is None }})
- mp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MP'), 'exclude': lambda f: f is None }})
- no: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NO'), 'exclude': lambda f: f is None }})
- om: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('OM'), 'exclude': lambda f: f is None }})
- pk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PK'), 'exclude': lambda f: f is None }})
- pw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PW'), 'exclude': lambda f: f is None }})
- ps: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PS'), 'exclude': lambda f: f is None }})
- pa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PA'), 'exclude': lambda f: f is None }})
- pg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PG'), 'exclude': lambda f: f is None }})
- py: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PY'), 'exclude': lambda f: f is None }})
- pe: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PE'), 'exclude': lambda f: f is None }})
- ph: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PH'), 'exclude': lambda f: f is None }})
- pn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PN'), 'exclude': lambda f: f is None }})
- pl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PL'), 'exclude': lambda f: f is None }})
- pt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PT'), 'exclude': lambda f: f is None }})
- pr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PR'), 'exclude': lambda f: f is None }})
- qa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('QA'), 'exclude': lambda f: f is None }})
- re: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RE'), 'exclude': lambda f: f is None }})
- ro: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RO'), 'exclude': lambda f: f is None }})
- ru: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RU'), 'exclude': lambda f: f is None }})
- rw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RW'), 'exclude': lambda f: f is None }})
- sh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SH'), 'exclude': lambda f: f is None }})
- kn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KN'), 'exclude': lambda f: f is None }})
- lc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LC'), 'exclude': lambda f: f is None }})
- pm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PM'), 'exclude': lambda f: f is None }})
- vc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VC'), 'exclude': lambda f: f is None }})
- ws: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WS'), 'exclude': lambda f: f is None }})
- sm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SM'), 'exclude': lambda f: f is None }})
- st: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ST'), 'exclude': lambda f: f is None }})
- sa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SA'), 'exclude': lambda f: f is None }})
- sn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SN'), 'exclude': lambda f: f is None }})
- sc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SC'), 'exclude': lambda f: f is None }})
- sl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SL'), 'exclude': lambda f: f is None }})
- sg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SG'), 'exclude': lambda f: f is None }})
- sk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SK'), 'exclude': lambda f: f is None }})
- si: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SI'), 'exclude': lambda f: f is None }})
- sb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SB'), 'exclude': lambda f: f is None }})
- so: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SO'), 'exclude': lambda f: f is None }})
- za: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZA'), 'exclude': lambda f: f is None }})
- gs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GS'), 'exclude': lambda f: f is None }})
- es: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ES'), 'exclude': lambda f: f is None }})
- lk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LK'), 'exclude': lambda f: f is None }})
- sd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SD'), 'exclude': lambda f: f is None }})
- sr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SR'), 'exclude': lambda f: f is None }})
- sj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SJ'), 'exclude': lambda f: f is None }})
- sz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SZ'), 'exclude': lambda f: f is None }})
- se: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SE'), 'exclude': lambda f: f is None }})
- ch: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CH'), 'exclude': lambda f: f is None }})
- sy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SY'), 'exclude': lambda f: f is None }})
- tw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TW'), 'exclude': lambda f: f is None }})
- tj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TJ'), 'exclude': lambda f: f is None }})
- tz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TZ'), 'exclude': lambda f: f is None }})
- th: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TH'), 'exclude': lambda f: f is None }})
- tl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TL'), 'exclude': lambda f: f is None }})
- tg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TG'), 'exclude': lambda f: f is None }})
- tk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TK'), 'exclude': lambda f: f is None }})
- to: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TO'), 'exclude': lambda f: f is None }})
- tt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TT'), 'exclude': lambda f: f is None }})
- tn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TN'), 'exclude': lambda f: f is None }})
- tr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TR'), 'exclude': lambda f: f is None }})
- tm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TM'), 'exclude': lambda f: f is None }})
- tc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TC'), 'exclude': lambda f: f is None }})
- tv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TV'), 'exclude': lambda f: f is None }})
- ug: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UG'), 'exclude': lambda f: f is None }})
- ua: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UA'), 'exclude': lambda f: f is None }})
- ae: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AE'), 'exclude': lambda f: f is None }})
- gb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GB'), 'exclude': lambda f: f is None }})
- us: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('US'), 'exclude': lambda f: f is None }})
- um: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UM'), 'exclude': lambda f: f is None }})
- uy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UY'), 'exclude': lambda f: f is None }})
- uz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UZ'), 'exclude': lambda f: f is None }})
- vu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VU'), 'exclude': lambda f: f is None }})
- ve: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VE'), 'exclude': lambda f: f is None }})
- vn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VN'), 'exclude': lambda f: f is None }})
- vg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VG'), 'exclude': lambda f: f is None }})
- vi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VI'), 'exclude': lambda f: f is None }})
- wf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WF'), 'exclude': lambda f: f is None }})
- eh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EH'), 'exclude': lambda f: f is None }})
- ye: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YE'), 'exclude': lambda f: f is None }})
- zm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZM'), 'exclude': lambda f: f is None }})
- zw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZW'), 'exclude': lambda f: f is None }})
- ax: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AX'), 'exclude': lambda f: f is None }})
- bq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BQ'), 'exclude': lambda f: f is None }})
- cw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CW'), 'exclude': lambda f: f is None }})
- gg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GG'), 'exclude': lambda f: f is None }})
- im: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IM'), 'exclude': lambda f: f is None }})
- je: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JE'), 'exclude': lambda f: f is None }})
- me: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ME'), 'exclude': lambda f: f is None }})
- bl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BL'), 'exclude': lambda f: f is None }})
- mf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MF'), 'exclude': lambda f: f is None }})
- rs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RS'), 'exclude': lambda f: f is None }})
- sx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SX'), 'exclude': lambda f: f is None }})
- ss: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SS'), 'exclude': lambda f: f is None }})
- xk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('XK'), 'exclude': lambda f: f is None }})
-
-
+BulkCreateLinksTagNames = Union[str, List[str]]
@dataclass_json(undefined=Undefined.EXCLUDE)
@@ -290,6 +37,8 @@ class RequestBody:
r"""This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter."""
prefix: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('prefix'), 'exclude': lambda f: f is None }})
r"""The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided."""
+ track_conversion: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('trackConversion'), 'exclude': lambda f: f is None }})
+ r"""Whether to track conversions for the short link."""
archived: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('archived'), 'exclude': lambda f: f is None }})
r"""Whether the short link is archived."""
public_stats: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('publicStats'), 'exclude': lambda f: f is None }})
@@ -299,9 +48,9 @@ class RequestBody:
Deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
"""
- tag_ids: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagIds'), 'exclude': lambda f: f is None }})
+ tag_ids: Optional[BulkCreateLinksTagIds] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagIds'), 'exclude': lambda f: f is None }})
r"""The unique IDs of the tags assigned to the short link."""
- tag_names: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagNames'), 'exclude': lambda f: f is None }})
+ tag_names: Optional[BulkCreateLinksTagNames] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagNames'), 'exclude': lambda f: f is None }})
r"""The unique name of the tags assigned to the short link (case insensitive)."""
comments: Optional[str] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('comments'), 'exclude': lambda f: f is RequestBody.UNSET }})
r"""The comments for the short link."""
@@ -325,7 +74,7 @@ class RequestBody:
r"""The iOS destination URL for the short link for iOS device targeting."""
android: Optional[str] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('android'), 'exclude': lambda f: f is RequestBody.UNSET }})
r"""The Android destination URL for the short link for Android device targeting."""
- geo: Optional[BulkCreateLinksGeo] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('geo'), 'exclude': lambda f: f is RequestBody.UNSET }})
+ geo: Optional[components_linkgeotargeting.LinkGeoTargeting] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('geo'), 'exclude': lambda f: f is RequestBody.UNSET }})
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."""
diff --git a/src/dub/models/operations/createlink.py b/src/dub/models/operations/createlink.py
index c243d74..c3c273f 100644
--- a/src/dub/models/operations/createlink.py
+++ b/src/dub/models/operations/createlink.py
@@ -3,6 +3,7 @@
from __future__ import annotations
import dataclasses
from ...models.components import httpmetadata as components_httpmetadata
+from ...models.components import linkgeotargeting as components_linkgeotargeting
from ...models.components import linkschema as components_linkschema
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -17,263 +18,9 @@ class CreateLinkGlobals:
+TagIds = Union[str, List[str]]
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class Geo:
- r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."""
- af: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AF'), 'exclude': lambda f: f is None }})
- al: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AL'), 'exclude': lambda f: f is None }})
- dz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DZ'), 'exclude': lambda f: f is None }})
- as_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AS'), 'exclude': lambda f: f is None }})
- ad: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AD'), 'exclude': lambda f: f is None }})
- ao: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AO'), 'exclude': lambda f: f is None }})
- ai: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AI'), 'exclude': lambda f: f is None }})
- aq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AQ'), 'exclude': lambda f: f is None }})
- ag: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AG'), 'exclude': lambda f: f is None }})
- ar: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AR'), 'exclude': lambda f: f is None }})
- am: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AM'), 'exclude': lambda f: f is None }})
- aw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AW'), 'exclude': lambda f: f is None }})
- au: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AU'), 'exclude': lambda f: f is None }})
- at: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AT'), 'exclude': lambda f: f is None }})
- az: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AZ'), 'exclude': lambda f: f is None }})
- bs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BS'), 'exclude': lambda f: f is None }})
- bh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BH'), 'exclude': lambda f: f is None }})
- bd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BD'), 'exclude': lambda f: f is None }})
- bb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BB'), 'exclude': lambda f: f is None }})
- by: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BY'), 'exclude': lambda f: f is None }})
- be: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BE'), 'exclude': lambda f: f is None }})
- bz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BZ'), 'exclude': lambda f: f is None }})
- bj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BJ'), 'exclude': lambda f: f is None }})
- bm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BM'), 'exclude': lambda f: f is None }})
- bt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BT'), 'exclude': lambda f: f is None }})
- bo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BO'), 'exclude': lambda f: f is None }})
- ba: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BA'), 'exclude': lambda f: f is None }})
- bw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BW'), 'exclude': lambda f: f is None }})
- bv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BV'), 'exclude': lambda f: f is None }})
- br: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BR'), 'exclude': lambda f: f is None }})
- io: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IO'), 'exclude': lambda f: f is None }})
- bn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BN'), 'exclude': lambda f: f is None }})
- bg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BG'), 'exclude': lambda f: f is None }})
- bf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BF'), 'exclude': lambda f: f is None }})
- bi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BI'), 'exclude': lambda f: f is None }})
- kh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KH'), 'exclude': lambda f: f is None }})
- cm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CM'), 'exclude': lambda f: f is None }})
- ca: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CA'), 'exclude': lambda f: f is None }})
- cv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CV'), 'exclude': lambda f: f is None }})
- ky: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KY'), 'exclude': lambda f: f is None }})
- cf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CF'), 'exclude': lambda f: f is None }})
- td: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TD'), 'exclude': lambda f: f is None }})
- cl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CL'), 'exclude': lambda f: f is None }})
- cn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CN'), 'exclude': lambda f: f is None }})
- cx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CX'), 'exclude': lambda f: f is None }})
- cc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CC'), 'exclude': lambda f: f is None }})
- co: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CO'), 'exclude': lambda f: f is None }})
- km: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KM'), 'exclude': lambda f: f is None }})
- cg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CG'), 'exclude': lambda f: f is None }})
- cd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CD'), 'exclude': lambda f: f is None }})
- ck: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CK'), 'exclude': lambda f: f is None }})
- cr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CR'), 'exclude': lambda f: f is None }})
- ci: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CI'), 'exclude': lambda f: f is None }})
- hr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HR'), 'exclude': lambda f: f is None }})
- cu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CU'), 'exclude': lambda f: f is None }})
- cy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CY'), 'exclude': lambda f: f is None }})
- cz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CZ'), 'exclude': lambda f: f is None }})
- dk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DK'), 'exclude': lambda f: f is None }})
- dj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DJ'), 'exclude': lambda f: f is None }})
- dm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DM'), 'exclude': lambda f: f is None }})
- do: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DO'), 'exclude': lambda f: f is None }})
- ec: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EC'), 'exclude': lambda f: f is None }})
- eg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EG'), 'exclude': lambda f: f is None }})
- sv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SV'), 'exclude': lambda f: f is None }})
- gq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GQ'), 'exclude': lambda f: f is None }})
- er: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ER'), 'exclude': lambda f: f is None }})
- ee: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EE'), 'exclude': lambda f: f is None }})
- et: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ET'), 'exclude': lambda f: f is None }})
- fk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FK'), 'exclude': lambda f: f is None }})
- fo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FO'), 'exclude': lambda f: f is None }})
- fj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FJ'), 'exclude': lambda f: f is None }})
- fi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FI'), 'exclude': lambda f: f is None }})
- fr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FR'), 'exclude': lambda f: f is None }})
- gf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GF'), 'exclude': lambda f: f is None }})
- pf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PF'), 'exclude': lambda f: f is None }})
- tf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TF'), 'exclude': lambda f: f is None }})
- ga: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GA'), 'exclude': lambda f: f is None }})
- gm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GM'), 'exclude': lambda f: f is None }})
- ge: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GE'), 'exclude': lambda f: f is None }})
- de: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DE'), 'exclude': lambda f: f is None }})
- gh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GH'), 'exclude': lambda f: f is None }})
- gi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GI'), 'exclude': lambda f: f is None }})
- gr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GR'), 'exclude': lambda f: f is None }})
- gl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GL'), 'exclude': lambda f: f is None }})
- gd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GD'), 'exclude': lambda f: f is None }})
- gp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GP'), 'exclude': lambda f: f is None }})
- gu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GU'), 'exclude': lambda f: f is None }})
- gt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GT'), 'exclude': lambda f: f is None }})
- gn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GN'), 'exclude': lambda f: f is None }})
- gw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GW'), 'exclude': lambda f: f is None }})
- gy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GY'), 'exclude': lambda f: f is None }})
- ht: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HT'), 'exclude': lambda f: f is None }})
- hm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HM'), 'exclude': lambda f: f is None }})
- va: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VA'), 'exclude': lambda f: f is None }})
- hn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HN'), 'exclude': lambda f: f is None }})
- hk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HK'), 'exclude': lambda f: f is None }})
- hu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HU'), 'exclude': lambda f: f is None }})
- is_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IS'), 'exclude': lambda f: f is None }})
- in_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IN'), 'exclude': lambda f: f is None }})
- id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ID'), 'exclude': lambda f: f is None }})
- ir: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IR'), 'exclude': lambda f: f is None }})
- iq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IQ'), 'exclude': lambda f: f is None }})
- ie: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IE'), 'exclude': lambda f: f is None }})
- il: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IL'), 'exclude': lambda f: f is None }})
- it: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IT'), 'exclude': lambda f: f is None }})
- jm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JM'), 'exclude': lambda f: f is None }})
- jp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JP'), 'exclude': lambda f: f is None }})
- jo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JO'), 'exclude': lambda f: f is None }})
- kz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KZ'), 'exclude': lambda f: f is None }})
- ke: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KE'), 'exclude': lambda f: f is None }})
- ki: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KI'), 'exclude': lambda f: f is None }})
- kp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KP'), 'exclude': lambda f: f is None }})
- kr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KR'), 'exclude': lambda f: f is None }})
- kw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KW'), 'exclude': lambda f: f is None }})
- kg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KG'), 'exclude': lambda f: f is None }})
- la: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LA'), 'exclude': lambda f: f is None }})
- lv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LV'), 'exclude': lambda f: f is None }})
- lb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LB'), 'exclude': lambda f: f is None }})
- ls: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LS'), 'exclude': lambda f: f is None }})
- lr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LR'), 'exclude': lambda f: f is None }})
- ly: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LY'), 'exclude': lambda f: f is None }})
- li: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LI'), 'exclude': lambda f: f is None }})
- lt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LT'), 'exclude': lambda f: f is None }})
- lu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LU'), 'exclude': lambda f: f is None }})
- mo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MO'), 'exclude': lambda f: f is None }})
- mg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MG'), 'exclude': lambda f: f is None }})
- mw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MW'), 'exclude': lambda f: f is None }})
- my: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MY'), 'exclude': lambda f: f is None }})
- mv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MV'), 'exclude': lambda f: f is None }})
- ml: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ML'), 'exclude': lambda f: f is None }})
- mt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MT'), 'exclude': lambda f: f is None }})
- mh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MH'), 'exclude': lambda f: f is None }})
- mq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MQ'), 'exclude': lambda f: f is None }})
- mr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MR'), 'exclude': lambda f: f is None }})
- mu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MU'), 'exclude': lambda f: f is None }})
- yt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YT'), 'exclude': lambda f: f is None }})
- mx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MX'), 'exclude': lambda f: f is None }})
- fm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FM'), 'exclude': lambda f: f is None }})
- md: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MD'), 'exclude': lambda f: f is None }})
- mc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MC'), 'exclude': lambda f: f is None }})
- mn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MN'), 'exclude': lambda f: f is None }})
- ms: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MS'), 'exclude': lambda f: f is None }})
- ma: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MA'), 'exclude': lambda f: f is None }})
- mz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MZ'), 'exclude': lambda f: f is None }})
- mm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MM'), 'exclude': lambda f: f is None }})
- na: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NA'), 'exclude': lambda f: f is None }})
- nr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NR'), 'exclude': lambda f: f is None }})
- np: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NP'), 'exclude': lambda f: f is None }})
- nl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NL'), 'exclude': lambda f: f is None }})
- nc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NC'), 'exclude': lambda f: f is None }})
- nz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NZ'), 'exclude': lambda f: f is None }})
- ni: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NI'), 'exclude': lambda f: f is None }})
- ne: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NE'), 'exclude': lambda f: f is None }})
- ng: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NG'), 'exclude': lambda f: f is None }})
- nu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NU'), 'exclude': lambda f: f is None }})
- nf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NF'), 'exclude': lambda f: f is None }})
- mk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MK'), 'exclude': lambda f: f is None }})
- mp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MP'), 'exclude': lambda f: f is None }})
- no: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NO'), 'exclude': lambda f: f is None }})
- om: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('OM'), 'exclude': lambda f: f is None }})
- pk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PK'), 'exclude': lambda f: f is None }})
- pw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PW'), 'exclude': lambda f: f is None }})
- ps: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PS'), 'exclude': lambda f: f is None }})
- pa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PA'), 'exclude': lambda f: f is None }})
- pg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PG'), 'exclude': lambda f: f is None }})
- py: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PY'), 'exclude': lambda f: f is None }})
- pe: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PE'), 'exclude': lambda f: f is None }})
- ph: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PH'), 'exclude': lambda f: f is None }})
- pn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PN'), 'exclude': lambda f: f is None }})
- pl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PL'), 'exclude': lambda f: f is None }})
- pt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PT'), 'exclude': lambda f: f is None }})
- pr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PR'), 'exclude': lambda f: f is None }})
- qa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('QA'), 'exclude': lambda f: f is None }})
- re: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RE'), 'exclude': lambda f: f is None }})
- ro: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RO'), 'exclude': lambda f: f is None }})
- ru: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RU'), 'exclude': lambda f: f is None }})
- rw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RW'), 'exclude': lambda f: f is None }})
- sh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SH'), 'exclude': lambda f: f is None }})
- kn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KN'), 'exclude': lambda f: f is None }})
- lc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LC'), 'exclude': lambda f: f is None }})
- pm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PM'), 'exclude': lambda f: f is None }})
- vc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VC'), 'exclude': lambda f: f is None }})
- ws: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WS'), 'exclude': lambda f: f is None }})
- sm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SM'), 'exclude': lambda f: f is None }})
- st: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ST'), 'exclude': lambda f: f is None }})
- sa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SA'), 'exclude': lambda f: f is None }})
- sn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SN'), 'exclude': lambda f: f is None }})
- sc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SC'), 'exclude': lambda f: f is None }})
- sl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SL'), 'exclude': lambda f: f is None }})
- sg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SG'), 'exclude': lambda f: f is None }})
- sk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SK'), 'exclude': lambda f: f is None }})
- si: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SI'), 'exclude': lambda f: f is None }})
- sb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SB'), 'exclude': lambda f: f is None }})
- so: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SO'), 'exclude': lambda f: f is None }})
- za: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZA'), 'exclude': lambda f: f is None }})
- gs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GS'), 'exclude': lambda f: f is None }})
- es: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ES'), 'exclude': lambda f: f is None }})
- lk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LK'), 'exclude': lambda f: f is None }})
- sd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SD'), 'exclude': lambda f: f is None }})
- sr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SR'), 'exclude': lambda f: f is None }})
- sj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SJ'), 'exclude': lambda f: f is None }})
- sz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SZ'), 'exclude': lambda f: f is None }})
- se: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SE'), 'exclude': lambda f: f is None }})
- ch: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CH'), 'exclude': lambda f: f is None }})
- sy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SY'), 'exclude': lambda f: f is None }})
- tw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TW'), 'exclude': lambda f: f is None }})
- tj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TJ'), 'exclude': lambda f: f is None }})
- tz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TZ'), 'exclude': lambda f: f is None }})
- th: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TH'), 'exclude': lambda f: f is None }})
- tl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TL'), 'exclude': lambda f: f is None }})
- tg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TG'), 'exclude': lambda f: f is None }})
- tk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TK'), 'exclude': lambda f: f is None }})
- to: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TO'), 'exclude': lambda f: f is None }})
- tt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TT'), 'exclude': lambda f: f is None }})
- tn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TN'), 'exclude': lambda f: f is None }})
- tr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TR'), 'exclude': lambda f: f is None }})
- tm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TM'), 'exclude': lambda f: f is None }})
- tc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TC'), 'exclude': lambda f: f is None }})
- tv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TV'), 'exclude': lambda f: f is None }})
- ug: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UG'), 'exclude': lambda f: f is None }})
- ua: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UA'), 'exclude': lambda f: f is None }})
- ae: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AE'), 'exclude': lambda f: f is None }})
- gb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GB'), 'exclude': lambda f: f is None }})
- us: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('US'), 'exclude': lambda f: f is None }})
- um: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UM'), 'exclude': lambda f: f is None }})
- uy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UY'), 'exclude': lambda f: f is None }})
- uz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UZ'), 'exclude': lambda f: f is None }})
- vu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VU'), 'exclude': lambda f: f is None }})
- ve: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VE'), 'exclude': lambda f: f is None }})
- vn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VN'), 'exclude': lambda f: f is None }})
- vg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VG'), 'exclude': lambda f: f is None }})
- vi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VI'), 'exclude': lambda f: f is None }})
- wf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WF'), 'exclude': lambda f: f is None }})
- eh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EH'), 'exclude': lambda f: f is None }})
- ye: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YE'), 'exclude': lambda f: f is None }})
- zm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZM'), 'exclude': lambda f: f is None }})
- zw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZW'), 'exclude': lambda f: f is None }})
- ax: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AX'), 'exclude': lambda f: f is None }})
- bq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BQ'), 'exclude': lambda f: f is None }})
- cw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CW'), 'exclude': lambda f: f is None }})
- gg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GG'), 'exclude': lambda f: f is None }})
- im: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IM'), 'exclude': lambda f: f is None }})
- je: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JE'), 'exclude': lambda f: f is None }})
- me: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ME'), 'exclude': lambda f: f is None }})
- bl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BL'), 'exclude': lambda f: f is None }})
- mf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MF'), 'exclude': lambda f: f is None }})
- rs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RS'), 'exclude': lambda f: f is None }})
- sx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SX'), 'exclude': lambda f: f is None }})
- ss: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SS'), 'exclude': lambda f: f is None }})
- xk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('XK'), 'exclude': lambda f: f is None }})
-
-
+TagNames = Union[str, List[str]]
@dataclass_json(undefined=Undefined.EXCLUDE)
@@ -290,6 +37,8 @@ class CreateLinkRequestBody:
r"""This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter."""
prefix: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('prefix'), 'exclude': lambda f: f is None }})
r"""The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided."""
+ track_conversion: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('trackConversion'), 'exclude': lambda f: f is None }})
+ r"""Whether to track conversions for the short link."""
archived: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('archived'), 'exclude': lambda f: f is None }})
r"""Whether the short link is archived."""
public_stats: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('publicStats'), 'exclude': lambda f: f is None }})
@@ -299,9 +48,9 @@ class CreateLinkRequestBody:
Deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
"""
- tag_ids: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagIds'), 'exclude': lambda f: f is None }})
+ tag_ids: Optional[TagIds] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagIds'), 'exclude': lambda f: f is None }})
r"""The unique IDs of the tags assigned to the short link."""
- tag_names: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagNames'), 'exclude': lambda f: f is None }})
+ tag_names: Optional[TagNames] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagNames'), 'exclude': lambda f: f is None }})
r"""The unique name of the tags assigned to the short link (case insensitive)."""
comments: Optional[str] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('comments'), 'exclude': lambda f: f is CreateLinkRequestBody.UNSET }})
r"""The comments for the short link."""
@@ -325,7 +74,7 @@ class CreateLinkRequestBody:
r"""The iOS destination URL for the short link for iOS device targeting."""
android: Optional[str] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('android'), 'exclude': lambda f: f is CreateLinkRequestBody.UNSET }})
r"""The Android destination URL for the short link for Android device targeting."""
- geo: Optional[Geo] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('geo'), 'exclude': lambda f: f is CreateLinkRequestBody.UNSET }})
+ geo: Optional[components_linkgeotargeting.LinkGeoTargeting] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('geo'), 'exclude': lambda f: f is CreateLinkRequestBody.UNSET }})
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."""
diff --git a/src/dub/models/operations/getbrowsersbyclicks.py b/src/dub/models/operations/getbrowsersbyclicks.py
index 08b907f..a60d051 100644
--- a/src/dub/models/operations/getbrowsersbyclicks.py
+++ b/src/dub/models/operations/getbrowsersbyclicks.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetBrowsersByClicksQueryParamInterval(str, Enum):
ALL = 'all'
-class GetBrowsersByClicksQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetBrowsersByClicksRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetBrowsersByClicksRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetBrowsersByClicksQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/getbrowsersbyclicksdeprecated.py b/src/dub/models/operations/getbrowsersbyclicksdeprecated.py
index fd6e2fc..32a5d94 100644
--- a/src/dub/models/operations/getbrowsersbyclicksdeprecated.py
+++ b/src/dub/models/operations/getbrowsersbyclicksdeprecated.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetBrowsersByClicksDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetBrowsersByClicksDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetBrowsersByClicksDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetBrowsersByClicksDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetBrowsersByClicksDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/getcitiesbyclicks.py b/src/dub/models/operations/getcitiesbyclicks.py
index 22aca69..d551bb3 100644
--- a/src/dub/models/operations/getcitiesbyclicks.py
+++ b/src/dub/models/operations/getcitiesbyclicks.py
@@ -2,9 +2,9 @@
from __future__ import annotations
import dataclasses
+from ...models.components import clicksbycities as components_clicksbycities
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
-from dataclasses_json import Undefined, dataclass_json
-from dub import utils
from enum import Enum
from typing import List, Optional
@@ -30,260 +30,6 @@ class GetCitiesByClicksQueryParamInterval(str, Enum):
ALL = 'all'
-class GetCitiesByClicksQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetCitiesByClicksRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +46,7 @@ class GetCitiesByClicksRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetCitiesByClicksQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
@@ -324,277 +70,10 @@ class GetCitiesByClicksRequest:
-class GetCitiesByClicksCountry(str, Enum):
- r"""The 2-letter country code of the city: https://d.to/geo"""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class GetCitiesByClicksResponseBody:
- city: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('city') }})
- r"""The name of the city"""
- country: GetCitiesByClicksCountry = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('country') }})
- r"""The 2-letter country code of the city: https://d.to/geo"""
- clicks: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clicks') }})
- r"""The number of clicks from this city"""
-
-
-
-
@dataclasses.dataclass
class GetCitiesByClicksResponse:
http_meta: components_httpmetadata.HTTPMetadata = dataclasses.field()
- response_bodies: Optional[List[GetCitiesByClicksResponseBody]] = dataclasses.field(default=None)
+ clicks_by_cities: Optional[List[components_clicksbycities.ClicksByCities]] = dataclasses.field(default=None)
r"""The top cities by number of clicks"""
diff --git a/src/dub/models/operations/getcitiesbyclicksdeprecated.py b/src/dub/models/operations/getcitiesbyclicksdeprecated.py
index 9399c46..0819892 100644
--- a/src/dub/models/operations/getcitiesbyclicksdeprecated.py
+++ b/src/dub/models/operations/getcitiesbyclicksdeprecated.py
@@ -2,9 +2,9 @@
from __future__ import annotations
import dataclasses
+from ...models.components import clicksbycities as components_clicksbycities
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
-from dataclasses_json import Undefined, dataclass_json
-from dub import utils
from enum import Enum
from typing import List, Optional
@@ -30,260 +30,6 @@ class GetCitiesByClicksDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetCitiesByClicksDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetCitiesByClicksDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +46,7 @@ class GetCitiesByClicksDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetCitiesByClicksDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
@@ -324,277 +70,10 @@ class GetCitiesByClicksDeprecatedRequest:
-class GetCitiesByClicksDeprecatedCountry(str, Enum):
- r"""The 2-letter country code of the city: https://d.to/geo"""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class GetCitiesByClicksDeprecatedResponseBody:
- city: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('city') }})
- r"""The name of the city"""
- country: GetCitiesByClicksDeprecatedCountry = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('country') }})
- r"""The 2-letter country code of the city: https://d.to/geo"""
- clicks: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clicks') }})
- r"""The number of clicks from this city"""
-
-
-
-
@dataclasses.dataclass
class GetCitiesByClicksDeprecatedResponse:
http_meta: components_httpmetadata.HTTPMetadata = dataclasses.field()
- response_bodies: Optional[List[GetCitiesByClicksDeprecatedResponseBody]] = dataclasses.field(default=None)
+ clicks_by_cities: Optional[List[components_clicksbycities.ClicksByCities]] = dataclasses.field(default=None)
r"""The top cities by number of clicks"""
diff --git a/src/dub/models/operations/getclickscount.py b/src/dub/models/operations/getclickscount.py
index 34c084b..b0c47cf 100644
--- a/src/dub/models/operations/getclickscount.py
+++ b/src/dub/models/operations/getclickscount.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from enum import Enum
from typing import Optional
@@ -28,260 +29,6 @@ class Interval(str, Enum):
ALL = 'all'
-class Country(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetClicksCountRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -298,7 +45,7 @@ class GetClicksCountRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[Country] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/getclickscountdeprecated.py b/src/dub/models/operations/getclickscountdeprecated.py
index 1319e2b..8ba0813 100644
--- a/src/dub/models/operations/getclickscountdeprecated.py
+++ b/src/dub/models/operations/getclickscountdeprecated.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from enum import Enum
from typing import Optional
@@ -28,260 +29,6 @@ class GetClicksCountDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetClicksCountDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetClicksCountDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -298,7 +45,7 @@ class GetClicksCountDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetClicksCountDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/getcountriesbyclicks.py b/src/dub/models/operations/getcountriesbyclicks.py
index 10f1b73..55cd76a 100644
--- a/src/dub/models/operations/getcountriesbyclicks.py
+++ b/src/dub/models/operations/getcountriesbyclicks.py
@@ -2,9 +2,9 @@
from __future__ import annotations
import dataclasses
+from ...models.components import clicksbycountry as components_clicksbycountry
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
-from dataclasses_json import Undefined, dataclass_json
-from dub import utils
from enum import Enum
from typing import List, Optional
@@ -30,260 +30,6 @@ class GetCountriesByClicksQueryParamInterval(str, Enum):
ALL = 'all'
-class GetCountriesByClicksQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetCountriesByClicksRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +46,7 @@ class GetCountriesByClicksRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetCountriesByClicksQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
@@ -324,275 +70,10 @@ class GetCountriesByClicksRequest:
-class GetCountriesByClicksCountry(str, Enum):
- r"""The 2-letter country code: https://d.to/geo"""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class GetCountriesByClicksResponseBody:
- country: GetCountriesByClicksCountry = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('country') }})
- r"""The 2-letter country code: https://d.to/geo"""
- clicks: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clicks') }})
- r"""The number of clicks from this country"""
-
-
-
-
@dataclasses.dataclass
class GetCountriesByClicksResponse:
http_meta: components_httpmetadata.HTTPMetadata = dataclasses.field()
- response_bodies: Optional[List[GetCountriesByClicksResponseBody]] = dataclasses.field(default=None)
+ clicks_by_countries: Optional[List[components_clicksbycountry.ClicksByCountry]] = dataclasses.field(default=None)
r"""The top countries by number of clicks"""
diff --git a/src/dub/models/operations/getcountriesbyclicksdeprecated.py b/src/dub/models/operations/getcountriesbyclicksdeprecated.py
index 3fffdba..4412735 100644
--- a/src/dub/models/operations/getcountriesbyclicksdeprecated.py
+++ b/src/dub/models/operations/getcountriesbyclicksdeprecated.py
@@ -2,9 +2,9 @@
from __future__ import annotations
import dataclasses
+from ...models.components import clicksbycountry as components_clicksbycountry
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
-from dataclasses_json import Undefined, dataclass_json
-from dub import utils
from enum import Enum
from typing import List, Optional
@@ -30,260 +30,6 @@ class GetCountriesByClicksDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetCountriesByClicksDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetCountriesByClicksDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +46,7 @@ class GetCountriesByClicksDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetCountriesByClicksDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
@@ -324,275 +70,10 @@ class GetCountriesByClicksDeprecatedRequest:
-class GetCountriesByClicksDeprecatedCountry(str, Enum):
- r"""The 2-letter country code: https://d.to/geo"""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class GetCountriesByClicksDeprecatedResponseBody:
- country: GetCountriesByClicksDeprecatedCountry = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('country') }})
- r"""The 2-letter country code: https://d.to/geo"""
- clicks: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clicks') }})
- r"""The number of clicks from this country"""
-
-
-
-
@dataclasses.dataclass
class GetCountriesByClicksDeprecatedResponse:
http_meta: components_httpmetadata.HTTPMetadata = dataclasses.field()
- response_bodies: Optional[List[GetCountriesByClicksDeprecatedResponseBody]] = dataclasses.field(default=None)
+ clicks_by_countries: Optional[List[components_clicksbycountry.ClicksByCountry]] = dataclasses.field(default=None)
r"""The top countries by number of clicks"""
diff --git a/src/dub/models/operations/getdevicesbyclicks.py b/src/dub/models/operations/getdevicesbyclicks.py
index af88db2..c3790bf 100644
--- a/src/dub/models/operations/getdevicesbyclicks.py
+++ b/src/dub/models/operations/getdevicesbyclicks.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetDevicesByClicksQueryParamInterval(str, Enum):
ALL = 'all'
-class GetDevicesByClicksQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetDevicesByClicksRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetDevicesByClicksRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetDevicesByClicksQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/getdevicesbyclicksdeprecated.py b/src/dub/models/operations/getdevicesbyclicksdeprecated.py
index c655493..3fad600 100644
--- a/src/dub/models/operations/getdevicesbyclicksdeprecated.py
+++ b/src/dub/models/operations/getdevicesbyclicksdeprecated.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetDevicesByClicksDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetDevicesByClicksDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetDevicesByClicksDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetDevicesByClicksDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetDevicesByClicksDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/getlinks.py b/src/dub/models/operations/getlinks.py
index f5cacdd..6f3dc57 100644
--- a/src/dub/models/operations/getlinks.py
+++ b/src/dub/models/operations/getlinks.py
@@ -16,6 +16,10 @@ class GetLinksGlobals:
+QueryParamTagIds = Union[str, List[str]]
+
+QueryParamTagNames = Union[str, List[str]]
+
class Sort(str, Enum):
r"""The field to sort the links by. The default is `createdAt`, and sort order is always descending."""
@@ -30,9 +34,9 @@ class GetLinksRequest:
r"""The domain to filter the links by. E.g. `ac.me`. If not provided, all links for the workspace will be returned."""
tag_id: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': True }})
r"""The tag ID to filter the links by. This field is deprecated – use `tagIds` instead."""
- tag_ids: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': True }})
+ tag_ids: Optional[QueryParamTagIds] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': True }})
r"""The tag IDs to filter the links by."""
- tag_names: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagNames', 'style': 'form', 'explode': True }})
+ tag_names: Optional[QueryParamTagNames] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagNames', 'style': 'form', 'explode': True }})
r"""The unique name of the tags assigned to the short link (case insensitive)."""
search: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'search', 'style': 'form', 'explode': True }})
r"""The search term to filter the links by. The search term will be matched against the short link slug and the destination url."""
diff --git a/src/dub/models/operations/getlinkscount.py b/src/dub/models/operations/getlinkscount.py
index 070ec62..a306e1b 100644
--- a/src/dub/models/operations/getlinkscount.py
+++ b/src/dub/models/operations/getlinkscount.py
@@ -15,6 +15,10 @@ class GetLinksCountGlobals:
+GetLinksCountQueryParamTagIds = Union[str, List[str]]
+
+GetLinksCountQueryParamTagNames = Union[str, List[str]]
+
class Two(str, Enum):
TAG_ID = 'tagId'
@@ -23,6 +27,8 @@ class Two(str, Enum):
class One(str, Enum):
DOMAIN = 'domain'
+GroupBy = Union['One', 'Two']
+
@dataclasses.dataclass
class GetLinksCountRequest:
@@ -30,9 +36,9 @@ class GetLinksCountRequest:
r"""The domain to filter the links by. E.g. `ac.me`. If not provided, all links for the workspace will be returned."""
tag_id: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagId', 'style': 'form', 'explode': True }})
r"""The tag ID to filter the links by. This field is deprecated – use `tagIds` instead."""
- tag_ids: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': True }})
+ tag_ids: Optional[GetLinksCountQueryParamTagIds] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': True }})
r"""The tag IDs to filter the links by."""
- tag_names: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagNames', 'style': 'form', 'explode': True }})
+ tag_names: Optional[GetLinksCountQueryParamTagNames] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'tagNames', 'style': 'form', 'explode': True }})
r"""The unique name of the tags assigned to the short link (case insensitive)."""
search: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'search', 'style': 'form', 'explode': True }})
r"""The search term to filter the links by. The search term will be matched against the short link slug and the destination url."""
@@ -42,7 +48,7 @@ class GetLinksCountRequest:
r"""Whether to include archived links in the response. Defaults to `false` if not provided."""
with_tags: Optional[bool] = dataclasses.field(default=True, metadata={'query_param': { 'field_name': 'withTags', 'style': 'form', 'explode': True }})
r"""Whether to include tags in the response. Defaults to `false` if not provided."""
- group_by: Optional[Union[One, Two]] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'groupBy', 'style': 'form', 'explode': True }})
+ group_by: Optional[GroupBy] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'groupBy', 'style': 'form', 'explode': True }})
r"""The field to group the links by."""
diff --git a/src/dub/models/operations/getosbyclicks.py b/src/dub/models/operations/getosbyclicks.py
index 73c173f..8fee930 100644
--- a/src/dub/models/operations/getosbyclicks.py
+++ b/src/dub/models/operations/getosbyclicks.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetOSByClicksQueryParamInterval(str, Enum):
ALL = 'all'
-class GetOSByClicksQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetOSByClicksRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetOSByClicksRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetOSByClicksQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/getosbyclicksdeprecated.py b/src/dub/models/operations/getosbyclicksdeprecated.py
index a11d92a..e6a3385 100644
--- a/src/dub/models/operations/getosbyclicksdeprecated.py
+++ b/src/dub/models/operations/getosbyclicksdeprecated.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetOSByClicksDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetOSByClicksDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetOSByClicksDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetOSByClicksDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetOSByClicksDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/getreferersbyclicks.py b/src/dub/models/operations/getreferersbyclicks.py
index b2c535b..3d32660 100644
--- a/src/dub/models/operations/getreferersbyclicks.py
+++ b/src/dub/models/operations/getreferersbyclicks.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetReferersByClicksQueryParamInterval(str, Enum):
ALL = 'all'
-class GetReferersByClicksQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetReferersByClicksRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetReferersByClicksRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetReferersByClicksQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/getreferersbyclicksdeprecated.py b/src/dub/models/operations/getreferersbyclicksdeprecated.py
index c544ecf..e644d6b 100644
--- a/src/dub/models/operations/getreferersbyclicksdeprecated.py
+++ b/src/dub/models/operations/getreferersbyclicksdeprecated.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetReferersByClicksDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetReferersByClicksDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetReferersByClicksDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetReferersByClicksDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetReferersByClicksDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/gettimeseriesbyclicks.py b/src/dub/models/operations/gettimeseriesbyclicks.py
index e713c2c..1e626c8 100644
--- a/src/dub/models/operations/gettimeseriesbyclicks.py
+++ b/src/dub/models/operations/gettimeseriesbyclicks.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class QueryParamInterval(str, Enum):
ALL = 'all'
-class QueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetTimeseriesByClicksRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetTimeseriesByClicksRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[QueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/gettimeseriesbyclicksdeprecated.py b/src/dub/models/operations/gettimeseriesbyclicksdeprecated.py
index fe17fc7..29c3b80 100644
--- a/src/dub/models/operations/gettimeseriesbyclicksdeprecated.py
+++ b/src/dub/models/operations/gettimeseriesbyclicksdeprecated.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetTimeseriesByClicksDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetTimeseriesByClicksDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetTimeseriesByClicksDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetTimeseriesByClicksDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetTimeseriesByClicksDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/gettoplinksbyclicks.py b/src/dub/models/operations/gettoplinksbyclicks.py
index d1c43a6..be7691b 100644
--- a/src/dub/models/operations/gettoplinksbyclicks.py
+++ b/src/dub/models/operations/gettoplinksbyclicks.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetTopLinksByClicksQueryParamInterval(str, Enum):
ALL = 'all'
-class GetTopLinksByClicksQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetTopLinksByClicksRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetTopLinksByClicksRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetTopLinksByClicksQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/gettoplinksbyclicksdeprecated.py b/src/dub/models/operations/gettoplinksbyclicksdeprecated.py
index a750151..b045797 100644
--- a/src/dub/models/operations/gettoplinksbyclicksdeprecated.py
+++ b/src/dub/models/operations/gettoplinksbyclicksdeprecated.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetTopLinksByClicksDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetTopLinksByClicksDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetTopLinksByClicksDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetTopLinksByClicksDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetTopLinksByClicksDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/gettopurlsbyclicks.py b/src/dub/models/operations/gettopurlsbyclicks.py
index 79a4b5a..7689c58 100644
--- a/src/dub/models/operations/gettopurlsbyclicks.py
+++ b/src/dub/models/operations/gettopurlsbyclicks.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetTopURLsByClicksQueryParamInterval(str, Enum):
ALL = 'all'
-class GetTopURLsByClicksQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetTopURLsByClicksRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetTopURLsByClicksRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetTopURLsByClicksQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/gettopurlsbyclicksdeprecated.py b/src/dub/models/operations/gettopurlsbyclicksdeprecated.py
index 3633911..e906951 100644
--- a/src/dub/models/operations/gettopurlsbyclicksdeprecated.py
+++ b/src/dub/models/operations/gettopurlsbyclicksdeprecated.py
@@ -2,6 +2,7 @@
from __future__ import annotations
import dataclasses
+from ...models.components import countrycode as components_countrycode
from ...models.components import httpmetadata as components_httpmetadata
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -30,260 +31,6 @@ class GetTopURLsByClicksDeprecatedQueryParamInterval(str, Enum):
ALL = 'all'
-class GetTopURLsByClicksDeprecatedQueryParamCountry(str, Enum):
- r"""The country to retrieve analytics for."""
- AF = 'AF'
- AL = 'AL'
- DZ = 'DZ'
- AS = 'AS'
- AD = 'AD'
- AO = 'AO'
- AI = 'AI'
- AQ = 'AQ'
- AG = 'AG'
- AR = 'AR'
- AM = 'AM'
- AW = 'AW'
- AU = 'AU'
- AT = 'AT'
- AZ = 'AZ'
- BS = 'BS'
- BH = 'BH'
- BD = 'BD'
- BB = 'BB'
- BY = 'BY'
- BE = 'BE'
- BZ = 'BZ'
- BJ = 'BJ'
- BM = 'BM'
- BT = 'BT'
- BO = 'BO'
- BA = 'BA'
- BW = 'BW'
- BV = 'BV'
- BR = 'BR'
- IO = 'IO'
- BN = 'BN'
- BG = 'BG'
- BF = 'BF'
- BI = 'BI'
- KH = 'KH'
- CM = 'CM'
- CA = 'CA'
- CV = 'CV'
- KY = 'KY'
- CF = 'CF'
- TD = 'TD'
- CL = 'CL'
- CN = 'CN'
- CX = 'CX'
- CC = 'CC'
- CO = 'CO'
- KM = 'KM'
- CG = 'CG'
- CD = 'CD'
- CK = 'CK'
- CR = 'CR'
- CI = 'CI'
- HR = 'HR'
- CU = 'CU'
- CY = 'CY'
- CZ = 'CZ'
- DK = 'DK'
- DJ = 'DJ'
- DM = 'DM'
- DO = 'DO'
- EC = 'EC'
- EG = 'EG'
- SV = 'SV'
- GQ = 'GQ'
- ER = 'ER'
- EE = 'EE'
- ET = 'ET'
- FK = 'FK'
- FO = 'FO'
- FJ = 'FJ'
- FI = 'FI'
- FR = 'FR'
- GF = 'GF'
- PF = 'PF'
- TF = 'TF'
- GA = 'GA'
- GM = 'GM'
- GE = 'GE'
- DE = 'DE'
- GH = 'GH'
- GI = 'GI'
- GR = 'GR'
- GL = 'GL'
- GD = 'GD'
- GP = 'GP'
- GU = 'GU'
- GT = 'GT'
- GN = 'GN'
- GW = 'GW'
- GY = 'GY'
- HT = 'HT'
- HM = 'HM'
- VA = 'VA'
- HN = 'HN'
- HK = 'HK'
- HU = 'HU'
- IS = 'IS'
- IN = 'IN'
- ID = 'ID'
- IR = 'IR'
- IQ = 'IQ'
- IE = 'IE'
- IL = 'IL'
- IT = 'IT'
- JM = 'JM'
- JP = 'JP'
- JO = 'JO'
- KZ = 'KZ'
- KE = 'KE'
- KI = 'KI'
- KP = 'KP'
- KR = 'KR'
- KW = 'KW'
- KG = 'KG'
- LA = 'LA'
- LV = 'LV'
- LB = 'LB'
- LS = 'LS'
- LR = 'LR'
- LY = 'LY'
- LI = 'LI'
- LT = 'LT'
- LU = 'LU'
- MO = 'MO'
- MG = 'MG'
- MW = 'MW'
- MY = 'MY'
- MV = 'MV'
- ML = 'ML'
- MT = 'MT'
- MH = 'MH'
- MQ = 'MQ'
- MR = 'MR'
- MU = 'MU'
- YT = 'YT'
- MX = 'MX'
- FM = 'FM'
- MD = 'MD'
- MC = 'MC'
- MN = 'MN'
- MS = 'MS'
- MA = 'MA'
- MZ = 'MZ'
- MM = 'MM'
- NA = 'NA'
- NR = 'NR'
- NP = 'NP'
- NL = 'NL'
- NC = 'NC'
- NZ = 'NZ'
- NI = 'NI'
- NE = 'NE'
- NG = 'NG'
- NU = 'NU'
- NF = 'NF'
- MK = 'MK'
- MP = 'MP'
- NO = 'NO'
- OM = 'OM'
- PK = 'PK'
- PW = 'PW'
- PS = 'PS'
- PA = 'PA'
- PG = 'PG'
- PY = 'PY'
- PE = 'PE'
- PH = 'PH'
- PN = 'PN'
- PL = 'PL'
- PT = 'PT'
- PR = 'PR'
- QA = 'QA'
- RE = 'RE'
- RO = 'RO'
- RU = 'RU'
- RW = 'RW'
- SH = 'SH'
- KN = 'KN'
- LC = 'LC'
- PM = 'PM'
- VC = 'VC'
- WS = 'WS'
- SM = 'SM'
- ST = 'ST'
- SA = 'SA'
- SN = 'SN'
- SC = 'SC'
- SL = 'SL'
- SG = 'SG'
- SK = 'SK'
- SI = 'SI'
- SB = 'SB'
- SO = 'SO'
- ZA = 'ZA'
- GS = 'GS'
- ES = 'ES'
- LK = 'LK'
- SD = 'SD'
- SR = 'SR'
- SJ = 'SJ'
- SZ = 'SZ'
- SE = 'SE'
- CH = 'CH'
- SY = 'SY'
- TW = 'TW'
- TJ = 'TJ'
- TZ = 'TZ'
- TH = 'TH'
- TL = 'TL'
- TG = 'TG'
- TK = 'TK'
- TO = 'TO'
- TT = 'TT'
- TN = 'TN'
- TR = 'TR'
- TM = 'TM'
- TC = 'TC'
- TV = 'TV'
- UG = 'UG'
- UA = 'UA'
- AE = 'AE'
- GB = 'GB'
- US = 'US'
- UM = 'UM'
- UY = 'UY'
- UZ = 'UZ'
- VU = 'VU'
- VE = 'VE'
- VN = 'VN'
- VG = 'VG'
- VI = 'VI'
- WF = 'WF'
- EH = 'EH'
- YE = 'YE'
- ZM = 'ZM'
- ZW = 'ZW'
- AX = 'AX'
- BQ = 'BQ'
- CW = 'CW'
- GG = 'GG'
- IM = 'IM'
- JE = 'JE'
- ME = 'ME'
- BL = 'BL'
- MF = 'MF'
- RS = 'RS'
- SX = 'SX'
- SS = 'SS'
- XK = 'XK'
-
-
@dataclasses.dataclass
class GetTopURLsByClicksDeprecatedRequest:
domain: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'domain', 'style': 'form', 'explode': True }})
@@ -300,7 +47,7 @@ class GetTopURLsByClicksDeprecatedRequest:
r"""The start date and time when to retrieve analytics from."""
end: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'end', 'style': 'form', 'explode': True }})
r"""The end date and time when to retrieve analytics from. If not provided, defaults to the current date."""
- country: Optional[GetTopURLsByClicksDeprecatedQueryParamCountry] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
+ country: Optional[components_countrycode.CountryCode] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'country', 'style': 'form', 'explode': True }})
r"""The country to retrieve analytics for."""
city: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'city', 'style': 'form', 'explode': True }})
r"""The city to retrieve analytics for."""
diff --git a/src/dub/models/operations/trackcustomer.py b/src/dub/models/operations/trackcustomer.py
new file mode 100644
index 0000000..13f133c
--- /dev/null
+++ b/src/dub/models/operations/trackcustomer.py
@@ -0,0 +1,45 @@
+"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+
+from __future__ import annotations
+import dataclasses
+from ...models.components import httpmetadata as components_httpmetadata
+from dataclasses_json import Undefined, dataclass_json
+from dub import utils
+from typing import Optional
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class TrackCustomerRequestBody:
+ UNSET='__SPEAKEASY_UNSET__'
+ customer_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerId') }})
+ r"""This is the unique identifier for the customer in the client's app. This is used to track the customer's journey."""
+ customer_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerName'), 'exclude': lambda f: f is TrackCustomerRequestBody.UNSET }})
+ r"""Name of the customer in the client's app."""
+ customer_email: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerEmail'), 'exclude': lambda f: f is TrackCustomerRequestBody.UNSET }})
+ r"""Email of the customer in the client's app."""
+ customer_avatar: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerAvatar'), 'exclude': lambda f: f is TrackCustomerRequestBody.UNSET }})
+ r"""Avatar of the customer in the client's app."""
+
+
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class TrackCustomerResponseBody:
+ r"""A customer was tracked."""
+ customer_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerId') }})
+ customer_name: Optional[str] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerName') }})
+ customer_email: Optional[str] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerEmail') }})
+ customer_avatar: Optional[str] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerAvatar') }})
+
+
+
+
+@dataclasses.dataclass
+class TrackCustomerResponse:
+ http_meta: components_httpmetadata.HTTPMetadata = dataclasses.field()
+ object: Optional[TrackCustomerResponseBody] = dataclasses.field(default=None)
+ r"""A customer was tracked."""
+
+
diff --git a/src/dub/models/operations/tracklead.py b/src/dub/models/operations/tracklead.py
new file mode 100644
index 0000000..8a6fac1
--- /dev/null
+++ b/src/dub/models/operations/tracklead.py
@@ -0,0 +1,54 @@
+"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+
+from __future__ import annotations
+import dataclasses
+from ...models.components import httpmetadata as components_httpmetadata
+from dataclasses_json import Undefined, dataclass_json
+from dub import utils
+from typing import Any, Dict, Optional
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class TrackLeadRequestBody:
+ UNSET='__SPEAKEASY_UNSET__'
+ click_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clickId') }})
+ r"""The ID of the click in th Dub. You can read this value from `dclid` cookie."""
+ event_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('eventName') }})
+ r"""The name of the event to track."""
+ customer_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerId') }})
+ r"""This is the unique identifier for the customer in the client's app. This is used to track the customer's journey."""
+ customer_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerName'), 'exclude': lambda f: f is TrackLeadRequestBody.UNSET }})
+ r"""Name of the customer in the client's app."""
+ customer_email: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerEmail'), 'exclude': lambda f: f is TrackLeadRequestBody.UNSET }})
+ r"""Email of the customer in the client's app."""
+ customer_avatar: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerAvatar'), 'exclude': lambda f: f is TrackLeadRequestBody.UNSET }})
+ r"""Avatar of the customer in the client's app."""
+ metadata: Optional[Dict[str, Any]] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('metadata'), 'exclude': lambda f: f is TrackLeadRequestBody.UNSET }})
+ r"""Additional metadata to be stored with the lead event"""
+
+
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class TrackLeadResponseBody:
+ r"""A lead was tracked."""
+ click_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clickId') }})
+ event_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('eventName') }})
+ customer_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerId') }})
+ customer_name: Optional[str] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerName') }})
+ customer_email: Optional[str] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerEmail') }})
+ customer_avatar: Optional[str] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerAvatar') }})
+ metadata: Optional[Dict[str, Any]] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('metadata') }})
+
+
+
+
+@dataclasses.dataclass
+class TrackLeadResponse:
+ http_meta: components_httpmetadata.HTTPMetadata = dataclasses.field()
+ object: Optional[TrackLeadResponseBody] = dataclasses.field(default=None)
+ r"""A lead was tracked."""
+
+
diff --git a/src/dub/models/operations/tracksale.py b/src/dub/models/operations/tracksale.py
new file mode 100644
index 0000000..6510509
--- /dev/null
+++ b/src/dub/models/operations/tracksale.py
@@ -0,0 +1,59 @@
+"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+
+from __future__ import annotations
+import dataclasses
+from ...models.components import httpmetadata as components_httpmetadata
+from dataclasses_json import Undefined, dataclass_json
+from dub import utils
+from enum import Enum
+from typing import Any, Dict, Optional
+
+
+class PaymentProcessor(str, Enum):
+ r"""The payment processor via which the sale was made."""
+ STRIPE = 'stripe'
+ SHOPIFY = 'shopify'
+ PADDLE = 'paddle'
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class TrackSaleRequestBody:
+ UNSET='__SPEAKEASY_UNSET__'
+ customer_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerId') }})
+ r"""This is the unique identifier for the customer in the client's app. This is used to track the customer's journey."""
+ amount: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('amount') }})
+ r"""The amount of the sale. Should be passed in cents."""
+ payment_processor: PaymentProcessor = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('paymentProcessor') }})
+ r"""The payment processor via which the sale was made."""
+ invoice_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('invoiceId'), 'exclude': lambda f: f is TrackSaleRequestBody.UNSET }})
+ r"""The invoice ID of the sale."""
+ currency: Optional[str] = dataclasses.field(default='usd', metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('currency'), 'exclude': lambda f: f is None }})
+ r"""The currency of the sale. Accepts ISO 4217 currency codes."""
+ metadata: Optional[Dict[str, Any]] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('metadata'), 'exclude': lambda f: f is TrackSaleRequestBody.UNSET }})
+ r"""Additional metadata to be stored with the sale event."""
+
+
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class TrackSaleResponseBody:
+ r"""A sale was tracked."""
+ customer_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customerId') }})
+ amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('amount') }})
+ payment_processor: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('paymentProcessor') }})
+ invoice_id: Optional[str] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('invoiceId') }})
+ currency: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('currency') }})
+ metadata: Optional[Dict[str, Any]] = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('metadata') }})
+
+
+
+
+@dataclasses.dataclass
+class TrackSaleResponse:
+ http_meta: components_httpmetadata.HTTPMetadata = dataclasses.field()
+ object: Optional[TrackSaleResponseBody] = dataclasses.field(default=None)
+ r"""A sale was tracked."""
+
+
diff --git a/src/dub/models/operations/updatedomain.py b/src/dub/models/operations/updatedomain.py
index 1c5f165..7756d55 100644
--- a/src/dub/models/operations/updatedomain.py
+++ b/src/dub/models/operations/updatedomain.py
@@ -39,6 +39,8 @@ class UpdateDomainRequestBody:
r"""Redirect users to a specific URL when any link under this domain has expired."""
archived: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('archived'), 'exclude': lambda f: f is None }})
r"""Whether to archive this domain. `false` will unarchive a previously archived domain."""
+ noindex: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('noindex'), 'exclude': lambda f: f is None }})
+ r"""Prevent search engines from indexing the domain. Defaults to `false`."""
placeholder: Optional[str] = dataclasses.field(default='https://dub.co/help/article/what-is-dub', metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('placeholder'), 'exclude': lambda f: f is UpdateDomainRequestBody.UNSET }})
r"""Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened."""
diff --git a/src/dub/models/operations/updatelink.py b/src/dub/models/operations/updatelink.py
index 77a6c44..4100ef6 100644
--- a/src/dub/models/operations/updatelink.py
+++ b/src/dub/models/operations/updatelink.py
@@ -3,6 +3,7 @@
from __future__ import annotations
import dataclasses
from ...models.components import httpmetadata as components_httpmetadata
+from ...models.components import linkgeotargeting as components_linkgeotargeting
from ...models.components import linkschema as components_linkschema
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -17,263 +18,9 @@ class UpdateLinkGlobals:
+UpdateLinkTagIds = Union[str, List[str]]
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class UpdateLinkGeo:
- r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."""
- af: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AF'), 'exclude': lambda f: f is None }})
- al: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AL'), 'exclude': lambda f: f is None }})
- dz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DZ'), 'exclude': lambda f: f is None }})
- as_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AS'), 'exclude': lambda f: f is None }})
- ad: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AD'), 'exclude': lambda f: f is None }})
- ao: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AO'), 'exclude': lambda f: f is None }})
- ai: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AI'), 'exclude': lambda f: f is None }})
- aq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AQ'), 'exclude': lambda f: f is None }})
- ag: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AG'), 'exclude': lambda f: f is None }})
- ar: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AR'), 'exclude': lambda f: f is None }})
- am: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AM'), 'exclude': lambda f: f is None }})
- aw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AW'), 'exclude': lambda f: f is None }})
- au: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AU'), 'exclude': lambda f: f is None }})
- at: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AT'), 'exclude': lambda f: f is None }})
- az: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AZ'), 'exclude': lambda f: f is None }})
- bs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BS'), 'exclude': lambda f: f is None }})
- bh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BH'), 'exclude': lambda f: f is None }})
- bd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BD'), 'exclude': lambda f: f is None }})
- bb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BB'), 'exclude': lambda f: f is None }})
- by: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BY'), 'exclude': lambda f: f is None }})
- be: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BE'), 'exclude': lambda f: f is None }})
- bz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BZ'), 'exclude': lambda f: f is None }})
- bj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BJ'), 'exclude': lambda f: f is None }})
- bm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BM'), 'exclude': lambda f: f is None }})
- bt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BT'), 'exclude': lambda f: f is None }})
- bo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BO'), 'exclude': lambda f: f is None }})
- ba: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BA'), 'exclude': lambda f: f is None }})
- bw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BW'), 'exclude': lambda f: f is None }})
- bv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BV'), 'exclude': lambda f: f is None }})
- br: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BR'), 'exclude': lambda f: f is None }})
- io: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IO'), 'exclude': lambda f: f is None }})
- bn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BN'), 'exclude': lambda f: f is None }})
- bg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BG'), 'exclude': lambda f: f is None }})
- bf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BF'), 'exclude': lambda f: f is None }})
- bi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BI'), 'exclude': lambda f: f is None }})
- kh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KH'), 'exclude': lambda f: f is None }})
- cm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CM'), 'exclude': lambda f: f is None }})
- ca: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CA'), 'exclude': lambda f: f is None }})
- cv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CV'), 'exclude': lambda f: f is None }})
- ky: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KY'), 'exclude': lambda f: f is None }})
- cf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CF'), 'exclude': lambda f: f is None }})
- td: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TD'), 'exclude': lambda f: f is None }})
- cl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CL'), 'exclude': lambda f: f is None }})
- cn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CN'), 'exclude': lambda f: f is None }})
- cx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CX'), 'exclude': lambda f: f is None }})
- cc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CC'), 'exclude': lambda f: f is None }})
- co: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CO'), 'exclude': lambda f: f is None }})
- km: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KM'), 'exclude': lambda f: f is None }})
- cg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CG'), 'exclude': lambda f: f is None }})
- cd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CD'), 'exclude': lambda f: f is None }})
- ck: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CK'), 'exclude': lambda f: f is None }})
- cr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CR'), 'exclude': lambda f: f is None }})
- ci: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CI'), 'exclude': lambda f: f is None }})
- hr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HR'), 'exclude': lambda f: f is None }})
- cu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CU'), 'exclude': lambda f: f is None }})
- cy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CY'), 'exclude': lambda f: f is None }})
- cz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CZ'), 'exclude': lambda f: f is None }})
- dk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DK'), 'exclude': lambda f: f is None }})
- dj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DJ'), 'exclude': lambda f: f is None }})
- dm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DM'), 'exclude': lambda f: f is None }})
- do: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DO'), 'exclude': lambda f: f is None }})
- ec: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EC'), 'exclude': lambda f: f is None }})
- eg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EG'), 'exclude': lambda f: f is None }})
- sv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SV'), 'exclude': lambda f: f is None }})
- gq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GQ'), 'exclude': lambda f: f is None }})
- er: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ER'), 'exclude': lambda f: f is None }})
- ee: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EE'), 'exclude': lambda f: f is None }})
- et: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ET'), 'exclude': lambda f: f is None }})
- fk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FK'), 'exclude': lambda f: f is None }})
- fo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FO'), 'exclude': lambda f: f is None }})
- fj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FJ'), 'exclude': lambda f: f is None }})
- fi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FI'), 'exclude': lambda f: f is None }})
- fr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FR'), 'exclude': lambda f: f is None }})
- gf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GF'), 'exclude': lambda f: f is None }})
- pf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PF'), 'exclude': lambda f: f is None }})
- tf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TF'), 'exclude': lambda f: f is None }})
- ga: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GA'), 'exclude': lambda f: f is None }})
- gm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GM'), 'exclude': lambda f: f is None }})
- ge: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GE'), 'exclude': lambda f: f is None }})
- de: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DE'), 'exclude': lambda f: f is None }})
- gh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GH'), 'exclude': lambda f: f is None }})
- gi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GI'), 'exclude': lambda f: f is None }})
- gr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GR'), 'exclude': lambda f: f is None }})
- gl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GL'), 'exclude': lambda f: f is None }})
- gd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GD'), 'exclude': lambda f: f is None }})
- gp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GP'), 'exclude': lambda f: f is None }})
- gu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GU'), 'exclude': lambda f: f is None }})
- gt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GT'), 'exclude': lambda f: f is None }})
- gn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GN'), 'exclude': lambda f: f is None }})
- gw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GW'), 'exclude': lambda f: f is None }})
- gy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GY'), 'exclude': lambda f: f is None }})
- ht: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HT'), 'exclude': lambda f: f is None }})
- hm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HM'), 'exclude': lambda f: f is None }})
- va: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VA'), 'exclude': lambda f: f is None }})
- hn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HN'), 'exclude': lambda f: f is None }})
- hk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HK'), 'exclude': lambda f: f is None }})
- hu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HU'), 'exclude': lambda f: f is None }})
- is_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IS'), 'exclude': lambda f: f is None }})
- in_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IN'), 'exclude': lambda f: f is None }})
- id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ID'), 'exclude': lambda f: f is None }})
- ir: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IR'), 'exclude': lambda f: f is None }})
- iq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IQ'), 'exclude': lambda f: f is None }})
- ie: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IE'), 'exclude': lambda f: f is None }})
- il: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IL'), 'exclude': lambda f: f is None }})
- it: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IT'), 'exclude': lambda f: f is None }})
- jm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JM'), 'exclude': lambda f: f is None }})
- jp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JP'), 'exclude': lambda f: f is None }})
- jo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JO'), 'exclude': lambda f: f is None }})
- kz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KZ'), 'exclude': lambda f: f is None }})
- ke: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KE'), 'exclude': lambda f: f is None }})
- ki: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KI'), 'exclude': lambda f: f is None }})
- kp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KP'), 'exclude': lambda f: f is None }})
- kr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KR'), 'exclude': lambda f: f is None }})
- kw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KW'), 'exclude': lambda f: f is None }})
- kg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KG'), 'exclude': lambda f: f is None }})
- la: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LA'), 'exclude': lambda f: f is None }})
- lv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LV'), 'exclude': lambda f: f is None }})
- lb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LB'), 'exclude': lambda f: f is None }})
- ls: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LS'), 'exclude': lambda f: f is None }})
- lr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LR'), 'exclude': lambda f: f is None }})
- ly: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LY'), 'exclude': lambda f: f is None }})
- li: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LI'), 'exclude': lambda f: f is None }})
- lt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LT'), 'exclude': lambda f: f is None }})
- lu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LU'), 'exclude': lambda f: f is None }})
- mo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MO'), 'exclude': lambda f: f is None }})
- mg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MG'), 'exclude': lambda f: f is None }})
- mw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MW'), 'exclude': lambda f: f is None }})
- my: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MY'), 'exclude': lambda f: f is None }})
- mv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MV'), 'exclude': lambda f: f is None }})
- ml: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ML'), 'exclude': lambda f: f is None }})
- mt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MT'), 'exclude': lambda f: f is None }})
- mh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MH'), 'exclude': lambda f: f is None }})
- mq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MQ'), 'exclude': lambda f: f is None }})
- mr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MR'), 'exclude': lambda f: f is None }})
- mu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MU'), 'exclude': lambda f: f is None }})
- yt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YT'), 'exclude': lambda f: f is None }})
- mx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MX'), 'exclude': lambda f: f is None }})
- fm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FM'), 'exclude': lambda f: f is None }})
- md: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MD'), 'exclude': lambda f: f is None }})
- mc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MC'), 'exclude': lambda f: f is None }})
- mn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MN'), 'exclude': lambda f: f is None }})
- ms: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MS'), 'exclude': lambda f: f is None }})
- ma: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MA'), 'exclude': lambda f: f is None }})
- mz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MZ'), 'exclude': lambda f: f is None }})
- mm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MM'), 'exclude': lambda f: f is None }})
- na: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NA'), 'exclude': lambda f: f is None }})
- nr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NR'), 'exclude': lambda f: f is None }})
- np: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NP'), 'exclude': lambda f: f is None }})
- nl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NL'), 'exclude': lambda f: f is None }})
- nc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NC'), 'exclude': lambda f: f is None }})
- nz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NZ'), 'exclude': lambda f: f is None }})
- ni: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NI'), 'exclude': lambda f: f is None }})
- ne: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NE'), 'exclude': lambda f: f is None }})
- ng: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NG'), 'exclude': lambda f: f is None }})
- nu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NU'), 'exclude': lambda f: f is None }})
- nf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NF'), 'exclude': lambda f: f is None }})
- mk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MK'), 'exclude': lambda f: f is None }})
- mp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MP'), 'exclude': lambda f: f is None }})
- no: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NO'), 'exclude': lambda f: f is None }})
- om: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('OM'), 'exclude': lambda f: f is None }})
- pk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PK'), 'exclude': lambda f: f is None }})
- pw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PW'), 'exclude': lambda f: f is None }})
- ps: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PS'), 'exclude': lambda f: f is None }})
- pa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PA'), 'exclude': lambda f: f is None }})
- pg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PG'), 'exclude': lambda f: f is None }})
- py: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PY'), 'exclude': lambda f: f is None }})
- pe: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PE'), 'exclude': lambda f: f is None }})
- ph: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PH'), 'exclude': lambda f: f is None }})
- pn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PN'), 'exclude': lambda f: f is None }})
- pl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PL'), 'exclude': lambda f: f is None }})
- pt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PT'), 'exclude': lambda f: f is None }})
- pr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PR'), 'exclude': lambda f: f is None }})
- qa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('QA'), 'exclude': lambda f: f is None }})
- re: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RE'), 'exclude': lambda f: f is None }})
- ro: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RO'), 'exclude': lambda f: f is None }})
- ru: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RU'), 'exclude': lambda f: f is None }})
- rw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RW'), 'exclude': lambda f: f is None }})
- sh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SH'), 'exclude': lambda f: f is None }})
- kn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KN'), 'exclude': lambda f: f is None }})
- lc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LC'), 'exclude': lambda f: f is None }})
- pm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PM'), 'exclude': lambda f: f is None }})
- vc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VC'), 'exclude': lambda f: f is None }})
- ws: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WS'), 'exclude': lambda f: f is None }})
- sm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SM'), 'exclude': lambda f: f is None }})
- st: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ST'), 'exclude': lambda f: f is None }})
- sa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SA'), 'exclude': lambda f: f is None }})
- sn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SN'), 'exclude': lambda f: f is None }})
- sc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SC'), 'exclude': lambda f: f is None }})
- sl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SL'), 'exclude': lambda f: f is None }})
- sg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SG'), 'exclude': lambda f: f is None }})
- sk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SK'), 'exclude': lambda f: f is None }})
- si: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SI'), 'exclude': lambda f: f is None }})
- sb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SB'), 'exclude': lambda f: f is None }})
- so: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SO'), 'exclude': lambda f: f is None }})
- za: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZA'), 'exclude': lambda f: f is None }})
- gs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GS'), 'exclude': lambda f: f is None }})
- es: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ES'), 'exclude': lambda f: f is None }})
- lk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LK'), 'exclude': lambda f: f is None }})
- sd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SD'), 'exclude': lambda f: f is None }})
- sr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SR'), 'exclude': lambda f: f is None }})
- sj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SJ'), 'exclude': lambda f: f is None }})
- sz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SZ'), 'exclude': lambda f: f is None }})
- se: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SE'), 'exclude': lambda f: f is None }})
- ch: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CH'), 'exclude': lambda f: f is None }})
- sy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SY'), 'exclude': lambda f: f is None }})
- tw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TW'), 'exclude': lambda f: f is None }})
- tj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TJ'), 'exclude': lambda f: f is None }})
- tz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TZ'), 'exclude': lambda f: f is None }})
- th: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TH'), 'exclude': lambda f: f is None }})
- tl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TL'), 'exclude': lambda f: f is None }})
- tg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TG'), 'exclude': lambda f: f is None }})
- tk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TK'), 'exclude': lambda f: f is None }})
- to: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TO'), 'exclude': lambda f: f is None }})
- tt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TT'), 'exclude': lambda f: f is None }})
- tn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TN'), 'exclude': lambda f: f is None }})
- tr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TR'), 'exclude': lambda f: f is None }})
- tm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TM'), 'exclude': lambda f: f is None }})
- tc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TC'), 'exclude': lambda f: f is None }})
- tv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TV'), 'exclude': lambda f: f is None }})
- ug: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UG'), 'exclude': lambda f: f is None }})
- ua: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UA'), 'exclude': lambda f: f is None }})
- ae: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AE'), 'exclude': lambda f: f is None }})
- gb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GB'), 'exclude': lambda f: f is None }})
- us: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('US'), 'exclude': lambda f: f is None }})
- um: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UM'), 'exclude': lambda f: f is None }})
- uy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UY'), 'exclude': lambda f: f is None }})
- uz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UZ'), 'exclude': lambda f: f is None }})
- vu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VU'), 'exclude': lambda f: f is None }})
- ve: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VE'), 'exclude': lambda f: f is None }})
- vn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VN'), 'exclude': lambda f: f is None }})
- vg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VG'), 'exclude': lambda f: f is None }})
- vi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VI'), 'exclude': lambda f: f is None }})
- wf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WF'), 'exclude': lambda f: f is None }})
- eh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EH'), 'exclude': lambda f: f is None }})
- ye: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YE'), 'exclude': lambda f: f is None }})
- zm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZM'), 'exclude': lambda f: f is None }})
- zw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZW'), 'exclude': lambda f: f is None }})
- ax: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AX'), 'exclude': lambda f: f is None }})
- bq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BQ'), 'exclude': lambda f: f is None }})
- cw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CW'), 'exclude': lambda f: f is None }})
- gg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GG'), 'exclude': lambda f: f is None }})
- im: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IM'), 'exclude': lambda f: f is None }})
- je: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JE'), 'exclude': lambda f: f is None }})
- me: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ME'), 'exclude': lambda f: f is None }})
- bl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BL'), 'exclude': lambda f: f is None }})
- mf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MF'), 'exclude': lambda f: f is None }})
- rs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RS'), 'exclude': lambda f: f is None }})
- sx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SX'), 'exclude': lambda f: f is None }})
- ss: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SS'), 'exclude': lambda f: f is None }})
- xk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('XK'), 'exclude': lambda f: f is None }})
-
-
+UpdateLinkTagNames = Union[str, List[str]]
@dataclass_json(undefined=Undefined.EXCLUDE)
@@ -290,6 +37,8 @@ class UpdateLinkRequestBody:
r"""This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter."""
prefix: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('prefix'), 'exclude': lambda f: f is None }})
r"""The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided."""
+ track_conversion: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('trackConversion'), 'exclude': lambda f: f is None }})
+ r"""Whether to track conversions for the short link."""
archived: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('archived'), 'exclude': lambda f: f is None }})
r"""Whether the short link is archived."""
public_stats: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('publicStats'), 'exclude': lambda f: f is None }})
@@ -299,9 +48,9 @@ class UpdateLinkRequestBody:
Deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
"""
- tag_ids: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagIds'), 'exclude': lambda f: f is None }})
+ tag_ids: Optional[UpdateLinkTagIds] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagIds'), 'exclude': lambda f: f is None }})
r"""The unique IDs of the tags assigned to the short link."""
- tag_names: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagNames'), 'exclude': lambda f: f is None }})
+ tag_names: Optional[UpdateLinkTagNames] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagNames'), 'exclude': lambda f: f is None }})
r"""The unique name of the tags assigned to the short link (case insensitive)."""
comments: Optional[str] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('comments'), 'exclude': lambda f: f is UpdateLinkRequestBody.UNSET }})
r"""The comments for the short link."""
@@ -325,7 +74,7 @@ class UpdateLinkRequestBody:
r"""The iOS destination URL for the short link for iOS device targeting."""
android: Optional[str] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('android'), 'exclude': lambda f: f is UpdateLinkRequestBody.UNSET }})
r"""The Android destination URL for the short link for Android device targeting."""
- geo: Optional[UpdateLinkGeo] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('geo'), 'exclude': lambda f: f is UpdateLinkRequestBody.UNSET }})
+ geo: Optional[components_linkgeotargeting.LinkGeoTargeting] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('geo'), 'exclude': lambda f: f is UpdateLinkRequestBody.UNSET }})
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."""
diff --git a/src/dub/models/operations/upsertlink.py b/src/dub/models/operations/upsertlink.py
index 2c3cc70..4763cf9 100644
--- a/src/dub/models/operations/upsertlink.py
+++ b/src/dub/models/operations/upsertlink.py
@@ -3,6 +3,7 @@
from __future__ import annotations
import dataclasses
from ...models.components import httpmetadata as components_httpmetadata
+from ...models.components import linkgeotargeting as components_linkgeotargeting
from ...models.components import linkschema as components_linkschema
from dataclasses_json import Undefined, dataclass_json
from dub import utils
@@ -17,263 +18,9 @@ class UpsertLinkGlobals:
+UpsertLinkTagIds = Union[str, List[str]]
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class UpsertLinkGeo:
- r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."""
- af: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AF'), 'exclude': lambda f: f is None }})
- al: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AL'), 'exclude': lambda f: f is None }})
- dz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DZ'), 'exclude': lambda f: f is None }})
- as_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AS'), 'exclude': lambda f: f is None }})
- ad: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AD'), 'exclude': lambda f: f is None }})
- ao: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AO'), 'exclude': lambda f: f is None }})
- ai: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AI'), 'exclude': lambda f: f is None }})
- aq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AQ'), 'exclude': lambda f: f is None }})
- ag: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AG'), 'exclude': lambda f: f is None }})
- ar: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AR'), 'exclude': lambda f: f is None }})
- am: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AM'), 'exclude': lambda f: f is None }})
- aw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AW'), 'exclude': lambda f: f is None }})
- au: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AU'), 'exclude': lambda f: f is None }})
- at: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AT'), 'exclude': lambda f: f is None }})
- az: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AZ'), 'exclude': lambda f: f is None }})
- bs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BS'), 'exclude': lambda f: f is None }})
- bh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BH'), 'exclude': lambda f: f is None }})
- bd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BD'), 'exclude': lambda f: f is None }})
- bb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BB'), 'exclude': lambda f: f is None }})
- by: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BY'), 'exclude': lambda f: f is None }})
- be: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BE'), 'exclude': lambda f: f is None }})
- bz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BZ'), 'exclude': lambda f: f is None }})
- bj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BJ'), 'exclude': lambda f: f is None }})
- bm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BM'), 'exclude': lambda f: f is None }})
- bt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BT'), 'exclude': lambda f: f is None }})
- bo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BO'), 'exclude': lambda f: f is None }})
- ba: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BA'), 'exclude': lambda f: f is None }})
- bw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BW'), 'exclude': lambda f: f is None }})
- bv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BV'), 'exclude': lambda f: f is None }})
- br: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BR'), 'exclude': lambda f: f is None }})
- io: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IO'), 'exclude': lambda f: f is None }})
- bn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BN'), 'exclude': lambda f: f is None }})
- bg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BG'), 'exclude': lambda f: f is None }})
- bf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BF'), 'exclude': lambda f: f is None }})
- bi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BI'), 'exclude': lambda f: f is None }})
- kh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KH'), 'exclude': lambda f: f is None }})
- cm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CM'), 'exclude': lambda f: f is None }})
- ca: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CA'), 'exclude': lambda f: f is None }})
- cv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CV'), 'exclude': lambda f: f is None }})
- ky: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KY'), 'exclude': lambda f: f is None }})
- cf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CF'), 'exclude': lambda f: f is None }})
- td: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TD'), 'exclude': lambda f: f is None }})
- cl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CL'), 'exclude': lambda f: f is None }})
- cn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CN'), 'exclude': lambda f: f is None }})
- cx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CX'), 'exclude': lambda f: f is None }})
- cc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CC'), 'exclude': lambda f: f is None }})
- co: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CO'), 'exclude': lambda f: f is None }})
- km: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KM'), 'exclude': lambda f: f is None }})
- cg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CG'), 'exclude': lambda f: f is None }})
- cd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CD'), 'exclude': lambda f: f is None }})
- ck: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CK'), 'exclude': lambda f: f is None }})
- cr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CR'), 'exclude': lambda f: f is None }})
- ci: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CI'), 'exclude': lambda f: f is None }})
- hr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HR'), 'exclude': lambda f: f is None }})
- cu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CU'), 'exclude': lambda f: f is None }})
- cy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CY'), 'exclude': lambda f: f is None }})
- cz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CZ'), 'exclude': lambda f: f is None }})
- dk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DK'), 'exclude': lambda f: f is None }})
- dj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DJ'), 'exclude': lambda f: f is None }})
- dm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DM'), 'exclude': lambda f: f is None }})
- do: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DO'), 'exclude': lambda f: f is None }})
- ec: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EC'), 'exclude': lambda f: f is None }})
- eg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EG'), 'exclude': lambda f: f is None }})
- sv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SV'), 'exclude': lambda f: f is None }})
- gq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GQ'), 'exclude': lambda f: f is None }})
- er: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ER'), 'exclude': lambda f: f is None }})
- ee: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EE'), 'exclude': lambda f: f is None }})
- et: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ET'), 'exclude': lambda f: f is None }})
- fk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FK'), 'exclude': lambda f: f is None }})
- fo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FO'), 'exclude': lambda f: f is None }})
- fj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FJ'), 'exclude': lambda f: f is None }})
- fi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FI'), 'exclude': lambda f: f is None }})
- fr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FR'), 'exclude': lambda f: f is None }})
- gf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GF'), 'exclude': lambda f: f is None }})
- pf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PF'), 'exclude': lambda f: f is None }})
- tf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TF'), 'exclude': lambda f: f is None }})
- ga: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GA'), 'exclude': lambda f: f is None }})
- gm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GM'), 'exclude': lambda f: f is None }})
- ge: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GE'), 'exclude': lambda f: f is None }})
- de: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('DE'), 'exclude': lambda f: f is None }})
- gh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GH'), 'exclude': lambda f: f is None }})
- gi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GI'), 'exclude': lambda f: f is None }})
- gr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GR'), 'exclude': lambda f: f is None }})
- gl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GL'), 'exclude': lambda f: f is None }})
- gd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GD'), 'exclude': lambda f: f is None }})
- gp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GP'), 'exclude': lambda f: f is None }})
- gu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GU'), 'exclude': lambda f: f is None }})
- gt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GT'), 'exclude': lambda f: f is None }})
- gn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GN'), 'exclude': lambda f: f is None }})
- gw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GW'), 'exclude': lambda f: f is None }})
- gy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GY'), 'exclude': lambda f: f is None }})
- ht: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HT'), 'exclude': lambda f: f is None }})
- hm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HM'), 'exclude': lambda f: f is None }})
- va: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VA'), 'exclude': lambda f: f is None }})
- hn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HN'), 'exclude': lambda f: f is None }})
- hk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HK'), 'exclude': lambda f: f is None }})
- hu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('HU'), 'exclude': lambda f: f is None }})
- is_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IS'), 'exclude': lambda f: f is None }})
- in_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IN'), 'exclude': lambda f: f is None }})
- id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ID'), 'exclude': lambda f: f is None }})
- ir: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IR'), 'exclude': lambda f: f is None }})
- iq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IQ'), 'exclude': lambda f: f is None }})
- ie: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IE'), 'exclude': lambda f: f is None }})
- il: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IL'), 'exclude': lambda f: f is None }})
- it: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IT'), 'exclude': lambda f: f is None }})
- jm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JM'), 'exclude': lambda f: f is None }})
- jp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JP'), 'exclude': lambda f: f is None }})
- jo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JO'), 'exclude': lambda f: f is None }})
- kz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KZ'), 'exclude': lambda f: f is None }})
- ke: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KE'), 'exclude': lambda f: f is None }})
- ki: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KI'), 'exclude': lambda f: f is None }})
- kp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KP'), 'exclude': lambda f: f is None }})
- kr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KR'), 'exclude': lambda f: f is None }})
- kw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KW'), 'exclude': lambda f: f is None }})
- kg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KG'), 'exclude': lambda f: f is None }})
- la: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LA'), 'exclude': lambda f: f is None }})
- lv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LV'), 'exclude': lambda f: f is None }})
- lb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LB'), 'exclude': lambda f: f is None }})
- ls: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LS'), 'exclude': lambda f: f is None }})
- lr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LR'), 'exclude': lambda f: f is None }})
- ly: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LY'), 'exclude': lambda f: f is None }})
- li: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LI'), 'exclude': lambda f: f is None }})
- lt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LT'), 'exclude': lambda f: f is None }})
- lu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LU'), 'exclude': lambda f: f is None }})
- mo: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MO'), 'exclude': lambda f: f is None }})
- mg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MG'), 'exclude': lambda f: f is None }})
- mw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MW'), 'exclude': lambda f: f is None }})
- my: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MY'), 'exclude': lambda f: f is None }})
- mv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MV'), 'exclude': lambda f: f is None }})
- ml: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ML'), 'exclude': lambda f: f is None }})
- mt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MT'), 'exclude': lambda f: f is None }})
- mh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MH'), 'exclude': lambda f: f is None }})
- mq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MQ'), 'exclude': lambda f: f is None }})
- mr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MR'), 'exclude': lambda f: f is None }})
- mu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MU'), 'exclude': lambda f: f is None }})
- yt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YT'), 'exclude': lambda f: f is None }})
- mx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MX'), 'exclude': lambda f: f is None }})
- fm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('FM'), 'exclude': lambda f: f is None }})
- md: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MD'), 'exclude': lambda f: f is None }})
- mc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MC'), 'exclude': lambda f: f is None }})
- mn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MN'), 'exclude': lambda f: f is None }})
- ms: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MS'), 'exclude': lambda f: f is None }})
- ma: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MA'), 'exclude': lambda f: f is None }})
- mz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MZ'), 'exclude': lambda f: f is None }})
- mm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MM'), 'exclude': lambda f: f is None }})
- na: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NA'), 'exclude': lambda f: f is None }})
- nr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NR'), 'exclude': lambda f: f is None }})
- np: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NP'), 'exclude': lambda f: f is None }})
- nl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NL'), 'exclude': lambda f: f is None }})
- nc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NC'), 'exclude': lambda f: f is None }})
- nz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NZ'), 'exclude': lambda f: f is None }})
- ni: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NI'), 'exclude': lambda f: f is None }})
- ne: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NE'), 'exclude': lambda f: f is None }})
- ng: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NG'), 'exclude': lambda f: f is None }})
- nu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NU'), 'exclude': lambda f: f is None }})
- nf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NF'), 'exclude': lambda f: f is None }})
- mk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MK'), 'exclude': lambda f: f is None }})
- mp: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MP'), 'exclude': lambda f: f is None }})
- no: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('NO'), 'exclude': lambda f: f is None }})
- om: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('OM'), 'exclude': lambda f: f is None }})
- pk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PK'), 'exclude': lambda f: f is None }})
- pw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PW'), 'exclude': lambda f: f is None }})
- ps: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PS'), 'exclude': lambda f: f is None }})
- pa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PA'), 'exclude': lambda f: f is None }})
- pg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PG'), 'exclude': lambda f: f is None }})
- py: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PY'), 'exclude': lambda f: f is None }})
- pe: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PE'), 'exclude': lambda f: f is None }})
- ph: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PH'), 'exclude': lambda f: f is None }})
- pn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PN'), 'exclude': lambda f: f is None }})
- pl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PL'), 'exclude': lambda f: f is None }})
- pt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PT'), 'exclude': lambda f: f is None }})
- pr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PR'), 'exclude': lambda f: f is None }})
- qa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('QA'), 'exclude': lambda f: f is None }})
- re: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RE'), 'exclude': lambda f: f is None }})
- ro: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RO'), 'exclude': lambda f: f is None }})
- ru: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RU'), 'exclude': lambda f: f is None }})
- rw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RW'), 'exclude': lambda f: f is None }})
- sh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SH'), 'exclude': lambda f: f is None }})
- kn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('KN'), 'exclude': lambda f: f is None }})
- lc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LC'), 'exclude': lambda f: f is None }})
- pm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('PM'), 'exclude': lambda f: f is None }})
- vc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VC'), 'exclude': lambda f: f is None }})
- ws: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WS'), 'exclude': lambda f: f is None }})
- sm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SM'), 'exclude': lambda f: f is None }})
- st: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ST'), 'exclude': lambda f: f is None }})
- sa: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SA'), 'exclude': lambda f: f is None }})
- sn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SN'), 'exclude': lambda f: f is None }})
- sc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SC'), 'exclude': lambda f: f is None }})
- sl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SL'), 'exclude': lambda f: f is None }})
- sg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SG'), 'exclude': lambda f: f is None }})
- sk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SK'), 'exclude': lambda f: f is None }})
- si: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SI'), 'exclude': lambda f: f is None }})
- sb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SB'), 'exclude': lambda f: f is None }})
- so: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SO'), 'exclude': lambda f: f is None }})
- za: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZA'), 'exclude': lambda f: f is None }})
- gs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GS'), 'exclude': lambda f: f is None }})
- es: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ES'), 'exclude': lambda f: f is None }})
- lk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('LK'), 'exclude': lambda f: f is None }})
- sd: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SD'), 'exclude': lambda f: f is None }})
- sr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SR'), 'exclude': lambda f: f is None }})
- sj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SJ'), 'exclude': lambda f: f is None }})
- sz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SZ'), 'exclude': lambda f: f is None }})
- se: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SE'), 'exclude': lambda f: f is None }})
- ch: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CH'), 'exclude': lambda f: f is None }})
- sy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SY'), 'exclude': lambda f: f is None }})
- tw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TW'), 'exclude': lambda f: f is None }})
- tj: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TJ'), 'exclude': lambda f: f is None }})
- tz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TZ'), 'exclude': lambda f: f is None }})
- th: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TH'), 'exclude': lambda f: f is None }})
- tl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TL'), 'exclude': lambda f: f is None }})
- tg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TG'), 'exclude': lambda f: f is None }})
- tk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TK'), 'exclude': lambda f: f is None }})
- to: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TO'), 'exclude': lambda f: f is None }})
- tt: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TT'), 'exclude': lambda f: f is None }})
- tn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TN'), 'exclude': lambda f: f is None }})
- tr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TR'), 'exclude': lambda f: f is None }})
- tm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TM'), 'exclude': lambda f: f is None }})
- tc: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TC'), 'exclude': lambda f: f is None }})
- tv: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('TV'), 'exclude': lambda f: f is None }})
- ug: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UG'), 'exclude': lambda f: f is None }})
- ua: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UA'), 'exclude': lambda f: f is None }})
- ae: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AE'), 'exclude': lambda f: f is None }})
- gb: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GB'), 'exclude': lambda f: f is None }})
- us: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('US'), 'exclude': lambda f: f is None }})
- um: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UM'), 'exclude': lambda f: f is None }})
- uy: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UY'), 'exclude': lambda f: f is None }})
- uz: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('UZ'), 'exclude': lambda f: f is None }})
- vu: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VU'), 'exclude': lambda f: f is None }})
- ve: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VE'), 'exclude': lambda f: f is None }})
- vn: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VN'), 'exclude': lambda f: f is None }})
- vg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VG'), 'exclude': lambda f: f is None }})
- vi: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('VI'), 'exclude': lambda f: f is None }})
- wf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('WF'), 'exclude': lambda f: f is None }})
- eh: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('EH'), 'exclude': lambda f: f is None }})
- ye: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('YE'), 'exclude': lambda f: f is None }})
- zm: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZM'), 'exclude': lambda f: f is None }})
- zw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ZW'), 'exclude': lambda f: f is None }})
- ax: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('AX'), 'exclude': lambda f: f is None }})
- bq: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BQ'), 'exclude': lambda f: f is None }})
- cw: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('CW'), 'exclude': lambda f: f is None }})
- gg: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('GG'), 'exclude': lambda f: f is None }})
- im: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('IM'), 'exclude': lambda f: f is None }})
- je: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('JE'), 'exclude': lambda f: f is None }})
- me: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ME'), 'exclude': lambda f: f is None }})
- bl: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('BL'), 'exclude': lambda f: f is None }})
- mf: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('MF'), 'exclude': lambda f: f is None }})
- rs: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('RS'), 'exclude': lambda f: f is None }})
- sx: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SX'), 'exclude': lambda f: f is None }})
- ss: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('SS'), 'exclude': lambda f: f is None }})
- xk: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('XK'), 'exclude': lambda f: f is None }})
-
-
+UpsertLinkTagNames = Union[str, List[str]]
@dataclass_json(undefined=Undefined.EXCLUDE)
@@ -290,6 +37,8 @@ class UpsertLinkRequestBody:
r"""This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter."""
prefix: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('prefix'), 'exclude': lambda f: f is None }})
r"""The prefix of the short link slug for randomly-generated keys (e.g. if prefix is `/c/`, generated keys will be in the `/c/:key` format). Will be ignored if `key` is provided."""
+ track_conversion: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('trackConversion'), 'exclude': lambda f: f is None }})
+ r"""Whether to track conversions for the short link."""
archived: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('archived'), 'exclude': lambda f: f is None }})
r"""Whether the short link is archived."""
public_stats: Optional[bool] = dataclasses.field(default=False, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('publicStats'), 'exclude': lambda f: f is None }})
@@ -299,9 +48,9 @@ class UpsertLinkRequestBody:
Deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
"""
- tag_ids: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagIds'), 'exclude': lambda f: f is None }})
+ tag_ids: Optional[UpsertLinkTagIds] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagIds'), 'exclude': lambda f: f is None }})
r"""The unique IDs of the tags assigned to the short link."""
- tag_names: Optional[Union[str, List[str]]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagNames'), 'exclude': lambda f: f is None }})
+ tag_names: Optional[UpsertLinkTagNames] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tagNames'), 'exclude': lambda f: f is None }})
r"""The unique name of the tags assigned to the short link (case insensitive)."""
comments: Optional[str] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('comments'), 'exclude': lambda f: f is UpsertLinkRequestBody.UNSET }})
r"""The comments for the short link."""
@@ -325,7 +74,7 @@ class UpsertLinkRequestBody:
r"""The iOS destination URL for the short link for iOS device targeting."""
android: Optional[str] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('android'), 'exclude': lambda f: f is UpsertLinkRequestBody.UNSET }})
r"""The Android destination URL for the short link for Android device targeting."""
- geo: Optional[UpsertLinkGeo] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('geo'), 'exclude': lambda f: f is UpsertLinkRequestBody.UNSET }})
+ geo: Optional[components_linkgeotargeting.LinkGeoTargeting] = dataclasses.field(default=UNSET, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('geo'), 'exclude': lambda f: f is UpsertLinkRequestBody.UNSET }})
r"""Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."""
diff --git a/src/dub/sdk.py b/src/dub/sdk.py
index 9578715..55f8fa5 100644
--- a/src/dub/sdk.py
+++ b/src/dub/sdk.py
@@ -8,6 +8,7 @@
from .qr_codes import QRCodes
from .sdkconfiguration import SDKConfiguration
from .tags import Tags
+from .track import Track
from .utils.retries import RetryConfig
from .workspaces import Workspaces
from dub import utils
@@ -23,6 +24,7 @@ class Dub:
workspaces: Workspaces
tags: Tags
domains: Domains
+ track: Track
metatags: Metatags
sdk_configuration: SDKConfiguration
@@ -103,4 +105,5 @@ def _init_sdks(self):
self.workspaces = Workspaces(self.sdk_configuration)
self.tags = Tags(self.sdk_configuration)
self.domains = Domains(self.sdk_configuration)
+ self.track = Track(self.sdk_configuration)
self.metatags = Metatags(self.sdk_configuration)
diff --git a/src/dub/sdkconfiguration.py b/src/dub/sdkconfiguration.py
index e0d54cb..ed49a96 100644
--- a/src/dub/sdkconfiguration.py
+++ b/src/dub/sdkconfiguration.py
@@ -25,9 +25,9 @@ class SDKConfiguration:
server_idx: Optional[int] = 0
language: str = 'python'
openapi_doc_version: str = '0.0.1'
- sdk_version: str = '0.0.4'
- gen_version: str = '2.332.4'
- user_agent: str = 'speakeasy-sdk/python 0.0.4 2.332.4 0.0.1 dub'
+ sdk_version: str = '0.0.5'
+ gen_version: str = '2.333.3'
+ user_agent: str = 'speakeasy-sdk/python 0.0.5 2.333.3 0.0.1 dub'
retry_config: Optional[RetryConfig] = None
def __post_init__(self):
diff --git a/src/dub/track.py b/src/dub/track.py
new file mode 100644
index 0000000..db6463d
--- /dev/null
+++ b/src/dub/track.py
@@ -0,0 +1,413 @@
+"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
+
+import requests as requests_http
+from .sdkconfiguration import SDKConfiguration
+from dub import utils
+from dub._hooks import AfterErrorContext, AfterSuccessContext, BeforeRequestContext, HookContext
+from dub.models import components, errors, operations
+from typing import Optional
+
+class Track:
+ sdk_configuration: SDKConfiguration
+
+ def __init__(self, sdk_config: SDKConfiguration) -> None:
+ self.sdk_configuration = sdk_config
+
+
+
+ def lead(self, request: Optional[operations.TrackLeadRequestBody] = None) -> operations.TrackLeadResponse:
+ r"""Track a lead
+ Track a lead for a short link.
+ """
+ hook_ctx = HookContext(operation_id='trackLead', oauth2_scopes=[], security_source=self.sdk_configuration.security)
+ base_url = utils.template_url(*self.sdk_configuration.get_server_details())
+
+ url = base_url + '/track/lead'
+
+ if callable(self.sdk_configuration.security):
+ headers, query_params = utils.get_security(self.sdk_configuration.security())
+ else:
+ headers, query_params = utils.get_security(self.sdk_configuration.security)
+
+ req_content_type, data, form = utils.serialize_request_body(request, Optional[operations.TrackLeadRequestBody], "request", False, True, 'json')
+ if req_content_type is not None and req_content_type not in ('multipart/form-data', 'multipart/mixed'):
+ headers['content-type'] = req_content_type
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = self.sdk_configuration.user_agent
+ client = self.sdk_configuration.client
+
+ try:
+ req = client.prepare_request(requests_http.Request('POST', url, params=query_params, data=data, files=form, headers=headers))
+ req = self.sdk_configuration.get_hooks().before_request(BeforeRequestContext(hook_ctx), req)
+ http_res = client.send(req)
+ except Exception as e:
+ _, e = self.sdk_configuration.get_hooks().after_error(AfterErrorContext(hook_ctx), None, e)
+ if e is not None:
+ raise e
+
+ if utils.match_status_codes(['400','401','403','404','409','410','422','429','4XX','500','5XX'], http_res.status_code):
+ result, e = self.sdk_configuration.get_hooks().after_error(AfterErrorContext(hook_ctx), http_res, None)
+ if e is not None:
+ raise e
+ if result is not None:
+ http_res = result
+ else:
+ http_res = self.sdk_configuration.get_hooks().after_success(AfterSuccessContext(hook_ctx), http_res)
+
+
+
+ res = operations.TrackLeadResponse(http_meta=components.HTTPMetadata(request=req, response=http_res))
+
+ if http_res.status_code == 200:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[operations.TrackLeadResponseBody])
+ res.object = out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 400:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.BadRequest)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 401:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.Unauthorized)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 403:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.Forbidden)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 404:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.NotFound)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 409:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.Conflict)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 410:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.InviteExpired)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 422:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.UnprocessableEntity)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 429:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.RateLimitExceeded)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code >= 400 and http_res.status_code < 500 or http_res.status_code >= 500 and http_res.status_code < 600:
+ raise errors.SDKError('API error occurred', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 500:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.InternalServerError)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ else:
+ raise errors.SDKError('unknown status code received', http_res.status_code, http_res.text, http_res)
+
+ return res
+
+
+
+ def sale(self, request: Optional[operations.TrackSaleRequestBody] = None) -> operations.TrackSaleResponse:
+ r"""Track a sale
+ Track a sale for a short link.
+ """
+ hook_ctx = HookContext(operation_id='trackSale', oauth2_scopes=[], security_source=self.sdk_configuration.security)
+ base_url = utils.template_url(*self.sdk_configuration.get_server_details())
+
+ url = base_url + '/track/sale'
+
+ if callable(self.sdk_configuration.security):
+ headers, query_params = utils.get_security(self.sdk_configuration.security())
+ else:
+ headers, query_params = utils.get_security(self.sdk_configuration.security)
+
+ req_content_type, data, form = utils.serialize_request_body(request, Optional[operations.TrackSaleRequestBody], "request", False, True, 'json')
+ if req_content_type is not None and req_content_type not in ('multipart/form-data', 'multipart/mixed'):
+ headers['content-type'] = req_content_type
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = self.sdk_configuration.user_agent
+ client = self.sdk_configuration.client
+
+ try:
+ req = client.prepare_request(requests_http.Request('POST', url, params=query_params, data=data, files=form, headers=headers))
+ req = self.sdk_configuration.get_hooks().before_request(BeforeRequestContext(hook_ctx), req)
+ http_res = client.send(req)
+ except Exception as e:
+ _, e = self.sdk_configuration.get_hooks().after_error(AfterErrorContext(hook_ctx), None, e)
+ if e is not None:
+ raise e
+
+ if utils.match_status_codes(['400','401','403','404','409','410','422','429','4XX','500','5XX'], http_res.status_code):
+ result, e = self.sdk_configuration.get_hooks().after_error(AfterErrorContext(hook_ctx), http_res, None)
+ if e is not None:
+ raise e
+ if result is not None:
+ http_res = result
+ else:
+ http_res = self.sdk_configuration.get_hooks().after_success(AfterSuccessContext(hook_ctx), http_res)
+
+
+
+ res = operations.TrackSaleResponse(http_meta=components.HTTPMetadata(request=req, response=http_res))
+
+ if http_res.status_code == 200:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[operations.TrackSaleResponseBody])
+ res.object = out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 400:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.BadRequest)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 401:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.Unauthorized)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 403:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.Forbidden)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 404:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.NotFound)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 409:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.Conflict)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 410:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.InviteExpired)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 422:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.UnprocessableEntity)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 429:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.RateLimitExceeded)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code >= 400 and http_res.status_code < 500 or http_res.status_code >= 500 and http_res.status_code < 600:
+ raise errors.SDKError('API error occurred', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 500:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.InternalServerError)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ else:
+ raise errors.SDKError('unknown status code received', http_res.status_code, http_res.text, http_res)
+
+ return res
+
+
+
+ def customer(self, request: Optional[operations.TrackCustomerRequestBody] = None) -> operations.TrackCustomerResponse:
+ r"""Track a customer
+ Track a customer for an authenticated workspace.
+ """
+ hook_ctx = HookContext(operation_id='trackCustomer', oauth2_scopes=[], security_source=self.sdk_configuration.security)
+ base_url = utils.template_url(*self.sdk_configuration.get_server_details())
+
+ url = base_url + '/track/customer'
+
+ if callable(self.sdk_configuration.security):
+ headers, query_params = utils.get_security(self.sdk_configuration.security())
+ else:
+ headers, query_params = utils.get_security(self.sdk_configuration.security)
+
+ req_content_type, data, form = utils.serialize_request_body(request, Optional[operations.TrackCustomerRequestBody], "request", False, True, 'json')
+ if req_content_type is not None and req_content_type not in ('multipart/form-data', 'multipart/mixed'):
+ headers['content-type'] = req_content_type
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = self.sdk_configuration.user_agent
+ client = self.sdk_configuration.client
+
+ try:
+ req = client.prepare_request(requests_http.Request('POST', url, params=query_params, data=data, files=form, headers=headers))
+ req = self.sdk_configuration.get_hooks().before_request(BeforeRequestContext(hook_ctx), req)
+ http_res = client.send(req)
+ except Exception as e:
+ _, e = self.sdk_configuration.get_hooks().after_error(AfterErrorContext(hook_ctx), None, e)
+ if e is not None:
+ raise e
+
+ if utils.match_status_codes(['400','401','403','404','409','410','422','429','4XX','500','5XX'], http_res.status_code):
+ result, e = self.sdk_configuration.get_hooks().after_error(AfterErrorContext(hook_ctx), http_res, None)
+ if e is not None:
+ raise e
+ if result is not None:
+ http_res = result
+ else:
+ http_res = self.sdk_configuration.get_hooks().after_success(AfterSuccessContext(hook_ctx), http_res)
+
+
+
+ res = operations.TrackCustomerResponse(http_meta=components.HTTPMetadata(request=req, response=http_res))
+
+ if http_res.status_code == 200:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[operations.TrackCustomerResponseBody])
+ res.object = out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 400:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.BadRequest)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 401:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.Unauthorized)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 403:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.Forbidden)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 404:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.NotFound)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 409:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.Conflict)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 410:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.InviteExpired)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 422:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.UnprocessableEntity)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 429:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.RateLimitExceeded)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code >= 400 and http_res.status_code < 500 or http_res.status_code >= 500 and http_res.status_code < 600:
+ raise errors.SDKError('API error occurred', http_res.status_code, http_res.text, http_res)
+ elif http_res.status_code == 500:
+ # pylint: disable=no-else-return
+ if utils.match_content_type(http_res.headers.get('Content-Type') or '', 'application/json'):
+ out = utils.unmarshal_json(http_res.text, errors.InternalServerError)
+ raise out
+ else:
+ content_type = http_res.headers.get('Content-Type')
+ raise errors.SDKError(f'unknown content-type received: {content_type}', http_res.status_code, http_res.text, http_res)
+ else:
+ raise errors.SDKError('unknown status code received', http_res.status_code, http_res.text, http_res)
+
+ return res
+
+
+