From 80624c2bfe3e06d971af96da9a629123b7920290 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 5 Mar 2025 00:28:36 +0000
Subject: [PATCH 1/9] feat(docs): updating documented docs for mintlify (#5)
---
.stats.yml | 2 +-
src/openint/_client.py | 256 +++++++++++++++++-
.../types/client_get_connection_params.py | 57 +++-
.../client_list_connection_configs_params.py | 57 +++-
tests/api_resources/test_client.py | 12 +-
5 files changed, 371 insertions(+), 13 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index b70c8fe..5a441b8 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
configured_endpoints: 5
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openint%2Fopenint-9401d823cca81901da726bddeb09c51d38461d700828a76e7b41abb25bc2e0eb.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openint%2Fopenint-1774a01e29ee20fa16ce371374b9a675da3d1a0a5d3cb911a4acf067d3c7351e.yml
diff --git a/src/openint/_client.py b/src/openint/_client.py
index 37f25dc..a466d61 100644
--- a/src/openint/_client.py
+++ b/src/openint/_client.py
@@ -217,6 +217,8 @@ def check_connection(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> CheckConnectionResponse:
"""
+ Verify that a connection is healthy
+
Args:
extra_headers: Send extra headers
@@ -240,7 +242,62 @@ def get_connection(
self,
*,
connector_config_id: str | NotGiven = NOT_GIVEN,
- connector_name: str | NotGiven = NOT_GIVEN,
+ connector_name: Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ | NotGiven = NOT_GIVEN,
customer_id: str | NotGiven = NOT_GIVEN,
expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
@@ -254,7 +311,11 @@ def get_connection(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> GetConnectionResponse:
"""
+ List all connections with optional filtering
+
Args:
+ connector_name: The name of the connector
+
include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
extra_headers: Send extra headers
@@ -291,7 +352,62 @@ def get_connection(
def list_connection_configs(
self,
*,
- connector_name: str | NotGiven = NOT_GIVEN,
+ connector_name: Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ | NotGiven = NOT_GIVEN,
expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
limit: int | NotGiven = NOT_GIVEN,
offset: int | NotGiven = NOT_GIVEN,
@@ -303,7 +419,11 @@ def list_connection_configs(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> ListConnectionConfigsResponse:
"""
+ List all connector configurations with optional filtering
+
Args:
+ connector_name: The name of the connector
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -347,6 +467,8 @@ def list_connections(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> ListConnectionsResponse:
"""
+ Get details of a specific connection
+
Args:
include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
@@ -400,6 +522,8 @@ def list_events(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> ListEventsResponse:
"""
+ List all events for an organization
+
Args:
extra_headers: Send extra headers
@@ -620,6 +744,8 @@ async def check_connection(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> CheckConnectionResponse:
"""
+ Verify that a connection is healthy
+
Args:
extra_headers: Send extra headers
@@ -643,7 +769,62 @@ async def get_connection(
self,
*,
connector_config_id: str | NotGiven = NOT_GIVEN,
- connector_name: str | NotGiven = NOT_GIVEN,
+ connector_name: Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ | NotGiven = NOT_GIVEN,
customer_id: str | NotGiven = NOT_GIVEN,
expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
@@ -657,7 +838,11 @@ async def get_connection(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> GetConnectionResponse:
"""
+ List all connections with optional filtering
+
Args:
+ connector_name: The name of the connector
+
include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
extra_headers: Send extra headers
@@ -694,7 +879,62 @@ async def get_connection(
async def list_connection_configs(
self,
*,
- connector_name: str | NotGiven = NOT_GIVEN,
+ connector_name: Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ | NotGiven = NOT_GIVEN,
expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
limit: int | NotGiven = NOT_GIVEN,
offset: int | NotGiven = NOT_GIVEN,
@@ -706,7 +946,11 @@ async def list_connection_configs(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> ListConnectionConfigsResponse:
"""
+ List all connector configurations with optional filtering
+
Args:
+ connector_name: The name of the connector
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -750,6 +994,8 @@ async def list_connections(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> ListConnectionsResponse:
"""
+ Get details of a specific connection
+
Args:
include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
@@ -803,6 +1049,8 @@ async def list_events(
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> ListEventsResponse:
"""
+ List all events for an organization
+
Args:
extra_headers: Send extra headers
diff --git a/src/openint/types/client_get_connection_params.py b/src/openint/types/client_get_connection_params.py
index 18299a6..70f9c11 100644
--- a/src/openint/types/client_get_connection_params.py
+++ b/src/openint/types/client_get_connection_params.py
@@ -11,7 +11,62 @@
class ClientGetConnectionParams(TypedDict, total=False):
connector_config_id: str
- connector_name: str
+ connector_name: Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ """The name of the connector"""
customer_id: str
diff --git a/src/openint/types/client_list_connection_configs_params.py b/src/openint/types/client_list_connection_configs_params.py
index 92f5ee6..c384d3e 100644
--- a/src/openint/types/client_list_connection_configs_params.py
+++ b/src/openint/types/client_list_connection_configs_params.py
@@ -9,7 +9,62 @@
class ClientListConnectionConfigsParams(TypedDict, total=False):
- connector_name: str
+ connector_name: Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ """The name of the connector"""
expand: List[Literal["connector"]]
diff --git a/tests/api_resources/test_client.py b/tests/api_resources/test_client.py
index 53452b2..0f4a187 100644
--- a/tests/api_resources/test_client.py
+++ b/tests/api_resources/test_client.py
@@ -76,8 +76,8 @@ def test_method_get_connection(self, client: Openint) -> None:
def test_method_get_connection_with_all_params(self, client: Openint) -> None:
client_ = client.get_connection(
connector_config_id="connector_config_id",
- connector_name="connector_name",
- customer_id="customer_id",
+ connector_name="aircall",
+ customer_id="x",
expand=["connector"],
include_secrets="none",
limit=1,
@@ -117,7 +117,7 @@ def test_method_list_connection_configs(self, client: Openint) -> None:
@parametrize
def test_method_list_connection_configs_with_all_params(self, client: Openint) -> None:
client_ = client.list_connection_configs(
- connector_name="connector_name",
+ connector_name="aircall",
expand=["connector"],
limit=1,
offset=0,
@@ -293,8 +293,8 @@ async def test_method_get_connection(self, async_client: AsyncOpenint) -> None:
async def test_method_get_connection_with_all_params(self, async_client: AsyncOpenint) -> None:
client = await async_client.get_connection(
connector_config_id="connector_config_id",
- connector_name="connector_name",
- customer_id="customer_id",
+ connector_name="aircall",
+ customer_id="x",
expand=["connector"],
include_secrets="none",
limit=1,
@@ -334,7 +334,7 @@ async def test_method_list_connection_configs(self, async_client: AsyncOpenint)
@parametrize
async def test_method_list_connection_configs_with_all_params(self, async_client: AsyncOpenint) -> None:
client = await async_client.list_connection_configs(
- connector_name="connector_name",
+ connector_name="aircall",
expand=["connector"],
limit=1,
offset=0,
From 6b05d115709fed32c7c6884621ac0959abf75ea1 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 5 Mar 2025 00:31:59 +0000
Subject: [PATCH 2/9] feat(api): manual updates (#7)
---
.stats.yml | 2 +-
api.md | 4 +
src/openint/_client.py | 358 +++++++++++++++++-
src/openint/types/__init__.py | 4 +
.../types/client_create_magic_link_params.py | 88 +++++
.../types/client_create_token_params.py | 18 +
.../types/create_magic_link_response.py | 10 +
src/openint/types/create_token_response.py | 10 +
tests/api_resources/test_client.py | 192 ++++++++++
9 files changed, 684 insertions(+), 2 deletions(-)
create mode 100644 src/openint/types/client_create_magic_link_params.py
create mode 100644 src/openint/types/client_create_token_params.py
create mode 100644 src/openint/types/create_magic_link_response.py
create mode 100644 src/openint/types/create_token_response.py
diff --git a/.stats.yml b/.stats.yml
index 5a441b8..e4a0143 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
-configured_endpoints: 5
+configured_endpoints: 7
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openint%2Fopenint-1774a01e29ee20fa16ce371374b9a675da3d1a0a5d3cb911a4acf067d3c7351e.yml
diff --git a/api.md b/api.md
index b9e3ef6..949d6d2 100644
--- a/api.md
+++ b/api.md
@@ -5,6 +5,8 @@ Types:
```python
from openint.types import (
CheckConnectionResponse,
+ CreateMagicLinkResponse,
+ CreateTokenResponse,
GetConnectionResponse,
ListConnectionConfigsResponse,
ListConnectionsResponse,
@@ -15,6 +17,8 @@ from openint.types import (
Methods:
- client.check_connection(id) -> CheckConnectionResponse
+- client.create_magic_link(\*\*params) -> CreateMagicLinkResponse
+- client.create_token(\*\*params) -> CreateTokenResponse
- client.get_connection(\*\*params) -> GetConnectionResponse
- client.list_connection_configs(\*\*params) -> ListConnectionConfigsResponse
- client.list_connections(id, \*\*params) -> ListConnectionsResponse
diff --git a/src/openint/_client.py b/src/openint/_client.py
index a466d61..71e4001 100644
--- a/src/openint/_client.py
+++ b/src/openint/_client.py
@@ -3,7 +3,7 @@
from __future__ import annotations
import os
-from typing import Any, List, Union, Mapping, cast
+from typing import Any, List, Union, Mapping, Optional, cast
from typing_extensions import Self, Literal, override
import httpx
@@ -12,8 +12,10 @@
from ._qs import Querystring
from .types import (
client_list_events_params,
+ client_create_token_params,
client_get_connection_params,
client_list_connections_params,
+ client_create_magic_link_params,
client_list_connection_configs_params,
)
from ._types import (
@@ -50,9 +52,11 @@
make_request_options,
)
from .types.list_events_response import ListEventsResponse
+from .types.create_token_response import CreateTokenResponse
from .types.get_connection_response import GetConnectionResponse
from .types.check_connection_response import CheckConnectionResponse
from .types.list_connections_response import ListConnectionsResponse
+from .types.create_magic_link_response import CreateMagicLinkResponse
from .types.list_connection_configs_response import ListConnectionConfigsResponse
__all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Openint", "AsyncOpenint", "Client", "AsyncClient"]
@@ -238,6 +242,170 @@ def check_connection(
cast_to=CheckConnectionResponse,
)
+ def create_magic_link(
+ self,
+ *,
+ customer_id: str,
+ email: str,
+ connection_id: Optional[str] | NotGiven = NOT_GIVEN,
+ connector_names: Optional[
+ Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ ]
+ | NotGiven = NOT_GIVEN,
+ redirect_url: Optional[str] | NotGiven = NOT_GIVEN,
+ theme: Optional[Literal["light", "dark"]] | NotGiven = NOT_GIVEN,
+ validity_in_seconds: float | NotGiven = NOT_GIVEN,
+ view: Optional[Literal["manage", "manage-deeplink", "add", "add-deeplink"]] | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> CreateMagicLinkResponse:
+ """
+ Create a magic link for connecting integrations
+
+ Args:
+ email: The email address of the customer
+
+ connector_names: Filter integrations by comma separated connector names
+
+ redirect_url: Where to send user to after connect / if they press back button
+
+ theme: Magic Link display theme
+
+ validity_in_seconds: How long the magic link will be valid for (in seconds) before it expires
+
+ view: Magic Link tab view
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ return self.post(
+ "/connect/magic-link",
+ body=maybe_transform(
+ {
+ "customer_id": customer_id,
+ "email": email,
+ "connection_id": connection_id,
+ "connector_names": connector_names,
+ "redirect_url": redirect_url,
+ "theme": theme,
+ "validity_in_seconds": validity_in_seconds,
+ "view": view,
+ },
+ client_create_magic_link_params.ClientCreateMagicLinkParams,
+ ),
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ cast_to=CreateMagicLinkResponse,
+ )
+
+ def create_token(
+ self,
+ *,
+ customer_id: str,
+ validity_in_seconds: float | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> CreateTokenResponse:
+ """
+ Create an authentication token for a customer
+
+ Args:
+ customer_id: Anything that uniquely identifies the customer that you will be sending the
+ token to
+
+ validity_in_seconds: How long the token will be valid for (in seconds) before it expires
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ return self.post(
+ "/connect/token",
+ body=maybe_transform(
+ {
+ "customer_id": customer_id,
+ "validity_in_seconds": validity_in_seconds,
+ },
+ client_create_token_params.ClientCreateTokenParams,
+ ),
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ cast_to=CreateTokenResponse,
+ )
+
def get_connection(
self,
*,
@@ -765,6 +933,170 @@ async def check_connection(
cast_to=CheckConnectionResponse,
)
+ async def create_magic_link(
+ self,
+ *,
+ customer_id: str,
+ email: str,
+ connection_id: Optional[str] | NotGiven = NOT_GIVEN,
+ connector_names: Optional[
+ Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ ]
+ | NotGiven = NOT_GIVEN,
+ redirect_url: Optional[str] | NotGiven = NOT_GIVEN,
+ theme: Optional[Literal["light", "dark"]] | NotGiven = NOT_GIVEN,
+ validity_in_seconds: float | NotGiven = NOT_GIVEN,
+ view: Optional[Literal["manage", "manage-deeplink", "add", "add-deeplink"]] | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> CreateMagicLinkResponse:
+ """
+ Create a magic link for connecting integrations
+
+ Args:
+ email: The email address of the customer
+
+ connector_names: Filter integrations by comma separated connector names
+
+ redirect_url: Where to send user to after connect / if they press back button
+
+ theme: Magic Link display theme
+
+ validity_in_seconds: How long the magic link will be valid for (in seconds) before it expires
+
+ view: Magic Link tab view
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ return await self.post(
+ "/connect/magic-link",
+ body=await async_maybe_transform(
+ {
+ "customer_id": customer_id,
+ "email": email,
+ "connection_id": connection_id,
+ "connector_names": connector_names,
+ "redirect_url": redirect_url,
+ "theme": theme,
+ "validity_in_seconds": validity_in_seconds,
+ "view": view,
+ },
+ client_create_magic_link_params.ClientCreateMagicLinkParams,
+ ),
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ cast_to=CreateMagicLinkResponse,
+ )
+
+ async def create_token(
+ self,
+ *,
+ customer_id: str,
+ validity_in_seconds: float | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> CreateTokenResponse:
+ """
+ Create an authentication token for a customer
+
+ Args:
+ customer_id: Anything that uniquely identifies the customer that you will be sending the
+ token to
+
+ validity_in_seconds: How long the token will be valid for (in seconds) before it expires
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ return await self.post(
+ "/connect/token",
+ body=await async_maybe_transform(
+ {
+ "customer_id": customer_id,
+ "validity_in_seconds": validity_in_seconds,
+ },
+ client_create_token_params.ClientCreateTokenParams,
+ ),
+ options=make_request_options(
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
+ ),
+ cast_to=CreateTokenResponse,
+ )
+
async def get_connection(
self,
*,
@@ -1117,6 +1449,12 @@ def __init__(self, client: Openint) -> None:
self.check_connection = to_raw_response_wrapper(
client.check_connection,
)
+ self.create_magic_link = to_raw_response_wrapper(
+ client.create_magic_link,
+ )
+ self.create_token = to_raw_response_wrapper(
+ client.create_token,
+ )
self.get_connection = to_raw_response_wrapper(
client.get_connection,
)
@@ -1136,6 +1474,12 @@ def __init__(self, client: AsyncOpenint) -> None:
self.check_connection = async_to_raw_response_wrapper(
client.check_connection,
)
+ self.create_magic_link = async_to_raw_response_wrapper(
+ client.create_magic_link,
+ )
+ self.create_token = async_to_raw_response_wrapper(
+ client.create_token,
+ )
self.get_connection = async_to_raw_response_wrapper(
client.get_connection,
)
@@ -1155,6 +1499,12 @@ def __init__(self, client: Openint) -> None:
self.check_connection = to_streamed_response_wrapper(
client.check_connection,
)
+ self.create_magic_link = to_streamed_response_wrapper(
+ client.create_magic_link,
+ )
+ self.create_token = to_streamed_response_wrapper(
+ client.create_token,
+ )
self.get_connection = to_streamed_response_wrapper(
client.get_connection,
)
@@ -1174,6 +1524,12 @@ def __init__(self, client: AsyncOpenint) -> None:
self.check_connection = async_to_streamed_response_wrapper(
client.check_connection,
)
+ self.create_magic_link = async_to_streamed_response_wrapper(
+ client.create_magic_link,
+ )
+ self.create_token = async_to_streamed_response_wrapper(
+ client.create_token,
+ )
self.get_connection = async_to_streamed_response_wrapper(
client.get_connection,
)
diff --git a/src/openint/types/__init__.py b/src/openint/types/__init__.py
index 73a1db8..9c39d0e 100644
--- a/src/openint/types/__init__.py
+++ b/src/openint/types/__init__.py
@@ -3,12 +3,16 @@
from __future__ import annotations
from .list_events_response import ListEventsResponse as ListEventsResponse
+from .create_token_response import CreateTokenResponse as CreateTokenResponse
from .get_connection_response import GetConnectionResponse as GetConnectionResponse
from .check_connection_response import CheckConnectionResponse as CheckConnectionResponse
from .client_list_events_params import ClientListEventsParams as ClientListEventsParams
from .list_connections_response import ListConnectionsResponse as ListConnectionsResponse
+from .client_create_token_params import ClientCreateTokenParams as ClientCreateTokenParams
+from .create_magic_link_response import CreateMagicLinkResponse as CreateMagicLinkResponse
from .client_get_connection_params import ClientGetConnectionParams as ClientGetConnectionParams
from .client_list_connections_params import ClientListConnectionsParams as ClientListConnectionsParams
+from .client_create_magic_link_params import ClientCreateMagicLinkParams as ClientCreateMagicLinkParams
from .list_connection_configs_response import ListConnectionConfigsResponse as ListConnectionConfigsResponse
from .client_list_connection_configs_params import (
ClientListConnectionConfigsParams as ClientListConnectionConfigsParams,
diff --git a/src/openint/types/client_create_magic_link_params.py b/src/openint/types/client_create_magic_link_params.py
new file mode 100644
index 0000000..9989433
--- /dev/null
+++ b/src/openint/types/client_create_magic_link_params.py
@@ -0,0 +1,88 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from typing import Optional
+from typing_extensions import Literal, Required, TypedDict
+
+__all__ = ["ClientCreateMagicLinkParams"]
+
+
+class ClientCreateMagicLinkParams(TypedDict, total=False):
+ customer_id: Required[str]
+
+ email: Required[str]
+ """The email address of the customer"""
+
+ connection_id: Optional[str]
+
+ connector_names: Optional[
+ Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ ]
+ """Filter integrations by comma separated connector names"""
+
+ redirect_url: Optional[str]
+ """Where to send user to after connect / if they press back button"""
+
+ theme: Optional[Literal["light", "dark"]]
+ """Magic Link display theme"""
+
+ validity_in_seconds: float
+ """How long the magic link will be valid for (in seconds) before it expires"""
+
+ view: Optional[Literal["manage", "manage-deeplink", "add", "add-deeplink"]]
+ """Magic Link tab view"""
diff --git a/src/openint/types/client_create_token_params.py b/src/openint/types/client_create_token_params.py
new file mode 100644
index 0000000..821f434
--- /dev/null
+++ b/src/openint/types/client_create_token_params.py
@@ -0,0 +1,18 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from __future__ import annotations
+
+from typing_extensions import Required, TypedDict
+
+__all__ = ["ClientCreateTokenParams"]
+
+
+class ClientCreateTokenParams(TypedDict, total=False):
+ customer_id: Required[str]
+ """
+ Anything that uniquely identifies the customer that you will be sending the
+ token to
+ """
+
+ validity_in_seconds: float
+ """How long the token will be valid for (in seconds) before it expires"""
diff --git a/src/openint/types/create_magic_link_response.py b/src/openint/types/create_magic_link_response.py
new file mode 100644
index 0000000..ace38fa
--- /dev/null
+++ b/src/openint/types/create_magic_link_response.py
@@ -0,0 +1,10 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+
+from .._models import BaseModel
+
+__all__ = ["CreateMagicLinkResponse"]
+
+
+class CreateMagicLinkResponse(BaseModel):
+ url: str
diff --git a/src/openint/types/create_token_response.py b/src/openint/types/create_token_response.py
new file mode 100644
index 0000000..dc0b804
--- /dev/null
+++ b/src/openint/types/create_token_response.py
@@ -0,0 +1,10 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+
+from .._models import BaseModel
+
+__all__ = ["CreateTokenResponse"]
+
+
+class CreateTokenResponse(BaseModel):
+ token: str
diff --git a/tests/api_resources/test_client.py b/tests/api_resources/test_client.py
index 0f4a187..02e3154 100644
--- a/tests/api_resources/test_client.py
+++ b/tests/api_resources/test_client.py
@@ -11,8 +11,10 @@
from tests.utils import assert_matches_type
from openint.types import (
ListEventsResponse,
+ CreateTokenResponse,
GetConnectionResponse,
CheckConnectionResponse,
+ CreateMagicLinkResponse,
ListConnectionsResponse,
ListConnectionConfigsResponse,
)
@@ -65,6 +67,101 @@ def test_path_params_check_connection(self, client: Openint) -> None:
"",
)
+ @pytest.mark.skip()
+ @parametrize
+ def test_method_create_magic_link(self, client: Openint) -> None:
+ client_ = client.create_magic_link(
+ customer_id="x",
+ email="dev@stainless.com",
+ )
+ assert_matches_type(CreateMagicLinkResponse, client_, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ def test_method_create_magic_link_with_all_params(self, client: Openint) -> None:
+ client_ = client.create_magic_link(
+ customer_id="x",
+ email="dev@stainless.com",
+ connection_id="connection_id",
+ connector_names="aircall",
+ redirect_url="redirect_url",
+ theme="light",
+ validity_in_seconds=0,
+ view="manage",
+ )
+ assert_matches_type(CreateMagicLinkResponse, client_, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ def test_raw_response_create_magic_link(self, client: Openint) -> None:
+ response = client.with_raw_response.create_magic_link(
+ customer_id="x",
+ email="dev@stainless.com",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ client_ = response.parse()
+ assert_matches_type(CreateMagicLinkResponse, client_, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ def test_streaming_response_create_magic_link(self, client: Openint) -> None:
+ with client.with_streaming_response.create_magic_link(
+ customer_id="x",
+ email="dev@stainless.com",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ client_ = response.parse()
+ assert_matches_type(CreateMagicLinkResponse, client_, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
+ @pytest.mark.skip()
+ @parametrize
+ def test_method_create_token(self, client: Openint) -> None:
+ client_ = client.create_token(
+ customer_id="x",
+ )
+ assert_matches_type(CreateTokenResponse, client_, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ def test_method_create_token_with_all_params(self, client: Openint) -> None:
+ client_ = client.create_token(
+ customer_id="x",
+ validity_in_seconds=1,
+ )
+ assert_matches_type(CreateTokenResponse, client_, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ def test_raw_response_create_token(self, client: Openint) -> None:
+ response = client.with_raw_response.create_token(
+ customer_id="x",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ client_ = response.parse()
+ assert_matches_type(CreateTokenResponse, client_, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ def test_streaming_response_create_token(self, client: Openint) -> None:
+ with client.with_streaming_response.create_token(
+ customer_id="x",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ client_ = response.parse()
+ assert_matches_type(CreateTokenResponse, client_, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
@pytest.mark.skip()
@parametrize
def test_method_get_connection(self, client: Openint) -> None:
@@ -282,6 +379,101 @@ async def test_path_params_check_connection(self, async_client: AsyncOpenint) ->
"",
)
+ @pytest.mark.skip()
+ @parametrize
+ async def test_method_create_magic_link(self, async_client: AsyncOpenint) -> None:
+ client = await async_client.create_magic_link(
+ customer_id="x",
+ email="dev@stainless.com",
+ )
+ assert_matches_type(CreateMagicLinkResponse, client, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ async def test_method_create_magic_link_with_all_params(self, async_client: AsyncOpenint) -> None:
+ client = await async_client.create_magic_link(
+ customer_id="x",
+ email="dev@stainless.com",
+ connection_id="connection_id",
+ connector_names="aircall",
+ redirect_url="redirect_url",
+ theme="light",
+ validity_in_seconds=0,
+ view="manage",
+ )
+ assert_matches_type(CreateMagicLinkResponse, client, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ async def test_raw_response_create_magic_link(self, async_client: AsyncOpenint) -> None:
+ response = await async_client.with_raw_response.create_magic_link(
+ customer_id="x",
+ email="dev@stainless.com",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ client = await response.parse()
+ assert_matches_type(CreateMagicLinkResponse, client, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ async def test_streaming_response_create_magic_link(self, async_client: AsyncOpenint) -> None:
+ async with async_client.with_streaming_response.create_magic_link(
+ customer_id="x",
+ email="dev@stainless.com",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ client = await response.parse()
+ assert_matches_type(CreateMagicLinkResponse, client, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
+ @pytest.mark.skip()
+ @parametrize
+ async def test_method_create_token(self, async_client: AsyncOpenint) -> None:
+ client = await async_client.create_token(
+ customer_id="x",
+ )
+ assert_matches_type(CreateTokenResponse, client, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ async def test_method_create_token_with_all_params(self, async_client: AsyncOpenint) -> None:
+ client = await async_client.create_token(
+ customer_id="x",
+ validity_in_seconds=1,
+ )
+ assert_matches_type(CreateTokenResponse, client, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ async def test_raw_response_create_token(self, async_client: AsyncOpenint) -> None:
+ response = await async_client.with_raw_response.create_token(
+ customer_id="x",
+ )
+
+ assert response.is_closed is True
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+ client = await response.parse()
+ assert_matches_type(CreateTokenResponse, client, path=["response"])
+
+ @pytest.mark.skip()
+ @parametrize
+ async def test_streaming_response_create_token(self, async_client: AsyncOpenint) -> None:
+ async with async_client.with_streaming_response.create_token(
+ customer_id="x",
+ ) as response:
+ assert not response.is_closed
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
+
+ client = await response.parse()
+ assert_matches_type(CreateTokenResponse, client, path=["response"])
+
+ assert cast(Any, response.is_closed) is True
+
@pytest.mark.skip()
@parametrize
async def test_method_get_connection(self, async_client: AsyncOpenint) -> None:
From 5054460f4d5e441afd71fe29a1ab3ef11ec82cba Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 5 Mar 2025 14:37:39 +0000
Subject: [PATCH 3/9] feat(api): manual updates (#8)
---
.stats.yml | 2 +-
README.md | 15 +-
src/openint/_client.py | 54 +--
.../types/client_create_magic_link_params.py | 6 +-
tests/api_resources/test_client.py | 10 +-
tests/conftest.py | 11 +-
tests/test_client.py | 348 +++---------------
7 files changed, 60 insertions(+), 386 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index e4a0143..133e0bf 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
configured_endpoints: 7
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openint%2Fopenint-1774a01e29ee20fa16ce371374b9a675da3d1a0a5d3cb911a4acf067d3c7351e.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openint%2Fopenint-ed263d82a28e8475a7ebc5eaa4dfe53255fcd3342d12ec956bf331b169407b3b.yml
diff --git a/README.md b/README.md
index ebb01d3..d417fb7 100644
--- a/README.md
+++ b/README.md
@@ -24,34 +24,23 @@ pip install --pre openint
The full API of this library can be found in [api.md](api.md).
```python
-import os
from openint import Openint
-client = Openint(
- api_key=os.environ.get("OPENINT_API_KEY"), # This is the default and can be omitted
-)
+client = Openint()
response = client.get_connection()
print(response.items)
```
-While you can provide an `api_key` keyword argument,
-we recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)
-to add `OPENINT_API_KEY="My API Key"` to your `.env` file
-so that your API Key is not stored in source control.
-
## Async usage
Simply import `AsyncOpenint` instead of `Openint` and use `await` with each API call:
```python
-import os
import asyncio
from openint import AsyncOpenint
-client = AsyncOpenint(
- api_key=os.environ.get("OPENINT_API_KEY"), # This is the default and can be omitted
-)
+client = AsyncOpenint()
async def main() -> None:
diff --git a/src/openint/_client.py b/src/openint/_client.py
index 71e4001..f7a90f1 100644
--- a/src/openint/_client.py
+++ b/src/openint/_client.py
@@ -128,14 +128,6 @@ def __init__(
def qs(self) -> Querystring:
return Querystring(array_format="comma")
- @property
- @override
- def auth_headers(self) -> dict[str, str]:
- api_key = self.api_key
- if api_key is None:
- return {}
- return {"Authorization": f"Bearer {api_key}"}
-
@property
@override
def default_headers(self) -> dict[str, str | Omit]:
@@ -145,17 +137,6 @@ def default_headers(self) -> dict[str, str | Omit]:
**self._custom_headers,
}
- @override
- def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None:
- if self.api_key and headers.get("Authorization"):
- return
- if isinstance(custom_headers.get("Authorization"), Omit):
- return
-
- raise TypeError(
- '"Could not resolve authentication method. Expected the api_key to be set. Or for the `Authorization` headers to be explicitly omitted"'
- )
-
def copy(
self,
*,
@@ -246,7 +227,6 @@ def create_magic_link(
self,
*,
customer_id: str,
- email: str,
connection_id: Optional[str] | NotGiven = NOT_GIVEN,
connector_names: Optional[
Literal[
@@ -306,6 +286,7 @@ def create_magic_link(
]
]
| NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
redirect_url: Optional[str] | NotGiven = NOT_GIVEN,
theme: Optional[Literal["light", "dark"]] | NotGiven = NOT_GIVEN,
validity_in_seconds: float | NotGiven = NOT_GIVEN,
@@ -321,10 +302,10 @@ def create_magic_link(
Create a magic link for connecting integrations
Args:
- email: The email address of the customer
-
connector_names: Filter integrations by comma separated connector names
+ email: The email address of the customer
+
redirect_url: Where to send user to after connect / if they press back button
theme: Magic Link display theme
@@ -346,9 +327,9 @@ def create_magic_link(
body=maybe_transform(
{
"customer_id": customer_id,
- "email": email,
"connection_id": connection_id,
"connector_names": connector_names,
+ "email": email,
"redirect_url": redirect_url,
"theme": theme,
"validity_in_seconds": validity_in_seconds,
@@ -819,14 +800,6 @@ def __init__(
def qs(self) -> Querystring:
return Querystring(array_format="comma")
- @property
- @override
- def auth_headers(self) -> dict[str, str]:
- api_key = self.api_key
- if api_key is None:
- return {}
- return {"Authorization": f"Bearer {api_key}"}
-
@property
@override
def default_headers(self) -> dict[str, str | Omit]:
@@ -836,17 +809,6 @@ def default_headers(self) -> dict[str, str | Omit]:
**self._custom_headers,
}
- @override
- def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None:
- if self.api_key and headers.get("Authorization"):
- return
- if isinstance(custom_headers.get("Authorization"), Omit):
- return
-
- raise TypeError(
- '"Could not resolve authentication method. Expected the api_key to be set. Or for the `Authorization` headers to be explicitly omitted"'
- )
-
def copy(
self,
*,
@@ -937,7 +899,6 @@ async def create_magic_link(
self,
*,
customer_id: str,
- email: str,
connection_id: Optional[str] | NotGiven = NOT_GIVEN,
connector_names: Optional[
Literal[
@@ -997,6 +958,7 @@ async def create_magic_link(
]
]
| NotGiven = NOT_GIVEN,
+ email: str | NotGiven = NOT_GIVEN,
redirect_url: Optional[str] | NotGiven = NOT_GIVEN,
theme: Optional[Literal["light", "dark"]] | NotGiven = NOT_GIVEN,
validity_in_seconds: float | NotGiven = NOT_GIVEN,
@@ -1012,10 +974,10 @@ async def create_magic_link(
Create a magic link for connecting integrations
Args:
- email: The email address of the customer
-
connector_names: Filter integrations by comma separated connector names
+ email: The email address of the customer
+
redirect_url: Where to send user to after connect / if they press back button
theme: Magic Link display theme
@@ -1037,9 +999,9 @@ async def create_magic_link(
body=await async_maybe_transform(
{
"customer_id": customer_id,
- "email": email,
"connection_id": connection_id,
"connector_names": connector_names,
+ "email": email,
"redirect_url": redirect_url,
"theme": theme,
"validity_in_seconds": validity_in_seconds,
diff --git a/src/openint/types/client_create_magic_link_params.py b/src/openint/types/client_create_magic_link_params.py
index 9989433..735fe70 100644
--- a/src/openint/types/client_create_magic_link_params.py
+++ b/src/openint/types/client_create_magic_link_params.py
@@ -11,9 +11,6 @@
class ClientCreateMagicLinkParams(TypedDict, total=False):
customer_id: Required[str]
- email: Required[str]
- """The email address of the customer"""
-
connection_id: Optional[str]
connector_names: Optional[
@@ -75,6 +72,9 @@ class ClientCreateMagicLinkParams(TypedDict, total=False):
]
"""Filter integrations by comma separated connector names"""
+ email: str
+ """The email address of the customer"""
+
redirect_url: Optional[str]
"""Where to send user to after connect / if they press back button"""
diff --git a/tests/api_resources/test_client.py b/tests/api_resources/test_client.py
index 02e3154..3785ad7 100644
--- a/tests/api_resources/test_client.py
+++ b/tests/api_resources/test_client.py
@@ -72,7 +72,6 @@ def test_path_params_check_connection(self, client: Openint) -> None:
def test_method_create_magic_link(self, client: Openint) -> None:
client_ = client.create_magic_link(
customer_id="x",
- email="dev@stainless.com",
)
assert_matches_type(CreateMagicLinkResponse, client_, path=["response"])
@@ -81,9 +80,9 @@ def test_method_create_magic_link(self, client: Openint) -> None:
def test_method_create_magic_link_with_all_params(self, client: Openint) -> None:
client_ = client.create_magic_link(
customer_id="x",
- email="dev@stainless.com",
connection_id="connection_id",
connector_names="aircall",
+ email="dev@stainless.com",
redirect_url="redirect_url",
theme="light",
validity_in_seconds=0,
@@ -96,7 +95,6 @@ def test_method_create_magic_link_with_all_params(self, client: Openint) -> None
def test_raw_response_create_magic_link(self, client: Openint) -> None:
response = client.with_raw_response.create_magic_link(
customer_id="x",
- email="dev@stainless.com",
)
assert response.is_closed is True
@@ -109,7 +107,6 @@ def test_raw_response_create_magic_link(self, client: Openint) -> None:
def test_streaming_response_create_magic_link(self, client: Openint) -> None:
with client.with_streaming_response.create_magic_link(
customer_id="x",
- email="dev@stainless.com",
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -384,7 +381,6 @@ async def test_path_params_check_connection(self, async_client: AsyncOpenint) ->
async def test_method_create_magic_link(self, async_client: AsyncOpenint) -> None:
client = await async_client.create_magic_link(
customer_id="x",
- email="dev@stainless.com",
)
assert_matches_type(CreateMagicLinkResponse, client, path=["response"])
@@ -393,9 +389,9 @@ async def test_method_create_magic_link(self, async_client: AsyncOpenint) -> Non
async def test_method_create_magic_link_with_all_params(self, async_client: AsyncOpenint) -> None:
client = await async_client.create_magic_link(
customer_id="x",
- email="dev@stainless.com",
connection_id="connection_id",
connector_names="aircall",
+ email="dev@stainless.com",
redirect_url="redirect_url",
theme="light",
validity_in_seconds=0,
@@ -408,7 +404,6 @@ async def test_method_create_magic_link_with_all_params(self, async_client: Asyn
async def test_raw_response_create_magic_link(self, async_client: AsyncOpenint) -> None:
response = await async_client.with_raw_response.create_magic_link(
customer_id="x",
- email="dev@stainless.com",
)
assert response.is_closed is True
@@ -421,7 +416,6 @@ async def test_raw_response_create_magic_link(self, async_client: AsyncOpenint)
async def test_streaming_response_create_magic_link(self, async_client: AsyncOpenint) -> None:
async with async_client.with_streaming_response.create_magic_link(
customer_id="x",
- email="dev@stainless.com",
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
diff --git a/tests/conftest.py b/tests/conftest.py
index 7e0d354..0f9c67f 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -28,9 +28,6 @@ def pytest_collection_modifyitems(items: list[pytest.Function]) -> None:
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
-api_key = "My API Key"
-customer_token = "GENERATED_CUSTOMER_TOKEN"
-
@pytest.fixture(scope="session")
def client(request: FixtureRequest) -> Iterator[Openint]:
@@ -38,9 +35,7 @@ def client(request: FixtureRequest) -> Iterator[Openint]:
if not isinstance(strict, bool):
raise TypeError(f"Unexpected fixture parameter type {type(strict)}, expected {bool}")
- with Openint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=strict
- ) as client:
+ with Openint(base_url=base_url, _strict_response_validation=strict) as client:
yield client
@@ -50,7 +45,5 @@ async def async_client(request: FixtureRequest) -> AsyncIterator[AsyncOpenint]:
if not isinstance(strict, bool):
raise TypeError(f"Unexpected fixture parameter type {type(strict)}, expected {bool}")
- async with AsyncOpenint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=strict
- ) as client:
+ async with AsyncOpenint(base_url=base_url, _strict_response_validation=strict) as client:
yield client
diff --git a/tests/test_client.py b/tests/test_client.py
index 3400914..58576d1 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -36,8 +36,6 @@
from .utils import update_env
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
-api_key = "My API Key"
-customer_token = "GENERATED_CUSTOMER_TOKEN"
def _get_params(client: BaseClient[Any, Any]) -> dict[str, str]:
@@ -59,9 +57,7 @@ def _get_open_connections(client: Openint | AsyncOpenint) -> int:
class TestOpenint:
- client = Openint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True)
@pytest.mark.respx(base_url=base_url)
def test_raw_response(self, respx_mock: MockRouter) -> None:
@@ -87,14 +83,6 @@ def test_copy(self) -> None:
copied = self.client.copy()
assert id(copied) != id(self.client)
- copied = self.client.copy(api_key="another My API Key")
- assert copied.api_key == "another My API Key"
- assert self.client.api_key == "My API Key"
-
- copied = self.client.copy(customer_token="another GENERATED_CUSTOMER_TOKEN")
- assert copied.customer_token == "another GENERATED_CUSTOMER_TOKEN"
- assert self.client.customer_token == "GENERATED_CUSTOMER_TOKEN"
-
def test_copy_default_options(self) -> None:
# options that have a default are overridden correctly
copied = self.client.copy(max_retries=7)
@@ -112,13 +100,7 @@ def test_copy_default_options(self) -> None:
assert isinstance(self.client.timeout, httpx.Timeout)
def test_copy_default_headers(self) -> None:
- client = Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- default_headers={"X-Foo": "bar"},
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"})
assert client.default_headers["X-Foo"] == "bar"
# does not override the already given value when not specified
@@ -150,13 +132,7 @@ def test_copy_default_headers(self) -> None:
client.copy(set_default_headers={}, default_headers={"X-Foo": "Bar"})
def test_copy_default_query(self) -> None:
- client = Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- default_query={"foo": "bar"},
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True, default_query={"foo": "bar"})
assert _get_params(client)["foo"] == "bar"
# does not override the already given value when not specified
@@ -279,13 +255,7 @@ def test_request_timeout(self) -> None:
assert timeout == httpx.Timeout(100.0)
def test_client_timeout_option(self) -> None:
- client = Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- timeout=httpx.Timeout(0),
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True, timeout=httpx.Timeout(0))
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -294,13 +264,7 @@ def test_client_timeout_option(self) -> None:
def test_http_client_timeout_option(self) -> None:
# custom timeout given to the httpx client should be used
with httpx.Client(timeout=None) as http_client:
- client = Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- http_client=http_client,
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -308,13 +272,7 @@ def test_http_client_timeout_option(self) -> None:
# no timeout given to the httpx client should not use the httpx default
with httpx.Client() as http_client:
- client = Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- http_client=http_client,
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -322,13 +280,7 @@ def test_http_client_timeout_option(self) -> None:
# explicitly passing the default timeout currently results in it being ignored
with httpx.Client(timeout=HTTPX_DEFAULT_TIMEOUT) as http_client:
- client = Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- http_client=http_client,
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -337,30 +289,16 @@ def test_http_client_timeout_option(self) -> None:
async def test_invalid_http_client(self) -> None:
with pytest.raises(TypeError, match="Invalid `http_client` arg"):
async with httpx.AsyncClient() as http_client:
- Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- http_client=cast(Any, http_client),
- )
+ Openint(base_url=base_url, _strict_response_validation=True, http_client=cast(Any, http_client))
def test_default_headers_option(self) -> None:
- client = Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- default_headers={"X-Foo": "bar"},
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"})
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
assert request.headers.get("x-foo") == "bar"
assert request.headers.get("x-stainless-lang") == "python"
client2 = Openint(
base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
_strict_response_validation=True,
default_headers={
"X-Foo": "stainless",
@@ -371,37 +309,8 @@ def test_default_headers_option(self) -> None:
assert request.headers.get("x-foo") == "stainless"
assert request.headers.get("x-stainless-lang") == "my-overriding-header"
- def test_validate_headers(self) -> None:
- client = Openint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
- request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
- assert request.headers.get("Authorization") == f"Bearer {api_key}"
-
- with update_env(**{"OPENINT_API_KEY": Omit()}):
- client2 = Openint(
- base_url=base_url, api_key=None, customer_token=customer_token, _strict_response_validation=True
- )
-
- with pytest.raises(
- TypeError,
- match="Could not resolve authentication method. Expected the api_key to be set. Or for the `Authorization` headers to be explicitly omitted",
- ):
- client2._build_request(FinalRequestOptions(method="get", url="/foo"))
-
- request2 = client2._build_request(
- FinalRequestOptions(method="get", url="/foo", headers={"Authorization": Omit()})
- )
- assert request2.headers.get("Authorization") is None
-
def test_default_query_option(self) -> None:
- client = Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- default_query={"query_param": "bar"},
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True, default_query={"query_param": "bar"})
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
url = httpx.URL(request.url)
assert dict(url.params) == {"query_param": "bar"}
@@ -600,12 +509,7 @@ class Model(BaseModel):
assert response.foo == 2
def test_base_url_setter(self) -> None:
- client = Openint(
- base_url="https://example.com/from_init",
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- )
+ client = Openint(base_url="https://example.com/from_init", _strict_response_validation=True)
assert client.base_url == "https://example.com/from_init/"
client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
@@ -614,22 +518,15 @@ def test_base_url_setter(self) -> None:
def test_base_url_env(self) -> None:
with update_env(OPENINT_BASE_URL="http://localhost:5000/from/env"):
- client = Openint(api_key=api_key, customer_token=customer_token, _strict_response_validation=True)
+ client = Openint(_strict_response_validation=True)
assert client.base_url == "http://localhost:5000/from/env/"
@pytest.mark.parametrize(
"client",
[
+ Openint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
Openint(
base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- ),
- Openint(
- base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
_strict_response_validation=True,
http_client=httpx.Client(),
),
@@ -649,16 +546,9 @@ def test_base_url_trailing_slash(self, client: Openint) -> None:
@pytest.mark.parametrize(
"client",
[
+ Openint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
Openint(
base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- ),
- Openint(
- base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
_strict_response_validation=True,
http_client=httpx.Client(),
),
@@ -678,16 +568,9 @@ def test_base_url_no_trailing_slash(self, client: Openint) -> None:
@pytest.mark.parametrize(
"client",
[
+ Openint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
Openint(
base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- ),
- Openint(
- base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
_strict_response_validation=True,
http_client=httpx.Client(),
),
@@ -705,9 +588,7 @@ def test_absolute_request_url(self, client: Openint) -> None:
assert request.url == "https://myapi.com/foo"
def test_copied_client_does_not_close_http(self) -> None:
- client = Openint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True)
assert not client.is_closed()
copied = client.copy()
@@ -718,9 +599,7 @@ def test_copied_client_does_not_close_http(self) -> None:
assert not client.is_closed()
def test_client_context_manager(self) -> None:
- client = Openint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True)
with client as c2:
assert c2 is client
assert not c2.is_closed()
@@ -741,13 +620,7 @@ class Model(BaseModel):
def test_client_max_retries_validation(self) -> None:
with pytest.raises(TypeError, match=r"max_retries cannot be None"):
- Openint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- max_retries=cast(Any, None),
- )
+ Openint(base_url=base_url, _strict_response_validation=True, max_retries=cast(Any, None))
@pytest.mark.respx(base_url=base_url)
def test_received_text_for_expected_json(self, respx_mock: MockRouter) -> None:
@@ -756,16 +629,12 @@ class Model(BaseModel):
respx_mock.get("/foo").mock(return_value=httpx.Response(200, text="my-custom-format"))
- strict_client = Openint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ strict_client = Openint(base_url=base_url, _strict_response_validation=True)
with pytest.raises(APIResponseValidationError):
strict_client.get("/foo", cast_to=Model)
- client = Openint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=False
- )
+ client = Openint(base_url=base_url, _strict_response_validation=False)
response = client.get("/foo", cast_to=Model)
assert isinstance(response, str) # type: ignore[unreachable]
@@ -793,9 +662,7 @@ class Model(BaseModel):
)
@mock.patch("time.time", mock.MagicMock(return_value=1696004797))
def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str, timeout: float) -> None:
- client = Openint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ client = Openint(base_url=base_url, _strict_response_validation=True)
headers = httpx.Headers({"retry-after": retry_after})
options = FinalRequestOptions(method="get", url="/foo", max_retries=3)
@@ -901,9 +768,7 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
class TestAsyncOpenint:
- client = AsyncOpenint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
@pytest.mark.respx(base_url=base_url)
@pytest.mark.asyncio
@@ -931,14 +796,6 @@ def test_copy(self) -> None:
copied = self.client.copy()
assert id(copied) != id(self.client)
- copied = self.client.copy(api_key="another My API Key")
- assert copied.api_key == "another My API Key"
- assert self.client.api_key == "My API Key"
-
- copied = self.client.copy(customer_token="another GENERATED_CUSTOMER_TOKEN")
- assert copied.customer_token == "another GENERATED_CUSTOMER_TOKEN"
- assert self.client.customer_token == "GENERATED_CUSTOMER_TOKEN"
-
def test_copy_default_options(self) -> None:
# options that have a default are overridden correctly
copied = self.client.copy(max_retries=7)
@@ -956,13 +813,7 @@ def test_copy_default_options(self) -> None:
assert isinstance(self.client.timeout, httpx.Timeout)
def test_copy_default_headers(self) -> None:
- client = AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- default_headers={"X-Foo": "bar"},
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"})
assert client.default_headers["X-Foo"] == "bar"
# does not override the already given value when not specified
@@ -994,13 +845,7 @@ def test_copy_default_headers(self) -> None:
client.copy(set_default_headers={}, default_headers={"X-Foo": "Bar"})
def test_copy_default_query(self) -> None:
- client = AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- default_query={"foo": "bar"},
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, default_query={"foo": "bar"})
assert _get_params(client)["foo"] == "bar"
# does not override the already given value when not specified
@@ -1123,13 +968,7 @@ async def test_request_timeout(self) -> None:
assert timeout == httpx.Timeout(100.0)
async def test_client_timeout_option(self) -> None:
- client = AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- timeout=httpx.Timeout(0),
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, timeout=httpx.Timeout(0))
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -1138,13 +977,7 @@ async def test_client_timeout_option(self) -> None:
async def test_http_client_timeout_option(self) -> None:
# custom timeout given to the httpx client should be used
async with httpx.AsyncClient(timeout=None) as http_client:
- client = AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- http_client=http_client,
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -1152,13 +985,7 @@ async def test_http_client_timeout_option(self) -> None:
# no timeout given to the httpx client should not use the httpx default
async with httpx.AsyncClient() as http_client:
- client = AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- http_client=http_client,
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -1166,13 +993,7 @@ async def test_http_client_timeout_option(self) -> None:
# explicitly passing the default timeout currently results in it being ignored
async with httpx.AsyncClient(timeout=HTTPX_DEFAULT_TIMEOUT) as http_client:
- client = AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- http_client=http_client,
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -1181,30 +1002,16 @@ async def test_http_client_timeout_option(self) -> None:
def test_invalid_http_client(self) -> None:
with pytest.raises(TypeError, match="Invalid `http_client` arg"):
with httpx.Client() as http_client:
- AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- http_client=cast(Any, http_client),
- )
+ AsyncOpenint(base_url=base_url, _strict_response_validation=True, http_client=cast(Any, http_client))
def test_default_headers_option(self) -> None:
- client = AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- default_headers={"X-Foo": "bar"},
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"})
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
assert request.headers.get("x-foo") == "bar"
assert request.headers.get("x-stainless-lang") == "python"
client2 = AsyncOpenint(
base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
_strict_response_validation=True,
default_headers={
"X-Foo": "stainless",
@@ -1215,37 +1022,8 @@ def test_default_headers_option(self) -> None:
assert request.headers.get("x-foo") == "stainless"
assert request.headers.get("x-stainless-lang") == "my-overriding-header"
- def test_validate_headers(self) -> None:
- client = AsyncOpenint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
- request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
- assert request.headers.get("Authorization") == f"Bearer {api_key}"
-
- with update_env(**{"OPENINT_API_KEY": Omit()}):
- client2 = AsyncOpenint(
- base_url=base_url, api_key=None, customer_token=customer_token, _strict_response_validation=True
- )
-
- with pytest.raises(
- TypeError,
- match="Could not resolve authentication method. Expected the api_key to be set. Or for the `Authorization` headers to be explicitly omitted",
- ):
- client2._build_request(FinalRequestOptions(method="get", url="/foo"))
-
- request2 = client2._build_request(
- FinalRequestOptions(method="get", url="/foo", headers={"Authorization": Omit()})
- )
- assert request2.headers.get("Authorization") is None
-
def test_default_query_option(self) -> None:
- client = AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- default_query={"query_param": "bar"},
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, default_query={"query_param": "bar"})
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
url = httpx.URL(request.url)
assert dict(url.params) == {"query_param": "bar"}
@@ -1444,12 +1222,7 @@ class Model(BaseModel):
assert response.foo == 2
def test_base_url_setter(self) -> None:
- client = AsyncOpenint(
- base_url="https://example.com/from_init",
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- )
+ client = AsyncOpenint(base_url="https://example.com/from_init", _strict_response_validation=True)
assert client.base_url == "https://example.com/from_init/"
client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
@@ -1458,22 +1231,15 @@ def test_base_url_setter(self) -> None:
def test_base_url_env(self) -> None:
with update_env(OPENINT_BASE_URL="http://localhost:5000/from/env"):
- client = AsyncOpenint(api_key=api_key, customer_token=customer_token, _strict_response_validation=True)
+ client = AsyncOpenint(_strict_response_validation=True)
assert client.base_url == "http://localhost:5000/from/env/"
@pytest.mark.parametrize(
"client",
[
+ AsyncOpenint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
AsyncOpenint(
base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- ),
- AsyncOpenint(
- base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
_strict_response_validation=True,
http_client=httpx.AsyncClient(),
),
@@ -1493,16 +1259,9 @@ def test_base_url_trailing_slash(self, client: AsyncOpenint) -> None:
@pytest.mark.parametrize(
"client",
[
+ AsyncOpenint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
AsyncOpenint(
base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- ),
- AsyncOpenint(
- base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
_strict_response_validation=True,
http_client=httpx.AsyncClient(),
),
@@ -1522,16 +1281,9 @@ def test_base_url_no_trailing_slash(self, client: AsyncOpenint) -> None:
@pytest.mark.parametrize(
"client",
[
+ AsyncOpenint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
AsyncOpenint(
base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- ),
- AsyncOpenint(
- base_url="http://localhost:5000/custom/path/",
- api_key=api_key,
- customer_token=customer_token,
_strict_response_validation=True,
http_client=httpx.AsyncClient(),
),
@@ -1549,9 +1301,7 @@ def test_absolute_request_url(self, client: AsyncOpenint) -> None:
assert request.url == "https://myapi.com/foo"
async def test_copied_client_does_not_close_http(self) -> None:
- client = AsyncOpenint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
assert not client.is_closed()
copied = client.copy()
@@ -1563,9 +1313,7 @@ async def test_copied_client_does_not_close_http(self) -> None:
assert not client.is_closed()
async def test_client_context_manager(self) -> None:
- client = AsyncOpenint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
async with client as c2:
assert c2 is client
assert not c2.is_closed()
@@ -1587,13 +1335,7 @@ class Model(BaseModel):
async def test_client_max_retries_validation(self) -> None:
with pytest.raises(TypeError, match=r"max_retries cannot be None"):
- AsyncOpenint(
- base_url=base_url,
- api_key=api_key,
- customer_token=customer_token,
- _strict_response_validation=True,
- max_retries=cast(Any, None),
- )
+ AsyncOpenint(base_url=base_url, _strict_response_validation=True, max_retries=cast(Any, None))
@pytest.mark.respx(base_url=base_url)
@pytest.mark.asyncio
@@ -1603,16 +1345,12 @@ class Model(BaseModel):
respx_mock.get("/foo").mock(return_value=httpx.Response(200, text="my-custom-format"))
- strict_client = AsyncOpenint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ strict_client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
with pytest.raises(APIResponseValidationError):
await strict_client.get("/foo", cast_to=Model)
- client = AsyncOpenint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=False
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=False)
response = await client.get("/foo", cast_to=Model)
assert isinstance(response, str) # type: ignore[unreachable]
@@ -1641,9 +1379,7 @@ class Model(BaseModel):
@mock.patch("time.time", mock.MagicMock(return_value=1696004797))
@pytest.mark.asyncio
async def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str, timeout: float) -> None:
- client = AsyncOpenint(
- base_url=base_url, api_key=api_key, customer_token=customer_token, _strict_response_validation=True
- )
+ client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
headers = httpx.Headers({"retry-after": retry_after})
options = FinalRequestOptions(method="get", url="/foo", max_retries=3)
From ac996ebde3816be7fcef375087d13d62d85374f0 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 5 Mar 2025 14:40:13 +0000
Subject: [PATCH 4/9] feat(api): manual updates (#9)
---
README.md | 15 +++-
src/openint/_client.py | 78 +++++++++++++++++
tests/conftest.py | 6 +-
tests/test_client.py | 189 ++++++++++++++++++++++++++++++++---------
4 files changed, 242 insertions(+), 46 deletions(-)
diff --git a/README.md b/README.md
index d417fb7..ebb01d3 100644
--- a/README.md
+++ b/README.md
@@ -24,23 +24,34 @@ pip install --pre openint
The full API of this library can be found in [api.md](api.md).
```python
+import os
from openint import Openint
-client = Openint()
+client = Openint(
+ api_key=os.environ.get("OPENINT_API_KEY"), # This is the default and can be omitted
+)
response = client.get_connection()
print(response.items)
```
+While you can provide an `api_key` keyword argument,
+we recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)
+to add `OPENINT_API_KEY="My API Key"` to your `.env` file
+so that your API Key is not stored in source control.
+
## Async usage
Simply import `AsyncOpenint` instead of `Openint` and use `await` with each API call:
```python
+import os
import asyncio
from openint import AsyncOpenint
-client = AsyncOpenint()
+client = AsyncOpenint(
+ api_key=os.environ.get("OPENINT_API_KEY"), # This is the default and can be omitted
+)
async def main() -> None:
diff --git a/src/openint/_client.py b/src/openint/_client.py
index f7a90f1..439902f 100644
--- a/src/openint/_client.py
+++ b/src/openint/_client.py
@@ -128,6 +128,29 @@ def __init__(
def qs(self) -> Querystring:
return Querystring(array_format="comma")
+ @property
+ @override
+ def auth_headers(self) -> dict[str, str]:
+ if self._organization_auth:
+ return self._organization_auth
+ if self._customer_auth:
+ return self._customer_auth
+ return {}
+
+ @property
+ def _organization_auth(self) -> dict[str, str]:
+ api_key = self.api_key
+ if api_key is None:
+ return {}
+ return {"authorization": api_key}
+
+ @property
+ def _customer_auth(self) -> dict[str, str]:
+ customer_token = self.customer_token
+ if customer_token is None:
+ return {}
+ return {"Authorization": f"Bearer {customer_token}"}
+
@property
@override
def default_headers(self) -> dict[str, str | Omit]:
@@ -137,6 +160,22 @@ def default_headers(self) -> dict[str, str | Omit]:
**self._custom_headers,
}
+ @override
+ def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None:
+ if self.api_key and headers.get("authorization"):
+ return
+ if isinstance(custom_headers.get("authorization"), Omit):
+ return
+
+ if self.customer_token and headers.get("Authorization"):
+ return
+ if isinstance(custom_headers.get("Authorization"), Omit):
+ return
+
+ raise TypeError(
+ '"Could not resolve authentication method. Expected either api_key or customer_token to be set. Or for one of the `authorization` or `Authorization` headers to be explicitly omitted"'
+ )
+
def copy(
self,
*,
@@ -800,6 +839,29 @@ def __init__(
def qs(self) -> Querystring:
return Querystring(array_format="comma")
+ @property
+ @override
+ def auth_headers(self) -> dict[str, str]:
+ if self._organization_auth:
+ return self._organization_auth
+ if self._customer_auth:
+ return self._customer_auth
+ return {}
+
+ @property
+ def _organization_auth(self) -> dict[str, str]:
+ api_key = self.api_key
+ if api_key is None:
+ return {}
+ return {"authorization": api_key}
+
+ @property
+ def _customer_auth(self) -> dict[str, str]:
+ customer_token = self.customer_token
+ if customer_token is None:
+ return {}
+ return {"Authorization": f"Bearer {customer_token}"}
+
@property
@override
def default_headers(self) -> dict[str, str | Omit]:
@@ -809,6 +871,22 @@ def default_headers(self) -> dict[str, str | Omit]:
**self._custom_headers,
}
+ @override
+ def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None:
+ if self.api_key and headers.get("authorization"):
+ return
+ if isinstance(custom_headers.get("authorization"), Omit):
+ return
+
+ if self.customer_token and headers.get("Authorization"):
+ return
+ if isinstance(custom_headers.get("Authorization"), Omit):
+ return
+
+ raise TypeError(
+ '"Could not resolve authentication method. Expected either api_key or customer_token to be set. Or for one of the `authorization` or `Authorization` headers to be explicitly omitted"'
+ )
+
def copy(
self,
*,
diff --git a/tests/conftest.py b/tests/conftest.py
index 0f9c67f..d5c0a7b 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -28,6 +28,8 @@ def pytest_collection_modifyitems(items: list[pytest.Function]) -> None:
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
+api_key = "My API Key"
+
@pytest.fixture(scope="session")
def client(request: FixtureRequest) -> Iterator[Openint]:
@@ -35,7 +37,7 @@ def client(request: FixtureRequest) -> Iterator[Openint]:
if not isinstance(strict, bool):
raise TypeError(f"Unexpected fixture parameter type {type(strict)}, expected {bool}")
- with Openint(base_url=base_url, _strict_response_validation=strict) as client:
+ with Openint(base_url=base_url, api_key=api_key, _strict_response_validation=strict) as client:
yield client
@@ -45,5 +47,5 @@ async def async_client(request: FixtureRequest) -> AsyncIterator[AsyncOpenint]:
if not isinstance(strict, bool):
raise TypeError(f"Unexpected fixture parameter type {type(strict)}, expected {bool}")
- async with AsyncOpenint(base_url=base_url, _strict_response_validation=strict) as client:
+ async with AsyncOpenint(base_url=base_url, api_key=api_key, _strict_response_validation=strict) as client:
yield client
diff --git a/tests/test_client.py b/tests/test_client.py
index 58576d1..c21a2fa 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -36,6 +36,7 @@
from .utils import update_env
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
+api_key = "My API Key"
def _get_params(client: BaseClient[Any, Any]) -> dict[str, str]:
@@ -57,7 +58,7 @@ def _get_open_connections(client: Openint | AsyncOpenint) -> int:
class TestOpenint:
- client = Openint(base_url=base_url, _strict_response_validation=True)
+ client = Openint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
@pytest.mark.respx(base_url=base_url)
def test_raw_response(self, respx_mock: MockRouter) -> None:
@@ -83,6 +84,10 @@ def test_copy(self) -> None:
copied = self.client.copy()
assert id(copied) != id(self.client)
+ copied = self.client.copy(api_key="another My API Key")
+ assert copied.api_key == "another My API Key"
+ assert self.client.api_key == "My API Key"
+
def test_copy_default_options(self) -> None:
# options that have a default are overridden correctly
copied = self.client.copy(max_retries=7)
@@ -100,7 +105,9 @@ def test_copy_default_options(self) -> None:
assert isinstance(self.client.timeout, httpx.Timeout)
def test_copy_default_headers(self) -> None:
- client = Openint(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"})
+ client = Openint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, default_headers={"X-Foo": "bar"}
+ )
assert client.default_headers["X-Foo"] == "bar"
# does not override the already given value when not specified
@@ -132,7 +139,9 @@ def test_copy_default_headers(self) -> None:
client.copy(set_default_headers={}, default_headers={"X-Foo": "Bar"})
def test_copy_default_query(self) -> None:
- client = Openint(base_url=base_url, _strict_response_validation=True, default_query={"foo": "bar"})
+ client = Openint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, default_query={"foo": "bar"}
+ )
assert _get_params(client)["foo"] == "bar"
# does not override the already given value when not specified
@@ -255,7 +264,7 @@ def test_request_timeout(self) -> None:
assert timeout == httpx.Timeout(100.0)
def test_client_timeout_option(self) -> None:
- client = Openint(base_url=base_url, _strict_response_validation=True, timeout=httpx.Timeout(0))
+ client = Openint(base_url=base_url, api_key=api_key, _strict_response_validation=True, timeout=httpx.Timeout(0))
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -264,7 +273,9 @@ def test_client_timeout_option(self) -> None:
def test_http_client_timeout_option(self) -> None:
# custom timeout given to the httpx client should be used
with httpx.Client(timeout=None) as http_client:
- client = Openint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
+ client = Openint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -272,7 +283,9 @@ def test_http_client_timeout_option(self) -> None:
# no timeout given to the httpx client should not use the httpx default
with httpx.Client() as http_client:
- client = Openint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
+ client = Openint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -280,7 +293,9 @@ def test_http_client_timeout_option(self) -> None:
# explicitly passing the default timeout currently results in it being ignored
with httpx.Client(timeout=HTTPX_DEFAULT_TIMEOUT) as http_client:
- client = Openint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
+ client = Openint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -289,16 +304,24 @@ def test_http_client_timeout_option(self) -> None:
async def test_invalid_http_client(self) -> None:
with pytest.raises(TypeError, match="Invalid `http_client` arg"):
async with httpx.AsyncClient() as http_client:
- Openint(base_url=base_url, _strict_response_validation=True, http_client=cast(Any, http_client))
+ Openint(
+ base_url=base_url,
+ api_key=api_key,
+ _strict_response_validation=True,
+ http_client=cast(Any, http_client),
+ )
def test_default_headers_option(self) -> None:
- client = Openint(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"})
+ client = Openint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, default_headers={"X-Foo": "bar"}
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
assert request.headers.get("x-foo") == "bar"
assert request.headers.get("x-stainless-lang") == "python"
client2 = Openint(
base_url=base_url,
+ api_key=api_key,
_strict_response_validation=True,
default_headers={
"X-Foo": "stainless",
@@ -309,8 +332,29 @@ def test_default_headers_option(self) -> None:
assert request.headers.get("x-foo") == "stainless"
assert request.headers.get("x-stainless-lang") == "my-overriding-header"
+ def test_validate_headers(self) -> None:
+ client = Openint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
+ request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
+ assert request.headers.get("authorization") == api_key
+
+ with update_env(**{"OPENINT_API_KEY": Omit()}):
+ client2 = Openint(base_url=base_url, api_key=None, _strict_response_validation=True)
+
+ with pytest.raises(
+ TypeError,
+ match="Could not resolve authentication method. Expected either api_key or customer_token to be set. Or for one of the `authorization` or `Authorization` headers to be explicitly omitted",
+ ):
+ client2._build_request(FinalRequestOptions(method="get", url="/foo"))
+
+ request2 = client2._build_request(
+ FinalRequestOptions(method="get", url="/foo", headers={"authorization": Omit()})
+ )
+ assert request2.headers.get("authorization") is None
+
def test_default_query_option(self) -> None:
- client = Openint(base_url=base_url, _strict_response_validation=True, default_query={"query_param": "bar"})
+ client = Openint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, default_query={"query_param": "bar"}
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
url = httpx.URL(request.url)
assert dict(url.params) == {"query_param": "bar"}
@@ -509,7 +553,7 @@ class Model(BaseModel):
assert response.foo == 2
def test_base_url_setter(self) -> None:
- client = Openint(base_url="https://example.com/from_init", _strict_response_validation=True)
+ client = Openint(base_url="https://example.com/from_init", api_key=api_key, _strict_response_validation=True)
assert client.base_url == "https://example.com/from_init/"
client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
@@ -518,15 +562,16 @@ def test_base_url_setter(self) -> None:
def test_base_url_env(self) -> None:
with update_env(OPENINT_BASE_URL="http://localhost:5000/from/env"):
- client = Openint(_strict_response_validation=True)
+ client = Openint(api_key=api_key, _strict_response_validation=True)
assert client.base_url == "http://localhost:5000/from/env/"
@pytest.mark.parametrize(
"client",
[
- Openint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
+ Openint(base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True),
Openint(
base_url="http://localhost:5000/custom/path/",
+ api_key=api_key,
_strict_response_validation=True,
http_client=httpx.Client(),
),
@@ -546,9 +591,10 @@ def test_base_url_trailing_slash(self, client: Openint) -> None:
@pytest.mark.parametrize(
"client",
[
- Openint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
+ Openint(base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True),
Openint(
base_url="http://localhost:5000/custom/path/",
+ api_key=api_key,
_strict_response_validation=True,
http_client=httpx.Client(),
),
@@ -568,9 +614,10 @@ def test_base_url_no_trailing_slash(self, client: Openint) -> None:
@pytest.mark.parametrize(
"client",
[
- Openint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
+ Openint(base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True),
Openint(
base_url="http://localhost:5000/custom/path/",
+ api_key=api_key,
_strict_response_validation=True,
http_client=httpx.Client(),
),
@@ -588,7 +635,7 @@ def test_absolute_request_url(self, client: Openint) -> None:
assert request.url == "https://myapi.com/foo"
def test_copied_client_does_not_close_http(self) -> None:
- client = Openint(base_url=base_url, _strict_response_validation=True)
+ client = Openint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
assert not client.is_closed()
copied = client.copy()
@@ -599,7 +646,7 @@ def test_copied_client_does_not_close_http(self) -> None:
assert not client.is_closed()
def test_client_context_manager(self) -> None:
- client = Openint(base_url=base_url, _strict_response_validation=True)
+ client = Openint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
with client as c2:
assert c2 is client
assert not c2.is_closed()
@@ -620,7 +667,7 @@ class Model(BaseModel):
def test_client_max_retries_validation(self) -> None:
with pytest.raises(TypeError, match=r"max_retries cannot be None"):
- Openint(base_url=base_url, _strict_response_validation=True, max_retries=cast(Any, None))
+ Openint(base_url=base_url, api_key=api_key, _strict_response_validation=True, max_retries=cast(Any, None))
@pytest.mark.respx(base_url=base_url)
def test_received_text_for_expected_json(self, respx_mock: MockRouter) -> None:
@@ -629,12 +676,12 @@ class Model(BaseModel):
respx_mock.get("/foo").mock(return_value=httpx.Response(200, text="my-custom-format"))
- strict_client = Openint(base_url=base_url, _strict_response_validation=True)
+ strict_client = Openint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
with pytest.raises(APIResponseValidationError):
strict_client.get("/foo", cast_to=Model)
- client = Openint(base_url=base_url, _strict_response_validation=False)
+ client = Openint(base_url=base_url, api_key=api_key, _strict_response_validation=False)
response = client.get("/foo", cast_to=Model)
assert isinstance(response, str) # type: ignore[unreachable]
@@ -662,7 +709,7 @@ class Model(BaseModel):
)
@mock.patch("time.time", mock.MagicMock(return_value=1696004797))
def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str, timeout: float) -> None:
- client = Openint(base_url=base_url, _strict_response_validation=True)
+ client = Openint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
headers = httpx.Headers({"retry-after": retry_after})
options = FinalRequestOptions(method="get", url="/foo", max_retries=3)
@@ -768,7 +815,7 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
class TestAsyncOpenint:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
+ client = AsyncOpenint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
@pytest.mark.respx(base_url=base_url)
@pytest.mark.asyncio
@@ -796,6 +843,10 @@ def test_copy(self) -> None:
copied = self.client.copy()
assert id(copied) != id(self.client)
+ copied = self.client.copy(api_key="another My API Key")
+ assert copied.api_key == "another My API Key"
+ assert self.client.api_key == "My API Key"
+
def test_copy_default_options(self) -> None:
# options that have a default are overridden correctly
copied = self.client.copy(max_retries=7)
@@ -813,7 +864,9 @@ def test_copy_default_options(self) -> None:
assert isinstance(self.client.timeout, httpx.Timeout)
def test_copy_default_headers(self) -> None:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"})
+ client = AsyncOpenint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, default_headers={"X-Foo": "bar"}
+ )
assert client.default_headers["X-Foo"] == "bar"
# does not override the already given value when not specified
@@ -845,7 +898,9 @@ def test_copy_default_headers(self) -> None:
client.copy(set_default_headers={}, default_headers={"X-Foo": "Bar"})
def test_copy_default_query(self) -> None:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, default_query={"foo": "bar"})
+ client = AsyncOpenint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, default_query={"foo": "bar"}
+ )
assert _get_params(client)["foo"] == "bar"
# does not override the already given value when not specified
@@ -968,7 +1023,9 @@ async def test_request_timeout(self) -> None:
assert timeout == httpx.Timeout(100.0)
async def test_client_timeout_option(self) -> None:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, timeout=httpx.Timeout(0))
+ client = AsyncOpenint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, timeout=httpx.Timeout(0)
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -977,7 +1034,9 @@ async def test_client_timeout_option(self) -> None:
async def test_http_client_timeout_option(self) -> None:
# custom timeout given to the httpx client should be used
async with httpx.AsyncClient(timeout=None) as http_client:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
+ client = AsyncOpenint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -985,7 +1044,9 @@ async def test_http_client_timeout_option(self) -> None:
# no timeout given to the httpx client should not use the httpx default
async with httpx.AsyncClient() as http_client:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
+ client = AsyncOpenint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -993,7 +1054,9 @@ async def test_http_client_timeout_option(self) -> None:
# explicitly passing the default timeout currently results in it being ignored
async with httpx.AsyncClient(timeout=HTTPX_DEFAULT_TIMEOUT) as http_client:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, http_client=http_client)
+ client = AsyncOpenint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore
@@ -1002,16 +1065,24 @@ async def test_http_client_timeout_option(self) -> None:
def test_invalid_http_client(self) -> None:
with pytest.raises(TypeError, match="Invalid `http_client` arg"):
with httpx.Client() as http_client:
- AsyncOpenint(base_url=base_url, _strict_response_validation=True, http_client=cast(Any, http_client))
+ AsyncOpenint(
+ base_url=base_url,
+ api_key=api_key,
+ _strict_response_validation=True,
+ http_client=cast(Any, http_client),
+ )
def test_default_headers_option(self) -> None:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"})
+ client = AsyncOpenint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, default_headers={"X-Foo": "bar"}
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
assert request.headers.get("x-foo") == "bar"
assert request.headers.get("x-stainless-lang") == "python"
client2 = AsyncOpenint(
base_url=base_url,
+ api_key=api_key,
_strict_response_validation=True,
default_headers={
"X-Foo": "stainless",
@@ -1022,8 +1093,29 @@ def test_default_headers_option(self) -> None:
assert request.headers.get("x-foo") == "stainless"
assert request.headers.get("x-stainless-lang") == "my-overriding-header"
+ def test_validate_headers(self) -> None:
+ client = AsyncOpenint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
+ request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
+ assert request.headers.get("authorization") == api_key
+
+ with update_env(**{"OPENINT_API_KEY": Omit()}):
+ client2 = AsyncOpenint(base_url=base_url, api_key=None, _strict_response_validation=True)
+
+ with pytest.raises(
+ TypeError,
+ match="Could not resolve authentication method. Expected either api_key or customer_token to be set. Or for one of the `authorization` or `Authorization` headers to be explicitly omitted",
+ ):
+ client2._build_request(FinalRequestOptions(method="get", url="/foo"))
+
+ request2 = client2._build_request(
+ FinalRequestOptions(method="get", url="/foo", headers={"authorization": Omit()})
+ )
+ assert request2.headers.get("authorization") is None
+
def test_default_query_option(self) -> None:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True, default_query={"query_param": "bar"})
+ client = AsyncOpenint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, default_query={"query_param": "bar"}
+ )
request = client._build_request(FinalRequestOptions(method="get", url="/foo"))
url = httpx.URL(request.url)
assert dict(url.params) == {"query_param": "bar"}
@@ -1222,7 +1314,9 @@ class Model(BaseModel):
assert response.foo == 2
def test_base_url_setter(self) -> None:
- client = AsyncOpenint(base_url="https://example.com/from_init", _strict_response_validation=True)
+ client = AsyncOpenint(
+ base_url="https://example.com/from_init", api_key=api_key, _strict_response_validation=True
+ )
assert client.base_url == "https://example.com/from_init/"
client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
@@ -1231,15 +1325,18 @@ def test_base_url_setter(self) -> None:
def test_base_url_env(self) -> None:
with update_env(OPENINT_BASE_URL="http://localhost:5000/from/env"):
- client = AsyncOpenint(_strict_response_validation=True)
+ client = AsyncOpenint(api_key=api_key, _strict_response_validation=True)
assert client.base_url == "http://localhost:5000/from/env/"
@pytest.mark.parametrize(
"client",
[
- AsyncOpenint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
+ AsyncOpenint(
+ base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True
+ ),
AsyncOpenint(
base_url="http://localhost:5000/custom/path/",
+ api_key=api_key,
_strict_response_validation=True,
http_client=httpx.AsyncClient(),
),
@@ -1259,9 +1356,12 @@ def test_base_url_trailing_slash(self, client: AsyncOpenint) -> None:
@pytest.mark.parametrize(
"client",
[
- AsyncOpenint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
+ AsyncOpenint(
+ base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True
+ ),
AsyncOpenint(
base_url="http://localhost:5000/custom/path/",
+ api_key=api_key,
_strict_response_validation=True,
http_client=httpx.AsyncClient(),
),
@@ -1281,9 +1381,12 @@ def test_base_url_no_trailing_slash(self, client: AsyncOpenint) -> None:
@pytest.mark.parametrize(
"client",
[
- AsyncOpenint(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True),
+ AsyncOpenint(
+ base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True
+ ),
AsyncOpenint(
base_url="http://localhost:5000/custom/path/",
+ api_key=api_key,
_strict_response_validation=True,
http_client=httpx.AsyncClient(),
),
@@ -1301,7 +1404,7 @@ def test_absolute_request_url(self, client: AsyncOpenint) -> None:
assert request.url == "https://myapi.com/foo"
async def test_copied_client_does_not_close_http(self) -> None:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
+ client = AsyncOpenint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
assert not client.is_closed()
copied = client.copy()
@@ -1313,7 +1416,7 @@ async def test_copied_client_does_not_close_http(self) -> None:
assert not client.is_closed()
async def test_client_context_manager(self) -> None:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
+ client = AsyncOpenint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
async with client as c2:
assert c2 is client
assert not c2.is_closed()
@@ -1335,7 +1438,9 @@ class Model(BaseModel):
async def test_client_max_retries_validation(self) -> None:
with pytest.raises(TypeError, match=r"max_retries cannot be None"):
- AsyncOpenint(base_url=base_url, _strict_response_validation=True, max_retries=cast(Any, None))
+ AsyncOpenint(
+ base_url=base_url, api_key=api_key, _strict_response_validation=True, max_retries=cast(Any, None)
+ )
@pytest.mark.respx(base_url=base_url)
@pytest.mark.asyncio
@@ -1345,12 +1450,12 @@ class Model(BaseModel):
respx_mock.get("/foo").mock(return_value=httpx.Response(200, text="my-custom-format"))
- strict_client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
+ strict_client = AsyncOpenint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
with pytest.raises(APIResponseValidationError):
await strict_client.get("/foo", cast_to=Model)
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=False)
+ client = AsyncOpenint(base_url=base_url, api_key=api_key, _strict_response_validation=False)
response = await client.get("/foo", cast_to=Model)
assert isinstance(response, str) # type: ignore[unreachable]
@@ -1379,7 +1484,7 @@ class Model(BaseModel):
@mock.patch("time.time", mock.MagicMock(return_value=1696004797))
@pytest.mark.asyncio
async def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str, timeout: float) -> None:
- client = AsyncOpenint(base_url=base_url, _strict_response_validation=True)
+ client = AsyncOpenint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
headers = httpx.Headers({"retry-after": retry_after})
options = FinalRequestOptions(method="get", url="/foo", max_retries=3)
From ee8775bcbe538e4ee176ea6b70613f0e7118627f Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 5 Mar 2025 14:49:50 +0000
Subject: [PATCH 5/9] feat(api): manual updates (#10)
---
api.md | 4 +-
src/openint/_client.py | 42 +-
src/openint/pagination.py | 74 ++
.../types/list_connection_configs_response.py | 799 +++++++++---------
src/openint/types/list_events_response.py | 14 +-
tests/api_resources/test_client.py | 33 +-
6 files changed, 515 insertions(+), 451 deletions(-)
create mode 100644 src/openint/pagination.py
diff --git a/api.md b/api.md
index 949d6d2..b495a82 100644
--- a/api.md
+++ b/api.md
@@ -20,6 +20,6 @@ Methods:
- client.create_magic_link(\*\*params) -> CreateMagicLinkResponse
- client.create_token(\*\*params) -> CreateTokenResponse
- client.get_connection(\*\*params) -> GetConnectionResponse
-- client.list_connection_configs(\*\*params) -> ListConnectionConfigsResponse
+- client.list_connection_configs(\*\*params) -> SyncOffsetPagination[ListConnectionConfigsResponse]
- client.list_connections(id, \*\*params) -> ListConnectionsResponse
-- client.list_events(\*\*params) -> ListEventsResponse
+- client.list_events(\*\*params) -> SyncOffsetPagination[ListEventsResponse]
diff --git a/src/openint/_client.py b/src/openint/_client.py
index 439902f..1950a4e 100644
--- a/src/openint/_client.py
+++ b/src/openint/_client.py
@@ -44,11 +44,13 @@
async_to_streamed_response_wrapper,
)
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
+from .pagination import SyncOffsetPagination, AsyncOffsetPagination
from ._exceptions import APIStatusError
from ._base_client import (
DEFAULT_MAX_RETRIES,
SyncAPIClient,
AsyncAPIClient,
+ AsyncPaginator,
make_request_options,
)
from .types.list_events_response import ListEventsResponse
@@ -605,7 +607,7 @@ def list_connection_configs(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ListConnectionConfigsResponse:
+ ) -> SyncOffsetPagination[ListConnectionConfigsResponse]:
"""
List all connector configurations with optional filtering
@@ -620,8 +622,9 @@ def list_connection_configs(
timeout: Override the client-level default timeout for this request, in seconds
"""
- return self.get(
+ return self.get_api_list(
"/connector-config",
+ page=SyncOffsetPagination[ListConnectionConfigsResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
@@ -637,7 +640,9 @@ def list_connection_configs(
client_list_connection_configs_params.ClientListConnectionConfigsParams,
),
),
- cast_to=ListConnectionConfigsResponse,
+ model=cast(
+ Any, ListConnectionConfigsResponse
+ ), # Union types cannot be passed in as arguments in the type system
)
def list_connections(
@@ -708,7 +713,7 @@ def list_events(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ListEventsResponse:
+ ) -> SyncOffsetPagination[ListEventsResponse]:
"""
List all events for an organization
@@ -721,8 +726,9 @@ def list_events(
timeout: Override the client-level default timeout for this request, in seconds
"""
- return self.get(
+ return self.get_api_list(
"/event",
+ page=SyncOffsetPagination[ListEventsResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
@@ -736,7 +742,7 @@ def list_events(
client_list_events_params.ClientListEventsParams,
),
),
- cast_to=ListEventsResponse,
+ model=ListEventsResponse,
)
@override
@@ -1248,7 +1254,7 @@ async def get_connection(
cast_to=GetConnectionResponse,
)
- async def list_connection_configs(
+ def list_connection_configs(
self,
*,
connector_name: Literal[
@@ -1316,7 +1322,7 @@ async def list_connection_configs(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ListConnectionConfigsResponse:
+ ) -> AsyncPaginator[ListConnectionConfigsResponse, AsyncOffsetPagination[ListConnectionConfigsResponse]]:
"""
List all connector configurations with optional filtering
@@ -1331,14 +1337,15 @@ async def list_connection_configs(
timeout: Override the client-level default timeout for this request, in seconds
"""
- return await self.get(
+ return self.get_api_list(
"/connector-config",
+ page=AsyncOffsetPagination[ListConnectionConfigsResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
- query=await async_maybe_transform(
+ query=maybe_transform(
{
"connector_name": connector_name,
"expand": expand,
@@ -1348,7 +1355,9 @@ async def list_connection_configs(
client_list_connection_configs_params.ClientListConnectionConfigsParams,
),
),
- cast_to=ListConnectionConfigsResponse,
+ model=cast(
+ Any, ListConnectionConfigsResponse
+ ), # Union types cannot be passed in as arguments in the type system
)
async def list_connections(
@@ -1408,7 +1417,7 @@ async def list_connections(
),
)
- async def list_events(
+ def list_events(
self,
*,
limit: int | NotGiven = NOT_GIVEN,
@@ -1419,7 +1428,7 @@ async def list_events(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ListEventsResponse:
+ ) -> AsyncPaginator[ListEventsResponse, AsyncOffsetPagination[ListEventsResponse]]:
"""
List all events for an organization
@@ -1432,14 +1441,15 @@ async def list_events(
timeout: Override the client-level default timeout for this request, in seconds
"""
- return await self.get(
+ return self.get_api_list(
"/event",
+ page=AsyncOffsetPagination[ListEventsResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
- query=await async_maybe_transform(
+ query=maybe_transform(
{
"limit": limit,
"offset": offset,
@@ -1447,7 +1457,7 @@ async def list_events(
client_list_events_params.ClientListEventsParams,
),
),
- cast_to=ListEventsResponse,
+ model=ListEventsResponse,
)
@override
diff --git a/src/openint/pagination.py b/src/openint/pagination.py
new file mode 100644
index 0000000..60bfb3c
--- /dev/null
+++ b/src/openint/pagination.py
@@ -0,0 +1,74 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import List, Generic, TypeVar, Optional
+from typing_extensions import override
+
+from ._base_client import BasePage, PageInfo, BaseSyncPage, BaseAsyncPage
+
+__all__ = ["SyncOffsetPagination", "AsyncOffsetPagination"]
+
+_T = TypeVar("_T")
+
+
+class SyncOffsetPagination(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
+ items: List[_T]
+ total: Optional[int] = None
+ offset: Optional[int] = None
+ limit: Optional[int] = None
+
+ @override
+ def _get_page_items(self) -> List[_T]:
+ items = self.items
+ if not items:
+ return []
+ return items
+
+ @override
+ def next_page_info(self) -> Optional[PageInfo]:
+ offset = self.offset
+ if offset is None:
+ return None
+
+ length = len(self._get_page_items())
+ current_count = offset + length
+
+ total = self.total
+ if total is None:
+ return None
+
+ if current_count < total:
+ return PageInfo(params={"offset": current_count})
+
+ return None
+
+
+class AsyncOffsetPagination(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
+ items: List[_T]
+ total: Optional[int] = None
+ offset: Optional[int] = None
+ limit: Optional[int] = None
+
+ @override
+ def _get_page_items(self) -> List[_T]:
+ items = self.items
+ if not items:
+ return []
+ return items
+
+ @override
+ def next_page_info(self) -> Optional[PageInfo]:
+ offset = self.offset
+ if offset is None:
+ return None
+
+ length = len(self._get_page_items())
+ current_count = offset + length
+
+ total = self.total
+ if total is None:
+ return None
+
+ if current_count < total:
+ return PageInfo(params={"offset": current_count})
+
+ return None
diff --git a/src/openint/types/list_connection_configs_response.py b/src/openint/types/list_connection_configs_response.py
index cbdafd8..f182a0a 100644
--- a/src/openint/types/list_connection_configs_response.py
+++ b/src/openint/types/list_connection_configs_response.py
@@ -10,142 +10,141 @@
__all__ = [
"ListConnectionConfigsResponse",
- "Item",
- "ItemConnectorsAircallConnectorConfig",
- "ItemConnectorsAirtableConnectorConfig",
- "ItemConnectorsApolloConnectorConfig",
- "ItemConnectorsBeancountConnectorConfig",
- "ItemConnectorsBrexConnectorConfig",
- "ItemConnectorsBrexConnectorConfigConfig",
- "ItemConnectorsBrexConnectorConfigConfigOAuth",
- "ItemConnectorsCodaConnectorConfig",
- "ItemConnectorsConfluenceConnectorConfig",
- "ItemConnectorsConfluenceConnectorConfigConfig",
- "ItemConnectorsConfluenceConnectorConfigConfigOAuth",
- "ItemConnectorsDebugConnectorConfig",
- "ItemConnectorsDiscordConnectorConfig",
- "ItemConnectorsDiscordConnectorConfigConfig",
- "ItemConnectorsDiscordConnectorConfigConfigOAuth",
- "ItemConnectorsFinchConnectorConfig",
- "ItemConnectorsFinchConnectorConfigConfig",
- "ItemConnectorsFirebaseConnectorConfig",
- "ItemConnectorsForeceiptConnectorConfig",
- "ItemConnectorsFsConnectorConfig",
- "ItemConnectorsGitHubConnectorConfig",
- "ItemConnectorsGitHubConnectorConfigConfig",
- "ItemConnectorsGitHubConnectorConfigConfigOAuth",
- "ItemConnectorsGongConnectorConfig",
- "ItemConnectorsGongConnectorConfigConfig",
- "ItemConnectorsGongConnectorConfigConfigOAuth",
- "ItemConnectorsGoogleConnectorConfig",
- "ItemConnectorsGoogleConnectorConfigConfig",
- "ItemConnectorsGoogleConnectorConfigConfigIntegrations",
- "ItemConnectorsGoogleConnectorConfigConfigIntegrationsCalendar",
- "ItemConnectorsGoogleConnectorConfigConfigIntegrationsDocs",
- "ItemConnectorsGoogleConnectorConfigConfigIntegrationsDrive",
- "ItemConnectorsGoogleConnectorConfigConfigIntegrationsGmail",
- "ItemConnectorsGoogleConnectorConfigConfigIntegrationsSheets",
- "ItemConnectorsGoogleConnectorConfigConfigIntegrationsSlides",
- "ItemConnectorsGoogleConnectorConfigConfigOAuth",
- "ItemConnectorsGreenhouseConnectorConfig",
- "ItemConnectorsHeronConnectorConfig",
- "ItemConnectorsHeronConnectorConfigConfig",
- "ItemConnectorsHubspotConnectorConfig",
- "ItemConnectorsHubspotConnectorConfigConfig",
- "ItemConnectorsHubspotConnectorConfigConfigOAuth",
- "ItemConnectorsIntercomConnectorConfig",
- "ItemConnectorsIntercomConnectorConfigConfig",
- "ItemConnectorsIntercomConnectorConfigConfigOAuth",
- "ItemConnectorsJiraConnectorConfig",
- "ItemConnectorsJiraConnectorConfigConfig",
- "ItemConnectorsJiraConnectorConfigConfigOAuth",
- "ItemConnectorsKustomerConnectorConfig",
- "ItemConnectorsKustomerConnectorConfigConfig",
- "ItemConnectorsKustomerConnectorConfigConfigOAuth",
- "ItemConnectorsLeverConnectorConfig",
- "ItemConnectorsLeverConnectorConfigConfig",
- "ItemConnectorsLeverConnectorConfigConfigOAuth",
- "ItemConnectorsLinearConnectorConfig",
- "ItemConnectorsLinearConnectorConfigConfig",
- "ItemConnectorsLinearConnectorConfigConfigOAuth",
- "ItemConnectorsLunchmoneyConnectorConfig",
- "ItemConnectorsLunchmoneyConnectorConfigConfig",
- "ItemConnectorsMercuryConnectorConfig",
- "ItemConnectorsMercuryConnectorConfigConfig",
- "ItemConnectorsMercuryConnectorConfigConfigOAuth",
- "ItemConnectorsMergeConnectorConfig",
- "ItemConnectorsMergeConnectorConfigConfig",
- "ItemConnectorsMicrosoftConnectorConfig",
- "ItemConnectorsMicrosoftConnectorConfigConfig",
- "ItemConnectorsMicrosoftConnectorConfigConfigIntegrations",
- "ItemConnectorsMicrosoftConnectorConfigConfigIntegrationsOutlook",
- "ItemConnectorsMicrosoftConnectorConfigConfigIntegrationsSharepoint",
- "ItemConnectorsMicrosoftConnectorConfigConfigIntegrationsTeams",
- "ItemConnectorsMicrosoftConnectorConfigConfigOAuth",
- "ItemConnectorsMongoDBConnectorConfig",
- "ItemConnectorsMootaConnectorConfig",
- "ItemConnectorsMootaConnectorConfigConfig",
- "ItemConnectorsOnebrickConnectorConfig",
- "ItemConnectorsOnebrickConnectorConfigConfig",
- "ItemConnectorsOutreachConnectorConfig",
- "ItemConnectorsOutreachConnectorConfigConfig",
- "ItemConnectorsOutreachConnectorConfigConfigOAuth",
- "ItemConnectorsPipedriveConnectorConfig",
- "ItemConnectorsPipedriveConnectorConfigConfig",
- "ItemConnectorsPipedriveConnectorConfigConfigOAuth",
- "ItemConnectorsPlaidConnectorConfig",
- "ItemConnectorsPlaidConnectorConfigConfig",
- "ItemConnectorsPlaidConnectorConfigConfigCredentials",
- "ItemConnectorsPostgresConnectorConfig",
- "ItemConnectorsQboConnectorConfig",
- "ItemConnectorsQboConnectorConfigConfig",
- "ItemConnectorsQboConnectorConfigConfigOAuth",
- "ItemConnectorsRampConnectorConfig",
- "ItemConnectorsRampConnectorConfigConfig",
- "ItemConnectorsRampConnectorConfigConfigOAuth",
- "ItemConnectorsRevertConnectorConfig",
- "ItemConnectorsRevertConnectorConfigConfig",
- "ItemConnectorsSalesforceConnectorConfig",
- "ItemConnectorsSalesforceConnectorConfigConfig",
- "ItemConnectorsSalesforceConnectorConfigConfigOAuth",
- "ItemConnectorsSalesloftConnectorConfig",
- "ItemConnectorsSalesloftConnectorConfigConfig",
- "ItemConnectorsSalesloftConnectorConfigConfigOAuth",
- "ItemConnectorsSaltedgeConnectorConfig",
- "ItemConnectorsSaltedgeConnectorConfigConfig",
- "ItemConnectorsSlackConnectorConfig",
- "ItemConnectorsSlackConnectorConfigConfig",
- "ItemConnectorsSlackConnectorConfigConfigOAuth",
- "ItemConnectorsSplitwiseConnectorConfig",
- "ItemConnectorsSpreadsheetConnectorConfig",
- "ItemConnectorsSpreadsheetConnectorConfigConfig",
- "ItemConnectorsStripeConnectorConfig",
- "ItemConnectorsStripeConnectorConfigConfig",
- "ItemConnectorsStripeConnectorConfigConfigOAuth",
- "ItemConnectorsTellerConnectorConfig",
- "ItemConnectorsTellerConnectorConfigConfig",
- "ItemConnectorsTogglConnectorConfig",
- "ItemConnectorsTwentyConnectorConfig",
- "ItemConnectorsVenmoConnectorConfig",
- "ItemConnectorsVenmoConnectorConfigConfig",
- "ItemConnectorsVenmoConnectorConfigConfigProxy",
- "ItemConnectorsWebhookConnectorConfig",
- "ItemConnectorsWiseConnectorConfig",
- "ItemConnectorsXeroConnectorConfig",
- "ItemConnectorsXeroConnectorConfigConfig",
- "ItemConnectorsXeroConnectorConfigConfigOAuth",
- "ItemConnectorsYodleeConnectorConfig",
- "ItemConnectorsYodleeConnectorConfigConfig",
- "ItemConnectorsYodleeConnectorConfigConfigProxy",
- "ItemConnectorsZohodeskConnectorConfig",
- "ItemConnectorsZohodeskConnectorConfigConfig",
- "ItemConnectorsZohodeskConnectorConfigConfigOAuth",
- "ItemConnectorsGoogledriveConnectorConfig",
- "ItemConnectorsGoogledriveConnectorConfigConfig",
+ "ConnectorsAircallConnectorConfig",
+ "ConnectorsAirtableConnectorConfig",
+ "ConnectorsApolloConnectorConfig",
+ "ConnectorsBeancountConnectorConfig",
+ "ConnectorsBrexConnectorConfig",
+ "ConnectorsBrexConnectorConfigConfig",
+ "ConnectorsBrexConnectorConfigConfigOAuth",
+ "ConnectorsCodaConnectorConfig",
+ "ConnectorsConfluenceConnectorConfig",
+ "ConnectorsConfluenceConnectorConfigConfig",
+ "ConnectorsConfluenceConnectorConfigConfigOAuth",
+ "ConnectorsDebugConnectorConfig",
+ "ConnectorsDiscordConnectorConfig",
+ "ConnectorsDiscordConnectorConfigConfig",
+ "ConnectorsDiscordConnectorConfigConfigOAuth",
+ "ConnectorsFinchConnectorConfig",
+ "ConnectorsFinchConnectorConfigConfig",
+ "ConnectorsFirebaseConnectorConfig",
+ "ConnectorsForeceiptConnectorConfig",
+ "ConnectorsFsConnectorConfig",
+ "ConnectorsGitHubConnectorConfig",
+ "ConnectorsGitHubConnectorConfigConfig",
+ "ConnectorsGitHubConnectorConfigConfigOAuth",
+ "ConnectorsGongConnectorConfig",
+ "ConnectorsGongConnectorConfigConfig",
+ "ConnectorsGongConnectorConfigConfigOAuth",
+ "ConnectorsGoogleConnectorConfig",
+ "ConnectorsGoogleConnectorConfigConfig",
+ "ConnectorsGoogleConnectorConfigConfigIntegrations",
+ "ConnectorsGoogleConnectorConfigConfigIntegrationsCalendar",
+ "ConnectorsGoogleConnectorConfigConfigIntegrationsDocs",
+ "ConnectorsGoogleConnectorConfigConfigIntegrationsDrive",
+ "ConnectorsGoogleConnectorConfigConfigIntegrationsGmail",
+ "ConnectorsGoogleConnectorConfigConfigIntegrationsSheets",
+ "ConnectorsGoogleConnectorConfigConfigIntegrationsSlides",
+ "ConnectorsGoogleConnectorConfigConfigOAuth",
+ "ConnectorsGreenhouseConnectorConfig",
+ "ConnectorsHeronConnectorConfig",
+ "ConnectorsHeronConnectorConfigConfig",
+ "ConnectorsHubspotConnectorConfig",
+ "ConnectorsHubspotConnectorConfigConfig",
+ "ConnectorsHubspotConnectorConfigConfigOAuth",
+ "ConnectorsIntercomConnectorConfig",
+ "ConnectorsIntercomConnectorConfigConfig",
+ "ConnectorsIntercomConnectorConfigConfigOAuth",
+ "ConnectorsJiraConnectorConfig",
+ "ConnectorsJiraConnectorConfigConfig",
+ "ConnectorsJiraConnectorConfigConfigOAuth",
+ "ConnectorsKustomerConnectorConfig",
+ "ConnectorsKustomerConnectorConfigConfig",
+ "ConnectorsKustomerConnectorConfigConfigOAuth",
+ "ConnectorsLeverConnectorConfig",
+ "ConnectorsLeverConnectorConfigConfig",
+ "ConnectorsLeverConnectorConfigConfigOAuth",
+ "ConnectorsLinearConnectorConfig",
+ "ConnectorsLinearConnectorConfigConfig",
+ "ConnectorsLinearConnectorConfigConfigOAuth",
+ "ConnectorsLunchmoneyConnectorConfig",
+ "ConnectorsLunchmoneyConnectorConfigConfig",
+ "ConnectorsMercuryConnectorConfig",
+ "ConnectorsMercuryConnectorConfigConfig",
+ "ConnectorsMercuryConnectorConfigConfigOAuth",
+ "ConnectorsMergeConnectorConfig",
+ "ConnectorsMergeConnectorConfigConfig",
+ "ConnectorsMicrosoftConnectorConfig",
+ "ConnectorsMicrosoftConnectorConfigConfig",
+ "ConnectorsMicrosoftConnectorConfigConfigIntegrations",
+ "ConnectorsMicrosoftConnectorConfigConfigIntegrationsOutlook",
+ "ConnectorsMicrosoftConnectorConfigConfigIntegrationsSharepoint",
+ "ConnectorsMicrosoftConnectorConfigConfigIntegrationsTeams",
+ "ConnectorsMicrosoftConnectorConfigConfigOAuth",
+ "ConnectorsMongoDBConnectorConfig",
+ "ConnectorsMootaConnectorConfig",
+ "ConnectorsMootaConnectorConfigConfig",
+ "ConnectorsOnebrickConnectorConfig",
+ "ConnectorsOnebrickConnectorConfigConfig",
+ "ConnectorsOutreachConnectorConfig",
+ "ConnectorsOutreachConnectorConfigConfig",
+ "ConnectorsOutreachConnectorConfigConfigOAuth",
+ "ConnectorsPipedriveConnectorConfig",
+ "ConnectorsPipedriveConnectorConfigConfig",
+ "ConnectorsPipedriveConnectorConfigConfigOAuth",
+ "ConnectorsPlaidConnectorConfig",
+ "ConnectorsPlaidConnectorConfigConfig",
+ "ConnectorsPlaidConnectorConfigConfigCredentials",
+ "ConnectorsPostgresConnectorConfig",
+ "ConnectorsQboConnectorConfig",
+ "ConnectorsQboConnectorConfigConfig",
+ "ConnectorsQboConnectorConfigConfigOAuth",
+ "ConnectorsRampConnectorConfig",
+ "ConnectorsRampConnectorConfigConfig",
+ "ConnectorsRampConnectorConfigConfigOAuth",
+ "ConnectorsRevertConnectorConfig",
+ "ConnectorsRevertConnectorConfigConfig",
+ "ConnectorsSalesforceConnectorConfig",
+ "ConnectorsSalesforceConnectorConfigConfig",
+ "ConnectorsSalesforceConnectorConfigConfigOAuth",
+ "ConnectorsSalesloftConnectorConfig",
+ "ConnectorsSalesloftConnectorConfigConfig",
+ "ConnectorsSalesloftConnectorConfigConfigOAuth",
+ "ConnectorsSaltedgeConnectorConfig",
+ "ConnectorsSaltedgeConnectorConfigConfig",
+ "ConnectorsSlackConnectorConfig",
+ "ConnectorsSlackConnectorConfigConfig",
+ "ConnectorsSlackConnectorConfigConfigOAuth",
+ "ConnectorsSplitwiseConnectorConfig",
+ "ConnectorsSpreadsheetConnectorConfig",
+ "ConnectorsSpreadsheetConnectorConfigConfig",
+ "ConnectorsStripeConnectorConfig",
+ "ConnectorsStripeConnectorConfigConfig",
+ "ConnectorsStripeConnectorConfigConfigOAuth",
+ "ConnectorsTellerConnectorConfig",
+ "ConnectorsTellerConnectorConfigConfig",
+ "ConnectorsTogglConnectorConfig",
+ "ConnectorsTwentyConnectorConfig",
+ "ConnectorsVenmoConnectorConfig",
+ "ConnectorsVenmoConnectorConfigConfig",
+ "ConnectorsVenmoConnectorConfigConfigProxy",
+ "ConnectorsWebhookConnectorConfig",
+ "ConnectorsWiseConnectorConfig",
+ "ConnectorsXeroConnectorConfig",
+ "ConnectorsXeroConnectorConfigConfig",
+ "ConnectorsXeroConnectorConfigConfigOAuth",
+ "ConnectorsYodleeConnectorConfig",
+ "ConnectorsYodleeConnectorConfigConfig",
+ "ConnectorsYodleeConnectorConfigConfigProxy",
+ "ConnectorsZohodeskConnectorConfig",
+ "ConnectorsZohodeskConnectorConfigConfig",
+ "ConnectorsZohodeskConnectorConfigConfigOAuth",
+ "ConnectorsGoogledriveConnectorConfig",
+ "ConnectorsGoogledriveConnectorConfigConfig",
]
-class ItemConnectorsAircallConnectorConfig(BaseModel):
+class ConnectorsAircallConnectorConfig(BaseModel):
config: None
connector_name: Literal["aircall"]
@@ -159,7 +158,7 @@ class ItemConnectorsAircallConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsAirtableConnectorConfig(BaseModel):
+class ConnectorsAirtableConnectorConfig(BaseModel):
config: None
connector_name: Literal["airtable"]
@@ -173,7 +172,7 @@ class ItemConnectorsAirtableConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsApolloConnectorConfig(BaseModel):
+class ConnectorsApolloConnectorConfig(BaseModel):
config: None
connector_name: Literal["apollo"]
@@ -187,7 +186,7 @@ class ItemConnectorsApolloConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsBeancountConnectorConfig(BaseModel):
+class ConnectorsBeancountConnectorConfig(BaseModel):
config: None
connector_name: Literal["beancount"]
@@ -201,20 +200,20 @@ class ItemConnectorsBeancountConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsBrexConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsBrexConnectorConfigConfigOAuth(BaseModel):
client_id: str = FieldInfo(alias="clientId")
client_secret: str = FieldInfo(alias="clientSecret")
-class ItemConnectorsBrexConnectorConfigConfig(BaseModel):
+class ConnectorsBrexConnectorConfigConfig(BaseModel):
apikey_auth: Optional[bool] = FieldInfo(alias="apikeyAuth", default=None)
- oauth: Optional[ItemConnectorsBrexConnectorConfigConfigOAuth] = None
+ oauth: Optional[ConnectorsBrexConnectorConfigConfigOAuth] = None
-class ItemConnectorsBrexConnectorConfig(BaseModel):
- config: ItemConnectorsBrexConnectorConfigConfig
+class ConnectorsBrexConnectorConfig(BaseModel):
+ config: ConnectorsBrexConnectorConfigConfig
connector_name: Literal["brex"]
@@ -227,7 +226,7 @@ class ItemConnectorsBrexConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsCodaConnectorConfig(BaseModel):
+class ConnectorsCodaConnectorConfig(BaseModel):
config: None
connector_name: Literal["coda"]
@@ -241,7 +240,7 @@ class ItemConnectorsCodaConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsConfluenceConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsConfluenceConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -249,12 +248,12 @@ class ItemConnectorsConfluenceConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsConfluenceConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsConfluenceConnectorConfigConfigOAuth
+class ConnectorsConfluenceConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsConfluenceConnectorConfigConfigOAuth
-class ItemConnectorsConfluenceConnectorConfig(BaseModel):
- config: ItemConnectorsConfluenceConnectorConfigConfig
+class ConnectorsConfluenceConnectorConfig(BaseModel):
+ config: ConnectorsConfluenceConnectorConfigConfig
connector_name: Literal["confluence"]
@@ -267,7 +266,7 @@ class ItemConnectorsConfluenceConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsDebugConnectorConfig(BaseModel):
+class ConnectorsDebugConnectorConfig(BaseModel):
connector_name: Literal["debug"]
id: Optional[str] = None
@@ -281,7 +280,7 @@ class ItemConnectorsDebugConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsDiscordConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsDiscordConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -289,12 +288,12 @@ class ItemConnectorsDiscordConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsDiscordConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsDiscordConnectorConfigConfigOAuth
+class ConnectorsDiscordConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsDiscordConnectorConfigConfigOAuth
-class ItemConnectorsDiscordConnectorConfig(BaseModel):
- config: ItemConnectorsDiscordConnectorConfigConfig
+class ConnectorsDiscordConnectorConfig(BaseModel):
+ config: ConnectorsDiscordConnectorConfigConfig
connector_name: Literal["discord"]
@@ -307,7 +306,7 @@ class ItemConnectorsDiscordConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsFinchConnectorConfigConfig(BaseModel):
+class ConnectorsFinchConnectorConfigConfig(BaseModel):
client_id: str
client_secret: str
@@ -319,8 +318,8 @@ class ItemConnectorsFinchConnectorConfigConfig(BaseModel):
api_version: Optional[str] = None
-class ItemConnectorsFinchConnectorConfig(BaseModel):
- config: ItemConnectorsFinchConnectorConfigConfig
+class ConnectorsFinchConnectorConfig(BaseModel):
+ config: ConnectorsFinchConnectorConfigConfig
connector_name: Literal["finch"]
@@ -333,7 +332,7 @@ class ItemConnectorsFinchConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsFirebaseConnectorConfig(BaseModel):
+class ConnectorsFirebaseConnectorConfig(BaseModel):
config: None
connector_name: Literal["firebase"]
@@ -347,7 +346,7 @@ class ItemConnectorsFirebaseConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsForeceiptConnectorConfig(BaseModel):
+class ConnectorsForeceiptConnectorConfig(BaseModel):
config: None
connector_name: Literal["foreceipt"]
@@ -361,7 +360,7 @@ class ItemConnectorsForeceiptConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsFsConnectorConfig(BaseModel):
+class ConnectorsFsConnectorConfig(BaseModel):
config: None
connector_name: Literal["fs"]
@@ -375,7 +374,7 @@ class ItemConnectorsFsConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGitHubConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsGitHubConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -383,12 +382,12 @@ class ItemConnectorsGitHubConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsGitHubConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsGitHubConnectorConfigConfigOAuth
+class ConnectorsGitHubConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsGitHubConnectorConfigConfigOAuth
-class ItemConnectorsGitHubConnectorConfig(BaseModel):
- config: ItemConnectorsGitHubConnectorConfigConfig
+class ConnectorsGitHubConnectorConfig(BaseModel):
+ config: ConnectorsGitHubConnectorConfigConfig
connector_name: Literal["github"]
@@ -401,7 +400,7 @@ class ItemConnectorsGitHubConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGongConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsGongConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -409,12 +408,12 @@ class ItemConnectorsGongConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsGongConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsGongConnectorConfigConfigOAuth
+class ConnectorsGongConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsGongConnectorConfigConfigOAuth
-class ItemConnectorsGongConnectorConfig(BaseModel):
- config: ItemConnectorsGongConnectorConfigConfig
+class ConnectorsGongConnectorConfig(BaseModel):
+ config: ConnectorsGongConnectorConfigConfig
connector_name: Literal["gong"]
@@ -427,57 +426,57 @@ class ItemConnectorsGongConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGoogleConnectorConfigConfigIntegrationsCalendar(BaseModel):
+class ConnectorsGoogleConnectorConfigConfigIntegrationsCalendar(BaseModel):
enabled: Optional[bool] = None
scopes: Optional[str] = None
-class ItemConnectorsGoogleConnectorConfigConfigIntegrationsDocs(BaseModel):
+class ConnectorsGoogleConnectorConfigConfigIntegrationsDocs(BaseModel):
enabled: Optional[bool] = None
scopes: Optional[str] = None
-class ItemConnectorsGoogleConnectorConfigConfigIntegrationsDrive(BaseModel):
+class ConnectorsGoogleConnectorConfigConfigIntegrationsDrive(BaseModel):
enabled: Optional[bool] = None
scopes: Optional[str] = None
-class ItemConnectorsGoogleConnectorConfigConfigIntegrationsGmail(BaseModel):
+class ConnectorsGoogleConnectorConfigConfigIntegrationsGmail(BaseModel):
enabled: Optional[bool] = None
scopes: Optional[str] = None
-class ItemConnectorsGoogleConnectorConfigConfigIntegrationsSheets(BaseModel):
+class ConnectorsGoogleConnectorConfigConfigIntegrationsSheets(BaseModel):
enabled: Optional[bool] = None
scopes: Optional[str] = None
-class ItemConnectorsGoogleConnectorConfigConfigIntegrationsSlides(BaseModel):
+class ConnectorsGoogleConnectorConfigConfigIntegrationsSlides(BaseModel):
enabled: Optional[bool] = None
scopes: Optional[str] = None
-class ItemConnectorsGoogleConnectorConfigConfigIntegrations(BaseModel):
- calendar: Optional[ItemConnectorsGoogleConnectorConfigConfigIntegrationsCalendar] = None
+class ConnectorsGoogleConnectorConfigConfigIntegrations(BaseModel):
+ calendar: Optional[ConnectorsGoogleConnectorConfigConfigIntegrationsCalendar] = None
- docs: Optional[ItemConnectorsGoogleConnectorConfigConfigIntegrationsDocs] = None
+ docs: Optional[ConnectorsGoogleConnectorConfigConfigIntegrationsDocs] = None
- drive: Optional[ItemConnectorsGoogleConnectorConfigConfigIntegrationsDrive] = None
+ drive: Optional[ConnectorsGoogleConnectorConfigConfigIntegrationsDrive] = None
- gmail: Optional[ItemConnectorsGoogleConnectorConfigConfigIntegrationsGmail] = None
+ gmail: Optional[ConnectorsGoogleConnectorConfigConfigIntegrationsGmail] = None
- sheets: Optional[ItemConnectorsGoogleConnectorConfigConfigIntegrationsSheets] = None
+ sheets: Optional[ConnectorsGoogleConnectorConfigConfigIntegrationsSheets] = None
- slides: Optional[ItemConnectorsGoogleConnectorConfigConfigIntegrationsSlides] = None
+ slides: Optional[ConnectorsGoogleConnectorConfigConfigIntegrationsSlides] = None
-class ItemConnectorsGoogleConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsGoogleConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -485,14 +484,14 @@ class ItemConnectorsGoogleConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsGoogleConnectorConfigConfig(BaseModel):
- integrations: ItemConnectorsGoogleConnectorConfigConfigIntegrations
+class ConnectorsGoogleConnectorConfigConfig(BaseModel):
+ integrations: ConnectorsGoogleConnectorConfigConfigIntegrations
- oauth: ItemConnectorsGoogleConnectorConfigConfigOAuth
+ oauth: ConnectorsGoogleConnectorConfigConfigOAuth
-class ItemConnectorsGoogleConnectorConfig(BaseModel):
- config: ItemConnectorsGoogleConnectorConfigConfig
+class ConnectorsGoogleConnectorConfig(BaseModel):
+ config: ConnectorsGoogleConnectorConfigConfig
connector_name: Literal["google"]
@@ -505,7 +504,7 @@ class ItemConnectorsGoogleConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGreenhouseConnectorConfig(BaseModel):
+class ConnectorsGreenhouseConnectorConfig(BaseModel):
config: None
connector_name: Literal["greenhouse"]
@@ -519,12 +518,12 @@ class ItemConnectorsGreenhouseConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsHeronConnectorConfigConfig(BaseModel):
+class ConnectorsHeronConnectorConfigConfig(BaseModel):
api_key: str = FieldInfo(alias="apiKey")
-class ItemConnectorsHeronConnectorConfig(BaseModel):
- config: ItemConnectorsHeronConnectorConfigConfig
+class ConnectorsHeronConnectorConfig(BaseModel):
+ config: ConnectorsHeronConnectorConfigConfig
connector_name: Literal["heron"]
@@ -537,7 +536,7 @@ class ItemConnectorsHeronConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsHubspotConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsHubspotConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -545,12 +544,12 @@ class ItemConnectorsHubspotConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsHubspotConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsHubspotConnectorConfigConfigOAuth
+class ConnectorsHubspotConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsHubspotConnectorConfigConfigOAuth
-class ItemConnectorsHubspotConnectorConfig(BaseModel):
- config: ItemConnectorsHubspotConnectorConfigConfig
+class ConnectorsHubspotConnectorConfig(BaseModel):
+ config: ConnectorsHubspotConnectorConfigConfig
connector_name: Literal["hubspot"]
@@ -563,7 +562,7 @@ class ItemConnectorsHubspotConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsIntercomConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsIntercomConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -571,12 +570,12 @@ class ItemConnectorsIntercomConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsIntercomConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsIntercomConnectorConfigConfigOAuth
+class ConnectorsIntercomConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsIntercomConnectorConfigConfigOAuth
-class ItemConnectorsIntercomConnectorConfig(BaseModel):
- config: ItemConnectorsIntercomConnectorConfigConfig
+class ConnectorsIntercomConnectorConfig(BaseModel):
+ config: ConnectorsIntercomConnectorConfigConfig
connector_name: Literal["intercom"]
@@ -589,7 +588,7 @@ class ItemConnectorsIntercomConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsJiraConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsJiraConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -597,12 +596,12 @@ class ItemConnectorsJiraConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsJiraConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsJiraConnectorConfigConfigOAuth
+class ConnectorsJiraConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsJiraConnectorConfigConfigOAuth
-class ItemConnectorsJiraConnectorConfig(BaseModel):
- config: ItemConnectorsJiraConnectorConfigConfig
+class ConnectorsJiraConnectorConfig(BaseModel):
+ config: ConnectorsJiraConnectorConfigConfig
connector_name: Literal["jira"]
@@ -615,7 +614,7 @@ class ItemConnectorsJiraConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsKustomerConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsKustomerConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -623,12 +622,12 @@ class ItemConnectorsKustomerConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsKustomerConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsKustomerConnectorConfigConfigOAuth
+class ConnectorsKustomerConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsKustomerConnectorConfigConfigOAuth
-class ItemConnectorsKustomerConnectorConfig(BaseModel):
- config: ItemConnectorsKustomerConnectorConfigConfig
+class ConnectorsKustomerConnectorConfig(BaseModel):
+ config: ConnectorsKustomerConnectorConfigConfig
connector_name: Literal["kustomer"]
@@ -641,7 +640,7 @@ class ItemConnectorsKustomerConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsLeverConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsLeverConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -649,14 +648,14 @@ class ItemConnectorsLeverConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsLeverConnectorConfigConfig(BaseModel):
+class ConnectorsLeverConnectorConfigConfig(BaseModel):
env_name: Literal["sandbox", "production"] = FieldInfo(alias="envName")
- oauth: ItemConnectorsLeverConnectorConfigConfigOAuth
+ oauth: ConnectorsLeverConnectorConfigConfigOAuth
-class ItemConnectorsLeverConnectorConfig(BaseModel):
- config: ItemConnectorsLeverConnectorConfigConfig
+class ConnectorsLeverConnectorConfig(BaseModel):
+ config: ConnectorsLeverConnectorConfigConfig
connector_name: Literal["lever"]
@@ -669,7 +668,7 @@ class ItemConnectorsLeverConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsLinearConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsLinearConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -677,12 +676,12 @@ class ItemConnectorsLinearConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsLinearConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsLinearConnectorConfigConfigOAuth
+class ConnectorsLinearConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsLinearConnectorConfigConfigOAuth
-class ItemConnectorsLinearConnectorConfig(BaseModel):
- config: ItemConnectorsLinearConnectorConfigConfig
+class ConnectorsLinearConnectorConfig(BaseModel):
+ config: ConnectorsLinearConnectorConfigConfig
connector_name: Literal["linear"]
@@ -695,12 +694,12 @@ class ItemConnectorsLinearConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsLunchmoneyConnectorConfigConfig(BaseModel):
+class ConnectorsLunchmoneyConnectorConfigConfig(BaseModel):
access_token: str = FieldInfo(alias="accessToken")
-class ItemConnectorsLunchmoneyConnectorConfig(BaseModel):
- config: ItemConnectorsLunchmoneyConnectorConfigConfig
+class ConnectorsLunchmoneyConnectorConfig(BaseModel):
+ config: ConnectorsLunchmoneyConnectorConfigConfig
connector_name: Literal["lunchmoney"]
@@ -713,20 +712,20 @@ class ItemConnectorsLunchmoneyConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMercuryConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsMercuryConnectorConfigConfigOAuth(BaseModel):
client_id: str = FieldInfo(alias="clientId")
client_secret: str = FieldInfo(alias="clientSecret")
-class ItemConnectorsMercuryConnectorConfigConfig(BaseModel):
+class ConnectorsMercuryConnectorConfigConfig(BaseModel):
apikey_auth: Optional[bool] = FieldInfo(alias="apikeyAuth", default=None)
- oauth: Optional[ItemConnectorsMercuryConnectorConfigConfigOAuth] = None
+ oauth: Optional[ConnectorsMercuryConnectorConfigConfigOAuth] = None
-class ItemConnectorsMercuryConnectorConfig(BaseModel):
- config: ItemConnectorsMercuryConnectorConfigConfig
+class ConnectorsMercuryConnectorConfig(BaseModel):
+ config: ConnectorsMercuryConnectorConfigConfig
connector_name: Literal["mercury"]
@@ -739,12 +738,12 @@ class ItemConnectorsMercuryConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMergeConnectorConfigConfig(BaseModel):
+class ConnectorsMergeConnectorConfigConfig(BaseModel):
api_key: str = FieldInfo(alias="apiKey")
-class ItemConnectorsMergeConnectorConfig(BaseModel):
- config: ItemConnectorsMergeConnectorConfigConfig
+class ConnectorsMergeConnectorConfig(BaseModel):
+ config: ConnectorsMergeConnectorConfigConfig
connector_name: Literal["merge"]
@@ -757,33 +756,33 @@ class ItemConnectorsMergeConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMicrosoftConnectorConfigConfigIntegrationsOutlook(BaseModel):
+class ConnectorsMicrosoftConnectorConfigConfigIntegrationsOutlook(BaseModel):
enabled: Optional[bool] = None
scopes: Optional[str] = None
-class ItemConnectorsMicrosoftConnectorConfigConfigIntegrationsSharepoint(BaseModel):
+class ConnectorsMicrosoftConnectorConfigConfigIntegrationsSharepoint(BaseModel):
enabled: Optional[bool] = None
scopes: Optional[str] = None
-class ItemConnectorsMicrosoftConnectorConfigConfigIntegrationsTeams(BaseModel):
+class ConnectorsMicrosoftConnectorConfigConfigIntegrationsTeams(BaseModel):
enabled: Optional[bool] = None
scopes: Optional[str] = None
-class ItemConnectorsMicrosoftConnectorConfigConfigIntegrations(BaseModel):
- outlook: Optional[ItemConnectorsMicrosoftConnectorConfigConfigIntegrationsOutlook] = None
+class ConnectorsMicrosoftConnectorConfigConfigIntegrations(BaseModel):
+ outlook: Optional[ConnectorsMicrosoftConnectorConfigConfigIntegrationsOutlook] = None
- sharepoint: Optional[ItemConnectorsMicrosoftConnectorConfigConfigIntegrationsSharepoint] = None
+ sharepoint: Optional[ConnectorsMicrosoftConnectorConfigConfigIntegrationsSharepoint] = None
- teams: Optional[ItemConnectorsMicrosoftConnectorConfigConfigIntegrationsTeams] = None
+ teams: Optional[ConnectorsMicrosoftConnectorConfigConfigIntegrationsTeams] = None
-class ItemConnectorsMicrosoftConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsMicrosoftConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -791,14 +790,14 @@ class ItemConnectorsMicrosoftConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsMicrosoftConnectorConfigConfig(BaseModel):
- integrations: ItemConnectorsMicrosoftConnectorConfigConfigIntegrations
+class ConnectorsMicrosoftConnectorConfigConfig(BaseModel):
+ integrations: ConnectorsMicrosoftConnectorConfigConfigIntegrations
- oauth: ItemConnectorsMicrosoftConnectorConfigConfigOAuth
+ oauth: ConnectorsMicrosoftConnectorConfigConfigOAuth
-class ItemConnectorsMicrosoftConnectorConfig(BaseModel):
- config: ItemConnectorsMicrosoftConnectorConfigConfig
+class ConnectorsMicrosoftConnectorConfig(BaseModel):
+ config: ConnectorsMicrosoftConnectorConfigConfig
connector_name: Literal["microsoft"]
@@ -811,7 +810,7 @@ class ItemConnectorsMicrosoftConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMongoDBConnectorConfig(BaseModel):
+class ConnectorsMongoDBConnectorConfig(BaseModel):
config: None
connector_name: Literal["mongodb"]
@@ -825,12 +824,12 @@ class ItemConnectorsMongoDBConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMootaConnectorConfigConfig(BaseModel):
+class ConnectorsMootaConnectorConfigConfig(BaseModel):
token: str
-class ItemConnectorsMootaConnectorConfig(BaseModel):
- config: ItemConnectorsMootaConnectorConfigConfig
+class ConnectorsMootaConnectorConfig(BaseModel):
+ config: ConnectorsMootaConnectorConfigConfig
connector_name: Literal["moota"]
@@ -843,7 +842,7 @@ class ItemConnectorsMootaConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsOnebrickConnectorConfigConfig(BaseModel):
+class ConnectorsOnebrickConnectorConfigConfig(BaseModel):
client_id: str = FieldInfo(alias="clientId")
client_secret: str = FieldInfo(alias="clientSecret")
@@ -857,8 +856,8 @@ class ItemConnectorsOnebrickConnectorConfigConfig(BaseModel):
redirect_url: Optional[str] = FieldInfo(alias="redirectUrl", default=None)
-class ItemConnectorsOnebrickConnectorConfig(BaseModel):
- config: ItemConnectorsOnebrickConnectorConfigConfig
+class ConnectorsOnebrickConnectorConfig(BaseModel):
+ config: ConnectorsOnebrickConnectorConfigConfig
connector_name: Literal["onebrick"]
@@ -871,7 +870,7 @@ class ItemConnectorsOnebrickConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsOutreachConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsOutreachConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -879,12 +878,12 @@ class ItemConnectorsOutreachConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsOutreachConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsOutreachConnectorConfigConfigOAuth
+class ConnectorsOutreachConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsOutreachConnectorConfigConfigOAuth
-class ItemConnectorsOutreachConnectorConfig(BaseModel):
- config: ItemConnectorsOutreachConnectorConfigConfig
+class ConnectorsOutreachConnectorConfig(BaseModel):
+ config: ConnectorsOutreachConnectorConfigConfig
connector_name: Literal["outreach"]
@@ -897,7 +896,7 @@ class ItemConnectorsOutreachConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsPipedriveConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsPipedriveConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -905,12 +904,12 @@ class ItemConnectorsPipedriveConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsPipedriveConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsPipedriveConnectorConfigConfigOAuth
+class ConnectorsPipedriveConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsPipedriveConnectorConfigConfigOAuth
-class ItemConnectorsPipedriveConnectorConfig(BaseModel):
- config: ItemConnectorsPipedriveConnectorConfigConfig
+class ConnectorsPipedriveConnectorConfig(BaseModel):
+ config: ConnectorsPipedriveConnectorConfigConfig
connector_name: Literal["pipedrive"]
@@ -923,13 +922,13 @@ class ItemConnectorsPipedriveConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsPlaidConnectorConfigConfigCredentials(BaseModel):
+class ConnectorsPlaidConnectorConfigConfigCredentials(BaseModel):
client_id: str = FieldInfo(alias="clientId")
client_secret: str = FieldInfo(alias="clientSecret")
-class ItemConnectorsPlaidConnectorConfigConfig(BaseModel):
+class ConnectorsPlaidConnectorConfigConfig(BaseModel):
client_name: str = FieldInfo(alias="clientName")
country_codes: List[
@@ -962,11 +961,11 @@ class ItemConnectorsPlaidConnectorConfigConfig(BaseModel):
]
]
- credentials: Optional[ItemConnectorsPlaidConnectorConfigConfigCredentials] = None
+ credentials: Optional[ConnectorsPlaidConnectorConfigConfigCredentials] = None
-class ItemConnectorsPlaidConnectorConfig(BaseModel):
- config: ItemConnectorsPlaidConnectorConfigConfig
+class ConnectorsPlaidConnectorConfig(BaseModel):
+ config: ConnectorsPlaidConnectorConfigConfig
connector_name: Literal["plaid"]
@@ -979,7 +978,7 @@ class ItemConnectorsPlaidConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsPostgresConnectorConfig(BaseModel):
+class ConnectorsPostgresConnectorConfig(BaseModel):
config: None
connector_name: Literal["postgres"]
@@ -993,7 +992,7 @@ class ItemConnectorsPostgresConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsQboConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsQboConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -1001,18 +1000,18 @@ class ItemConnectorsQboConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsQboConnectorConfigConfig(BaseModel):
+class ConnectorsQboConnectorConfigConfig(BaseModel):
env_name: Literal["sandbox", "production"] = FieldInfo(alias="envName")
- oauth: ItemConnectorsQboConnectorConfigConfigOAuth
+ oauth: ConnectorsQboConnectorConfigConfigOAuth
url: Optional[str] = None
verifier_token: Optional[str] = FieldInfo(alias="verifierToken", default=None)
-class ItemConnectorsQboConnectorConfig(BaseModel):
- config: ItemConnectorsQboConnectorConfigConfig
+class ConnectorsQboConnectorConfig(BaseModel):
+ config: ConnectorsQboConnectorConfigConfig
connector_name: Literal["qbo"]
@@ -1025,18 +1024,18 @@ class ItemConnectorsQboConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsRampConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsRampConnectorConfigConfigOAuth(BaseModel):
client_id: str = FieldInfo(alias="clientId")
client_secret: str = FieldInfo(alias="clientSecret")
-class ItemConnectorsRampConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsRampConnectorConfigConfigOAuth
+class ConnectorsRampConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsRampConnectorConfigConfigOAuth
-class ItemConnectorsRampConnectorConfig(BaseModel):
- config: ItemConnectorsRampConnectorConfigConfig
+class ConnectorsRampConnectorConfig(BaseModel):
+ config: ConnectorsRampConnectorConfigConfig
connector_name: Literal["ramp"]
@@ -1049,14 +1048,14 @@ class ItemConnectorsRampConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsRevertConnectorConfigConfig(BaseModel):
+class ConnectorsRevertConnectorConfigConfig(BaseModel):
api_token: str
api_version: Optional[str] = None
-class ItemConnectorsRevertConnectorConfig(BaseModel):
- config: ItemConnectorsRevertConnectorConfigConfig
+class ConnectorsRevertConnectorConfig(BaseModel):
+ config: ConnectorsRevertConnectorConfigConfig
connector_name: Literal["revert"]
@@ -1069,7 +1068,7 @@ class ItemConnectorsRevertConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSalesforceConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsSalesforceConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -1077,12 +1076,12 @@ class ItemConnectorsSalesforceConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsSalesforceConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsSalesforceConnectorConfigConfigOAuth
+class ConnectorsSalesforceConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsSalesforceConnectorConfigConfigOAuth
-class ItemConnectorsSalesforceConnectorConfig(BaseModel):
- config: ItemConnectorsSalesforceConnectorConfigConfig
+class ConnectorsSalesforceConnectorConfig(BaseModel):
+ config: ConnectorsSalesforceConnectorConfigConfig
connector_name: Literal["salesforce"]
@@ -1095,7 +1094,7 @@ class ItemConnectorsSalesforceConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSalesloftConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsSalesloftConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -1103,12 +1102,12 @@ class ItemConnectorsSalesloftConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsSalesloftConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsSalesloftConnectorConfigConfigOAuth
+class ConnectorsSalesloftConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsSalesloftConnectorConfigConfigOAuth
-class ItemConnectorsSalesloftConnectorConfig(BaseModel):
- config: ItemConnectorsSalesloftConnectorConfigConfig
+class ConnectorsSalesloftConnectorConfig(BaseModel):
+ config: ConnectorsSalesloftConnectorConfigConfig
connector_name: Literal["salesloft"]
@@ -1121,7 +1120,7 @@ class ItemConnectorsSalesloftConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSaltedgeConnectorConfigConfig(BaseModel):
+class ConnectorsSaltedgeConnectorConfigConfig(BaseModel):
app_id: str = FieldInfo(alias="appId")
secret: str
@@ -1129,8 +1128,8 @@ class ItemConnectorsSaltedgeConnectorConfigConfig(BaseModel):
url: Optional[str] = None
-class ItemConnectorsSaltedgeConnectorConfig(BaseModel):
- config: ItemConnectorsSaltedgeConnectorConfigConfig
+class ConnectorsSaltedgeConnectorConfig(BaseModel):
+ config: ConnectorsSaltedgeConnectorConfigConfig
connector_name: Literal["saltedge"]
@@ -1143,7 +1142,7 @@ class ItemConnectorsSaltedgeConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSlackConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsSlackConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -1151,12 +1150,12 @@ class ItemConnectorsSlackConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsSlackConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsSlackConnectorConfigConfigOAuth
+class ConnectorsSlackConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsSlackConnectorConfigConfigOAuth
-class ItemConnectorsSlackConnectorConfig(BaseModel):
- config: ItemConnectorsSlackConnectorConfigConfig
+class ConnectorsSlackConnectorConfig(BaseModel):
+ config: ConnectorsSlackConnectorConfigConfig
connector_name: Literal["slack"]
@@ -1169,7 +1168,7 @@ class ItemConnectorsSlackConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSplitwiseConnectorConfig(BaseModel):
+class ConnectorsSplitwiseConnectorConfig(BaseModel):
config: None
connector_name: Literal["splitwise"]
@@ -1183,7 +1182,7 @@ class ItemConnectorsSplitwiseConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSpreadsheetConnectorConfigConfig(BaseModel):
+class ConnectorsSpreadsheetConnectorConfigConfig(BaseModel):
enabled_presets: Optional[
List[
Literal[
@@ -1207,12 +1206,12 @@ class ItemConnectorsSpreadsheetConnectorConfigConfig(BaseModel):
source_providers: Optional[List[object]] = FieldInfo(alias="sourceProviders", default=None)
-class ItemConnectorsSpreadsheetConnectorConfig(BaseModel):
+class ConnectorsSpreadsheetConnectorConfig(BaseModel):
connector_name: Literal["spreadsheet"]
id: Optional[str] = None
- config: Optional[ItemConnectorsSpreadsheetConnectorConfigConfig] = None
+ config: Optional[ConnectorsSpreadsheetConnectorConfigConfig] = None
created_at: Optional[datetime] = None
@@ -1221,20 +1220,20 @@ class ItemConnectorsSpreadsheetConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsStripeConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsStripeConnectorConfigConfigOAuth(BaseModel):
client_id: str = FieldInfo(alias="clientId")
client_secret: str = FieldInfo(alias="clientSecret")
-class ItemConnectorsStripeConnectorConfigConfig(BaseModel):
+class ConnectorsStripeConnectorConfigConfig(BaseModel):
apikey_auth: Optional[bool] = FieldInfo(alias="apikeyAuth", default=None)
- oauth: Optional[ItemConnectorsStripeConnectorConfigConfigOAuth] = None
+ oauth: Optional[ConnectorsStripeConnectorConfigConfigOAuth] = None
-class ItemConnectorsStripeConnectorConfig(BaseModel):
- config: ItemConnectorsStripeConnectorConfigConfig
+class ConnectorsStripeConnectorConfig(BaseModel):
+ config: ConnectorsStripeConnectorConfigConfig
connector_name: Literal["stripe"]
@@ -1247,14 +1246,14 @@ class ItemConnectorsStripeConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsTellerConnectorConfigConfig(BaseModel):
+class ConnectorsTellerConnectorConfigConfig(BaseModel):
application_id: str = FieldInfo(alias="applicationId")
token: Optional[str] = None
-class ItemConnectorsTellerConnectorConfig(BaseModel):
- config: ItemConnectorsTellerConnectorConfigConfig
+class ConnectorsTellerConnectorConfig(BaseModel):
+ config: ConnectorsTellerConnectorConfigConfig
connector_name: Literal["teller"]
@@ -1267,7 +1266,7 @@ class ItemConnectorsTellerConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsTogglConnectorConfig(BaseModel):
+class ConnectorsTogglConnectorConfig(BaseModel):
config: None
connector_name: Literal["toggl"]
@@ -1281,7 +1280,7 @@ class ItemConnectorsTogglConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsTwentyConnectorConfig(BaseModel):
+class ConnectorsTwentyConnectorConfig(BaseModel):
config: None
connector_name: Literal["twenty"]
@@ -1295,22 +1294,22 @@ class ItemConnectorsTwentyConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsVenmoConnectorConfigConfigProxy(BaseModel):
+class ConnectorsVenmoConnectorConfigConfigProxy(BaseModel):
cert: str
url: str
-class ItemConnectorsVenmoConnectorConfigConfig(BaseModel):
- proxy: Optional[ItemConnectorsVenmoConnectorConfigConfigProxy] = None
+class ConnectorsVenmoConnectorConfigConfig(BaseModel):
+ proxy: Optional[ConnectorsVenmoConnectorConfigConfigProxy] = None
v1_base_url: Optional[str] = FieldInfo(alias="v1BaseURL", default=None)
v5_base_url: Optional[str] = FieldInfo(alias="v5BaseURL", default=None)
-class ItemConnectorsVenmoConnectorConfig(BaseModel):
- config: ItemConnectorsVenmoConnectorConfigConfig
+class ConnectorsVenmoConnectorConfig(BaseModel):
+ config: ConnectorsVenmoConnectorConfigConfig
connector_name: Literal["venmo"]
@@ -1323,7 +1322,7 @@ class ItemConnectorsVenmoConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsWebhookConnectorConfig(BaseModel):
+class ConnectorsWebhookConnectorConfig(BaseModel):
config: None
connector_name: Literal["webhook"]
@@ -1337,7 +1336,7 @@ class ItemConnectorsWebhookConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsWiseConnectorConfig(BaseModel):
+class ConnectorsWiseConnectorConfig(BaseModel):
config: None
connector_name: Literal["wise"]
@@ -1351,7 +1350,7 @@ class ItemConnectorsWiseConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsXeroConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsXeroConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -1359,12 +1358,12 @@ class ItemConnectorsXeroConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsXeroConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsXeroConnectorConfigConfigOAuth
+class ConnectorsXeroConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsXeroConnectorConfigConfigOAuth
-class ItemConnectorsXeroConnectorConfig(BaseModel):
- config: ItemConnectorsXeroConnectorConfigConfig
+class ConnectorsXeroConnectorConfig(BaseModel):
+ config: ConnectorsXeroConnectorConfigConfig
connector_name: Literal["xero"]
@@ -1377,13 +1376,13 @@ class ItemConnectorsXeroConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsYodleeConnectorConfigConfigProxy(BaseModel):
+class ConnectorsYodleeConnectorConfigConfigProxy(BaseModel):
cert: str
url: str
-class ItemConnectorsYodleeConnectorConfigConfig(BaseModel):
+class ConnectorsYodleeConnectorConfigConfig(BaseModel):
admin_login_name: str = FieldInfo(alias="adminLoginName")
client_id: str = FieldInfo(alias="clientId")
@@ -1392,13 +1391,13 @@ class ItemConnectorsYodleeConnectorConfigConfig(BaseModel):
env_name: Literal["sandbox", "development", "production"] = FieldInfo(alias="envName")
- proxy: Optional[ItemConnectorsYodleeConnectorConfigConfigProxy] = None
+ proxy: Optional[ConnectorsYodleeConnectorConfigConfigProxy] = None
sandbox_login_name: Optional[str] = FieldInfo(alias="sandboxLoginName", default=None)
-class ItemConnectorsYodleeConnectorConfig(BaseModel):
- config: ItemConnectorsYodleeConnectorConfigConfig
+class ConnectorsYodleeConnectorConfig(BaseModel):
+ config: ConnectorsYodleeConnectorConfigConfig
connector_name: Literal["yodlee"]
@@ -1411,7 +1410,7 @@ class ItemConnectorsYodleeConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsZohodeskConnectorConfigConfigOAuth(BaseModel):
+class ConnectorsZohodeskConnectorConfigConfigOAuth(BaseModel):
client_id: str
client_secret: str
@@ -1419,12 +1418,12 @@ class ItemConnectorsZohodeskConnectorConfigConfigOAuth(BaseModel):
scopes: Optional[str] = None
-class ItemConnectorsZohodeskConnectorConfigConfig(BaseModel):
- oauth: ItemConnectorsZohodeskConnectorConfigConfigOAuth
+class ConnectorsZohodeskConnectorConfigConfig(BaseModel):
+ oauth: ConnectorsZohodeskConnectorConfigConfigOAuth
-class ItemConnectorsZohodeskConnectorConfig(BaseModel):
- config: ItemConnectorsZohodeskConnectorConfigConfig
+class ConnectorsZohodeskConnectorConfig(BaseModel):
+ config: ConnectorsZohodeskConnectorConfigConfig
connector_name: Literal["zohodesk"]
@@ -1437,7 +1436,7 @@ class ItemConnectorsZohodeskConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGoogledriveConnectorConfigConfig(BaseModel):
+class ConnectorsGoogledriveConnectorConfigConfig(BaseModel):
client_id: str
client_secret: str
@@ -1445,8 +1444,8 @@ class ItemConnectorsGoogledriveConnectorConfigConfig(BaseModel):
scopes: Optional[List[str]] = None
-class ItemConnectorsGoogledriveConnectorConfig(BaseModel):
- config: ItemConnectorsGoogledriveConnectorConfigConfig
+class ConnectorsGoogledriveConnectorConfig(BaseModel):
+ config: ConnectorsGoogledriveConnectorConfigConfig
connector_name: Literal["googledrive"]
@@ -1459,70 +1458,60 @@ class ItemConnectorsGoogledriveConnectorConfig(BaseModel):
updated_at: Optional[datetime] = None
-Item: TypeAlias = Union[
- ItemConnectorsAircallConnectorConfig,
- ItemConnectorsAirtableConnectorConfig,
- ItemConnectorsApolloConnectorConfig,
- ItemConnectorsBeancountConnectorConfig,
- ItemConnectorsBrexConnectorConfig,
- ItemConnectorsCodaConnectorConfig,
- ItemConnectorsConfluenceConnectorConfig,
- ItemConnectorsDebugConnectorConfig,
- ItemConnectorsDiscordConnectorConfig,
- ItemConnectorsFinchConnectorConfig,
- ItemConnectorsFirebaseConnectorConfig,
- ItemConnectorsForeceiptConnectorConfig,
- ItemConnectorsFsConnectorConfig,
- ItemConnectorsGitHubConnectorConfig,
- ItemConnectorsGongConnectorConfig,
- ItemConnectorsGoogleConnectorConfig,
- ItemConnectorsGreenhouseConnectorConfig,
- ItemConnectorsHeronConnectorConfig,
- ItemConnectorsHubspotConnectorConfig,
- ItemConnectorsIntercomConnectorConfig,
- ItemConnectorsJiraConnectorConfig,
- ItemConnectorsKustomerConnectorConfig,
- ItemConnectorsLeverConnectorConfig,
- ItemConnectorsLinearConnectorConfig,
- ItemConnectorsLunchmoneyConnectorConfig,
- ItemConnectorsMercuryConnectorConfig,
- ItemConnectorsMergeConnectorConfig,
- ItemConnectorsMicrosoftConnectorConfig,
- ItemConnectorsMongoDBConnectorConfig,
- ItemConnectorsMootaConnectorConfig,
- ItemConnectorsOnebrickConnectorConfig,
- ItemConnectorsOutreachConnectorConfig,
- ItemConnectorsPipedriveConnectorConfig,
- ItemConnectorsPlaidConnectorConfig,
- ItemConnectorsPostgresConnectorConfig,
- ItemConnectorsQboConnectorConfig,
- ItemConnectorsRampConnectorConfig,
- ItemConnectorsRevertConnectorConfig,
- ItemConnectorsSalesforceConnectorConfig,
- ItemConnectorsSalesloftConnectorConfig,
- ItemConnectorsSaltedgeConnectorConfig,
- ItemConnectorsSlackConnectorConfig,
- ItemConnectorsSplitwiseConnectorConfig,
- ItemConnectorsSpreadsheetConnectorConfig,
- ItemConnectorsStripeConnectorConfig,
- ItemConnectorsTellerConnectorConfig,
- ItemConnectorsTogglConnectorConfig,
- ItemConnectorsTwentyConnectorConfig,
- ItemConnectorsVenmoConnectorConfig,
- ItemConnectorsWebhookConnectorConfig,
- ItemConnectorsWiseConnectorConfig,
- ItemConnectorsXeroConnectorConfig,
- ItemConnectorsYodleeConnectorConfig,
- ItemConnectorsZohodeskConnectorConfig,
- ItemConnectorsGoogledriveConnectorConfig,
+ListConnectionConfigsResponse: TypeAlias = Union[
+ ConnectorsAircallConnectorConfig,
+ ConnectorsAirtableConnectorConfig,
+ ConnectorsApolloConnectorConfig,
+ ConnectorsBeancountConnectorConfig,
+ ConnectorsBrexConnectorConfig,
+ ConnectorsCodaConnectorConfig,
+ ConnectorsConfluenceConnectorConfig,
+ ConnectorsDebugConnectorConfig,
+ ConnectorsDiscordConnectorConfig,
+ ConnectorsFinchConnectorConfig,
+ ConnectorsFirebaseConnectorConfig,
+ ConnectorsForeceiptConnectorConfig,
+ ConnectorsFsConnectorConfig,
+ ConnectorsGitHubConnectorConfig,
+ ConnectorsGongConnectorConfig,
+ ConnectorsGoogleConnectorConfig,
+ ConnectorsGreenhouseConnectorConfig,
+ ConnectorsHeronConnectorConfig,
+ ConnectorsHubspotConnectorConfig,
+ ConnectorsIntercomConnectorConfig,
+ ConnectorsJiraConnectorConfig,
+ ConnectorsKustomerConnectorConfig,
+ ConnectorsLeverConnectorConfig,
+ ConnectorsLinearConnectorConfig,
+ ConnectorsLunchmoneyConnectorConfig,
+ ConnectorsMercuryConnectorConfig,
+ ConnectorsMergeConnectorConfig,
+ ConnectorsMicrosoftConnectorConfig,
+ ConnectorsMongoDBConnectorConfig,
+ ConnectorsMootaConnectorConfig,
+ ConnectorsOnebrickConnectorConfig,
+ ConnectorsOutreachConnectorConfig,
+ ConnectorsPipedriveConnectorConfig,
+ ConnectorsPlaidConnectorConfig,
+ ConnectorsPostgresConnectorConfig,
+ ConnectorsQboConnectorConfig,
+ ConnectorsRampConnectorConfig,
+ ConnectorsRevertConnectorConfig,
+ ConnectorsSalesforceConnectorConfig,
+ ConnectorsSalesloftConnectorConfig,
+ ConnectorsSaltedgeConnectorConfig,
+ ConnectorsSlackConnectorConfig,
+ ConnectorsSplitwiseConnectorConfig,
+ ConnectorsSpreadsheetConnectorConfig,
+ ConnectorsStripeConnectorConfig,
+ ConnectorsTellerConnectorConfig,
+ ConnectorsTogglConnectorConfig,
+ ConnectorsTwentyConnectorConfig,
+ ConnectorsVenmoConnectorConfig,
+ ConnectorsWebhookConnectorConfig,
+ ConnectorsWiseConnectorConfig,
+ ConnectorsXeroConnectorConfig,
+ ConnectorsYodleeConnectorConfig,
+ ConnectorsZohodeskConnectorConfig,
+ ConnectorsGoogledriveConnectorConfig,
]
-
-
-class ListConnectionConfigsResponse(BaseModel):
- items: List[Item]
-
- limit: int
-
- offset: int
-
- total: float
diff --git a/src/openint/types/list_events_response.py b/src/openint/types/list_events_response.py
index 9819f5d..701906b 100644
--- a/src/openint/types/list_events_response.py
+++ b/src/openint/types/list_events_response.py
@@ -4,10 +4,10 @@
from .._models import BaseModel
-__all__ = ["ListEventsResponse", "Item"]
+__all__ = ["ListEventsResponse"]
-class Item(BaseModel):
+class ListEventsResponse(BaseModel):
id: str
customer_id: Optional[str] = None
@@ -25,13 +25,3 @@ class Item(BaseModel):
user_id: Optional[str] = None
v: Optional[str] = None
-
-
-class ListEventsResponse(BaseModel):
- items: List[Item]
-
- limit: int
-
- offset: int
-
- total: float
diff --git a/tests/api_resources/test_client.py b/tests/api_resources/test_client.py
index 3785ad7..7cc8e7f 100644
--- a/tests/api_resources/test_client.py
+++ b/tests/api_resources/test_client.py
@@ -18,6 +18,7 @@
ListConnectionsResponse,
ListConnectionConfigsResponse,
)
+from openint.pagination import SyncOffsetPagination, AsyncOffsetPagination
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
@@ -205,7 +206,7 @@ def test_streaming_response_get_connection(self, client: Openint) -> None:
@parametrize
def test_method_list_connection_configs(self, client: Openint) -> None:
client_ = client.list_connection_configs()
- assert_matches_type(ListConnectionConfigsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListConnectionConfigsResponse], client_, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -216,7 +217,7 @@ def test_method_list_connection_configs_with_all_params(self, client: Openint) -
limit=1,
offset=0,
)
- assert_matches_type(ListConnectionConfigsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListConnectionConfigsResponse], client_, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -226,7 +227,7 @@ def test_raw_response_list_connection_configs(self, client: Openint) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client_ = response.parse()
- assert_matches_type(ListConnectionConfigsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListConnectionConfigsResponse], client_, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -236,7 +237,7 @@ def test_streaming_response_list_connection_configs(self, client: Openint) -> No
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client_ = response.parse()
- assert_matches_type(ListConnectionConfigsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListConnectionConfigsResponse], client_, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -297,7 +298,7 @@ def test_path_params_list_connections(self, client: Openint) -> None:
@parametrize
def test_method_list_events(self, client: Openint) -> None:
client_ = client.list_events()
- assert_matches_type(ListEventsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListEventsResponse], client_, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -306,7 +307,7 @@ def test_method_list_events_with_all_params(self, client: Openint) -> None:
limit=1,
offset=0,
)
- assert_matches_type(ListEventsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListEventsResponse], client_, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -316,7 +317,7 @@ def test_raw_response_list_events(self, client: Openint) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client_ = response.parse()
- assert_matches_type(ListEventsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListEventsResponse], client_, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -326,7 +327,7 @@ def test_streaming_response_list_events(self, client: Openint) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client_ = response.parse()
- assert_matches_type(ListEventsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListEventsResponse], client_, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -514,7 +515,7 @@ async def test_streaming_response_get_connection(self, async_client: AsyncOpenin
@parametrize
async def test_method_list_connection_configs(self, async_client: AsyncOpenint) -> None:
client = await async_client.list_connection_configs()
- assert_matches_type(ListConnectionConfigsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListConnectionConfigsResponse], client, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -525,7 +526,7 @@ async def test_method_list_connection_configs_with_all_params(self, async_client
limit=1,
offset=0,
)
- assert_matches_type(ListConnectionConfigsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListConnectionConfigsResponse], client, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -535,7 +536,7 @@ async def test_raw_response_list_connection_configs(self, async_client: AsyncOpe
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client = await response.parse()
- assert_matches_type(ListConnectionConfigsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListConnectionConfigsResponse], client, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -545,7 +546,7 @@ async def test_streaming_response_list_connection_configs(self, async_client: As
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client = await response.parse()
- assert_matches_type(ListConnectionConfigsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListConnectionConfigsResponse], client, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -606,7 +607,7 @@ async def test_path_params_list_connections(self, async_client: AsyncOpenint) ->
@parametrize
async def test_method_list_events(self, async_client: AsyncOpenint) -> None:
client = await async_client.list_events()
- assert_matches_type(ListEventsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListEventsResponse], client, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -615,7 +616,7 @@ async def test_method_list_events_with_all_params(self, async_client: AsyncOpeni
limit=1,
offset=0,
)
- assert_matches_type(ListEventsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListEventsResponse], client, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -625,7 +626,7 @@ async def test_raw_response_list_events(self, async_client: AsyncOpenint) -> Non
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client = await response.parse()
- assert_matches_type(ListEventsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListEventsResponse], client, path=["response"])
@pytest.mark.skip()
@parametrize
@@ -635,6 +636,6 @@ async def test_streaming_response_list_events(self, async_client: AsyncOpenint)
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client = await response.parse()
- assert_matches_type(ListEventsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListEventsResponse], client, path=["response"])
assert cast(Any, response.is_closed) is True
From 035fbead3a022304829924c9996f434a7cd4a593 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 5 Mar 2025 14:53:40 +0000
Subject: [PATCH 6/9] feat(api): manual updates (#11)
---
README.md | 22 +-
api.md | 4 +-
src/openint/_client.py | 324 ++--
.../types/client_get_connection_params.py | 69 +-
.../types/client_list_connections_params.py | 69 +-
src/openint/types/get_connection_response.py | 1344 ++++++++---------
tests/api_resources/test_client.py | 124 +-
tests/test_client.py | 67 +-
8 files changed, 980 insertions(+), 1043 deletions(-)
diff --git a/README.md b/README.md
index ebb01d3..7bf28b8 100644
--- a/README.md
+++ b/README.md
@@ -31,8 +31,8 @@ client = Openint(
api_key=os.environ.get("OPENINT_API_KEY"), # This is the default and can be omitted
)
-response = client.get_connection()
-print(response.items)
+page = client.list_connections()
+print(page.items)
```
While you can provide an `api_key` keyword argument,
@@ -55,8 +55,8 @@ client = AsyncOpenint(
async def main() -> None:
- response = await client.get_connection()
- print(response.items)
+ page = await client.list_connections()
+ print(page.items)
asyncio.run(main())
@@ -89,7 +89,7 @@ from openint import Openint
client = Openint()
try:
- client.get_connection()
+ client.list_connections()
except openint.APIConnectionError as e:
print("The server could not be reached")
print(e.__cause__) # an underlying Exception, likely raised within httpx.
@@ -132,7 +132,7 @@ client = Openint(
)
# Or, configure per-request:
-client.with_options(max_retries=5).get_connection()
+client.with_options(max_retries=5).list_connections()
```
### Timeouts
@@ -155,7 +155,7 @@ client = Openint(
)
# Override per-request:
-client.with_options(timeout=5.0).get_connection()
+client.with_options(timeout=5.0).list_connections()
```
On timeout, an `APITimeoutError` is thrown.
@@ -196,11 +196,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
from openint import Openint
client = Openint()
-response = client.with_raw_response.get_connection()
+response = client.with_raw_response.list_connections()
print(response.headers.get('X-My-Header'))
-client = response.parse() # get the object that `get_connection()` would have returned
-print(client.items)
+client = response.parse() # get the object that `list_connections()` would have returned
+print(client)
```
These methods return an [`APIResponse`](https://github.com/openintegrations/python-sdk/tree/main/src/openint/_response.py) object.
@@ -214,7 +214,7 @@ The above interface eagerly reads the full response body when you make the reque
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
```python
-with client.with_streaming_response.get_connection() as response:
+with client.with_streaming_response.list_connections() as response:
print(response.headers.get("X-My-Header"))
for line in response.iter_lines():
diff --git a/api.md b/api.md
index b495a82..1c18443 100644
--- a/api.md
+++ b/api.md
@@ -19,7 +19,7 @@ Methods:
- client.check_connection(id) -> CheckConnectionResponse
- client.create_magic_link(\*\*params) -> CreateMagicLinkResponse
- client.create_token(\*\*params) -> CreateTokenResponse
-- client.get_connection(\*\*params) -> GetConnectionResponse
+- client.get_connection(id, \*\*params) -> GetConnectionResponse
- client.list_connection_configs(\*\*params) -> SyncOffsetPagination[ListConnectionConfigsResponse]
-- client.list_connections(id, \*\*params) -> ListConnectionsResponse
+- client.list_connections(\*\*params) -> SyncOffsetPagination[ListConnectionsResponse]
- client.list_events(\*\*params) -> SyncOffsetPagination[ListEventsResponse]
diff --git a/src/openint/_client.py b/src/openint/_client.py
index 1950a4e..1d142e0 100644
--- a/src/openint/_client.py
+++ b/src/openint/_client.py
@@ -429,9 +429,65 @@ def create_token(
)
def get_connection(
+ self,
+ id: str,
+ *,
+ expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
+ include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
+ refresh_policy: Literal["none", "force", "auto"] | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> GetConnectionResponse:
+ """
+ Get details of a specific connection
+
+ Args:
+ include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
+
+ refresh_policy: Controls credential refresh: none (never), force (always), or auto (when
+ expired, default)
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ if not id:
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
+ return cast(
+ GetConnectionResponse,
+ self.get(
+ f"/connection/{id}",
+ options=make_request_options(
+ extra_headers=extra_headers,
+ extra_query=extra_query,
+ extra_body=extra_body,
+ timeout=timeout,
+ query=maybe_transform(
+ {
+ "expand": expand,
+ "include_secrets": include_secrets,
+ "refresh_policy": refresh_policy,
+ },
+ client_get_connection_params.ClientGetConnectionParams,
+ ),
+ ),
+ cast_to=cast(
+ Any, GetConnectionResponse
+ ), # Union types cannot be passed in as arguments in the type system
+ ),
+ )
+
+ def list_connection_configs(
self,
*,
- connector_config_id: str | NotGiven = NOT_GIVEN,
connector_name: Literal[
"aircall",
"airtable",
@@ -488,9 +544,7 @@ def get_connection(
"googledrive",
]
| NotGiven = NOT_GIVEN,
- customer_id: str | NotGiven = NOT_GIVEN,
expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
- include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
limit: int | NotGiven = NOT_GIVEN,
offset: int | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -499,15 +553,13 @@ def get_connection(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> GetConnectionResponse:
+ ) -> SyncOffsetPagination[ListConnectionConfigsResponse]:
"""
- List all connections with optional filtering
+ List all connector configurations with optional filtering
Args:
connector_name: The name of the connector
- include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
-
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -516,8 +568,9 @@ def get_connection(
timeout: Override the client-level default timeout for this request, in seconds
"""
- return self.get(
- "/connection",
+ return self.get_api_list(
+ "/connector-config",
+ page=SyncOffsetPagination[ListConnectionConfigsResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
@@ -525,23 +578,23 @@ def get_connection(
timeout=timeout,
query=maybe_transform(
{
- "connector_config_id": connector_config_id,
"connector_name": connector_name,
- "customer_id": customer_id,
"expand": expand,
- "include_secrets": include_secrets,
"limit": limit,
"offset": offset,
},
- client_get_connection_params.ClientGetConnectionParams,
+ client_list_connection_configs_params.ClientListConnectionConfigsParams,
),
),
- cast_to=GetConnectionResponse,
+ model=cast(
+ Any, ListConnectionConfigsResponse
+ ), # Union types cannot be passed in as arguments in the type system
)
- def list_connection_configs(
+ def list_connections(
self,
*,
+ connector_config_id: str | NotGiven = NOT_GIVEN,
connector_name: Literal[
"aircall",
"airtable",
@@ -598,7 +651,9 @@ def list_connection_configs(
"googledrive",
]
| NotGiven = NOT_GIVEN,
+ customer_id: str | NotGiven = NOT_GIVEN,
expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
+ include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
limit: int | NotGiven = NOT_GIVEN,
offset: int | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -607,13 +662,15 @@ def list_connection_configs(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> SyncOffsetPagination[ListConnectionConfigsResponse]:
+ ) -> SyncOffsetPagination[ListConnectionsResponse]:
"""
- List all connector configurations with optional filtering
+ List all connections with optional filtering
Args:
connector_name: The name of the connector
+ include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -623,8 +680,8 @@ def list_connection_configs(
timeout: Override the client-level default timeout for this request, in seconds
"""
return self.get_api_list(
- "/connector-config",
- page=SyncOffsetPagination[ListConnectionConfigsResponse],
+ "/connection",
+ page=SyncOffsetPagination[ListConnectionsResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
@@ -632,74 +689,18 @@ def list_connection_configs(
timeout=timeout,
query=maybe_transform(
{
+ "connector_config_id": connector_config_id,
"connector_name": connector_name,
+ "customer_id": customer_id,
"expand": expand,
+ "include_secrets": include_secrets,
"limit": limit,
"offset": offset,
},
- client_list_connection_configs_params.ClientListConnectionConfigsParams,
+ client_list_connections_params.ClientListConnectionsParams,
),
),
- model=cast(
- Any, ListConnectionConfigsResponse
- ), # Union types cannot be passed in as arguments in the type system
- )
-
- def list_connections(
- self,
- id: str,
- *,
- expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
- include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
- refresh_policy: Literal["none", "force", "auto"] | NotGiven = NOT_GIVEN,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ListConnectionsResponse:
- """
- Get details of a specific connection
-
- Args:
- include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
-
- refresh_policy: Controls credential refresh: none (never), force (always), or auto (when
- expired, default)
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return cast(
- ListConnectionsResponse,
- self.get(
- f"/connection/{id}",
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- query=maybe_transform(
- {
- "expand": expand,
- "include_secrets": include_secrets,
- "refresh_policy": refresh_policy,
- },
- client_list_connections_params.ClientListConnectionsParams,
- ),
- ),
- cast_to=cast(
- Any, ListConnectionsResponse
- ), # Union types cannot be passed in as arguments in the type system
- ),
+ model=cast(Any, ListConnectionsResponse), # Union types cannot be passed in as arguments in the type system
)
def list_events(
@@ -1144,9 +1145,65 @@ async def create_token(
)
async def get_connection(
+ self,
+ id: str,
+ *,
+ expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
+ include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
+ refresh_policy: Literal["none", "force", "auto"] | NotGiven = NOT_GIVEN,
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
+ # The extra values given here take precedence over values defined on the client or passed to this method.
+ extra_headers: Headers | None = None,
+ extra_query: Query | None = None,
+ extra_body: Body | None = None,
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
+ ) -> GetConnectionResponse:
+ """
+ Get details of a specific connection
+
+ Args:
+ include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
+
+ refresh_policy: Controls credential refresh: none (never), force (always), or auto (when
+ expired, default)
+
+ extra_headers: Send extra headers
+
+ extra_query: Add additional query parameters to the request
+
+ extra_body: Add additional JSON properties to the request
+
+ timeout: Override the client-level default timeout for this request, in seconds
+ """
+ if not id:
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
+ return cast(
+ GetConnectionResponse,
+ await self.get(
+ f"/connection/{id}",
+ options=make_request_options(
+ extra_headers=extra_headers,
+ extra_query=extra_query,
+ extra_body=extra_body,
+ timeout=timeout,
+ query=await async_maybe_transform(
+ {
+ "expand": expand,
+ "include_secrets": include_secrets,
+ "refresh_policy": refresh_policy,
+ },
+ client_get_connection_params.ClientGetConnectionParams,
+ ),
+ ),
+ cast_to=cast(
+ Any, GetConnectionResponse
+ ), # Union types cannot be passed in as arguments in the type system
+ ),
+ )
+
+ def list_connection_configs(
self,
*,
- connector_config_id: str | NotGiven = NOT_GIVEN,
connector_name: Literal[
"aircall",
"airtable",
@@ -1203,9 +1260,7 @@ async def get_connection(
"googledrive",
]
| NotGiven = NOT_GIVEN,
- customer_id: str | NotGiven = NOT_GIVEN,
expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
- include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
limit: int | NotGiven = NOT_GIVEN,
offset: int | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -1214,15 +1269,13 @@ async def get_connection(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> GetConnectionResponse:
+ ) -> AsyncPaginator[ListConnectionConfigsResponse, AsyncOffsetPagination[ListConnectionConfigsResponse]]:
"""
- List all connections with optional filtering
+ List all connector configurations with optional filtering
Args:
connector_name: The name of the connector
- include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
-
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -1231,32 +1284,33 @@ async def get_connection(
timeout: Override the client-level default timeout for this request, in seconds
"""
- return await self.get(
- "/connection",
+ return self.get_api_list(
+ "/connector-config",
+ page=AsyncOffsetPagination[ListConnectionConfigsResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
- query=await async_maybe_transform(
+ query=maybe_transform(
{
- "connector_config_id": connector_config_id,
"connector_name": connector_name,
- "customer_id": customer_id,
"expand": expand,
- "include_secrets": include_secrets,
"limit": limit,
"offset": offset,
},
- client_get_connection_params.ClientGetConnectionParams,
+ client_list_connection_configs_params.ClientListConnectionConfigsParams,
),
),
- cast_to=GetConnectionResponse,
+ model=cast(
+ Any, ListConnectionConfigsResponse
+ ), # Union types cannot be passed in as arguments in the type system
)
- def list_connection_configs(
+ def list_connections(
self,
*,
+ connector_config_id: str | NotGiven = NOT_GIVEN,
connector_name: Literal[
"aircall",
"airtable",
@@ -1313,7 +1367,9 @@ def list_connection_configs(
"googledrive",
]
| NotGiven = NOT_GIVEN,
+ customer_id: str | NotGiven = NOT_GIVEN,
expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
+ include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
limit: int | NotGiven = NOT_GIVEN,
offset: int | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -1322,13 +1378,15 @@ def list_connection_configs(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> AsyncPaginator[ListConnectionConfigsResponse, AsyncOffsetPagination[ListConnectionConfigsResponse]]:
+ ) -> AsyncPaginator[ListConnectionsResponse, AsyncOffsetPagination[ListConnectionsResponse]]:
"""
- List all connector configurations with optional filtering
+ List all connections with optional filtering
Args:
connector_name: The name of the connector
+ include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
+
extra_headers: Send extra headers
extra_query: Add additional query parameters to the request
@@ -1338,8 +1396,8 @@ def list_connection_configs(
timeout: Override the client-level default timeout for this request, in seconds
"""
return self.get_api_list(
- "/connector-config",
- page=AsyncOffsetPagination[ListConnectionConfigsResponse],
+ "/connection",
+ page=AsyncOffsetPagination[ListConnectionsResponse],
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
@@ -1347,74 +1405,18 @@ def list_connection_configs(
timeout=timeout,
query=maybe_transform(
{
+ "connector_config_id": connector_config_id,
"connector_name": connector_name,
+ "customer_id": customer_id,
"expand": expand,
+ "include_secrets": include_secrets,
"limit": limit,
"offset": offset,
},
- client_list_connection_configs_params.ClientListConnectionConfigsParams,
+ client_list_connections_params.ClientListConnectionsParams,
),
),
- model=cast(
- Any, ListConnectionConfigsResponse
- ), # Union types cannot be passed in as arguments in the type system
- )
-
- async def list_connections(
- self,
- id: str,
- *,
- expand: List[Literal["connector"]] | NotGiven = NOT_GIVEN,
- include_secrets: Literal["none", "basic", "all"] | NotGiven = NOT_GIVEN,
- refresh_policy: Literal["none", "force", "auto"] | NotGiven = NOT_GIVEN,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ListConnectionsResponse:
- """
- Get details of a specific connection
-
- Args:
- include_secrets: Controls secret inclusion: none (default), basic (auth only), or all secrets
-
- refresh_policy: Controls credential refresh: none (never), force (always), or auto (when
- expired, default)
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return cast(
- ListConnectionsResponse,
- await self.get(
- f"/connection/{id}",
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- query=await async_maybe_transform(
- {
- "expand": expand,
- "include_secrets": include_secrets,
- "refresh_policy": refresh_policy,
- },
- client_list_connections_params.ClientListConnectionsParams,
- ),
- ),
- cast_to=cast(
- Any, ListConnectionsResponse
- ), # Union types cannot be passed in as arguments in the type system
- ),
+ model=cast(Any, ListConnectionsResponse), # Union types cannot be passed in as arguments in the type system
)
def list_events(
diff --git a/src/openint/types/client_get_connection_params.py b/src/openint/types/client_get_connection_params.py
index 70f9c11..fc65a91 100644
--- a/src/openint/types/client_get_connection_params.py
+++ b/src/openint/types/client_get_connection_params.py
@@ -9,72 +9,13 @@
class ClientGetConnectionParams(TypedDict, total=False):
- connector_config_id: str
-
- connector_name: Literal[
- "aircall",
- "airtable",
- "apollo",
- "beancount",
- "brex",
- "coda",
- "confluence",
- "debug",
- "discord",
- "finch",
- "firebase",
- "foreceipt",
- "fs",
- "github",
- "gong",
- "google",
- "greenhouse",
- "heron",
- "hubspot",
- "intercom",
- "jira",
- "kustomer",
- "lever",
- "linear",
- "lunchmoney",
- "merge",
- "microsoft",
- "mongodb",
- "moota",
- "onebrick",
- "outreach",
- "pipedrive",
- "plaid",
- "postgres",
- "qbo",
- "ramp",
- "revert",
- "salesforce",
- "salesloft",
- "saltedge",
- "slack",
- "splitwise",
- "spreadsheet",
- "stripe",
- "teller",
- "toggl",
- "twenty",
- "webhook",
- "wise",
- "xero",
- "yodlee",
- "zohodesk",
- "googledrive",
- ]
- """The name of the connector"""
-
- customer_id: str
-
expand: List[Literal["connector"]]
include_secrets: Literal["none", "basic", "all"]
"""Controls secret inclusion: none (default), basic (auth only), or all secrets"""
- limit: int
-
- offset: int
+ refresh_policy: Literal["none", "force", "auto"]
+ """
+ Controls credential refresh: none (never), force (always), or auto (when
+ expired, default)
+ """
diff --git a/src/openint/types/client_list_connections_params.py b/src/openint/types/client_list_connections_params.py
index 527a5a5..57be83d 100644
--- a/src/openint/types/client_list_connections_params.py
+++ b/src/openint/types/client_list_connections_params.py
@@ -9,13 +9,72 @@
class ClientListConnectionsParams(TypedDict, total=False):
+ connector_config_id: str
+
+ connector_name: Literal[
+ "aircall",
+ "airtable",
+ "apollo",
+ "beancount",
+ "brex",
+ "coda",
+ "confluence",
+ "debug",
+ "discord",
+ "finch",
+ "firebase",
+ "foreceipt",
+ "fs",
+ "github",
+ "gong",
+ "google",
+ "greenhouse",
+ "heron",
+ "hubspot",
+ "intercom",
+ "jira",
+ "kustomer",
+ "lever",
+ "linear",
+ "lunchmoney",
+ "merge",
+ "microsoft",
+ "mongodb",
+ "moota",
+ "onebrick",
+ "outreach",
+ "pipedrive",
+ "plaid",
+ "postgres",
+ "qbo",
+ "ramp",
+ "revert",
+ "salesforce",
+ "salesloft",
+ "saltedge",
+ "slack",
+ "splitwise",
+ "spreadsheet",
+ "stripe",
+ "teller",
+ "toggl",
+ "twenty",
+ "webhook",
+ "wise",
+ "xero",
+ "yodlee",
+ "zohodesk",
+ "googledrive",
+ ]
+ """The name of the connector"""
+
+ customer_id: str
+
expand: List[Literal["connector"]]
include_secrets: Literal["none", "basic", "all"]
"""Controls secret inclusion: none (default), basic (auth only), or all secrets"""
- refresh_policy: Literal["none", "force", "auto"]
- """
- Controls credential refresh: none (never), force (always), or auto (when
- expired, default)
- """
+ limit: int
+
+ offset: int
diff --git a/src/openint/types/get_connection_response.py b/src/openint/types/get_connection_response.py
index ae318d0..419e28c 100644
--- a/src/openint/types/get_connection_response.py
+++ b/src/openint/types/get_connection_response.py
@@ -10,242 +10,241 @@
__all__ = [
"GetConnectionResponse",
- "Item",
- "ItemConnectorsAircallConnectionSettings",
- "ItemConnectorsAircallConnectionSettingsSettings",
- "ItemConnectorsAirtableConnectionSettings",
- "ItemConnectorsAirtableConnectionSettingsSettings",
- "ItemConnectorsApolloConnectionSettings",
- "ItemConnectorsApolloConnectionSettingsSettings",
- "ItemConnectorsApolloConnectionSettingsSettingsOAuth",
- "ItemConnectorsApolloConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsApolloConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsApolloConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsApolloConnectionSettingsSettingsError",
- "ItemConnectorsBeancountConnectionSettings",
- "ItemConnectorsBrexConnectionSettings",
- "ItemConnectorsBrexConnectionSettingsSettings",
- "ItemConnectorsCodaConnectionSettings",
- "ItemConnectorsCodaConnectionSettingsSettings",
- "ItemConnectorsConfluenceConnectionSettings",
- "ItemConnectorsConfluenceConnectionSettingsSettings",
- "ItemConnectorsConfluenceConnectionSettingsSettingsOAuth",
- "ItemConnectorsConfluenceConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsConfluenceConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsConfluenceConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsConfluenceConnectionSettingsSettingsError",
- "ItemConnectorsDebugConnectionSettings",
- "ItemConnectorsDiscordConnectionSettings",
- "ItemConnectorsDiscordConnectionSettingsSettings",
- "ItemConnectorsDiscordConnectionSettingsSettingsOAuth",
- "ItemConnectorsDiscordConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsDiscordConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsDiscordConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsDiscordConnectionSettingsSettingsError",
- "ItemConnectorsFinchConnectionSettings",
- "ItemConnectorsFinchConnectionSettingsSettings",
- "ItemConnectorsFirebaseConnectionSettings",
- "ItemConnectorsFirebaseConnectionSettingsSettings",
- "ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember0",
- "ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember0ServiceAccount",
- "ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1",
- "ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthData",
- "ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0",
- "ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0UserJson",
- "ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember1",
- "ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember2",
- "ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1FirebaseConfig",
- "ItemConnectorsForeceiptConnectionSettings",
- "ItemConnectorsForeceiptConnectionSettingsSettings",
- "ItemConnectorsFsConnectionSettings",
- "ItemConnectorsFsConnectionSettingsSettings",
- "ItemConnectorsGitHubConnectionSettings",
- "ItemConnectorsGitHubConnectionSettingsSettings",
- "ItemConnectorsGitHubConnectionSettingsSettingsOAuth",
- "ItemConnectorsGitHubConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsGitHubConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsGitHubConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsGitHubConnectionSettingsSettingsError",
- "ItemConnectorsGongConnectionSettings",
- "ItemConnectorsGongConnectionSettingsSettings",
- "ItemConnectorsGongConnectionSettingsSettingsOAuth",
- "ItemConnectorsGongConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsGongConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsGongConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsGongConnectionSettingsSettingsError",
- "ItemConnectorsGoogleConnectionSettings",
- "ItemConnectorsGoogleConnectionSettingsSettings",
- "ItemConnectorsGoogleConnectionSettingsSettingsOAuth",
- "ItemConnectorsGoogleConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsGoogleConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsGoogleConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsGoogleConnectionSettingsSettingsError",
- "ItemConnectorsGreenhouseConnectionSettings",
- "ItemConnectorsGreenhouseConnectionSettingsSettings",
- "ItemConnectorsHeronConnectionSettings",
- "ItemConnectorsHubspotConnectionSettings",
- "ItemConnectorsHubspotConnectionSettingsSettings",
- "ItemConnectorsHubspotConnectionSettingsSettingsOAuth",
- "ItemConnectorsHubspotConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsHubspotConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsHubspotConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsHubspotConnectionSettingsSettingsError",
- "ItemConnectorsIntercomConnectionSettings",
- "ItemConnectorsIntercomConnectionSettingsSettings",
- "ItemConnectorsIntercomConnectionSettingsSettingsOAuth",
- "ItemConnectorsIntercomConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsIntercomConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsIntercomConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsIntercomConnectionSettingsSettingsError",
- "ItemConnectorsJiraConnectionSettings",
- "ItemConnectorsJiraConnectionSettingsSettings",
- "ItemConnectorsJiraConnectionSettingsSettingsOAuth",
- "ItemConnectorsJiraConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsJiraConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsJiraConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsJiraConnectionSettingsSettingsError",
- "ItemConnectorsKustomerConnectionSettings",
- "ItemConnectorsKustomerConnectionSettingsSettings",
- "ItemConnectorsKustomerConnectionSettingsSettingsOAuth",
- "ItemConnectorsKustomerConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsKustomerConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsKustomerConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsKustomerConnectionSettingsSettingsError",
- "ItemConnectorsLeverConnectionSettings",
- "ItemConnectorsLeverConnectionSettingsSettings",
- "ItemConnectorsLeverConnectionSettingsSettingsOAuth",
- "ItemConnectorsLeverConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsLeverConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsLeverConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsLeverConnectionSettingsSettingsError",
- "ItemConnectorsLinearConnectionSettings",
- "ItemConnectorsLinearConnectionSettingsSettings",
- "ItemConnectorsLinearConnectionSettingsSettingsOAuth",
- "ItemConnectorsLinearConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsLinearConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsLinearConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsLinearConnectionSettingsSettingsError",
- "ItemConnectorsLunchmoneyConnectionSettings",
- "ItemConnectorsMercuryConnectionSettings",
- "ItemConnectorsMergeConnectionSettings",
- "ItemConnectorsMergeConnectionSettingsSettings",
- "ItemConnectorsMicrosoftConnectionSettings",
- "ItemConnectorsMicrosoftConnectionSettingsSettings",
- "ItemConnectorsMicrosoftConnectionSettingsSettingsOAuth",
- "ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsMicrosoftConnectionSettingsSettingsError",
- "ItemConnectorsMongoDBConnectionSettings",
- "ItemConnectorsMongoDBConnectionSettingsSettings",
- "ItemConnectorsMootaConnectionSettings",
- "ItemConnectorsOnebrickConnectionSettings",
- "ItemConnectorsOnebrickConnectionSettingsSettings",
- "ItemConnectorsOutreachConnectionSettings",
- "ItemConnectorsOutreachConnectionSettingsSettings",
- "ItemConnectorsOutreachConnectionSettingsSettingsOAuth",
- "ItemConnectorsOutreachConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsOutreachConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsOutreachConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsOutreachConnectionSettingsSettingsError",
- "ItemConnectorsPipedriveConnectionSettings",
- "ItemConnectorsPipedriveConnectionSettingsSettings",
- "ItemConnectorsPipedriveConnectionSettingsSettingsOAuth",
- "ItemConnectorsPipedriveConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsPipedriveConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsPipedriveConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsPipedriveConnectionSettingsSettingsError",
- "ItemConnectorsPlaidConnectionSettings",
- "ItemConnectorsPlaidConnectionSettingsSettings",
- "ItemConnectorsPostgresConnectionSettings",
- "ItemConnectorsPostgresConnectionSettingsSettings",
- "ItemConnectorsPostgresConnectionSettingsSettingsSourceQueries",
- "ItemConnectorsQboConnectionSettings",
- "ItemConnectorsQboConnectionSettingsSettings",
- "ItemConnectorsQboConnectionSettingsSettingsOAuth",
- "ItemConnectorsQboConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsQboConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsQboConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsQboConnectionSettingsSettingsError",
- "ItemConnectorsRampConnectionSettings",
- "ItemConnectorsRampConnectionSettingsSettings",
- "ItemConnectorsRevertConnectionSettings",
- "ItemConnectorsRevertConnectionSettingsSettings",
- "ItemConnectorsSalesforceConnectionSettings",
- "ItemConnectorsSalesforceConnectionSettingsSettings",
- "ItemConnectorsSalesforceConnectionSettingsSettingsOAuth",
- "ItemConnectorsSalesforceConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsSalesforceConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsSalesforceConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsSalesforceConnectionSettingsSettingsError",
- "ItemConnectorsSalesloftConnectionSettings",
- "ItemConnectorsSalesloftConnectionSettingsSettings",
- "ItemConnectorsSalesloftConnectionSettingsSettingsOAuth",
- "ItemConnectorsSalesloftConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsSalesloftConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsSalesloftConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsSalesloftConnectionSettingsSettingsError",
- "ItemConnectorsSaltedgeConnectionSettings",
- "ItemConnectorsSlackConnectionSettings",
- "ItemConnectorsSlackConnectionSettingsSettings",
- "ItemConnectorsSlackConnectionSettingsSettingsOAuth",
- "ItemConnectorsSlackConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsSlackConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsSlackConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsSlackConnectionSettingsSettingsError",
- "ItemConnectorsSplitwiseConnectionSettings",
- "ItemConnectorsSplitwiseConnectionSettingsSettings",
- "ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUser",
- "ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUserNotifications",
- "ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUserPicture",
- "ItemConnectorsSpreadsheetConnectionSettings",
- "ItemConnectorsSpreadsheetConnectionSettingsSettings",
- "ItemConnectorsStripeConnectionSettings",
- "ItemConnectorsStripeConnectionSettingsSettings",
- "ItemConnectorsTellerConnectionSettings",
- "ItemConnectorsTellerConnectionSettingsSettings",
- "ItemConnectorsTogglConnectionSettings",
- "ItemConnectorsTogglConnectionSettingsSettings",
- "ItemConnectorsTwentyConnectionSettings",
- "ItemConnectorsTwentyConnectionSettingsSettings",
- "ItemConnectorsVenmoConnectionSettings",
- "ItemConnectorsVenmoConnectionSettingsSettings",
- "ItemConnectorsWebhookConnectionSettings",
- "ItemConnectorsWebhookConnectionSettingsSettings",
- "ItemConnectorsWiseConnectionSettings",
- "ItemConnectorsWiseConnectionSettingsSettings",
- "ItemConnectorsXeroConnectionSettings",
- "ItemConnectorsXeroConnectionSettingsSettings",
- "ItemConnectorsXeroConnectionSettingsSettingsOAuth",
- "ItemConnectorsXeroConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsXeroConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsXeroConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsXeroConnectionSettingsSettingsError",
- "ItemConnectorsYodleeConnectionSettings",
- "ItemConnectorsYodleeConnectionSettingsSettings",
- "ItemConnectorsYodleeConnectionSettingsSettingsAccessToken",
- "ItemConnectorsYodleeConnectionSettingsSettingsProviderAccount",
- "ItemConnectorsZohodeskConnectionSettings",
- "ItemConnectorsZohodeskConnectionSettingsSettings",
- "ItemConnectorsZohodeskConnectionSettingsSettingsOAuth",
- "ItemConnectorsZohodeskConnectionSettingsSettingsOAuthCredentials",
- "ItemConnectorsZohodeskConnectionSettingsSettingsOAuthCredentialsRaw",
- "ItemConnectorsZohodeskConnectionSettingsSettingsOAuthConnectionConfig",
- "ItemConnectorsZohodeskConnectionSettingsSettingsError",
- "ItemConnectorsGoogledriveConnectionSettings",
+ "ConnectorsAircallConnectionSettings",
+ "ConnectorsAircallConnectionSettingsSettings",
+ "ConnectorsAirtableConnectionSettings",
+ "ConnectorsAirtableConnectionSettingsSettings",
+ "ConnectorsApolloConnectionSettings",
+ "ConnectorsApolloConnectionSettingsSettings",
+ "ConnectorsApolloConnectionSettingsSettingsOAuth",
+ "ConnectorsApolloConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsApolloConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsApolloConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsApolloConnectionSettingsSettingsError",
+ "ConnectorsBeancountConnectionSettings",
+ "ConnectorsBrexConnectionSettings",
+ "ConnectorsBrexConnectionSettingsSettings",
+ "ConnectorsCodaConnectionSettings",
+ "ConnectorsCodaConnectionSettingsSettings",
+ "ConnectorsConfluenceConnectionSettings",
+ "ConnectorsConfluenceConnectionSettingsSettings",
+ "ConnectorsConfluenceConnectionSettingsSettingsOAuth",
+ "ConnectorsConfluenceConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsConfluenceConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsConfluenceConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsConfluenceConnectionSettingsSettingsError",
+ "ConnectorsDebugConnectionSettings",
+ "ConnectorsDiscordConnectionSettings",
+ "ConnectorsDiscordConnectionSettingsSettings",
+ "ConnectorsDiscordConnectionSettingsSettingsOAuth",
+ "ConnectorsDiscordConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsDiscordConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsDiscordConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsDiscordConnectionSettingsSettingsError",
+ "ConnectorsFinchConnectionSettings",
+ "ConnectorsFinchConnectionSettingsSettings",
+ "ConnectorsFirebaseConnectionSettings",
+ "ConnectorsFirebaseConnectionSettingsSettings",
+ "ConnectorsFirebaseConnectionSettingsSettingsUnionMember0",
+ "ConnectorsFirebaseConnectionSettingsSettingsUnionMember0ServiceAccount",
+ "ConnectorsFirebaseConnectionSettingsSettingsUnionMember1",
+ "ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthData",
+ "ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0",
+ "ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0UserJson",
+ "ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember1",
+ "ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember2",
+ "ConnectorsFirebaseConnectionSettingsSettingsUnionMember1FirebaseConfig",
+ "ConnectorsForeceiptConnectionSettings",
+ "ConnectorsForeceiptConnectionSettingsSettings",
+ "ConnectorsFsConnectionSettings",
+ "ConnectorsFsConnectionSettingsSettings",
+ "ConnectorsGitHubConnectionSettings",
+ "ConnectorsGitHubConnectionSettingsSettings",
+ "ConnectorsGitHubConnectionSettingsSettingsOAuth",
+ "ConnectorsGitHubConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsGitHubConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsGitHubConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsGitHubConnectionSettingsSettingsError",
+ "ConnectorsGongConnectionSettings",
+ "ConnectorsGongConnectionSettingsSettings",
+ "ConnectorsGongConnectionSettingsSettingsOAuth",
+ "ConnectorsGongConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsGongConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsGongConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsGongConnectionSettingsSettingsError",
+ "ConnectorsGoogleConnectionSettings",
+ "ConnectorsGoogleConnectionSettingsSettings",
+ "ConnectorsGoogleConnectionSettingsSettingsOAuth",
+ "ConnectorsGoogleConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsGoogleConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsGoogleConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsGoogleConnectionSettingsSettingsError",
+ "ConnectorsGreenhouseConnectionSettings",
+ "ConnectorsGreenhouseConnectionSettingsSettings",
+ "ConnectorsHeronConnectionSettings",
+ "ConnectorsHubspotConnectionSettings",
+ "ConnectorsHubspotConnectionSettingsSettings",
+ "ConnectorsHubspotConnectionSettingsSettingsOAuth",
+ "ConnectorsHubspotConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsHubspotConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsHubspotConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsHubspotConnectionSettingsSettingsError",
+ "ConnectorsIntercomConnectionSettings",
+ "ConnectorsIntercomConnectionSettingsSettings",
+ "ConnectorsIntercomConnectionSettingsSettingsOAuth",
+ "ConnectorsIntercomConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsIntercomConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsIntercomConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsIntercomConnectionSettingsSettingsError",
+ "ConnectorsJiraConnectionSettings",
+ "ConnectorsJiraConnectionSettingsSettings",
+ "ConnectorsJiraConnectionSettingsSettingsOAuth",
+ "ConnectorsJiraConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsJiraConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsJiraConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsJiraConnectionSettingsSettingsError",
+ "ConnectorsKustomerConnectionSettings",
+ "ConnectorsKustomerConnectionSettingsSettings",
+ "ConnectorsKustomerConnectionSettingsSettingsOAuth",
+ "ConnectorsKustomerConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsKustomerConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsKustomerConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsKustomerConnectionSettingsSettingsError",
+ "ConnectorsLeverConnectionSettings",
+ "ConnectorsLeverConnectionSettingsSettings",
+ "ConnectorsLeverConnectionSettingsSettingsOAuth",
+ "ConnectorsLeverConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsLeverConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsLeverConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsLeverConnectionSettingsSettingsError",
+ "ConnectorsLinearConnectionSettings",
+ "ConnectorsLinearConnectionSettingsSettings",
+ "ConnectorsLinearConnectionSettingsSettingsOAuth",
+ "ConnectorsLinearConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsLinearConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsLinearConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsLinearConnectionSettingsSettingsError",
+ "ConnectorsLunchmoneyConnectionSettings",
+ "ConnectorsMercuryConnectionSettings",
+ "ConnectorsMergeConnectionSettings",
+ "ConnectorsMergeConnectionSettingsSettings",
+ "ConnectorsMicrosoftConnectionSettings",
+ "ConnectorsMicrosoftConnectionSettingsSettings",
+ "ConnectorsMicrosoftConnectionSettingsSettingsOAuth",
+ "ConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsMicrosoftConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsMicrosoftConnectionSettingsSettingsError",
+ "ConnectorsMongoDBConnectionSettings",
+ "ConnectorsMongoDBConnectionSettingsSettings",
+ "ConnectorsMootaConnectionSettings",
+ "ConnectorsOnebrickConnectionSettings",
+ "ConnectorsOnebrickConnectionSettingsSettings",
+ "ConnectorsOutreachConnectionSettings",
+ "ConnectorsOutreachConnectionSettingsSettings",
+ "ConnectorsOutreachConnectionSettingsSettingsOAuth",
+ "ConnectorsOutreachConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsOutreachConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsOutreachConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsOutreachConnectionSettingsSettingsError",
+ "ConnectorsPipedriveConnectionSettings",
+ "ConnectorsPipedriveConnectionSettingsSettings",
+ "ConnectorsPipedriveConnectionSettingsSettingsOAuth",
+ "ConnectorsPipedriveConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsPipedriveConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsPipedriveConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsPipedriveConnectionSettingsSettingsError",
+ "ConnectorsPlaidConnectionSettings",
+ "ConnectorsPlaidConnectionSettingsSettings",
+ "ConnectorsPostgresConnectionSettings",
+ "ConnectorsPostgresConnectionSettingsSettings",
+ "ConnectorsPostgresConnectionSettingsSettingsSourceQueries",
+ "ConnectorsQboConnectionSettings",
+ "ConnectorsQboConnectionSettingsSettings",
+ "ConnectorsQboConnectionSettingsSettingsOAuth",
+ "ConnectorsQboConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsQboConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsQboConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsQboConnectionSettingsSettingsError",
+ "ConnectorsRampConnectionSettings",
+ "ConnectorsRampConnectionSettingsSettings",
+ "ConnectorsRevertConnectionSettings",
+ "ConnectorsRevertConnectionSettingsSettings",
+ "ConnectorsSalesforceConnectionSettings",
+ "ConnectorsSalesforceConnectionSettingsSettings",
+ "ConnectorsSalesforceConnectionSettingsSettingsOAuth",
+ "ConnectorsSalesforceConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsSalesforceConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsSalesforceConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsSalesforceConnectionSettingsSettingsError",
+ "ConnectorsSalesloftConnectionSettings",
+ "ConnectorsSalesloftConnectionSettingsSettings",
+ "ConnectorsSalesloftConnectionSettingsSettingsOAuth",
+ "ConnectorsSalesloftConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsSalesloftConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsSalesloftConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsSalesloftConnectionSettingsSettingsError",
+ "ConnectorsSaltedgeConnectionSettings",
+ "ConnectorsSlackConnectionSettings",
+ "ConnectorsSlackConnectionSettingsSettings",
+ "ConnectorsSlackConnectionSettingsSettingsOAuth",
+ "ConnectorsSlackConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsSlackConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsSlackConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsSlackConnectionSettingsSettingsError",
+ "ConnectorsSplitwiseConnectionSettings",
+ "ConnectorsSplitwiseConnectionSettingsSettings",
+ "ConnectorsSplitwiseConnectionSettingsSettingsCurrentUser",
+ "ConnectorsSplitwiseConnectionSettingsSettingsCurrentUserNotifications",
+ "ConnectorsSplitwiseConnectionSettingsSettingsCurrentUserPicture",
+ "ConnectorsSpreadsheetConnectionSettings",
+ "ConnectorsSpreadsheetConnectionSettingsSettings",
+ "ConnectorsStripeConnectionSettings",
+ "ConnectorsStripeConnectionSettingsSettings",
+ "ConnectorsTellerConnectionSettings",
+ "ConnectorsTellerConnectionSettingsSettings",
+ "ConnectorsTogglConnectionSettings",
+ "ConnectorsTogglConnectionSettingsSettings",
+ "ConnectorsTwentyConnectionSettings",
+ "ConnectorsTwentyConnectionSettingsSettings",
+ "ConnectorsVenmoConnectionSettings",
+ "ConnectorsVenmoConnectionSettingsSettings",
+ "ConnectorsWebhookConnectionSettings",
+ "ConnectorsWebhookConnectionSettingsSettings",
+ "ConnectorsWiseConnectionSettings",
+ "ConnectorsWiseConnectionSettingsSettings",
+ "ConnectorsXeroConnectionSettings",
+ "ConnectorsXeroConnectionSettingsSettings",
+ "ConnectorsXeroConnectionSettingsSettingsOAuth",
+ "ConnectorsXeroConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsXeroConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsXeroConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsXeroConnectionSettingsSettingsError",
+ "ConnectorsYodleeConnectionSettings",
+ "ConnectorsYodleeConnectionSettingsSettings",
+ "ConnectorsYodleeConnectionSettingsSettingsAccessToken",
+ "ConnectorsYodleeConnectionSettingsSettingsProviderAccount",
+ "ConnectorsZohodeskConnectionSettings",
+ "ConnectorsZohodeskConnectionSettingsSettings",
+ "ConnectorsZohodeskConnectionSettingsSettingsOAuth",
+ "ConnectorsZohodeskConnectionSettingsSettingsOAuthCredentials",
+ "ConnectorsZohodeskConnectionSettingsSettingsOAuthCredentialsRaw",
+ "ConnectorsZohodeskConnectionSettingsSettingsOAuthConnectionConfig",
+ "ConnectorsZohodeskConnectionSettingsSettingsError",
+ "ConnectorsGoogledriveConnectionSettings",
]
-class ItemConnectorsAircallConnectionSettingsSettings(BaseModel):
+class ConnectorsAircallConnectionSettingsSettings(BaseModel):
api_id: str = FieldInfo(alias="apiId")
api_token: str = FieldInfo(alias="apiToken")
-class ItemConnectorsAircallConnectionSettings(BaseModel):
+class ConnectorsAircallConnectionSettings(BaseModel):
connector_name: Literal["aircall"]
- settings: ItemConnectorsAircallConnectionSettingsSettings
+ settings: ConnectorsAircallConnectionSettingsSettings
id: Optional[str] = None
@@ -256,16 +255,16 @@ class ItemConnectorsAircallConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsAirtableConnectionSettingsSettings(BaseModel):
+class ConnectorsAirtableConnectionSettingsSettings(BaseModel):
airtable_base: str = FieldInfo(alias="airtableBase")
api_key: str = FieldInfo(alias="apiKey")
-class ItemConnectorsAirtableConnectionSettings(BaseModel):
+class ConnectorsAirtableConnectionSettings(BaseModel):
connector_name: Literal["airtable"]
- settings: ItemConnectorsAirtableConnectionSettingsSettings
+ settings: ConnectorsAirtableConnectionSettingsSettings
id: Optional[str] = None
@@ -276,7 +275,7 @@ class ItemConnectorsAirtableConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsApolloConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsApolloConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -292,8 +291,8 @@ class ItemConnectorsApolloConnectionSettingsSettingsOAuthCredentialsRaw(BaseMode
scope: Optional[str] = None
-class ItemConnectorsApolloConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsApolloConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsApolloConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsApolloConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -306,7 +305,7 @@ class ItemConnectorsApolloConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsApolloConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsApolloConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -318,30 +317,30 @@ class ItemConnectorsApolloConnectionSettingsSettingsOAuthConnectionConfig(BaseMo
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsApolloConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsApolloConnectionSettingsSettingsOAuthCredentials
+class ConnectorsApolloConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsApolloConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsApolloConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsApolloConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsApolloConnectionSettingsSettingsError(BaseModel):
+class ConnectorsApolloConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsApolloConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsApolloConnectionSettingsSettingsOAuth
+class ConnectorsApolloConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsApolloConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsApolloConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsApolloConnectionSettingsSettingsError] = None
-class ItemConnectorsApolloConnectionSettings(BaseModel):
+class ConnectorsApolloConnectionSettings(BaseModel):
connector_name: Literal["apollo"]
- settings: ItemConnectorsApolloConnectionSettingsSettings
+ settings: ConnectorsApolloConnectionSettingsSettings
id: Optional[str] = None
@@ -352,7 +351,7 @@ class ItemConnectorsApolloConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsBeancountConnectionSettings(BaseModel):
+class ConnectorsBeancountConnectionSettings(BaseModel):
connector_name: Literal["beancount"]
settings: None
@@ -366,14 +365,14 @@ class ItemConnectorsBeancountConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsBrexConnectionSettingsSettings(BaseModel):
+class ConnectorsBrexConnectionSettingsSettings(BaseModel):
access_token: str = FieldInfo(alias="accessToken")
-class ItemConnectorsBrexConnectionSettings(BaseModel):
+class ConnectorsBrexConnectionSettings(BaseModel):
connector_name: Literal["brex"]
- settings: ItemConnectorsBrexConnectionSettingsSettings
+ settings: ConnectorsBrexConnectionSettingsSettings
id: Optional[str] = None
@@ -384,14 +383,14 @@ class ItemConnectorsBrexConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsCodaConnectionSettingsSettings(BaseModel):
+class ConnectorsCodaConnectionSettingsSettings(BaseModel):
api_key: str = FieldInfo(alias="apiKey")
-class ItemConnectorsCodaConnectionSettings(BaseModel):
+class ConnectorsCodaConnectionSettings(BaseModel):
connector_name: Literal["coda"]
- settings: ItemConnectorsCodaConnectionSettingsSettings
+ settings: ConnectorsCodaConnectionSettingsSettings
id: Optional[str] = None
@@ -402,7 +401,7 @@ class ItemConnectorsCodaConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsConfluenceConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsConfluenceConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -418,8 +417,8 @@ class ItemConnectorsConfluenceConnectionSettingsSettingsOAuthCredentialsRaw(Base
scope: Optional[str] = None
-class ItemConnectorsConfluenceConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsConfluenceConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsConfluenceConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsConfluenceConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -432,7 +431,7 @@ class ItemConnectorsConfluenceConnectionSettingsSettingsOAuthCredentials(BaseMod
refresh_token: Optional[str] = None
-class ItemConnectorsConfluenceConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsConfluenceConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -444,30 +443,30 @@ class ItemConnectorsConfluenceConnectionSettingsSettingsOAuthConnectionConfig(Ba
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsConfluenceConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsConfluenceConnectionSettingsSettingsOAuthCredentials
+class ConnectorsConfluenceConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsConfluenceConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsConfluenceConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsConfluenceConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsConfluenceConnectionSettingsSettingsError(BaseModel):
+class ConnectorsConfluenceConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsConfluenceConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsConfluenceConnectionSettingsSettingsOAuth
+class ConnectorsConfluenceConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsConfluenceConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsConfluenceConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsConfluenceConnectionSettingsSettingsError] = None
-class ItemConnectorsConfluenceConnectionSettings(BaseModel):
+class ConnectorsConfluenceConnectionSettings(BaseModel):
connector_name: Literal["confluence"]
- settings: ItemConnectorsConfluenceConnectionSettingsSettings
+ settings: ConnectorsConfluenceConnectionSettingsSettings
id: Optional[str] = None
@@ -478,7 +477,7 @@ class ItemConnectorsConfluenceConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsDebugConnectionSettings(BaseModel):
+class ConnectorsDebugConnectionSettings(BaseModel):
connector_name: Literal["debug"]
id: Optional[str] = None
@@ -492,7 +491,7 @@ class ItemConnectorsDebugConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsDiscordConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsDiscordConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -508,8 +507,8 @@ class ItemConnectorsDiscordConnectionSettingsSettingsOAuthCredentialsRaw(BaseMod
scope: Optional[str] = None
-class ItemConnectorsDiscordConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsDiscordConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsDiscordConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsDiscordConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -522,7 +521,7 @@ class ItemConnectorsDiscordConnectionSettingsSettingsOAuthCredentials(BaseModel)
refresh_token: Optional[str] = None
-class ItemConnectorsDiscordConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsDiscordConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -534,30 +533,30 @@ class ItemConnectorsDiscordConnectionSettingsSettingsOAuthConnectionConfig(BaseM
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsDiscordConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsDiscordConnectionSettingsSettingsOAuthCredentials
+class ConnectorsDiscordConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsDiscordConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsDiscordConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsDiscordConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsDiscordConnectionSettingsSettingsError(BaseModel):
+class ConnectorsDiscordConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsDiscordConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsDiscordConnectionSettingsSettingsOAuth
+class ConnectorsDiscordConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsDiscordConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsDiscordConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsDiscordConnectionSettingsSettingsError] = None
-class ItemConnectorsDiscordConnectionSettings(BaseModel):
+class ConnectorsDiscordConnectionSettings(BaseModel):
connector_name: Literal["discord"]
- settings: ItemConnectorsDiscordConnectionSettingsSettings
+ settings: ConnectorsDiscordConnectionSettingsSettings
id: Optional[str] = None
@@ -568,14 +567,14 @@ class ItemConnectorsDiscordConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsFinchConnectionSettingsSettings(BaseModel):
+class ConnectorsFinchConnectionSettingsSettings(BaseModel):
access_token: str
-class ItemConnectorsFinchConnectionSettings(BaseModel):
+class ConnectorsFinchConnectionSettings(BaseModel):
connector_name: Literal["finch"]
- settings: ItemConnectorsFinchConnectionSettingsSettings
+ settings: ConnectorsFinchConnectionSettingsSettings
id: Optional[str] = None
@@ -586,7 +585,7 @@ class ItemConnectorsFinchConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember0ServiceAccount(BaseModel):
+class ConnectorsFirebaseConnectionSettingsSettingsUnionMember0ServiceAccount(BaseModel):
project_id: str
if TYPE_CHECKING:
@@ -596,15 +595,15 @@ class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember0ServiceAccount
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember0(BaseModel):
+class ConnectorsFirebaseConnectionSettingsSettingsUnionMember0(BaseModel):
role: Literal["admin"]
- service_account: ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember0ServiceAccount = FieldInfo(
+ service_account: ConnectorsFirebaseConnectionSettingsSettingsUnionMember0ServiceAccount = FieldInfo(
alias="serviceAccount"
)
-class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0UserJson(BaseModel):
+class ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0UserJson(BaseModel):
app_name: str = FieldInfo(alias="appName")
sts_token_manager: Dict[str, object] = FieldInfo(alias="stsTokenManager")
@@ -618,21 +617,21 @@ class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionM
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0(BaseModel):
+class ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0(BaseModel):
method: Literal["userJson"]
- user_json: ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0UserJson = FieldInfo(
+ user_json: ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0UserJson = FieldInfo(
alias="userJson"
)
-class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember1(BaseModel):
+class ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember1(BaseModel):
custom_token: str = FieldInfo(alias="customToken")
method: Literal["customToken"]
-class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember2(BaseModel):
+class ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember2(BaseModel):
email: str
method: Literal["emailPassword"]
@@ -640,14 +639,14 @@ class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionM
password: str
-ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthData: TypeAlias = Union[
- ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0,
- ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember1,
- ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember2,
+ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthData: TypeAlias = Union[
+ ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember0,
+ ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember1,
+ ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthDataUnionMember2,
]
-class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1FirebaseConfig(BaseModel):
+class ConnectorsFirebaseConnectionSettingsSettingsUnionMember1FirebaseConfig(BaseModel):
api_key: str = FieldInfo(alias="apiKey")
app_id: str = FieldInfo(alias="appId")
@@ -665,26 +664,25 @@ class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1FirebaseConfig
storage_bucket: Optional[str] = FieldInfo(alias="storageBucket", default=None)
-class ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1(BaseModel):
- auth_data: ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthData = FieldInfo(alias="authData")
+class ConnectorsFirebaseConnectionSettingsSettingsUnionMember1(BaseModel):
+ auth_data: ConnectorsFirebaseConnectionSettingsSettingsUnionMember1AuthData = FieldInfo(alias="authData")
- firebase_config: ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1FirebaseConfig = FieldInfo(
+ firebase_config: ConnectorsFirebaseConnectionSettingsSettingsUnionMember1FirebaseConfig = FieldInfo(
alias="firebaseConfig"
)
role: Literal["user"]
-ItemConnectorsFirebaseConnectionSettingsSettings: TypeAlias = Union[
- ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember0,
- ItemConnectorsFirebaseConnectionSettingsSettingsUnionMember1,
+ConnectorsFirebaseConnectionSettingsSettings: TypeAlias = Union[
+ ConnectorsFirebaseConnectionSettingsSettingsUnionMember0, ConnectorsFirebaseConnectionSettingsSettingsUnionMember1
]
-class ItemConnectorsFirebaseConnectionSettings(BaseModel):
+class ConnectorsFirebaseConnectionSettings(BaseModel):
connector_name: Literal["firebase"]
- settings: ItemConnectorsFirebaseConnectionSettingsSettings
+ settings: ConnectorsFirebaseConnectionSettingsSettings
id: Optional[str] = None
@@ -695,7 +693,7 @@ class ItemConnectorsFirebaseConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsForeceiptConnectionSettingsSettings(BaseModel):
+class ConnectorsForeceiptConnectionSettingsSettings(BaseModel):
env_name: Literal["staging", "production"] = FieldInfo(alias="envName")
api_id: Optional[object] = FieldInfo(alias="_id", default=None)
@@ -705,10 +703,10 @@ class ItemConnectorsForeceiptConnectionSettingsSettings(BaseModel):
options: Optional[object] = None
-class ItemConnectorsForeceiptConnectionSettings(BaseModel):
+class ConnectorsForeceiptConnectionSettings(BaseModel):
connector_name: Literal["foreceipt"]
- settings: ItemConnectorsForeceiptConnectionSettingsSettings
+ settings: ConnectorsForeceiptConnectionSettingsSettings
id: Optional[str] = None
@@ -719,14 +717,14 @@ class ItemConnectorsForeceiptConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsFsConnectionSettingsSettings(BaseModel):
+class ConnectorsFsConnectionSettingsSettings(BaseModel):
base_path: str = FieldInfo(alias="basePath")
-class ItemConnectorsFsConnectionSettings(BaseModel):
+class ConnectorsFsConnectionSettings(BaseModel):
connector_name: Literal["fs"]
- settings: ItemConnectorsFsConnectionSettingsSettings
+ settings: ConnectorsFsConnectionSettingsSettings
id: Optional[str] = None
@@ -737,7 +735,7 @@ class ItemConnectorsFsConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGitHubConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsGitHubConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -753,8 +751,8 @@ class ItemConnectorsGitHubConnectionSettingsSettingsOAuthCredentialsRaw(BaseMode
scope: Optional[str] = None
-class ItemConnectorsGitHubConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsGitHubConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsGitHubConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsGitHubConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -767,7 +765,7 @@ class ItemConnectorsGitHubConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsGitHubConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsGitHubConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -779,30 +777,30 @@ class ItemConnectorsGitHubConnectionSettingsSettingsOAuthConnectionConfig(BaseMo
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsGitHubConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsGitHubConnectionSettingsSettingsOAuthCredentials
+class ConnectorsGitHubConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsGitHubConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsGitHubConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsGitHubConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsGitHubConnectionSettingsSettingsError(BaseModel):
+class ConnectorsGitHubConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsGitHubConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsGitHubConnectionSettingsSettingsOAuth
+class ConnectorsGitHubConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsGitHubConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsGitHubConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsGitHubConnectionSettingsSettingsError] = None
-class ItemConnectorsGitHubConnectionSettings(BaseModel):
+class ConnectorsGitHubConnectionSettings(BaseModel):
connector_name: Literal["github"]
- settings: ItemConnectorsGitHubConnectionSettingsSettings
+ settings: ConnectorsGitHubConnectionSettingsSettings
id: Optional[str] = None
@@ -813,7 +811,7 @@ class ItemConnectorsGitHubConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGongConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsGongConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -829,8 +827,8 @@ class ItemConnectorsGongConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel)
scope: Optional[str] = None
-class ItemConnectorsGongConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsGongConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsGongConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsGongConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -843,7 +841,7 @@ class ItemConnectorsGongConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsGongConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsGongConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -855,30 +853,30 @@ class ItemConnectorsGongConnectionSettingsSettingsOAuthConnectionConfig(BaseMode
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsGongConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsGongConnectionSettingsSettingsOAuthCredentials
+class ConnectorsGongConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsGongConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsGongConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsGongConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsGongConnectionSettingsSettingsError(BaseModel):
+class ConnectorsGongConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsGongConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsGongConnectionSettingsSettingsOAuth
+class ConnectorsGongConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsGongConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsGongConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsGongConnectionSettingsSettingsError] = None
-class ItemConnectorsGongConnectionSettings(BaseModel):
+class ConnectorsGongConnectionSettings(BaseModel):
connector_name: Literal["gong"]
- settings: ItemConnectorsGongConnectionSettingsSettings
+ settings: ConnectorsGongConnectionSettingsSettings
id: Optional[str] = None
@@ -889,7 +887,7 @@ class ItemConnectorsGongConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGoogleConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsGoogleConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -905,8 +903,8 @@ class ItemConnectorsGoogleConnectionSettingsSettingsOAuthCredentialsRaw(BaseMode
scope: Optional[str] = None
-class ItemConnectorsGoogleConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsGoogleConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsGoogleConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsGoogleConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -919,7 +917,7 @@ class ItemConnectorsGoogleConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsGoogleConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsGoogleConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -931,32 +929,32 @@ class ItemConnectorsGoogleConnectionSettingsSettingsOAuthConnectionConfig(BaseMo
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsGoogleConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsGoogleConnectionSettingsSettingsOAuthCredentials
+class ConnectorsGoogleConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsGoogleConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsGoogleConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsGoogleConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsGoogleConnectionSettingsSettingsError(BaseModel):
+class ConnectorsGoogleConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsGoogleConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsGoogleConnectionSettingsSettingsOAuth
+class ConnectorsGoogleConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsGoogleConnectionSettingsSettingsOAuth
client_id: Optional[str] = None
- error: Optional[ItemConnectorsGoogleConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsGoogleConnectionSettingsSettingsError] = None
-class ItemConnectorsGoogleConnectionSettings(BaseModel):
+class ConnectorsGoogleConnectionSettings(BaseModel):
connector_name: Literal["google"]
- settings: ItemConnectorsGoogleConnectionSettingsSettings
+ settings: ConnectorsGoogleConnectionSettingsSettings
id: Optional[str] = None
@@ -967,14 +965,14 @@ class ItemConnectorsGoogleConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGreenhouseConnectionSettingsSettings(BaseModel):
+class ConnectorsGreenhouseConnectionSettingsSettings(BaseModel):
api_key: str = FieldInfo(alias="apiKey")
-class ItemConnectorsGreenhouseConnectionSettings(BaseModel):
+class ConnectorsGreenhouseConnectionSettings(BaseModel):
connector_name: Literal["greenhouse"]
- settings: ItemConnectorsGreenhouseConnectionSettingsSettings
+ settings: ConnectorsGreenhouseConnectionSettingsSettings
id: Optional[str] = None
@@ -985,7 +983,7 @@ class ItemConnectorsGreenhouseConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsHeronConnectionSettings(BaseModel):
+class ConnectorsHeronConnectionSettings(BaseModel):
connector_name: Literal["heron"]
settings: None
@@ -999,7 +997,7 @@ class ItemConnectorsHeronConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsHubspotConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsHubspotConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1015,8 +1013,8 @@ class ItemConnectorsHubspotConnectionSettingsSettingsOAuthCredentialsRaw(BaseMod
scope: Optional[str] = None
-class ItemConnectorsHubspotConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsHubspotConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsHubspotConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsHubspotConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1029,7 +1027,7 @@ class ItemConnectorsHubspotConnectionSettingsSettingsOAuthCredentials(BaseModel)
refresh_token: Optional[str] = None
-class ItemConnectorsHubspotConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsHubspotConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1041,32 +1039,32 @@ class ItemConnectorsHubspotConnectionSettingsSettingsOAuthConnectionConfig(BaseM
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsHubspotConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsHubspotConnectionSettingsSettingsOAuthCredentials
+class ConnectorsHubspotConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsHubspotConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsHubspotConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsHubspotConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsHubspotConnectionSettingsSettingsError(BaseModel):
+class ConnectorsHubspotConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsHubspotConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsHubspotConnectionSettingsSettingsOAuth
+class ConnectorsHubspotConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsHubspotConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsHubspotConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsHubspotConnectionSettingsSettingsError] = None
extra: Optional[object] = None
-class ItemConnectorsHubspotConnectionSettings(BaseModel):
+class ConnectorsHubspotConnectionSettings(BaseModel):
connector_name: Literal["hubspot"]
- settings: ItemConnectorsHubspotConnectionSettingsSettings
+ settings: ConnectorsHubspotConnectionSettingsSettings
id: Optional[str] = None
@@ -1077,7 +1075,7 @@ class ItemConnectorsHubspotConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsIntercomConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsIntercomConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1093,8 +1091,8 @@ class ItemConnectorsIntercomConnectionSettingsSettingsOAuthCredentialsRaw(BaseMo
scope: Optional[str] = None
-class ItemConnectorsIntercomConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsIntercomConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsIntercomConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsIntercomConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1107,7 +1105,7 @@ class ItemConnectorsIntercomConnectionSettingsSettingsOAuthCredentials(BaseModel
refresh_token: Optional[str] = None
-class ItemConnectorsIntercomConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsIntercomConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1119,30 +1117,30 @@ class ItemConnectorsIntercomConnectionSettingsSettingsOAuthConnectionConfig(Base
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsIntercomConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsIntercomConnectionSettingsSettingsOAuthCredentials
+class ConnectorsIntercomConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsIntercomConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsIntercomConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsIntercomConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsIntercomConnectionSettingsSettingsError(BaseModel):
+class ConnectorsIntercomConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsIntercomConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsIntercomConnectionSettingsSettingsOAuth
+class ConnectorsIntercomConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsIntercomConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsIntercomConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsIntercomConnectionSettingsSettingsError] = None
-class ItemConnectorsIntercomConnectionSettings(BaseModel):
+class ConnectorsIntercomConnectionSettings(BaseModel):
connector_name: Literal["intercom"]
- settings: ItemConnectorsIntercomConnectionSettingsSettings
+ settings: ConnectorsIntercomConnectionSettingsSettings
id: Optional[str] = None
@@ -1153,7 +1151,7 @@ class ItemConnectorsIntercomConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsJiraConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsJiraConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1169,8 +1167,8 @@ class ItemConnectorsJiraConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel)
scope: Optional[str] = None
-class ItemConnectorsJiraConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsJiraConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsJiraConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsJiraConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1183,7 +1181,7 @@ class ItemConnectorsJiraConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsJiraConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsJiraConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1195,30 +1193,30 @@ class ItemConnectorsJiraConnectionSettingsSettingsOAuthConnectionConfig(BaseMode
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsJiraConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsJiraConnectionSettingsSettingsOAuthCredentials
+class ConnectorsJiraConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsJiraConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsJiraConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsJiraConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsJiraConnectionSettingsSettingsError(BaseModel):
+class ConnectorsJiraConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsJiraConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsJiraConnectionSettingsSettingsOAuth
+class ConnectorsJiraConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsJiraConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsJiraConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsJiraConnectionSettingsSettingsError] = None
-class ItemConnectorsJiraConnectionSettings(BaseModel):
+class ConnectorsJiraConnectionSettings(BaseModel):
connector_name: Literal["jira"]
- settings: ItemConnectorsJiraConnectionSettingsSettings
+ settings: ConnectorsJiraConnectionSettingsSettings
id: Optional[str] = None
@@ -1229,7 +1227,7 @@ class ItemConnectorsJiraConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsKustomerConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsKustomerConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1245,8 +1243,8 @@ class ItemConnectorsKustomerConnectionSettingsSettingsOAuthCredentialsRaw(BaseMo
scope: Optional[str] = None
-class ItemConnectorsKustomerConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsKustomerConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsKustomerConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsKustomerConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1259,7 +1257,7 @@ class ItemConnectorsKustomerConnectionSettingsSettingsOAuthCredentials(BaseModel
refresh_token: Optional[str] = None
-class ItemConnectorsKustomerConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsKustomerConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1271,30 +1269,30 @@ class ItemConnectorsKustomerConnectionSettingsSettingsOAuthConnectionConfig(Base
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsKustomerConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsKustomerConnectionSettingsSettingsOAuthCredentials
+class ConnectorsKustomerConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsKustomerConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsKustomerConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsKustomerConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsKustomerConnectionSettingsSettingsError(BaseModel):
+class ConnectorsKustomerConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsKustomerConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsKustomerConnectionSettingsSettingsOAuth
+class ConnectorsKustomerConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsKustomerConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsKustomerConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsKustomerConnectionSettingsSettingsError] = None
-class ItemConnectorsKustomerConnectionSettings(BaseModel):
+class ConnectorsKustomerConnectionSettings(BaseModel):
connector_name: Literal["kustomer"]
- settings: ItemConnectorsKustomerConnectionSettingsSettings
+ settings: ConnectorsKustomerConnectionSettingsSettings
id: Optional[str] = None
@@ -1305,7 +1303,7 @@ class ItemConnectorsKustomerConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsLeverConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsLeverConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1321,8 +1319,8 @@ class ItemConnectorsLeverConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel
scope: Optional[str] = None
-class ItemConnectorsLeverConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsLeverConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsLeverConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsLeverConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1335,7 +1333,7 @@ class ItemConnectorsLeverConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsLeverConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsLeverConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1347,30 +1345,30 @@ class ItemConnectorsLeverConnectionSettingsSettingsOAuthConnectionConfig(BaseMod
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsLeverConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsLeverConnectionSettingsSettingsOAuthCredentials
+class ConnectorsLeverConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsLeverConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsLeverConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsLeverConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsLeverConnectionSettingsSettingsError(BaseModel):
+class ConnectorsLeverConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsLeverConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsLeverConnectionSettingsSettingsOAuth
+class ConnectorsLeverConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsLeverConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsLeverConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsLeverConnectionSettingsSettingsError] = None
-class ItemConnectorsLeverConnectionSettings(BaseModel):
+class ConnectorsLeverConnectionSettings(BaseModel):
connector_name: Literal["lever"]
- settings: ItemConnectorsLeverConnectionSettingsSettings
+ settings: ConnectorsLeverConnectionSettingsSettings
id: Optional[str] = None
@@ -1381,7 +1379,7 @@ class ItemConnectorsLeverConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsLinearConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsLinearConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1397,8 +1395,8 @@ class ItemConnectorsLinearConnectionSettingsSettingsOAuthCredentialsRaw(BaseMode
scope: Optional[str] = None
-class ItemConnectorsLinearConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsLinearConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsLinearConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsLinearConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1411,7 +1409,7 @@ class ItemConnectorsLinearConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsLinearConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsLinearConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1423,30 +1421,30 @@ class ItemConnectorsLinearConnectionSettingsSettingsOAuthConnectionConfig(BaseMo
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsLinearConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsLinearConnectionSettingsSettingsOAuthCredentials
+class ConnectorsLinearConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsLinearConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsLinearConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsLinearConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsLinearConnectionSettingsSettingsError(BaseModel):
+class ConnectorsLinearConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsLinearConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsLinearConnectionSettingsSettingsOAuth
+class ConnectorsLinearConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsLinearConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsLinearConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsLinearConnectionSettingsSettingsError] = None
-class ItemConnectorsLinearConnectionSettings(BaseModel):
+class ConnectorsLinearConnectionSettings(BaseModel):
connector_name: Literal["linear"]
- settings: ItemConnectorsLinearConnectionSettingsSettings
+ settings: ConnectorsLinearConnectionSettingsSettings
id: Optional[str] = None
@@ -1457,7 +1455,7 @@ class ItemConnectorsLinearConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsLunchmoneyConnectionSettings(BaseModel):
+class ConnectorsLunchmoneyConnectionSettings(BaseModel):
connector_name: Literal["lunchmoney"]
settings: None
@@ -1471,7 +1469,7 @@ class ItemConnectorsLunchmoneyConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMercuryConnectionSettings(BaseModel):
+class ConnectorsMercuryConnectionSettings(BaseModel):
connector_name: Literal["mercury"]
settings: None
@@ -1485,16 +1483,16 @@ class ItemConnectorsMercuryConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMergeConnectionSettingsSettings(BaseModel):
+class ConnectorsMergeConnectionSettingsSettings(BaseModel):
account_token: str = FieldInfo(alias="accountToken")
account_details: Optional[object] = FieldInfo(alias="accountDetails", default=None)
-class ItemConnectorsMergeConnectionSettings(BaseModel):
+class ConnectorsMergeConnectionSettings(BaseModel):
connector_name: Literal["merge"]
- settings: ItemConnectorsMergeConnectionSettingsSettings
+ settings: ConnectorsMergeConnectionSettingsSettings
id: Optional[str] = None
@@ -1505,7 +1503,7 @@ class ItemConnectorsMergeConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1521,8 +1519,8 @@ class ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentialsRaw(BaseM
scope: Optional[str] = None
-class ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1535,7 +1533,7 @@ class ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentials(BaseMode
refresh_token: Optional[str] = None
-class ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsMicrosoftConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1547,32 +1545,32 @@ class ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthConnectionConfig(Bas
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsMicrosoftConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentials
+class ConnectorsMicrosoftConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsMicrosoftConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsMicrosoftConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsMicrosoftConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsMicrosoftConnectionSettingsSettingsError(BaseModel):
+class ConnectorsMicrosoftConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsMicrosoftConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsMicrosoftConnectionSettingsSettingsOAuth
+class ConnectorsMicrosoftConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsMicrosoftConnectionSettingsSettingsOAuth
client_id: Optional[str] = None
- error: Optional[ItemConnectorsMicrosoftConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsMicrosoftConnectionSettingsSettingsError] = None
-class ItemConnectorsMicrosoftConnectionSettings(BaseModel):
+class ConnectorsMicrosoftConnectionSettings(BaseModel):
connector_name: Literal["microsoft"]
- settings: ItemConnectorsMicrosoftConnectionSettingsSettings
+ settings: ConnectorsMicrosoftConnectionSettingsSettings
id: Optional[str] = None
@@ -1583,16 +1581,16 @@ class ItemConnectorsMicrosoftConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMongoDBConnectionSettingsSettings(BaseModel):
+class ConnectorsMongoDBConnectionSettingsSettings(BaseModel):
database_name: str = FieldInfo(alias="databaseName")
database_url: str = FieldInfo(alias="databaseUrl")
-class ItemConnectorsMongoDBConnectionSettings(BaseModel):
+class ConnectorsMongoDBConnectionSettings(BaseModel):
connector_name: Literal["mongodb"]
- settings: ItemConnectorsMongoDBConnectionSettingsSettings
+ settings: ConnectorsMongoDBConnectionSettingsSettings
id: Optional[str] = None
@@ -1603,7 +1601,7 @@ class ItemConnectorsMongoDBConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsMootaConnectionSettings(BaseModel):
+class ConnectorsMootaConnectionSettings(BaseModel):
connector_name: Literal["moota"]
settings: None
@@ -1617,14 +1615,14 @@ class ItemConnectorsMootaConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsOnebrickConnectionSettingsSettings(BaseModel):
+class ConnectorsOnebrickConnectionSettingsSettings(BaseModel):
access_token: str = FieldInfo(alias="accessToken")
-class ItemConnectorsOnebrickConnectionSettings(BaseModel):
+class ConnectorsOnebrickConnectionSettings(BaseModel):
connector_name: Literal["onebrick"]
- settings: ItemConnectorsOnebrickConnectionSettingsSettings
+ settings: ConnectorsOnebrickConnectionSettingsSettings
id: Optional[str] = None
@@ -1635,7 +1633,7 @@ class ItemConnectorsOnebrickConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsOutreachConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsOutreachConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1651,8 +1649,8 @@ class ItemConnectorsOutreachConnectionSettingsSettingsOAuthCredentialsRaw(BaseMo
scope: Optional[str] = None
-class ItemConnectorsOutreachConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsOutreachConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsOutreachConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsOutreachConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1665,7 +1663,7 @@ class ItemConnectorsOutreachConnectionSettingsSettingsOAuthCredentials(BaseModel
refresh_token: Optional[str] = None
-class ItemConnectorsOutreachConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsOutreachConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1677,30 +1675,30 @@ class ItemConnectorsOutreachConnectionSettingsSettingsOAuthConnectionConfig(Base
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsOutreachConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsOutreachConnectionSettingsSettingsOAuthCredentials
+class ConnectorsOutreachConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsOutreachConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsOutreachConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsOutreachConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsOutreachConnectionSettingsSettingsError(BaseModel):
+class ConnectorsOutreachConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsOutreachConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsOutreachConnectionSettingsSettingsOAuth
+class ConnectorsOutreachConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsOutreachConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsOutreachConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsOutreachConnectionSettingsSettingsError] = None
-class ItemConnectorsOutreachConnectionSettings(BaseModel):
+class ConnectorsOutreachConnectionSettings(BaseModel):
connector_name: Literal["outreach"]
- settings: ItemConnectorsOutreachConnectionSettingsSettings
+ settings: ConnectorsOutreachConnectionSettingsSettings
id: Optional[str] = None
@@ -1711,7 +1709,7 @@ class ItemConnectorsOutreachConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsPipedriveConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsPipedriveConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1727,8 +1725,8 @@ class ItemConnectorsPipedriveConnectionSettingsSettingsOAuthCredentialsRaw(BaseM
scope: Optional[str] = None
-class ItemConnectorsPipedriveConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsPipedriveConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsPipedriveConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsPipedriveConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1741,7 +1739,7 @@ class ItemConnectorsPipedriveConnectionSettingsSettingsOAuthCredentials(BaseMode
refresh_token: Optional[str] = None
-class ItemConnectorsPipedriveConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsPipedriveConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1753,30 +1751,30 @@ class ItemConnectorsPipedriveConnectionSettingsSettingsOAuthConnectionConfig(Bas
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsPipedriveConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsPipedriveConnectionSettingsSettingsOAuthCredentials
+class ConnectorsPipedriveConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsPipedriveConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsPipedriveConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsPipedriveConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsPipedriveConnectionSettingsSettingsError(BaseModel):
+class ConnectorsPipedriveConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsPipedriveConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsPipedriveConnectionSettingsSettingsOAuth
+class ConnectorsPipedriveConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsPipedriveConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsPipedriveConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsPipedriveConnectionSettingsSettingsError] = None
-class ItemConnectorsPipedriveConnectionSettings(BaseModel):
+class ConnectorsPipedriveConnectionSettings(BaseModel):
connector_name: Literal["pipedrive"]
- settings: ItemConnectorsPipedriveConnectionSettingsSettings
+ settings: ConnectorsPipedriveConnectionSettingsSettings
id: Optional[str] = None
@@ -1787,7 +1785,7 @@ class ItemConnectorsPipedriveConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsPlaidConnectionSettingsSettings(BaseModel):
+class ConnectorsPlaidConnectionSettingsSettings(BaseModel):
access_token: str = FieldInfo(alias="accessToken")
institution: Optional[object] = None
@@ -1801,10 +1799,10 @@ class ItemConnectorsPlaidConnectionSettingsSettings(BaseModel):
webhook_item_error: None = FieldInfo(alias="webhookItemError", default=None)
-class ItemConnectorsPlaidConnectionSettings(BaseModel):
+class ConnectorsPlaidConnectionSettings(BaseModel):
connector_name: Literal["plaid"]
- settings: ItemConnectorsPlaidConnectionSettingsSettings
+ settings: ConnectorsPlaidConnectionSettingsSettings
id: Optional[str] = None
@@ -1815,24 +1813,24 @@ class ItemConnectorsPlaidConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsPostgresConnectionSettingsSettingsSourceQueries(BaseModel):
+class ConnectorsPostgresConnectionSettingsSettingsSourceQueries(BaseModel):
invoice: Optional[str] = None
-class ItemConnectorsPostgresConnectionSettingsSettings(BaseModel):
+class ConnectorsPostgresConnectionSettingsSettings(BaseModel):
database_url: str = FieldInfo(alias="databaseUrl")
migrate_tables: Optional[bool] = FieldInfo(alias="migrateTables", default=None)
- source_queries: Optional[ItemConnectorsPostgresConnectionSettingsSettingsSourceQueries] = FieldInfo(
+ source_queries: Optional[ConnectorsPostgresConnectionSettingsSettingsSourceQueries] = FieldInfo(
alias="sourceQueries", default=None
)
-class ItemConnectorsPostgresConnectionSettings(BaseModel):
+class ConnectorsPostgresConnectionSettings(BaseModel):
connector_name: Literal["postgres"]
- settings: ItemConnectorsPostgresConnectionSettingsSettings
+ settings: ConnectorsPostgresConnectionSettingsSettings
id: Optional[str] = None
@@ -1843,11 +1841,11 @@ class ItemConnectorsPostgresConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsQboConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsQboConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
realm_id: str = FieldInfo(alias="realmId")
-class ItemConnectorsQboConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsQboConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1863,8 +1861,8 @@ class ItemConnectorsQboConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
scope: Optional[str] = None
-class ItemConnectorsQboConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsQboConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsQboConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsQboConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1877,30 +1875,30 @@ class ItemConnectorsQboConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsQboConnectionSettingsSettingsOAuth(BaseModel):
- connection_config: ItemConnectorsQboConnectionSettingsSettingsOAuthConnectionConfig
+class ConnectorsQboConnectionSettingsSettingsOAuth(BaseModel):
+ connection_config: ConnectorsQboConnectionSettingsSettingsOAuthConnectionConfig
- credentials: ItemConnectorsQboConnectionSettingsSettingsOAuthCredentials
+ credentials: ConnectorsQboConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
-class ItemConnectorsQboConnectionSettingsSettingsError(BaseModel):
+class ConnectorsQboConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsQboConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsQboConnectionSettingsSettingsOAuth
+class ConnectorsQboConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsQboConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsQboConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsQboConnectionSettingsSettingsError] = None
-class ItemConnectorsQboConnectionSettings(BaseModel):
+class ConnectorsQboConnectionSettings(BaseModel):
connector_name: Literal["qbo"]
- settings: ItemConnectorsQboConnectionSettingsSettings
+ settings: ConnectorsQboConnectionSettingsSettings
id: Optional[str] = None
@@ -1911,16 +1909,16 @@ class ItemConnectorsQboConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsRampConnectionSettingsSettings(BaseModel):
+class ConnectorsRampConnectionSettingsSettings(BaseModel):
access_token: Optional[str] = FieldInfo(alias="accessToken", default=None)
start_after_transaction_id: Optional[str] = FieldInfo(alias="startAfterTransactionId", default=None)
-class ItemConnectorsRampConnectionSettings(BaseModel):
+class ConnectorsRampConnectionSettings(BaseModel):
connector_name: Literal["ramp"]
- settings: ItemConnectorsRampConnectionSettingsSettings
+ settings: ConnectorsRampConnectionSettingsSettings
id: Optional[str] = None
@@ -1931,14 +1929,14 @@ class ItemConnectorsRampConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsRevertConnectionSettingsSettings(BaseModel):
+class ConnectorsRevertConnectionSettingsSettings(BaseModel):
tenant_id: str
-class ItemConnectorsRevertConnectionSettings(BaseModel):
+class ConnectorsRevertConnectionSettings(BaseModel):
connector_name: Literal["revert"]
- settings: ItemConnectorsRevertConnectionSettingsSettings
+ settings: ConnectorsRevertConnectionSettingsSettings
id: Optional[str] = None
@@ -1949,7 +1947,7 @@ class ItemConnectorsRevertConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSalesforceConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsSalesforceConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -1965,8 +1963,8 @@ class ItemConnectorsSalesforceConnectionSettingsSettingsOAuthCredentialsRaw(Base
scope: Optional[str] = None
-class ItemConnectorsSalesforceConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsSalesforceConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsSalesforceConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsSalesforceConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -1979,7 +1977,7 @@ class ItemConnectorsSalesforceConnectionSettingsSettingsOAuthCredentials(BaseMod
refresh_token: Optional[str] = None
-class ItemConnectorsSalesforceConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsSalesforceConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -1991,30 +1989,30 @@ class ItemConnectorsSalesforceConnectionSettingsSettingsOAuthConnectionConfig(Ba
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsSalesforceConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsSalesforceConnectionSettingsSettingsOAuthCredentials
+class ConnectorsSalesforceConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsSalesforceConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsSalesforceConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsSalesforceConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsSalesforceConnectionSettingsSettingsError(BaseModel):
+class ConnectorsSalesforceConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsSalesforceConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsSalesforceConnectionSettingsSettingsOAuth
+class ConnectorsSalesforceConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsSalesforceConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsSalesforceConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsSalesforceConnectionSettingsSettingsError] = None
-class ItemConnectorsSalesforceConnectionSettings(BaseModel):
+class ConnectorsSalesforceConnectionSettings(BaseModel):
connector_name: Literal["salesforce"]
- settings: ItemConnectorsSalesforceConnectionSettingsSettings
+ settings: ConnectorsSalesforceConnectionSettingsSettings
id: Optional[str] = None
@@ -2025,7 +2023,7 @@ class ItemConnectorsSalesforceConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSalesloftConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsSalesloftConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -2041,8 +2039,8 @@ class ItemConnectorsSalesloftConnectionSettingsSettingsOAuthCredentialsRaw(BaseM
scope: Optional[str] = None
-class ItemConnectorsSalesloftConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsSalesloftConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsSalesloftConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsSalesloftConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -2055,7 +2053,7 @@ class ItemConnectorsSalesloftConnectionSettingsSettingsOAuthCredentials(BaseMode
refresh_token: Optional[str] = None
-class ItemConnectorsSalesloftConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsSalesloftConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -2067,30 +2065,30 @@ class ItemConnectorsSalesloftConnectionSettingsSettingsOAuthConnectionConfig(Bas
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsSalesloftConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsSalesloftConnectionSettingsSettingsOAuthCredentials
+class ConnectorsSalesloftConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsSalesloftConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsSalesloftConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsSalesloftConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsSalesloftConnectionSettingsSettingsError(BaseModel):
+class ConnectorsSalesloftConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsSalesloftConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsSalesloftConnectionSettingsSettingsOAuth
+class ConnectorsSalesloftConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsSalesloftConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsSalesloftConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsSalesloftConnectionSettingsSettingsError] = None
-class ItemConnectorsSalesloftConnectionSettings(BaseModel):
+class ConnectorsSalesloftConnectionSettings(BaseModel):
connector_name: Literal["salesloft"]
- settings: ItemConnectorsSalesloftConnectionSettingsSettings
+ settings: ConnectorsSalesloftConnectionSettingsSettings
id: Optional[str] = None
@@ -2101,7 +2099,7 @@ class ItemConnectorsSalesloftConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSaltedgeConnectionSettings(BaseModel):
+class ConnectorsSaltedgeConnectionSettings(BaseModel):
connector_name: Literal["saltedge"]
id: Optional[str] = None
@@ -2115,7 +2113,7 @@ class ItemConnectorsSaltedgeConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSlackConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsSlackConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -2131,8 +2129,8 @@ class ItemConnectorsSlackConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel
scope: Optional[str] = None
-class ItemConnectorsSlackConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsSlackConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsSlackConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsSlackConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -2145,7 +2143,7 @@ class ItemConnectorsSlackConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsSlackConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsSlackConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -2157,30 +2155,30 @@ class ItemConnectorsSlackConnectionSettingsSettingsOAuthConnectionConfig(BaseMod
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsSlackConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsSlackConnectionSettingsSettingsOAuthCredentials
+class ConnectorsSlackConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsSlackConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsSlackConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsSlackConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsSlackConnectionSettingsSettingsError(BaseModel):
+class ConnectorsSlackConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsSlackConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsSlackConnectionSettingsSettingsOAuth
+class ConnectorsSlackConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsSlackConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsSlackConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsSlackConnectionSettingsSettingsError] = None
-class ItemConnectorsSlackConnectionSettings(BaseModel):
+class ConnectorsSlackConnectionSettings(BaseModel):
connector_name: Literal["slack"]
- settings: ItemConnectorsSlackConnectionSettingsSettings
+ settings: ConnectorsSlackConnectionSettingsSettings
id: Optional[str] = None
@@ -2191,7 +2189,7 @@ class ItemConnectorsSlackConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUserNotifications(BaseModel):
+class ConnectorsSplitwiseConnectionSettingsSettingsCurrentUserNotifications(BaseModel):
added_as_friend: bool
added_to_group: bool
@@ -2209,7 +2207,7 @@ class ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUserNotifications(
payments: bool
-class ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUserPicture(BaseModel):
+class ConnectorsSplitwiseConnectionSettingsSettingsCurrentUserPicture(BaseModel):
large: Optional[str] = None
medium: Optional[str] = None
@@ -2223,7 +2221,7 @@ class ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUserPicture(BaseMo
xxlarge: Optional[str] = None
-class ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUser(BaseModel):
+class ConnectorsSplitwiseConnectionSettingsSettingsCurrentUser(BaseModel):
id: float
country_code: str
@@ -2246,29 +2244,29 @@ class ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUser(BaseModel):
locale: str
- notifications: ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUserNotifications
+ notifications: ConnectorsSplitwiseConnectionSettingsSettingsCurrentUserNotifications
notifications_count: float
notifications_read: str
- picture: ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUserPicture
+ picture: ConnectorsSplitwiseConnectionSettingsSettingsCurrentUserPicture
registration_status: str
-class ItemConnectorsSplitwiseConnectionSettingsSettings(BaseModel):
+class ConnectorsSplitwiseConnectionSettingsSettings(BaseModel):
access_token: str = FieldInfo(alias="accessToken")
- current_user: Optional[ItemConnectorsSplitwiseConnectionSettingsSettingsCurrentUser] = FieldInfo(
+ current_user: Optional[ConnectorsSplitwiseConnectionSettingsSettingsCurrentUser] = FieldInfo(
alias="currentUser", default=None
)
-class ItemConnectorsSplitwiseConnectionSettings(BaseModel):
+class ConnectorsSplitwiseConnectionSettings(BaseModel):
connector_name: Literal["splitwise"]
- settings: ItemConnectorsSplitwiseConnectionSettingsSettings
+ settings: ConnectorsSplitwiseConnectionSettingsSettings
id: Optional[str] = None
@@ -2279,7 +2277,7 @@ class ItemConnectorsSplitwiseConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsSpreadsheetConnectionSettingsSettings(BaseModel):
+class ConnectorsSpreadsheetConnectionSettingsSettings(BaseModel):
account_external_id: str = FieldInfo(alias="accountExternalId")
preset: Literal[
@@ -2299,10 +2297,10 @@ class ItemConnectorsSpreadsheetConnectionSettingsSettings(BaseModel):
]
-class ItemConnectorsSpreadsheetConnectionSettings(BaseModel):
+class ConnectorsSpreadsheetConnectionSettings(BaseModel):
connector_name: Literal["spreadsheet"]
- settings: ItemConnectorsSpreadsheetConnectionSettingsSettings
+ settings: ConnectorsSpreadsheetConnectionSettingsSettings
id: Optional[str] = None
@@ -2313,14 +2311,14 @@ class ItemConnectorsSpreadsheetConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsStripeConnectionSettingsSettings(BaseModel):
+class ConnectorsStripeConnectionSettingsSettings(BaseModel):
secret_key: str = FieldInfo(alias="secretKey")
-class ItemConnectorsStripeConnectionSettings(BaseModel):
+class ConnectorsStripeConnectionSettings(BaseModel):
connector_name: Literal["stripe"]
- settings: ItemConnectorsStripeConnectionSettingsSettings
+ settings: ConnectorsStripeConnectionSettingsSettings
id: Optional[str] = None
@@ -2331,14 +2329,14 @@ class ItemConnectorsStripeConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsTellerConnectionSettingsSettings(BaseModel):
+class ConnectorsTellerConnectionSettingsSettings(BaseModel):
token: str
-class ItemConnectorsTellerConnectionSettings(BaseModel):
+class ConnectorsTellerConnectionSettings(BaseModel):
connector_name: Literal["teller"]
- settings: ItemConnectorsTellerConnectionSettingsSettings
+ settings: ConnectorsTellerConnectionSettingsSettings
id: Optional[str] = None
@@ -2349,7 +2347,7 @@ class ItemConnectorsTellerConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsTogglConnectionSettingsSettings(BaseModel):
+class ConnectorsTogglConnectionSettingsSettings(BaseModel):
api_token: str = FieldInfo(alias="apiToken")
email: Optional[str] = None
@@ -2357,10 +2355,10 @@ class ItemConnectorsTogglConnectionSettingsSettings(BaseModel):
password: Optional[str] = None
-class ItemConnectorsTogglConnectionSettings(BaseModel):
+class ConnectorsTogglConnectionSettings(BaseModel):
connector_name: Literal["toggl"]
- settings: ItemConnectorsTogglConnectionSettingsSettings
+ settings: ConnectorsTogglConnectionSettingsSettings
id: Optional[str] = None
@@ -2371,14 +2369,14 @@ class ItemConnectorsTogglConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsTwentyConnectionSettingsSettings(BaseModel):
+class ConnectorsTwentyConnectionSettingsSettings(BaseModel):
access_token: str
-class ItemConnectorsTwentyConnectionSettings(BaseModel):
+class ConnectorsTwentyConnectionSettings(BaseModel):
connector_name: Literal["twenty"]
- settings: ItemConnectorsTwentyConnectionSettingsSettings
+ settings: ConnectorsTwentyConnectionSettingsSettings
id: Optional[str] = None
@@ -2389,16 +2387,16 @@ class ItemConnectorsTwentyConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsVenmoConnectionSettingsSettings(BaseModel):
+class ConnectorsVenmoConnectionSettingsSettings(BaseModel):
credentials: Optional[object] = None
me: Optional[object] = None
-class ItemConnectorsVenmoConnectionSettings(BaseModel):
+class ConnectorsVenmoConnectionSettings(BaseModel):
connector_name: Literal["venmo"]
- settings: ItemConnectorsVenmoConnectionSettingsSettings
+ settings: ConnectorsVenmoConnectionSettingsSettings
id: Optional[str] = None
@@ -2409,14 +2407,14 @@ class ItemConnectorsVenmoConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsWebhookConnectionSettingsSettings(BaseModel):
+class ConnectorsWebhookConnectionSettingsSettings(BaseModel):
destination_url: str = FieldInfo(alias="destinationUrl")
-class ItemConnectorsWebhookConnectionSettings(BaseModel):
+class ConnectorsWebhookConnectionSettings(BaseModel):
connector_name: Literal["webhook"]
- settings: ItemConnectorsWebhookConnectionSettingsSettings
+ settings: ConnectorsWebhookConnectionSettingsSettings
id: Optional[str] = None
@@ -2427,16 +2425,16 @@ class ItemConnectorsWebhookConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsWiseConnectionSettingsSettings(BaseModel):
+class ConnectorsWiseConnectionSettingsSettings(BaseModel):
env_name: Literal["sandbox", "live"] = FieldInfo(alias="envName")
api_token: Optional[str] = FieldInfo(alias="apiToken", default=None)
-class ItemConnectorsWiseConnectionSettings(BaseModel):
+class ConnectorsWiseConnectionSettings(BaseModel):
connector_name: Literal["wise"]
- settings: ItemConnectorsWiseConnectionSettingsSettings
+ settings: ConnectorsWiseConnectionSettingsSettings
id: Optional[str] = None
@@ -2447,7 +2445,7 @@ class ItemConnectorsWiseConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsXeroConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsXeroConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -2463,8 +2461,8 @@ class ItemConnectorsXeroConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel)
scope: Optional[str] = None
-class ItemConnectorsXeroConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsXeroConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsXeroConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsXeroConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -2477,7 +2475,7 @@ class ItemConnectorsXeroConnectionSettingsSettingsOAuthCredentials(BaseModel):
refresh_token: Optional[str] = None
-class ItemConnectorsXeroConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsXeroConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -2489,30 +2487,30 @@ class ItemConnectorsXeroConnectionSettingsSettingsOAuthConnectionConfig(BaseMode
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsXeroConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsXeroConnectionSettingsSettingsOAuthCredentials
+class ConnectorsXeroConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsXeroConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsXeroConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsXeroConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsXeroConnectionSettingsSettingsError(BaseModel):
+class ConnectorsXeroConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsXeroConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsXeroConnectionSettingsSettingsOAuth
+class ConnectorsXeroConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsXeroConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsXeroConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsXeroConnectionSettingsSettingsError] = None
-class ItemConnectorsXeroConnectionSettings(BaseModel):
+class ConnectorsXeroConnectionSettings(BaseModel):
connector_name: Literal["xero"]
- settings: ItemConnectorsXeroConnectionSettingsSettings
+ settings: ConnectorsXeroConnectionSettingsSettings
id: Optional[str] = None
@@ -2523,7 +2521,7 @@ class ItemConnectorsXeroConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsYodleeConnectionSettingsSettingsAccessToken(BaseModel):
+class ConnectorsYodleeConnectionSettingsSettingsAccessToken(BaseModel):
access_token: str = FieldInfo(alias="accessToken")
expires_in: float = FieldInfo(alias="expiresIn")
@@ -2531,7 +2529,7 @@ class ItemConnectorsYodleeConnectionSettingsSettingsAccessToken(BaseModel):
issued_at: str = FieldInfo(alias="issuedAt")
-class ItemConnectorsYodleeConnectionSettingsSettingsProviderAccount(BaseModel):
+class ConnectorsYodleeConnectionSettingsSettingsProviderAccount(BaseModel):
id: float
aggregation_source: str = FieldInfo(alias="aggregationSource")
@@ -2549,28 +2547,28 @@ class ItemConnectorsYodleeConnectionSettingsSettingsProviderAccount(BaseModel):
is_deleted: Optional[bool] = FieldInfo(alias="isDeleted", default=None)
-class ItemConnectorsYodleeConnectionSettingsSettings(BaseModel):
+class ConnectorsYodleeConnectionSettingsSettings(BaseModel):
login_name: str = FieldInfo(alias="loginName")
provider_account_id: Union[float, str] = FieldInfo(alias="providerAccountId")
- access_token: Optional[ItemConnectorsYodleeConnectionSettingsSettingsAccessToken] = FieldInfo(
+ access_token: Optional[ConnectorsYodleeConnectionSettingsSettingsAccessToken] = FieldInfo(
alias="accessToken", default=None
)
provider: None = None
- provider_account: Optional[ItemConnectorsYodleeConnectionSettingsSettingsProviderAccount] = FieldInfo(
+ provider_account: Optional[ConnectorsYodleeConnectionSettingsSettingsProviderAccount] = FieldInfo(
alias="providerAccount", default=None
)
user: None = None
-class ItemConnectorsYodleeConnectionSettings(BaseModel):
+class ConnectorsYodleeConnectionSettings(BaseModel):
connector_name: Literal["yodlee"]
- settings: ItemConnectorsYodleeConnectionSettingsSettings
+ settings: ConnectorsYodleeConnectionSettingsSettings
id: Optional[str] = None
@@ -2581,7 +2579,7 @@ class ItemConnectorsYodleeConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsZohodeskConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
+class ConnectorsZohodeskConnectionSettingsSettingsOAuthCredentialsRaw(BaseModel):
access_token: str
token_type: str
@@ -2597,8 +2595,8 @@ class ItemConnectorsZohodeskConnectionSettingsSettingsOAuthCredentialsRaw(BaseMo
scope: Optional[str] = None
-class ItemConnectorsZohodeskConnectionSettingsSettingsOAuthCredentials(BaseModel):
- raw: ItemConnectorsZohodeskConnectionSettingsSettingsOAuthCredentialsRaw
+class ConnectorsZohodeskConnectionSettingsSettingsOAuthCredentials(BaseModel):
+ raw: ConnectorsZohodeskConnectionSettingsSettingsOAuthCredentialsRaw
type: Literal["OAUTH2", "OAUTH1", "BASIC", "API_KEY"]
@@ -2611,7 +2609,7 @@ class ItemConnectorsZohodeskConnectionSettingsSettingsOAuthCredentials(BaseModel
refresh_token: Optional[str] = None
-class ItemConnectorsZohodeskConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
+class ConnectorsZohodeskConnectionSettingsSettingsOAuthConnectionConfig(BaseModel):
instance_url: Optional[str] = None
portal_id: Optional[float] = FieldInfo(alias="portalId", default=None)
@@ -2623,30 +2621,30 @@ class ItemConnectorsZohodeskConnectionSettingsSettingsOAuthConnectionConfig(Base
def __getattr__(self, attr: str) -> object: ...
-class ItemConnectorsZohodeskConnectionSettingsSettingsOAuth(BaseModel):
- credentials: ItemConnectorsZohodeskConnectionSettingsSettingsOAuthCredentials
+class ConnectorsZohodeskConnectionSettingsSettingsOAuth(BaseModel):
+ credentials: ConnectorsZohodeskConnectionSettingsSettingsOAuthCredentials
metadata: Optional[Dict[str, object]] = None
- connection_config: Optional[ItemConnectorsZohodeskConnectionSettingsSettingsOAuthConnectionConfig] = None
+ connection_config: Optional[ConnectorsZohodeskConnectionSettingsSettingsOAuthConnectionConfig] = None
-class ItemConnectorsZohodeskConnectionSettingsSettingsError(BaseModel):
+class ConnectorsZohodeskConnectionSettingsSettingsError(BaseModel):
code: Union[Literal["refresh_token_external_error"], str]
message: Optional[str] = None
-class ItemConnectorsZohodeskConnectionSettingsSettings(BaseModel):
- oauth: ItemConnectorsZohodeskConnectionSettingsSettingsOAuth
+class ConnectorsZohodeskConnectionSettingsSettings(BaseModel):
+ oauth: ConnectorsZohodeskConnectionSettingsSettingsOAuth
- error: Optional[ItemConnectorsZohodeskConnectionSettingsSettingsError] = None
+ error: Optional[ConnectorsZohodeskConnectionSettingsSettingsError] = None
-class ItemConnectorsZohodeskConnectionSettings(BaseModel):
+class ConnectorsZohodeskConnectionSettings(BaseModel):
connector_name: Literal["zohodesk"]
- settings: ItemConnectorsZohodeskConnectionSettingsSettings
+ settings: ConnectorsZohodeskConnectionSettingsSettings
id: Optional[str] = None
@@ -2657,7 +2655,7 @@ class ItemConnectorsZohodeskConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-class ItemConnectorsGoogledriveConnectionSettings(BaseModel):
+class ConnectorsGoogledriveConnectionSettings(BaseModel):
connector_name: Literal["googledrive"]
settings: None
@@ -2671,70 +2669,60 @@ class ItemConnectorsGoogledriveConnectionSettings(BaseModel):
updated_at: Optional[datetime] = None
-Item: TypeAlias = Union[
- ItemConnectorsAircallConnectionSettings,
- ItemConnectorsAirtableConnectionSettings,
- ItemConnectorsApolloConnectionSettings,
- ItemConnectorsBeancountConnectionSettings,
- ItemConnectorsBrexConnectionSettings,
- ItemConnectorsCodaConnectionSettings,
- ItemConnectorsConfluenceConnectionSettings,
- ItemConnectorsDebugConnectionSettings,
- ItemConnectorsDiscordConnectionSettings,
- ItemConnectorsFinchConnectionSettings,
- ItemConnectorsFirebaseConnectionSettings,
- ItemConnectorsForeceiptConnectionSettings,
- ItemConnectorsFsConnectionSettings,
- ItemConnectorsGitHubConnectionSettings,
- ItemConnectorsGongConnectionSettings,
- ItemConnectorsGoogleConnectionSettings,
- ItemConnectorsGreenhouseConnectionSettings,
- ItemConnectorsHeronConnectionSettings,
- ItemConnectorsHubspotConnectionSettings,
- ItemConnectorsIntercomConnectionSettings,
- ItemConnectorsJiraConnectionSettings,
- ItemConnectorsKustomerConnectionSettings,
- ItemConnectorsLeverConnectionSettings,
- ItemConnectorsLinearConnectionSettings,
- ItemConnectorsLunchmoneyConnectionSettings,
- ItemConnectorsMercuryConnectionSettings,
- ItemConnectorsMergeConnectionSettings,
- ItemConnectorsMicrosoftConnectionSettings,
- ItemConnectorsMongoDBConnectionSettings,
- ItemConnectorsMootaConnectionSettings,
- ItemConnectorsOnebrickConnectionSettings,
- ItemConnectorsOutreachConnectionSettings,
- ItemConnectorsPipedriveConnectionSettings,
- ItemConnectorsPlaidConnectionSettings,
- ItemConnectorsPostgresConnectionSettings,
- ItemConnectorsQboConnectionSettings,
- ItemConnectorsRampConnectionSettings,
- ItemConnectorsRevertConnectionSettings,
- ItemConnectorsSalesforceConnectionSettings,
- ItemConnectorsSalesloftConnectionSettings,
- ItemConnectorsSaltedgeConnectionSettings,
- ItemConnectorsSlackConnectionSettings,
- ItemConnectorsSplitwiseConnectionSettings,
- ItemConnectorsSpreadsheetConnectionSettings,
- ItemConnectorsStripeConnectionSettings,
- ItemConnectorsTellerConnectionSettings,
- ItemConnectorsTogglConnectionSettings,
- ItemConnectorsTwentyConnectionSettings,
- ItemConnectorsVenmoConnectionSettings,
- ItemConnectorsWebhookConnectionSettings,
- ItemConnectorsWiseConnectionSettings,
- ItemConnectorsXeroConnectionSettings,
- ItemConnectorsYodleeConnectionSettings,
- ItemConnectorsZohodeskConnectionSettings,
- ItemConnectorsGoogledriveConnectionSettings,
+GetConnectionResponse: TypeAlias = Union[
+ ConnectorsAircallConnectionSettings,
+ ConnectorsAirtableConnectionSettings,
+ ConnectorsApolloConnectionSettings,
+ ConnectorsBeancountConnectionSettings,
+ ConnectorsBrexConnectionSettings,
+ ConnectorsCodaConnectionSettings,
+ ConnectorsConfluenceConnectionSettings,
+ ConnectorsDebugConnectionSettings,
+ ConnectorsDiscordConnectionSettings,
+ ConnectorsFinchConnectionSettings,
+ ConnectorsFirebaseConnectionSettings,
+ ConnectorsForeceiptConnectionSettings,
+ ConnectorsFsConnectionSettings,
+ ConnectorsGitHubConnectionSettings,
+ ConnectorsGongConnectionSettings,
+ ConnectorsGoogleConnectionSettings,
+ ConnectorsGreenhouseConnectionSettings,
+ ConnectorsHeronConnectionSettings,
+ ConnectorsHubspotConnectionSettings,
+ ConnectorsIntercomConnectionSettings,
+ ConnectorsJiraConnectionSettings,
+ ConnectorsKustomerConnectionSettings,
+ ConnectorsLeverConnectionSettings,
+ ConnectorsLinearConnectionSettings,
+ ConnectorsLunchmoneyConnectionSettings,
+ ConnectorsMercuryConnectionSettings,
+ ConnectorsMergeConnectionSettings,
+ ConnectorsMicrosoftConnectionSettings,
+ ConnectorsMongoDBConnectionSettings,
+ ConnectorsMootaConnectionSettings,
+ ConnectorsOnebrickConnectionSettings,
+ ConnectorsOutreachConnectionSettings,
+ ConnectorsPipedriveConnectionSettings,
+ ConnectorsPlaidConnectionSettings,
+ ConnectorsPostgresConnectionSettings,
+ ConnectorsQboConnectionSettings,
+ ConnectorsRampConnectionSettings,
+ ConnectorsRevertConnectionSettings,
+ ConnectorsSalesforceConnectionSettings,
+ ConnectorsSalesloftConnectionSettings,
+ ConnectorsSaltedgeConnectionSettings,
+ ConnectorsSlackConnectionSettings,
+ ConnectorsSplitwiseConnectionSettings,
+ ConnectorsSpreadsheetConnectionSettings,
+ ConnectorsStripeConnectionSettings,
+ ConnectorsTellerConnectionSettings,
+ ConnectorsTogglConnectionSettings,
+ ConnectorsTwentyConnectionSettings,
+ ConnectorsVenmoConnectionSettings,
+ ConnectorsWebhookConnectionSettings,
+ ConnectorsWiseConnectionSettings,
+ ConnectorsXeroConnectionSettings,
+ ConnectorsYodleeConnectionSettings,
+ ConnectorsZohodeskConnectionSettings,
+ ConnectorsGoogledriveConnectionSettings,
]
-
-
-class GetConnectionResponse(BaseModel):
- items: List[Item]
-
- limit: int
-
- offset: int
-
- total: float
diff --git a/tests/api_resources/test_client.py b/tests/api_resources/test_client.py
index 7cc8e7f..448c0c1 100644
--- a/tests/api_resources/test_client.py
+++ b/tests/api_resources/test_client.py
@@ -163,27 +163,28 @@ def test_streaming_response_create_token(self, client: Openint) -> None:
@pytest.mark.skip()
@parametrize
def test_method_get_connection(self, client: Openint) -> None:
- client_ = client.get_connection()
+ client_ = client.get_connection(
+ id="id",
+ )
assert_matches_type(GetConnectionResponse, client_, path=["response"])
@pytest.mark.skip()
@parametrize
def test_method_get_connection_with_all_params(self, client: Openint) -> None:
client_ = client.get_connection(
- connector_config_id="connector_config_id",
- connector_name="aircall",
- customer_id="x",
+ id="id",
expand=["connector"],
include_secrets="none",
- limit=1,
- offset=0,
+ refresh_policy="none",
)
assert_matches_type(GetConnectionResponse, client_, path=["response"])
@pytest.mark.skip()
@parametrize
def test_raw_response_get_connection(self, client: Openint) -> None:
- response = client.with_raw_response.get_connection()
+ response = client.with_raw_response.get_connection(
+ id="id",
+ )
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -193,7 +194,9 @@ def test_raw_response_get_connection(self, client: Openint) -> None:
@pytest.mark.skip()
@parametrize
def test_streaming_response_get_connection(self, client: Openint) -> None:
- with client.with_streaming_response.get_connection() as response:
+ with client.with_streaming_response.get_connection(
+ id="id",
+ ) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -202,6 +205,14 @@ def test_streaming_response_get_connection(self, client: Openint) -> None:
assert cast(Any, response.is_closed) is True
+ @pytest.mark.skip()
+ @parametrize
+ def test_path_params_get_connection(self, client: Openint) -> None:
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
+ client.with_raw_response.get_connection(
+ id="",
+ )
+
@pytest.mark.skip()
@parametrize
def test_method_list_connection_configs(self, client: Openint) -> None:
@@ -244,56 +255,45 @@ def test_streaming_response_list_connection_configs(self, client: Openint) -> No
@pytest.mark.skip()
@parametrize
def test_method_list_connections(self, client: Openint) -> None:
- client_ = client.list_connections(
- id="id",
- )
- assert_matches_type(ListConnectionsResponse, client_, path=["response"])
+ client_ = client.list_connections()
+ assert_matches_type(SyncOffsetPagination[ListConnectionsResponse], client_, path=["response"])
@pytest.mark.skip()
@parametrize
def test_method_list_connections_with_all_params(self, client: Openint) -> None:
client_ = client.list_connections(
- id="id",
+ connector_config_id="connector_config_id",
+ connector_name="aircall",
+ customer_id="x",
expand=["connector"],
include_secrets="none",
- refresh_policy="none",
+ limit=1,
+ offset=0,
)
- assert_matches_type(ListConnectionsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListConnectionsResponse], client_, path=["response"])
@pytest.mark.skip()
@parametrize
def test_raw_response_list_connections(self, client: Openint) -> None:
- response = client.with_raw_response.list_connections(
- id="id",
- )
+ response = client.with_raw_response.list_connections()
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client_ = response.parse()
- assert_matches_type(ListConnectionsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListConnectionsResponse], client_, path=["response"])
@pytest.mark.skip()
@parametrize
def test_streaming_response_list_connections(self, client: Openint) -> None:
- with client.with_streaming_response.list_connections(
- id="id",
- ) as response:
+ with client.with_streaming_response.list_connections() as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client_ = response.parse()
- assert_matches_type(ListConnectionsResponse, client_, path=["response"])
+ assert_matches_type(SyncOffsetPagination[ListConnectionsResponse], client_, path=["response"])
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip()
- @parametrize
- def test_path_params_list_connections(self, client: Openint) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- client.with_raw_response.list_connections(
- id="",
- )
-
@pytest.mark.skip()
@parametrize
def test_method_list_events(self, client: Openint) -> None:
@@ -472,27 +472,28 @@ async def test_streaming_response_create_token(self, async_client: AsyncOpenint)
@pytest.mark.skip()
@parametrize
async def test_method_get_connection(self, async_client: AsyncOpenint) -> None:
- client = await async_client.get_connection()
+ client = await async_client.get_connection(
+ id="id",
+ )
assert_matches_type(GetConnectionResponse, client, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_method_get_connection_with_all_params(self, async_client: AsyncOpenint) -> None:
client = await async_client.get_connection(
- connector_config_id="connector_config_id",
- connector_name="aircall",
- customer_id="x",
+ id="id",
expand=["connector"],
include_secrets="none",
- limit=1,
- offset=0,
+ refresh_policy="none",
)
assert_matches_type(GetConnectionResponse, client, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_raw_response_get_connection(self, async_client: AsyncOpenint) -> None:
- response = await async_client.with_raw_response.get_connection()
+ response = await async_client.with_raw_response.get_connection(
+ id="id",
+ )
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -502,7 +503,9 @@ async def test_raw_response_get_connection(self, async_client: AsyncOpenint) ->
@pytest.mark.skip()
@parametrize
async def test_streaming_response_get_connection(self, async_client: AsyncOpenint) -> None:
- async with async_client.with_streaming_response.get_connection() as response:
+ async with async_client.with_streaming_response.get_connection(
+ id="id",
+ ) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -511,6 +514,14 @@ async def test_streaming_response_get_connection(self, async_client: AsyncOpenin
assert cast(Any, response.is_closed) is True
+ @pytest.mark.skip()
+ @parametrize
+ async def test_path_params_get_connection(self, async_client: AsyncOpenint) -> None:
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
+ await async_client.with_raw_response.get_connection(
+ id="",
+ )
+
@pytest.mark.skip()
@parametrize
async def test_method_list_connection_configs(self, async_client: AsyncOpenint) -> None:
@@ -553,56 +564,45 @@ async def test_streaming_response_list_connection_configs(self, async_client: As
@pytest.mark.skip()
@parametrize
async def test_method_list_connections(self, async_client: AsyncOpenint) -> None:
- client = await async_client.list_connections(
- id="id",
- )
- assert_matches_type(ListConnectionsResponse, client, path=["response"])
+ client = await async_client.list_connections()
+ assert_matches_type(AsyncOffsetPagination[ListConnectionsResponse], client, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_method_list_connections_with_all_params(self, async_client: AsyncOpenint) -> None:
client = await async_client.list_connections(
- id="id",
+ connector_config_id="connector_config_id",
+ connector_name="aircall",
+ customer_id="x",
expand=["connector"],
include_secrets="none",
- refresh_policy="none",
+ limit=1,
+ offset=0,
)
- assert_matches_type(ListConnectionsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListConnectionsResponse], client, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_raw_response_list_connections(self, async_client: AsyncOpenint) -> None:
- response = await async_client.with_raw_response.list_connections(
- id="id",
- )
+ response = await async_client.with_raw_response.list_connections()
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client = await response.parse()
- assert_matches_type(ListConnectionsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListConnectionsResponse], client, path=["response"])
@pytest.mark.skip()
@parametrize
async def test_streaming_response_list_connections(self, async_client: AsyncOpenint) -> None:
- async with async_client.with_streaming_response.list_connections(
- id="id",
- ) as response:
+ async with async_client.with_streaming_response.list_connections() as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
client = await response.parse()
- assert_matches_type(ListConnectionsResponse, client, path=["response"])
+ assert_matches_type(AsyncOffsetPagination[ListConnectionsResponse], client, path=["response"])
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip()
- @parametrize
- async def test_path_params_list_connections(self, async_client: AsyncOpenint) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- await async_client.with_raw_response.list_connections(
- id="",
- )
-
@pytest.mark.skip()
@parametrize
async def test_method_list_events(self, async_client: AsyncOpenint) -> None:
diff --git a/tests/test_client.py b/tests/test_client.py
index c21a2fa..ee6627f 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -24,8 +24,7 @@
from openint import Openint, AsyncOpenint, APIResponseValidationError
from openint._types import Omit
from openint._models import BaseModel, FinalRequestOptions
-from openint._constants import RAW_RESPONSE_HEADER
-from openint._exceptions import APIStatusError, APITimeoutError, APIResponseValidationError
+from openint._exceptions import APIResponseValidationError
from openint._base_client import (
DEFAULT_TIMEOUT,
HTTPX_DEFAULT_TIMEOUT,
@@ -49,14 +48,6 @@ def _low_retry_timeout(*_args: Any, **_kwargs: Any) -> float:
return 0.1
-def _get_open_connections(client: Openint | AsyncOpenint) -> int:
- transport = client._client._transport
- assert isinstance(transport, httpx.HTTPTransport) or isinstance(transport, httpx.AsyncHTTPTransport)
-
- pool = transport._pool
- return len(pool._requests)
-
-
class TestOpenint:
client = Openint(base_url=base_url, api_key=api_key, _strict_response_validation=True)
@@ -716,26 +707,6 @@ def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str
calculated = client._calculate_retry_timeout(remaining_retries, options, headers)
assert calculated == pytest.approx(timeout, 0.5 * 0.875) # pyright: ignore[reportUnknownMemberType]
- @mock.patch("openint._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
- @pytest.mark.respx(base_url=base_url)
- def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
- respx_mock.get("/connection").mock(side_effect=httpx.TimeoutException("Test timeout error"))
-
- with pytest.raises(APITimeoutError):
- self.client.get("/connection", cast_to=httpx.Response, options={"headers": {RAW_RESPONSE_HEADER: "stream"}})
-
- assert _get_open_connections(self.client) == 0
-
- @mock.patch("openint._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
- @pytest.mark.respx(base_url=base_url)
- def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
- respx_mock.get("/connection").mock(return_value=httpx.Response(500))
-
- with pytest.raises(APIStatusError):
- self.client.get("/connection", cast_to=httpx.Response, options={"headers": {RAW_RESPONSE_HEADER: "stream"}})
-
- assert _get_open_connections(self.client) == 0
-
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
@mock.patch("openint._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
@pytest.mark.respx(base_url=base_url)
@@ -762,7 +733,7 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
respx_mock.get("/connection").mock(side_effect=retry_handler)
- response = client.with_raw_response.get_connection()
+ response = client.with_raw_response.list_connections()
assert response.retries_taken == failures_before_success
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
@@ -786,7 +757,7 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
respx_mock.get("/connection").mock(side_effect=retry_handler)
- response = client.with_raw_response.get_connection(extra_headers={"x-stainless-retry-count": Omit()})
+ response = client.with_raw_response.list_connections(extra_headers={"x-stainless-retry-count": Omit()})
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
@@ -809,7 +780,7 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
respx_mock.get("/connection").mock(side_effect=retry_handler)
- response = client.with_raw_response.get_connection(extra_headers={"x-stainless-retry-count": "42"})
+ response = client.with_raw_response.list_connections(extra_headers={"x-stainless-retry-count": "42"})
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
@@ -1491,30 +1462,6 @@ async def test_parse_retry_after_header(self, remaining_retries: int, retry_afte
calculated = client._calculate_retry_timeout(remaining_retries, options, headers)
assert calculated == pytest.approx(timeout, 0.5 * 0.875) # pyright: ignore[reportUnknownMemberType]
- @mock.patch("openint._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
- @pytest.mark.respx(base_url=base_url)
- async def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
- respx_mock.get("/connection").mock(side_effect=httpx.TimeoutException("Test timeout error"))
-
- with pytest.raises(APITimeoutError):
- await self.client.get(
- "/connection", cast_to=httpx.Response, options={"headers": {RAW_RESPONSE_HEADER: "stream"}}
- )
-
- assert _get_open_connections(self.client) == 0
-
- @mock.patch("openint._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
- @pytest.mark.respx(base_url=base_url)
- async def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
- respx_mock.get("/connection").mock(return_value=httpx.Response(500))
-
- with pytest.raises(APIStatusError):
- await self.client.get(
- "/connection", cast_to=httpx.Response, options={"headers": {RAW_RESPONSE_HEADER: "stream"}}
- )
-
- assert _get_open_connections(self.client) == 0
-
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
@mock.patch("openint._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
@pytest.mark.respx(base_url=base_url)
@@ -1542,7 +1489,7 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
respx_mock.get("/connection").mock(side_effect=retry_handler)
- response = await client.with_raw_response.get_connection()
+ response = await client.with_raw_response.list_connections()
assert response.retries_taken == failures_before_success
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
@@ -1567,7 +1514,7 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
respx_mock.get("/connection").mock(side_effect=retry_handler)
- response = await client.with_raw_response.get_connection(extra_headers={"x-stainless-retry-count": Omit()})
+ response = await client.with_raw_response.list_connections(extra_headers={"x-stainless-retry-count": Omit()})
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
@@ -1591,7 +1538,7 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
respx_mock.get("/connection").mock(side_effect=retry_handler)
- response = await client.with_raw_response.get_connection(extra_headers={"x-stainless-retry-count": "42"})
+ response = await client.with_raw_response.list_connections(extra_headers={"x-stainless-retry-count": "42"})
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
From 6dfc2e881d3b6b113a597c2a9251a00c3203ce84 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 5 Mar 2025 15:04:19 +0000
Subject: [PATCH 7/9] feat(api): manual updates (#12)
---
src/openint/_client.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/openint/_client.py b/src/openint/_client.py
index 1d142e0..f7c0a42 100644
--- a/src/openint/_client.py
+++ b/src/openint/_client.py
@@ -109,7 +109,7 @@ def __init__(
if base_url is None:
base_url = os.environ.get("OPENINT_BASE_URL")
if base_url is None:
- base_url = f"https://localhost:3000"
+ base_url = f"https://api.openint.dev/v1"
super().__init__(
version=__version__,
@@ -825,7 +825,7 @@ def __init__(
if base_url is None:
base_url = os.environ.get("OPENINT_BASE_URL")
if base_url is None:
- base_url = f"https://localhost:3000"
+ base_url = f"https://api.openint.dev/v1"
super().__init__(
version=__version__,
From 224a7a02297b3b06218ae5f8297c1e829cb91037 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 5 Mar 2025 15:37:16 +0000
Subject: [PATCH 8/9] feat(api): manual updates (#13)
---
.stats.yml | 2 +-
tests/api_resources/test_client.py | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 133e0bf..a25cca2 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
configured_endpoints: 7
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openint%2Fopenint-ed263d82a28e8475a7ebc5eaa4dfe53255fcd3342d12ec956bf331b169407b3b.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openint%2Fopenint-3c4c569aecc7073dd54b777ab6aa9959eda2a884975a2a9765f79ba8b599df0c.yml
diff --git a/tests/api_resources/test_client.py b/tests/api_resources/test_client.py
index 448c0c1..e653550 100644
--- a/tests/api_resources/test_client.py
+++ b/tests/api_resources/test_client.py
@@ -83,7 +83,7 @@ def test_method_create_magic_link_with_all_params(self, client: Openint) -> None
customer_id="x",
connection_id="connection_id",
connector_names="aircall",
- email="dev@stainless.com",
+ email="email",
redirect_url="redirect_url",
theme="light",
validity_in_seconds=0,
@@ -392,7 +392,7 @@ async def test_method_create_magic_link_with_all_params(self, async_client: Asyn
customer_id="x",
connection_id="connection_id",
connector_names="aircall",
- email="dev@stainless.com",
+ email="email",
redirect_url="redirect_url",
theme="light",
validity_in_seconds=0,
From e2e189937a8e734c5378c58e7e07bb19d23bebc6 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 5 Mar 2025 15:37:36 +0000
Subject: [PATCH 9/9] release: 0.1.0-alpha.2
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 15 +++++++++++++++
pyproject.toml | 2 +-
src/openint/_version.py | 2 +-
4 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index ba6c348..f14b480 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.1.0-alpha.1"
+ ".": "0.1.0-alpha.2"
}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 141f613..0475d3f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,20 @@
# Changelog
+## 0.1.0-alpha.2 (2025-03-05)
+
+Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/openintegrations/python-sdk/compare/v0.1.0-alpha.1...v0.1.0-alpha.2)
+
+### Features
+
+* **api:** manual updates ([#10](https://github.com/openintegrations/python-sdk/issues/10)) ([ee8775b](https://github.com/openintegrations/python-sdk/commit/ee8775bcbe538e4ee176ea6b70613f0e7118627f))
+* **api:** manual updates ([#11](https://github.com/openintegrations/python-sdk/issues/11)) ([035fbea](https://github.com/openintegrations/python-sdk/commit/035fbead3a022304829924c9996f434a7cd4a593))
+* **api:** manual updates ([#12](https://github.com/openintegrations/python-sdk/issues/12)) ([6dfc2e8](https://github.com/openintegrations/python-sdk/commit/6dfc2e881d3b6b113a597c2a9251a00c3203ce84))
+* **api:** manual updates ([#13](https://github.com/openintegrations/python-sdk/issues/13)) ([224a7a0](https://github.com/openintegrations/python-sdk/commit/224a7a02297b3b06218ae5f8297c1e829cb91037))
+* **api:** manual updates ([#7](https://github.com/openintegrations/python-sdk/issues/7)) ([6b05d11](https://github.com/openintegrations/python-sdk/commit/6b05d115709fed32c7c6884621ac0959abf75ea1))
+* **api:** manual updates ([#8](https://github.com/openintegrations/python-sdk/issues/8)) ([5054460](https://github.com/openintegrations/python-sdk/commit/5054460f4d5e441afd71fe29a1ab3ef11ec82cba))
+* **api:** manual updates ([#9](https://github.com/openintegrations/python-sdk/issues/9)) ([ac996eb](https://github.com/openintegrations/python-sdk/commit/ac996ebde3816be7fcef375087d13d62d85374f0))
+* **docs:** updating documented docs for mintlify ([#5](https://github.com/openintegrations/python-sdk/issues/5)) ([80624c2](https://github.com/openintegrations/python-sdk/commit/80624c2bfe3e06d971af96da9a629123b7920290))
+
## 0.1.0-alpha.1 (2025-03-04)
Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/openintegrations/python-sdk/compare/v0.0.1-alpha.0...v0.1.0-alpha.1)
diff --git a/pyproject.toml b/pyproject.toml
index b8d0077..107d19a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "openint"
-version = "0.1.0-alpha.1"
+version = "0.1.0-alpha.2"
description = "The official Python library for the Openint API"
dynamic = ["readme"]
license = "Apache-2.0"
diff --git a/src/openint/_version.py b/src/openint/_version.py
index 3ce24e1..5f81e4c 100644
--- a/src/openint/_version.py
+++ b/src/openint/_version.py
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
__title__ = "openint"
-__version__ = "0.1.0-alpha.1" # x-release-please-version
+__version__ = "0.1.0-alpha.2" # x-release-please-version