Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ dynamic = ["version"]

[tool.poetry]
name = "pipedream"
version = "1.1.6"
version = "1.1.7"
description = ""
readme = "README.md"
authors = []
Expand Down
21 changes: 20 additions & 1 deletion src/pipedream/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import typing

import httpx
from .types.project_environment import ProjectEnvironment
from ._.types.project_environment import ProjectEnvironment
from .core.api_error import ApiError
from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from .core.oauth_token_provider import AsyncOAuthTokenProvider, OAuthTokenProvider
Expand All @@ -27,6 +27,7 @@
from .triggers.client import AsyncTriggersClient, TriggersClient
from .usage.client import AsyncUsageClient, UsageClient
from .users.client import AsyncUsersClient, UsersClient
from .webhooks.client import AsyncWebhooksClient, WebhooksClient


class Client:
Expand Down Expand Up @@ -188,6 +189,7 @@ def __init__(
self._actions: typing.Optional[ActionsClient] = None
self._triggers: typing.Optional[TriggersClient] = None
self._deployed_triggers: typing.Optional[DeployedTriggersClient] = None
self._webhooks: typing.Optional[WebhooksClient] = None
self._projects: typing.Optional[ProjectsClient] = None
self._file_stash: typing.Optional[FileStashClient] = None
self._proxy: typing.Optional[ProxyClient] = None
Expand Down Expand Up @@ -259,6 +261,14 @@ def deployed_triggers(self):
self._deployed_triggers = DeployedTriggersClient(client_wrapper=self._client_wrapper)
return self._deployed_triggers

@property
def webhooks(self):
if self._webhooks is None:
from .webhooks.client import WebhooksClient # noqa: E402

self._webhooks = WebhooksClient(client_wrapper=self._client_wrapper)
return self._webhooks

@property
def projects(self):
if self._projects is None:
Expand Down Expand Up @@ -468,6 +478,7 @@ def __init__(
self._actions: typing.Optional[AsyncActionsClient] = None
self._triggers: typing.Optional[AsyncTriggersClient] = None
self._deployed_triggers: typing.Optional[AsyncDeployedTriggersClient] = None
self._webhooks: typing.Optional[AsyncWebhooksClient] = None
self._projects: typing.Optional[AsyncProjectsClient] = None
self._file_stash: typing.Optional[AsyncFileStashClient] = None
self._proxy: typing.Optional[AsyncProxyClient] = None
Expand Down Expand Up @@ -539,6 +550,14 @@ def deployed_triggers(self):
self._deployed_triggers = AsyncDeployedTriggersClient(client_wrapper=self._client_wrapper)
return self._deployed_triggers

@property
def webhooks(self):
if self._webhooks is None:
from .webhooks.client import AsyncWebhooksClient # noqa: E402

self._webhooks = AsyncWebhooksClient(client_wrapper=self._client_wrapper)
return self._webhooks

@property
def projects(self):
if self._projects is None:
Expand Down
6 changes: 3 additions & 3 deletions src/pipedream/core/client_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import typing

import httpx
from ..types.project_environment import ProjectEnvironment
from .._.types.project_environment import ProjectEnvironment
from .http_client import AsyncHttpClient, HttpClient


Expand All @@ -27,10 +27,10 @@ def __init__(

def get_headers(self) -> typing.Dict[str, str]:
headers: typing.Dict[str, str] = {
"User-Agent": "pipedream/1.1.6",
"User-Agent": "pipedream/1.1.7",
"X-Fern-Language": "Python",
"X-Fern-SDK-Name": "pipedream",
"X-Fern-SDK-Version": "1.1.6",
"X-Fern-SDK-Version": "1.1.7",
**(self.get_custom_headers() or {}),
}
if self._project_environment is not None:
Expand Down
226 changes: 220 additions & 6 deletions src/pipedream/deployed_triggers/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
from ..types.get_trigger_webhooks_response import GetTriggerWebhooksResponse
from ..types.get_trigger_workflows_response import GetTriggerWorkflowsResponse
from ..types.get_triggers_response import GetTriggersResponse
from ..types.get_webhook_with_signing_key_response import GetWebhookWithSigningKeyResponse
from ..types.update_trigger_webhooks_response import UpdateTriggerWebhooksResponse
from .raw_client import AsyncRawDeployedTriggersClient, RawDeployedTriggersClient

# this is used as the default value for optional parameters
Expand Down Expand Up @@ -451,9 +453,9 @@ def update_webhooks(
external_user_id: str,
webhook_urls: typing.Sequence[str],
request_options: typing.Optional[RequestOptions] = None,
) -> GetTriggerWebhooksResponse:
) -> UpdateTriggerWebhooksResponse:
"""
Configure webhook URLs to receive trigger events
Configure webhook URLs to receive trigger events. `signing_key` is only returned for OAuth-authenticated requests.

Parameters
----------
Expand All @@ -470,7 +472,7 @@ def update_webhooks(

Returns
-------
GetTriggerWebhooksResponse
UpdateTriggerWebhooksResponse
trigger webhooks updated

Examples
Expand All @@ -494,6 +496,104 @@ def update_webhooks(
)
return _response.data

def retrieve_webhooks(
self,
trigger_id: str,
webhook_id: str,
*,
external_user_id: str,
request_options: typing.Optional[RequestOptions] = None,
) -> GetWebhookWithSigningKeyResponse:
"""
Retrieve a specific webhook for a deployed trigger, including its signing key

Parameters
----------
trigger_id : str

webhook_id : str

external_user_id : str
The external user ID who owns the trigger

request_options : typing.Optional[RequestOptions]
Request-specific configuration.

Returns
-------
GetWebhookWithSigningKeyResponse
trigger webhook retrieved

Examples
--------
from pipedream import Pipedream

client = Pipedream(
project_id="YOUR_PROJECT_ID",
project_environment="YOUR_PROJECT_ENVIRONMENT",
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
)
client.deployed_triggers.retrieve_webhooks(
trigger_id="trigger_id",
webhook_id="webhook_id",
external_user_id="external_user_id",
)
"""
_response = self._raw_client.retrieve_webhooks(
trigger_id, webhook_id, external_user_id=external_user_id, request_options=request_options
)
return _response.data

def regenerate_webhook_signing_key(
self,
trigger_id: str,
webhook_id: str,
*,
external_user_id: str,
request_options: typing.Optional[RequestOptions] = None,
) -> GetWebhookWithSigningKeyResponse:
"""
Regenerate the signing key for a specific webhook on a deployed trigger

Parameters
----------
trigger_id : str

webhook_id : str

external_user_id : str
The external user ID who owns the trigger

request_options : typing.Optional[RequestOptions]
Request-specific configuration.

Returns
-------
GetWebhookWithSigningKeyResponse
signing key regenerated

Examples
--------
from pipedream import Pipedream

client = Pipedream(
project_id="YOUR_PROJECT_ID",
project_environment="YOUR_PROJECT_ENVIRONMENT",
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
)
client.deployed_triggers.regenerate_webhook_signing_key(
trigger_id="trigger_id",
webhook_id="webhook_id",
external_user_id="external_user_id",
)
"""
_response = self._raw_client.regenerate_webhook_signing_key(
trigger_id, webhook_id, external_user_id=external_user_id, request_options=request_options
)
return _response.data


class AsyncDeployedTriggersClient:
def __init__(self, *, client_wrapper: AsyncClientWrapper):
Expand Down Expand Up @@ -993,9 +1093,9 @@ async def update_webhooks(
external_user_id: str,
webhook_urls: typing.Sequence[str],
request_options: typing.Optional[RequestOptions] = None,
) -> GetTriggerWebhooksResponse:
) -> UpdateTriggerWebhooksResponse:
"""
Configure webhook URLs to receive trigger events
Configure webhook URLs to receive trigger events. `signing_key` is only returned for OAuth-authenticated requests.

Parameters
----------
Expand All @@ -1012,7 +1112,7 @@ async def update_webhooks(

Returns
-------
GetTriggerWebhooksResponse
UpdateTriggerWebhooksResponse
trigger webhooks updated

Examples
Expand Down Expand Up @@ -1043,3 +1143,117 @@ async def main() -> None:
trigger_id, external_user_id=external_user_id, webhook_urls=webhook_urls, request_options=request_options
)
return _response.data

async def retrieve_webhooks(
self,
trigger_id: str,
webhook_id: str,
*,
external_user_id: str,
request_options: typing.Optional[RequestOptions] = None,
) -> GetWebhookWithSigningKeyResponse:
"""
Retrieve a specific webhook for a deployed trigger, including its signing key

Parameters
----------
trigger_id : str

webhook_id : str

external_user_id : str
The external user ID who owns the trigger

request_options : typing.Optional[RequestOptions]
Request-specific configuration.

Returns
-------
GetWebhookWithSigningKeyResponse
trigger webhook retrieved

Examples
--------
import asyncio

from pipedream import AsyncPipedream

client = AsyncPipedream(
project_id="YOUR_PROJECT_ID",
project_environment="YOUR_PROJECT_ENVIRONMENT",
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
)


async def main() -> None:
await client.deployed_triggers.retrieve_webhooks(
trigger_id="trigger_id",
webhook_id="webhook_id",
external_user_id="external_user_id",
)


asyncio.run(main())
"""
_response = await self._raw_client.retrieve_webhooks(
trigger_id, webhook_id, external_user_id=external_user_id, request_options=request_options
)
return _response.data

async def regenerate_webhook_signing_key(
self,
trigger_id: str,
webhook_id: str,
*,
external_user_id: str,
request_options: typing.Optional[RequestOptions] = None,
) -> GetWebhookWithSigningKeyResponse:
"""
Regenerate the signing key for a specific webhook on a deployed trigger

Parameters
----------
trigger_id : str

webhook_id : str

external_user_id : str
The external user ID who owns the trigger

request_options : typing.Optional[RequestOptions]
Request-specific configuration.

Returns
-------
GetWebhookWithSigningKeyResponse
signing key regenerated

Examples
--------
import asyncio

from pipedream import AsyncPipedream

client = AsyncPipedream(
project_id="YOUR_PROJECT_ID",
project_environment="YOUR_PROJECT_ENVIRONMENT",
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
)


async def main() -> None:
await client.deployed_triggers.regenerate_webhook_signing_key(
trigger_id="trigger_id",
webhook_id="webhook_id",
external_user_id="external_user_id",
)


asyncio.run(main())
"""
_response = await self._raw_client.regenerate_webhook_signing_key(
trigger_id, webhook_id, external_user_id=external_user_id, request_options=request_options
)
return _response.data
Loading
Loading