mirror of
https://github.com/Skyvern-AI/skyvern.git
synced 2026-04-26 10:41:14 +00:00
Bump version to 1.0.27 (#5230)
Some checks failed
Auto Create GitHub Release on Version Change / check-version-change (push) Waiting to run
Auto Create GitHub Release on Version Change / create-release (push) Blocked by required conditions
Run tests and pre-commit / Run tests and pre-commit hooks (push) Waiting to run
Run tests and pre-commit / Frontend Lint and Build (push) Waiting to run
Publish Fern Docs / run (push) Waiting to run
Build Skyvern SDK and publish to PyPI / check-version-change (push) Waiting to run
Build Skyvern SDK and publish to PyPI / run-ci (push) Blocked by required conditions
Build Skyvern SDK and publish to PyPI / build-sdk (push) Blocked by required conditions
Build Skyvern TS SDK and publish to npm / check-version-change (push) Waiting to run
Build Skyvern TS SDK and publish to npm / build-and-publish-sdk (push) Blocked by required conditions
zizmor / Audit GitHub Actions (push) Has been cancelled
Some checks failed
Auto Create GitHub Release on Version Change / check-version-change (push) Waiting to run
Auto Create GitHub Release on Version Change / create-release (push) Blocked by required conditions
Run tests and pre-commit / Run tests and pre-commit hooks (push) Waiting to run
Run tests and pre-commit / Frontend Lint and Build (push) Waiting to run
Publish Fern Docs / run (push) Waiting to run
Build Skyvern SDK and publish to PyPI / check-version-change (push) Waiting to run
Build Skyvern SDK and publish to PyPI / run-ci (push) Blocked by required conditions
Build Skyvern SDK and publish to PyPI / build-sdk (push) Blocked by required conditions
Build Skyvern TS SDK and publish to npm / check-version-change (push) Waiting to run
Build Skyvern TS SDK and publish to npm / build-and-publish-sdk (push) Blocked by required conditions
zizmor / Audit GitHub Actions (push) Has been cancelled
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
e4fd342746
commit
87bf4477f2
35 changed files with 6169 additions and 4181 deletions
|
|
@ -124,8 +124,8 @@ repos:
|
|||
entry: ./run_alembic_check.sh
|
||||
language: script
|
||||
stages: [manual]
|
||||
- repo: https://github.com/koalaman/shellcheck-precommit
|
||||
rev: v0.10.0
|
||||
- repo: https://github.com/shellcheck-py/shellcheck-py
|
||||
rev: v0.10.0.1
|
||||
hooks:
|
||||
- id: shellcheck
|
||||
- repo: https://github.com/google/yamlfmt
|
||||
|
|
|
|||
2
mypy.ini
2
mypy.ini
|
|
@ -9,7 +9,7 @@ ignore_missing_imports = True
|
|||
[mypy-skyvern.library.*]
|
||||
ignore_missing_imports = False
|
||||
follow_imports = normal
|
||||
disable_error_code = arg-type, override, return-value, valid-type, no-any-return
|
||||
disable_error_code = arg-type, override, return-value, valid-type, no-any-return, attr-defined
|
||||
|
||||
; Disabling for generated code
|
||||
[mypy-skyvern.client.*]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[project]
|
||||
name = "skyvern"
|
||||
version = "1.0.24"
|
||||
version = "1.0.27"
|
||||
description = ""
|
||||
authors = [{ name = "Skyvern AI", email = "info@skyvern.com" }]
|
||||
requires-python = ">=3.11,<3.14"
|
||||
|
|
|
|||
4
skyvern-ts/client/package-lock.json
generated
4
skyvern-ts/client/package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "@skyvern/client",
|
||||
"version": "1.0.26",
|
||||
"version": "1.0.27",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@skyvern/client",
|
||||
"version": "1.0.26",
|
||||
"version": "1.0.27",
|
||||
"dependencies": {
|
||||
"playwright": "^1.48.0"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@skyvern/client",
|
||||
"version": "1.0.26",
|
||||
"version": "1.0.27",
|
||||
"private": false,
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ export class SkyvernClient {
|
|||
"x-api-key": _options?.apiKey,
|
||||
"X-Fern-Language": "JavaScript",
|
||||
"X-Fern-SDK-Name": "@skyvern/client",
|
||||
"X-Fern-SDK-Version": "1.0.26",
|
||||
"User-Agent": "@skyvern/client/1.0.26",
|
||||
"X-Fern-SDK-Version": "1.0.27",
|
||||
"User-Agent": "@skyvern/client/1.0.27",
|
||||
"X-Fern-Runtime": core.RUNTIME.type,
|
||||
"X-Fern-Runtime-Version": core.RUNTIME.version,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
export const SDK_VERSION = "1.0.26";
|
||||
export const SDK_VERSION = "1.0.27";
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ if typing.TYPE_CHECKING:
|
|||
BrowserSessionResponse,
|
||||
ChangeTierResponse,
|
||||
CheckoutSessionResponse,
|
||||
ClearCacheResponse,
|
||||
ClickAction,
|
||||
ClickActionData,
|
||||
ClickContext,
|
||||
|
|
@ -144,8 +143,6 @@ if typing.TYPE_CHECKING:
|
|||
FileUploadBlock,
|
||||
FileUploadBlockYaml,
|
||||
Folder,
|
||||
FolderCreate,
|
||||
FolderUpdate,
|
||||
ForLoopBlock,
|
||||
ForLoopBlockDataSchema,
|
||||
ForLoopBlockLoopBlocksItem,
|
||||
|
|
@ -289,6 +286,8 @@ if typing.TYPE_CHECKING:
|
|||
NonEmptyPasswordCredential,
|
||||
OnePasswordCredentialParameter,
|
||||
OnePasswordCredentialParameterYaml,
|
||||
OrganizationScheduleItem,
|
||||
OrganizationScheduleListResponse,
|
||||
OtpType,
|
||||
OutputParameter,
|
||||
OutputParameterYaml,
|
||||
|
|
@ -384,7 +383,6 @@ if typing.TYPE_CHECKING:
|
|||
ThoughtType,
|
||||
TotpCode,
|
||||
TotpType,
|
||||
UpdateWorkflowFolderRequest,
|
||||
UploadFileAction,
|
||||
UploadFileActionData,
|
||||
UploadFileResponse,
|
||||
|
|
@ -536,6 +534,11 @@ if typing.TYPE_CHECKING:
|
|||
WorkflowRunStatus,
|
||||
WorkflowRunTimeline,
|
||||
WorkflowRunTimelineType,
|
||||
WorkflowRunTriggerType,
|
||||
WorkflowSchedule,
|
||||
WorkflowScheduleListResponse,
|
||||
WorkflowScheduleResponse,
|
||||
WorkflowScheduleUpsertRequest,
|
||||
WorkflowStatus,
|
||||
WorkflowTriggerBlock,
|
||||
WorkflowTriggerBlockParametersItem,
|
||||
|
|
@ -553,7 +556,8 @@ if typing.TYPE_CHECKING:
|
|||
WorkflowTriggerBlockYaml,
|
||||
)
|
||||
from .errors import BadRequestError, ConflictError, ForbiddenError, NotFoundError, UnprocessableEntityError
|
||||
from . import scripts
|
||||
from . import agent, artifacts, scripts
|
||||
from .agent import ListOrganizationSchedulesApiV1SchedulesGetRequestStatus
|
||||
from .client import AsyncSkyvern, Skyvern
|
||||
from .environment import SkyvernEnvironment
|
||||
from .version import __version__
|
||||
|
|
@ -606,7 +610,6 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"BrowserSessionResponse": ".types",
|
||||
"ChangeTierResponse": ".types",
|
||||
"CheckoutSessionResponse": ".types",
|
||||
"ClearCacheResponse": ".types",
|
||||
"ClickAction": ".types",
|
||||
"ClickActionData": ".types",
|
||||
"ClickContext": ".types",
|
||||
|
|
@ -698,8 +701,6 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"FileUploadBlock": ".types",
|
||||
"FileUploadBlockYaml": ".types",
|
||||
"Folder": ".types",
|
||||
"FolderCreate": ".types",
|
||||
"FolderUpdate": ".types",
|
||||
"ForLoopBlock": ".types",
|
||||
"ForLoopBlockDataSchema": ".types",
|
||||
"ForLoopBlockLoopBlocksItem": ".types",
|
||||
|
|
@ -809,6 +810,7 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"InputTextAction": ".types",
|
||||
"InputTextActionData": ".types",
|
||||
"JinjaBranchCriteria": ".types",
|
||||
"ListOrganizationSchedulesApiV1SchedulesGetRequestStatus": ".agent",
|
||||
"LocateElementAction": ".types",
|
||||
"LoginBlock": ".types",
|
||||
"LoginBlockDataSchema": ".types",
|
||||
|
|
@ -845,6 +847,8 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"NotFoundError": ".errors",
|
||||
"OnePasswordCredentialParameter": ".types",
|
||||
"OnePasswordCredentialParameterYaml": ".types",
|
||||
"OrganizationScheduleItem": ".types",
|
||||
"OrganizationScheduleListResponse": ".types",
|
||||
"OtpType": ".types",
|
||||
"OutputParameter": ".types",
|
||||
"OutputParameterYaml": ".types",
|
||||
|
|
@ -943,7 +947,6 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"TotpCode": ".types",
|
||||
"TotpType": ".types",
|
||||
"UnprocessableEntityError": ".errors",
|
||||
"UpdateWorkflowFolderRequest": ".types",
|
||||
"UploadFileAction": ".types",
|
||||
"UploadFileActionData": ".types",
|
||||
"UploadFileResponse": ".types",
|
||||
|
|
@ -1095,6 +1098,11 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"WorkflowRunStatus": ".types",
|
||||
"WorkflowRunTimeline": ".types",
|
||||
"WorkflowRunTimelineType": ".types",
|
||||
"WorkflowRunTriggerType": ".types",
|
||||
"WorkflowSchedule": ".types",
|
||||
"WorkflowScheduleListResponse": ".types",
|
||||
"WorkflowScheduleResponse": ".types",
|
||||
"WorkflowScheduleUpsertRequest": ".types",
|
||||
"WorkflowStatus": ".types",
|
||||
"WorkflowTriggerBlock": ".types",
|
||||
"WorkflowTriggerBlockParametersItem": ".types",
|
||||
|
|
@ -1111,6 +1119,8 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"WorkflowTriggerBlockParametersItem_Workflow": ".types",
|
||||
"WorkflowTriggerBlockYaml": ".types",
|
||||
"__version__": ".version",
|
||||
"agent": ".agent",
|
||||
"artifacts": ".artifacts",
|
||||
"scripts": ".scripts",
|
||||
}
|
||||
|
||||
|
|
@ -1185,7 +1195,6 @@ __all__ = [
|
|||
"BrowserSessionResponse",
|
||||
"ChangeTierResponse",
|
||||
"CheckoutSessionResponse",
|
||||
"ClearCacheResponse",
|
||||
"ClickAction",
|
||||
"ClickActionData",
|
||||
"ClickContext",
|
||||
|
|
@ -1277,8 +1286,6 @@ __all__ = [
|
|||
"FileUploadBlock",
|
||||
"FileUploadBlockYaml",
|
||||
"Folder",
|
||||
"FolderCreate",
|
||||
"FolderUpdate",
|
||||
"ForLoopBlock",
|
||||
"ForLoopBlockDataSchema",
|
||||
"ForLoopBlockLoopBlocksItem",
|
||||
|
|
@ -1388,6 +1395,7 @@ __all__ = [
|
|||
"InputTextAction",
|
||||
"InputTextActionData",
|
||||
"JinjaBranchCriteria",
|
||||
"ListOrganizationSchedulesApiV1SchedulesGetRequestStatus",
|
||||
"LocateElementAction",
|
||||
"LoginBlock",
|
||||
"LoginBlockDataSchema",
|
||||
|
|
@ -1424,6 +1432,8 @@ __all__ = [
|
|||
"NotFoundError",
|
||||
"OnePasswordCredentialParameter",
|
||||
"OnePasswordCredentialParameterYaml",
|
||||
"OrganizationScheduleItem",
|
||||
"OrganizationScheduleListResponse",
|
||||
"OtpType",
|
||||
"OutputParameter",
|
||||
"OutputParameterYaml",
|
||||
|
|
@ -1522,7 +1532,6 @@ __all__ = [
|
|||
"TotpCode",
|
||||
"TotpType",
|
||||
"UnprocessableEntityError",
|
||||
"UpdateWorkflowFolderRequest",
|
||||
"UploadFileAction",
|
||||
"UploadFileActionData",
|
||||
"UploadFileResponse",
|
||||
|
|
@ -1674,6 +1683,11 @@ __all__ = [
|
|||
"WorkflowRunStatus",
|
||||
"WorkflowRunTimeline",
|
||||
"WorkflowRunTimelineType",
|
||||
"WorkflowRunTriggerType",
|
||||
"WorkflowSchedule",
|
||||
"WorkflowScheduleListResponse",
|
||||
"WorkflowScheduleResponse",
|
||||
"WorkflowScheduleUpsertRequest",
|
||||
"WorkflowStatus",
|
||||
"WorkflowTriggerBlock",
|
||||
"WorkflowTriggerBlockParametersItem",
|
||||
|
|
@ -1690,5 +1704,7 @@ __all__ = [
|
|||
"WorkflowTriggerBlockParametersItem_Workflow",
|
||||
"WorkflowTriggerBlockYaml",
|
||||
"__version__",
|
||||
"agent",
|
||||
"artifacts",
|
||||
"scripts",
|
||||
]
|
||||
|
|
|
|||
34
skyvern/client/agent/__init__.py
Normal file
34
skyvern/client/agent/__init__.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
# This file was auto-generated by Fern from our API Definition.
|
||||
|
||||
# isort: skip_file
|
||||
|
||||
import typing
|
||||
from importlib import import_module
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from .types import ListOrganizationSchedulesApiV1SchedulesGetRequestStatus
|
||||
_dynamic_imports: typing.Dict[str, str] = {"ListOrganizationSchedulesApiV1SchedulesGetRequestStatus": ".types"}
|
||||
|
||||
|
||||
def __getattr__(attr_name: str) -> typing.Any:
|
||||
module_name = _dynamic_imports.get(attr_name)
|
||||
if module_name is None:
|
||||
raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
|
||||
try:
|
||||
module = import_module(module_name, __package__)
|
||||
if module_name == f".{attr_name}":
|
||||
return module
|
||||
else:
|
||||
return getattr(module, attr_name)
|
||||
except ImportError as e:
|
||||
raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
|
||||
except AttributeError as e:
|
||||
raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
|
||||
|
||||
|
||||
def __dir__():
|
||||
lazy_attrs = list(_dynamic_imports.keys())
|
||||
return sorted(lazy_attrs)
|
||||
|
||||
|
||||
__all__ = ["ListOrganizationSchedulesApiV1SchedulesGetRequestStatus"]
|
||||
842
skyvern/client/agent/client.py
Normal file
842
skyvern/client/agent/client.py
Normal file
|
|
@ -0,0 +1,842 @@
|
|||
# This file was auto-generated by Fern from our API Definition.
|
||||
|
||||
import typing
|
||||
|
||||
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
||||
from ..core.request_options import RequestOptions
|
||||
from ..types.organization_schedule_list_response import OrganizationScheduleListResponse
|
||||
from ..types.workflow_schedule_list_response import WorkflowScheduleListResponse
|
||||
from ..types.workflow_schedule_response import WorkflowScheduleResponse
|
||||
from .raw_client import AsyncRawAgentClient, RawAgentClient
|
||||
from .types.list_organization_schedules_api_v1schedules_get_request_status import (
|
||||
ListOrganizationSchedulesApiV1SchedulesGetRequestStatus,
|
||||
)
|
||||
|
||||
# this is used as the default value for optional parameters
|
||||
OMIT = typing.cast(typing.Any, ...)
|
||||
|
||||
|
||||
class AgentClient:
|
||||
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
||||
self._raw_client = RawAgentClient(client_wrapper=client_wrapper)
|
||||
|
||||
@property
|
||||
def with_raw_response(self) -> RawAgentClient:
|
||||
"""
|
||||
Retrieves a raw implementation of this client that returns raw responses.
|
||||
|
||||
Returns
|
||||
-------
|
||||
RawAgentClient
|
||||
"""
|
||||
return self._raw_client
|
||||
|
||||
def list_organization_schedules(
|
||||
self,
|
||||
*,
|
||||
page: typing.Optional[int] = None,
|
||||
page_size: typing.Optional[int] = None,
|
||||
status: typing.Optional[ListOrganizationSchedulesApiV1SchedulesGetRequestStatus] = None,
|
||||
search: typing.Optional[str] = None,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> OrganizationScheduleListResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
page : typing.Optional[int]
|
||||
|
||||
page_size : typing.Optional[int]
|
||||
|
||||
status : typing.Optional[ListOrganizationSchedulesApiV1SchedulesGetRequestStatus]
|
||||
Filter by status: 'active' or 'paused'
|
||||
|
||||
search : typing.Optional[str]
|
||||
Search by workflow title or schedule name
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
OrganizationScheduleListResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
from skyvern import Skyvern
|
||||
|
||||
client = Skyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
client.agent.list_organization_schedules(
|
||||
page=1,
|
||||
page_size=1,
|
||||
status="active",
|
||||
search="search",
|
||||
)
|
||||
"""
|
||||
_response = self._raw_client.list_organization_schedules(
|
||||
page=page, page_size=page_size, status=status, search=search, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
def list_workflow_schedules(
|
||||
self, workflow_permanent_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
||||
) -> WorkflowScheduleListResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleListResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
from skyvern import Skyvern
|
||||
|
||||
client = Skyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
client.agent.list_workflow_schedules(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
)
|
||||
"""
|
||||
_response = self._raw_client.list_workflow_schedules(workflow_permanent_id, request_options=request_options)
|
||||
return _response.data
|
||||
|
||||
def create_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
*,
|
||||
cron_expression: str,
|
||||
timezone: str,
|
||||
enabled: typing.Optional[bool] = OMIT,
|
||||
parameters: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
|
||||
name: typing.Optional[str] = OMIT,
|
||||
description: typing.Optional[str] = OMIT,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
cron_expression : str
|
||||
|
||||
timezone : str
|
||||
|
||||
enabled : typing.Optional[bool]
|
||||
|
||||
parameters : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
||||
|
||||
name : typing.Optional[str]
|
||||
|
||||
description : typing.Optional[str]
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
from skyvern import Skyvern
|
||||
|
||||
client = Skyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
client.agent.create_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
cron_expression="cron_expression",
|
||||
timezone="timezone",
|
||||
)
|
||||
"""
|
||||
_response = self._raw_client.create_workflow_schedule(
|
||||
workflow_permanent_id,
|
||||
cron_expression=cron_expression,
|
||||
timezone=timezone,
|
||||
enabled=enabled,
|
||||
parameters=parameters,
|
||||
name=name,
|
||||
description=description,
|
||||
request_options=request_options,
|
||||
)
|
||||
return _response.data
|
||||
|
||||
def get_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
from skyvern import Skyvern
|
||||
|
||||
client = Skyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
client.agent.get_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
)
|
||||
"""
|
||||
_response = self._raw_client.get_workflow_schedule(
|
||||
workflow_permanent_id, workflow_schedule_id, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
def update_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
cron_expression: str,
|
||||
timezone: str,
|
||||
enabled: typing.Optional[bool] = OMIT,
|
||||
parameters: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
|
||||
name: typing.Optional[str] = OMIT,
|
||||
description: typing.Optional[str] = OMIT,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
cron_expression : str
|
||||
|
||||
timezone : str
|
||||
|
||||
enabled : typing.Optional[bool]
|
||||
|
||||
parameters : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
||||
|
||||
name : typing.Optional[str]
|
||||
|
||||
description : typing.Optional[str]
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
from skyvern import Skyvern
|
||||
|
||||
client = Skyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
client.agent.update_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
cron_expression="cron_expression",
|
||||
timezone="timezone",
|
||||
)
|
||||
"""
|
||||
_response = self._raw_client.update_workflow_schedule(
|
||||
workflow_permanent_id,
|
||||
workflow_schedule_id,
|
||||
cron_expression=cron_expression,
|
||||
timezone=timezone,
|
||||
enabled=enabled,
|
||||
parameters=parameters,
|
||||
name=name,
|
||||
description=description,
|
||||
request_options=request_options,
|
||||
)
|
||||
return _response.data
|
||||
|
||||
def delete_workflow_schedule_route(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> typing.Dict[str, bool]:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
typing.Dict[str, bool]
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
from skyvern import Skyvern
|
||||
|
||||
client = Skyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
client.agent.delete_workflow_schedule_route(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
)
|
||||
"""
|
||||
_response = self._raw_client.delete_workflow_schedule_route(
|
||||
workflow_permanent_id, workflow_schedule_id, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
def enable_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
from skyvern import Skyvern
|
||||
|
||||
client = Skyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
client.agent.enable_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
)
|
||||
"""
|
||||
_response = self._raw_client.enable_workflow_schedule(
|
||||
workflow_permanent_id, workflow_schedule_id, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
def disable_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
from skyvern import Skyvern
|
||||
|
||||
client = Skyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
client.agent.disable_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
)
|
||||
"""
|
||||
_response = self._raw_client.disable_workflow_schedule(
|
||||
workflow_permanent_id, workflow_schedule_id, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
|
||||
class AsyncAgentClient:
|
||||
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
||||
self._raw_client = AsyncRawAgentClient(client_wrapper=client_wrapper)
|
||||
|
||||
@property
|
||||
def with_raw_response(self) -> AsyncRawAgentClient:
|
||||
"""
|
||||
Retrieves a raw implementation of this client that returns raw responses.
|
||||
|
||||
Returns
|
||||
-------
|
||||
AsyncRawAgentClient
|
||||
"""
|
||||
return self._raw_client
|
||||
|
||||
async def list_organization_schedules(
|
||||
self,
|
||||
*,
|
||||
page: typing.Optional[int] = None,
|
||||
page_size: typing.Optional[int] = None,
|
||||
status: typing.Optional[ListOrganizationSchedulesApiV1SchedulesGetRequestStatus] = None,
|
||||
search: typing.Optional[str] = None,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> OrganizationScheduleListResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
page : typing.Optional[int]
|
||||
|
||||
page_size : typing.Optional[int]
|
||||
|
||||
status : typing.Optional[ListOrganizationSchedulesApiV1SchedulesGetRequestStatus]
|
||||
Filter by status: 'active' or 'paused'
|
||||
|
||||
search : typing.Optional[str]
|
||||
Search by workflow title or schedule name
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
OrganizationScheduleListResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
import asyncio
|
||||
|
||||
from skyvern import AsyncSkyvern
|
||||
|
||||
client = AsyncSkyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
await client.agent.list_organization_schedules(
|
||||
page=1,
|
||||
page_size=1,
|
||||
status="active",
|
||||
search="search",
|
||||
)
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
"""
|
||||
_response = await self._raw_client.list_organization_schedules(
|
||||
page=page, page_size=page_size, status=status, search=search, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
async def list_workflow_schedules(
|
||||
self, workflow_permanent_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
||||
) -> WorkflowScheduleListResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleListResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
import asyncio
|
||||
|
||||
from skyvern import AsyncSkyvern
|
||||
|
||||
client = AsyncSkyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
await client.agent.list_workflow_schedules(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
)
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
"""
|
||||
_response = await self._raw_client.list_workflow_schedules(
|
||||
workflow_permanent_id, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
async def create_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
*,
|
||||
cron_expression: str,
|
||||
timezone: str,
|
||||
enabled: typing.Optional[bool] = OMIT,
|
||||
parameters: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
|
||||
name: typing.Optional[str] = OMIT,
|
||||
description: typing.Optional[str] = OMIT,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
cron_expression : str
|
||||
|
||||
timezone : str
|
||||
|
||||
enabled : typing.Optional[bool]
|
||||
|
||||
parameters : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
||||
|
||||
name : typing.Optional[str]
|
||||
|
||||
description : typing.Optional[str]
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
import asyncio
|
||||
|
||||
from skyvern import AsyncSkyvern
|
||||
|
||||
client = AsyncSkyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
await client.agent.create_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
cron_expression="cron_expression",
|
||||
timezone="timezone",
|
||||
)
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
"""
|
||||
_response = await self._raw_client.create_workflow_schedule(
|
||||
workflow_permanent_id,
|
||||
cron_expression=cron_expression,
|
||||
timezone=timezone,
|
||||
enabled=enabled,
|
||||
parameters=parameters,
|
||||
name=name,
|
||||
description=description,
|
||||
request_options=request_options,
|
||||
)
|
||||
return _response.data
|
||||
|
||||
async def get_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
import asyncio
|
||||
|
||||
from skyvern import AsyncSkyvern
|
||||
|
||||
client = AsyncSkyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
await client.agent.get_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
)
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
"""
|
||||
_response = await self._raw_client.get_workflow_schedule(
|
||||
workflow_permanent_id, workflow_schedule_id, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
async def update_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
cron_expression: str,
|
||||
timezone: str,
|
||||
enabled: typing.Optional[bool] = OMIT,
|
||||
parameters: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
|
||||
name: typing.Optional[str] = OMIT,
|
||||
description: typing.Optional[str] = OMIT,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
cron_expression : str
|
||||
|
||||
timezone : str
|
||||
|
||||
enabled : typing.Optional[bool]
|
||||
|
||||
parameters : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
|
||||
|
||||
name : typing.Optional[str]
|
||||
|
||||
description : typing.Optional[str]
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
import asyncio
|
||||
|
||||
from skyvern import AsyncSkyvern
|
||||
|
||||
client = AsyncSkyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
await client.agent.update_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
cron_expression="cron_expression",
|
||||
timezone="timezone",
|
||||
)
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
"""
|
||||
_response = await self._raw_client.update_workflow_schedule(
|
||||
workflow_permanent_id,
|
||||
workflow_schedule_id,
|
||||
cron_expression=cron_expression,
|
||||
timezone=timezone,
|
||||
enabled=enabled,
|
||||
parameters=parameters,
|
||||
name=name,
|
||||
description=description,
|
||||
request_options=request_options,
|
||||
)
|
||||
return _response.data
|
||||
|
||||
async def delete_workflow_schedule_route(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> typing.Dict[str, bool]:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
typing.Dict[str, bool]
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
import asyncio
|
||||
|
||||
from skyvern import AsyncSkyvern
|
||||
|
||||
client = AsyncSkyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
await client.agent.delete_workflow_schedule_route(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
)
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
"""
|
||||
_response = await self._raw_client.delete_workflow_schedule_route(
|
||||
workflow_permanent_id, workflow_schedule_id, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
async def enable_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
import asyncio
|
||||
|
||||
from skyvern import AsyncSkyvern
|
||||
|
||||
client = AsyncSkyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
await client.agent.enable_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
)
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
"""
|
||||
_response = await self._raw_client.enable_workflow_schedule(
|
||||
workflow_permanent_id, workflow_schedule_id, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
|
||||
async def disable_workflow_schedule(
|
||||
self,
|
||||
workflow_permanent_id: str,
|
||||
workflow_schedule_id: str,
|
||||
*,
|
||||
request_options: typing.Optional[RequestOptions] = None,
|
||||
) -> WorkflowScheduleResponse:
|
||||
"""
|
||||
Parameters
|
||||
----------
|
||||
workflow_permanent_id : str
|
||||
|
||||
workflow_schedule_id : str
|
||||
|
||||
request_options : typing.Optional[RequestOptions]
|
||||
Request-specific configuration.
|
||||
|
||||
Returns
|
||||
-------
|
||||
WorkflowScheduleResponse
|
||||
Successful Response
|
||||
|
||||
Examples
|
||||
--------
|
||||
import asyncio
|
||||
|
||||
from skyvern import AsyncSkyvern
|
||||
|
||||
client = AsyncSkyvern(
|
||||
api_key="YOUR_API_KEY",
|
||||
)
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
await client.agent.disable_workflow_schedule(
|
||||
workflow_permanent_id="workflow_permanent_id",
|
||||
workflow_schedule_id="workflow_schedule_id",
|
||||
)
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
"""
|
||||
_response = await self._raw_client.disable_workflow_schedule(
|
||||
workflow_permanent_id, workflow_schedule_id, request_options=request_options
|
||||
)
|
||||
return _response.data
|
||||
1009
skyvern/client/agent/raw_client.py
Normal file
1009
skyvern/client/agent/raw_client.py
Normal file
File diff suppressed because it is too large
Load diff
38
skyvern/client/agent/types/__init__.py
Normal file
38
skyvern/client/agent/types/__init__.py
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# This file was auto-generated by Fern from our API Definition.
|
||||
|
||||
# isort: skip_file
|
||||
|
||||
import typing
|
||||
from importlib import import_module
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from .list_organization_schedules_api_v1schedules_get_request_status import (
|
||||
ListOrganizationSchedulesApiV1SchedulesGetRequestStatus,
|
||||
)
|
||||
_dynamic_imports: typing.Dict[str, str] = {
|
||||
"ListOrganizationSchedulesApiV1SchedulesGetRequestStatus": ".list_organization_schedules_api_v1schedules_get_request_status"
|
||||
}
|
||||
|
||||
|
||||
def __getattr__(attr_name: str) -> typing.Any:
|
||||
module_name = _dynamic_imports.get(attr_name)
|
||||
if module_name is None:
|
||||
raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
|
||||
try:
|
||||
module = import_module(module_name, __package__)
|
||||
if module_name == f".{attr_name}":
|
||||
return module
|
||||
else:
|
||||
return getattr(module, attr_name)
|
||||
except ImportError as e:
|
||||
raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
|
||||
except AttributeError as e:
|
||||
raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
|
||||
|
||||
|
||||
def __dir__():
|
||||
lazy_attrs = list(_dynamic_imports.keys())
|
||||
return sorted(lazy_attrs)
|
||||
|
||||
|
||||
__all__ = ["ListOrganizationSchedulesApiV1SchedulesGetRequestStatus"]
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
# This file was auto-generated by Fern from our API Definition.
|
||||
|
||||
import typing
|
||||
|
||||
ListOrganizationSchedulesApiV1SchedulesGetRequestStatus = typing.Union[typing.Literal["active", "paused"], typing.Any]
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -22,10 +22,10 @@ class BaseClientWrapper:
|
|||
|
||||
def get_headers(self) -> typing.Dict[str, str]:
|
||||
headers: typing.Dict[str, str] = {
|
||||
"User-Agent": "skyvern/1.0.24",
|
||||
"User-Agent": "skyvern/1.0.27",
|
||||
"X-Fern-Language": "Python",
|
||||
"X-Fern-SDK-Name": "skyvern",
|
||||
"X-Fern-SDK-Version": "1.0.24",
|
||||
"X-Fern-SDK-Version": "1.0.27",
|
||||
**(self.get_custom_headers() or {}),
|
||||
}
|
||||
if self._api_key is not None:
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -56,7 +56,6 @@ if typing.TYPE_CHECKING:
|
|||
from .browser_session_response import BrowserSessionResponse
|
||||
from .change_tier_response import ChangeTierResponse
|
||||
from .checkout_session_response import CheckoutSessionResponse
|
||||
from .clear_cache_response import ClearCacheResponse
|
||||
from .click_action import ClickAction
|
||||
from .click_action_data import ClickActionData
|
||||
from .click_context import ClickContext
|
||||
|
|
@ -155,8 +154,6 @@ if typing.TYPE_CHECKING:
|
|||
from .file_upload_block import FileUploadBlock
|
||||
from .file_upload_block_yaml import FileUploadBlockYaml
|
||||
from .folder import Folder
|
||||
from .folder_create import FolderCreate
|
||||
from .folder_update import FolderUpdate
|
||||
from .for_loop_block import ForLoopBlock
|
||||
from .for_loop_block_data_schema import ForLoopBlockDataSchema
|
||||
from .for_loop_block_loop_blocks_item import (
|
||||
|
|
@ -316,6 +313,8 @@ if typing.TYPE_CHECKING:
|
|||
from .non_empty_password_credential import NonEmptyPasswordCredential
|
||||
from .one_password_credential_parameter import OnePasswordCredentialParameter
|
||||
from .one_password_credential_parameter_yaml import OnePasswordCredentialParameterYaml
|
||||
from .organization_schedule_item import OrganizationScheduleItem
|
||||
from .organization_schedule_list_response import OrganizationScheduleListResponse
|
||||
from .otp_type import OtpType
|
||||
from .output_parameter import OutputParameter
|
||||
from .output_parameter_yaml import OutputParameterYaml
|
||||
|
|
@ -419,7 +418,6 @@ if typing.TYPE_CHECKING:
|
|||
from .thought_type import ThoughtType
|
||||
from .totp_code import TotpCode
|
||||
from .totp_type import TotpType
|
||||
from .update_workflow_folder_request import UpdateWorkflowFolderRequest
|
||||
from .upload_file_action import UploadFileAction
|
||||
from .upload_file_action_data import UploadFileActionData
|
||||
from .upload_file_response import UploadFileResponse
|
||||
|
|
@ -585,6 +583,11 @@ if typing.TYPE_CHECKING:
|
|||
from .workflow_run_status import WorkflowRunStatus
|
||||
from .workflow_run_timeline import WorkflowRunTimeline
|
||||
from .workflow_run_timeline_type import WorkflowRunTimelineType
|
||||
from .workflow_run_trigger_type import WorkflowRunTriggerType
|
||||
from .workflow_schedule import WorkflowSchedule
|
||||
from .workflow_schedule_list_response import WorkflowScheduleListResponse
|
||||
from .workflow_schedule_response import WorkflowScheduleResponse
|
||||
from .workflow_schedule_upsert_request import WorkflowScheduleUpsertRequest
|
||||
from .workflow_status import WorkflowStatus
|
||||
from .workflow_trigger_block import WorkflowTriggerBlock
|
||||
from .workflow_trigger_block_parameters_item import (
|
||||
|
|
@ -649,7 +652,6 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"BrowserSessionResponse": ".browser_session_response",
|
||||
"ChangeTierResponse": ".change_tier_response",
|
||||
"CheckoutSessionResponse": ".checkout_session_response",
|
||||
"ClearCacheResponse": ".clear_cache_response",
|
||||
"ClickAction": ".click_action",
|
||||
"ClickActionData": ".click_action_data",
|
||||
"ClickContext": ".click_context",
|
||||
|
|
@ -740,8 +742,6 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"FileUploadBlock": ".file_upload_block",
|
||||
"FileUploadBlockYaml": ".file_upload_block_yaml",
|
||||
"Folder": ".folder",
|
||||
"FolderCreate": ".folder_create",
|
||||
"FolderUpdate": ".folder_update",
|
||||
"ForLoopBlock": ".for_loop_block",
|
||||
"ForLoopBlockDataSchema": ".for_loop_block_data_schema",
|
||||
"ForLoopBlockLoopBlocksItem": ".for_loop_block_loop_blocks_item",
|
||||
|
|
@ -885,6 +885,8 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"NonEmptyPasswordCredential": ".non_empty_password_credential",
|
||||
"OnePasswordCredentialParameter": ".one_password_credential_parameter",
|
||||
"OnePasswordCredentialParameterYaml": ".one_password_credential_parameter_yaml",
|
||||
"OrganizationScheduleItem": ".organization_schedule_item",
|
||||
"OrganizationScheduleListResponse": ".organization_schedule_list_response",
|
||||
"OtpType": ".otp_type",
|
||||
"OutputParameter": ".output_parameter",
|
||||
"OutputParameterYaml": ".output_parameter_yaml",
|
||||
|
|
@ -980,7 +982,6 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"ThoughtType": ".thought_type",
|
||||
"TotpCode": ".totp_code",
|
||||
"TotpType": ".totp_type",
|
||||
"UpdateWorkflowFolderRequest": ".update_workflow_folder_request",
|
||||
"UploadFileAction": ".upload_file_action",
|
||||
"UploadFileActionData": ".upload_file_action_data",
|
||||
"UploadFileResponse": ".upload_file_response",
|
||||
|
|
@ -1132,6 +1133,11 @@ _dynamic_imports: typing.Dict[str, str] = {
|
|||
"WorkflowRunStatus": ".workflow_run_status",
|
||||
"WorkflowRunTimeline": ".workflow_run_timeline",
|
||||
"WorkflowRunTimelineType": ".workflow_run_timeline_type",
|
||||
"WorkflowRunTriggerType": ".workflow_run_trigger_type",
|
||||
"WorkflowSchedule": ".workflow_schedule",
|
||||
"WorkflowScheduleListResponse": ".workflow_schedule_list_response",
|
||||
"WorkflowScheduleResponse": ".workflow_schedule_response",
|
||||
"WorkflowScheduleUpsertRequest": ".workflow_schedule_upsert_request",
|
||||
"WorkflowStatus": ".workflow_status",
|
||||
"WorkflowTriggerBlock": ".workflow_trigger_block",
|
||||
"WorkflowTriggerBlockParametersItem": ".workflow_trigger_block_parameters_item",
|
||||
|
|
@ -1218,7 +1224,6 @@ __all__ = [
|
|||
"BrowserSessionResponse",
|
||||
"ChangeTierResponse",
|
||||
"CheckoutSessionResponse",
|
||||
"ClearCacheResponse",
|
||||
"ClickAction",
|
||||
"ClickActionData",
|
||||
"ClickContext",
|
||||
|
|
@ -1309,8 +1314,6 @@ __all__ = [
|
|||
"FileUploadBlock",
|
||||
"FileUploadBlockYaml",
|
||||
"Folder",
|
||||
"FolderCreate",
|
||||
"FolderUpdate",
|
||||
"ForLoopBlock",
|
||||
"ForLoopBlockDataSchema",
|
||||
"ForLoopBlockLoopBlocksItem",
|
||||
|
|
@ -1454,6 +1457,8 @@ __all__ = [
|
|||
"NonEmptyPasswordCredential",
|
||||
"OnePasswordCredentialParameter",
|
||||
"OnePasswordCredentialParameterYaml",
|
||||
"OrganizationScheduleItem",
|
||||
"OrganizationScheduleListResponse",
|
||||
"OtpType",
|
||||
"OutputParameter",
|
||||
"OutputParameterYaml",
|
||||
|
|
@ -1549,7 +1554,6 @@ __all__ = [
|
|||
"ThoughtType",
|
||||
"TotpCode",
|
||||
"TotpType",
|
||||
"UpdateWorkflowFolderRequest",
|
||||
"UploadFileAction",
|
||||
"UploadFileActionData",
|
||||
"UploadFileResponse",
|
||||
|
|
@ -1701,6 +1705,11 @@ __all__ = [
|
|||
"WorkflowRunStatus",
|
||||
"WorkflowRunTimeline",
|
||||
"WorkflowRunTimelineType",
|
||||
"WorkflowRunTriggerType",
|
||||
"WorkflowSchedule",
|
||||
"WorkflowScheduleListResponse",
|
||||
"WorkflowScheduleResponse",
|
||||
"WorkflowScheduleUpsertRequest",
|
||||
"WorkflowStatus",
|
||||
"WorkflowTriggerBlock",
|
||||
"WorkflowTriggerBlockParametersItem",
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ class Artifact(UniversalBaseModel):
|
|||
artifact_id: str
|
||||
artifact_type: ArtifactType
|
||||
uri: str
|
||||
bundle_key: typing.Optional[str] = None
|
||||
task_id: typing.Optional[str] = None
|
||||
step_id: typing.Optional[str] = None
|
||||
workflow_run_id: typing.Optional[str] = None
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ ArtifactType = typing.Union[
|
|||
"har",
|
||||
"script_file",
|
||||
"pdf",
|
||||
"step_archive",
|
||||
"task_archive",
|
||||
],
|
||||
typing.Any,
|
||||
]
|
||||
|
|
|
|||
|
|
@ -43,6 +43,11 @@ class CredentialResponse(UniversalBaseModel):
|
|||
Login page URL used during the credential test
|
||||
"""
|
||||
|
||||
user_context: typing.Optional[str] = pydantic.Field(default=None)
|
||||
"""
|
||||
User-provided context describing the login sequence (e.g., 'click SSO button first')
|
||||
"""
|
||||
|
||||
if IS_PYDANTIC_V2:
|
||||
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
||||
else:
|
||||
|
|
|
|||
32
skyvern/client/types/organization_schedule_item.py
Normal file
32
skyvern/client/types/organization_schedule_item.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# This file was auto-generated by Fern from our API Definition.
|
||||
|
||||
import datetime as dt
|
||||
import typing
|
||||
|
||||
import pydantic
|
||||
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
||||
|
||||
|
||||
class OrganizationScheduleItem(UniversalBaseModel):
|
||||
workflow_schedule_id: str
|
||||
organization_id: str
|
||||
workflow_permanent_id: str
|
||||
workflow_title: str
|
||||
cron_expression: str
|
||||
timezone: str
|
||||
enabled: bool
|
||||
parameters: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
|
||||
name: typing.Optional[str] = None
|
||||
description: typing.Optional[str] = None
|
||||
next_run: typing.Optional[dt.datetime] = None
|
||||
created_at: dt.datetime
|
||||
modified_at: dt.datetime
|
||||
|
||||
if IS_PYDANTIC_V2:
|
||||
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
||||
else:
|
||||
|
||||
class Config:
|
||||
frozen = True
|
||||
smart_union = True
|
||||
extra = pydantic.Extra.allow
|
||||
|
|
@ -4,10 +4,14 @@ import typing
|
|||
|
||||
import pydantic
|
||||
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
||||
from .organization_schedule_item import OrganizationScheduleItem
|
||||
|
||||
|
||||
class UpdateWorkflowFolderRequest(UniversalBaseModel):
|
||||
folder_id: typing.Optional[str] = pydantic.Field(default=None)
|
||||
class OrganizationScheduleListResponse(UniversalBaseModel):
|
||||
schedules: typing.List[OrganizationScheduleItem]
|
||||
total_count: int
|
||||
page: int
|
||||
page_size: int
|
||||
|
||||
if IS_PYDANTIC_V2:
|
||||
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
||||
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
import typing
|
||||
|
||||
PersistentBrowserType = typing.Union[typing.Literal["msedge", "chrome"], typing.Any]
|
||||
PersistentBrowserType = typing.Union[typing.Literal["msedge", "chrome", "stealth-chromium"], typing.Any]
|
||||
|
|
|
|||
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
import typing
|
||||
|
||||
PlanTier = typing.Union[typing.Literal["free", "hobby", "pro"], typing.Any]
|
||||
PlanTier = typing.Union[typing.Literal["free", "hobby", "pro", "enterprise"], typing.Any]
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ class Workflow(UniversalBaseModel):
|
|||
ai_fallback: typing.Optional[bool] = None
|
||||
cache_key: typing.Optional[str] = None
|
||||
adaptive_caching: typing.Optional[bool] = None
|
||||
code_version: typing.Optional[int] = None
|
||||
generate_script_on_terminal: typing.Optional[bool] = None
|
||||
run_sequentially: typing.Optional[bool] = None
|
||||
sequential_key: typing.Optional[str] = None
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ class WorkflowCreateYamlRequest(UniversalBaseModel):
|
|||
ai_fallback: typing.Optional[bool] = None
|
||||
cache_key: typing.Optional[str] = None
|
||||
adaptive_caching: typing.Optional[bool] = None
|
||||
code_version: typing.Optional[int] = None
|
||||
generate_script_on_terminal: typing.Optional[bool] = None
|
||||
run_sequentially: typing.Optional[bool] = None
|
||||
sequential_key: typing.Optional[str] = None
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|||
from .script_run_response import ScriptRunResponse
|
||||
from .workflow_run_proxy_location import WorkflowRunProxyLocation
|
||||
from .workflow_run_status import WorkflowRunStatus
|
||||
from .workflow_run_trigger_type import WorkflowRunTriggerType
|
||||
|
||||
|
||||
class WorkflowRun(UniversalBaseModel):
|
||||
|
|
@ -37,9 +38,8 @@ class WorkflowRun(UniversalBaseModel):
|
|||
sequential_key: typing.Optional[str] = None
|
||||
ai_fallback: typing.Optional[bool] = None
|
||||
code_gen: typing.Optional[bool] = None
|
||||
waiting_for_verification_code: typing.Optional[bool] = None
|
||||
verification_code_identifier: typing.Optional[str] = None
|
||||
verification_code_polling_started_at: typing.Optional[dt.datetime] = None
|
||||
trigger_type: typing.Optional[WorkflowRunTriggerType] = None
|
||||
workflow_schedule_id: typing.Optional[str] = None
|
||||
queued_at: typing.Optional[dt.datetime] = None
|
||||
started_at: typing.Optional[dt.datetime] = None
|
||||
finished_at: typing.Optional[dt.datetime] = None
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ class WorkflowRunBlock(UniversalBaseModel):
|
|||
output: typing.Optional[WorkflowRunBlockOutput] = None
|
||||
continue_on_failure: typing.Optional[bool] = None
|
||||
failure_reason: typing.Optional[str] = None
|
||||
error_codes: typing.Optional[typing.List[str]] = None
|
||||
engine: typing.Optional[RunEngine] = None
|
||||
task_id: typing.Optional[str] = None
|
||||
url: typing.Optional[str] = None
|
||||
|
|
|
|||
5
skyvern/client/types/workflow_run_trigger_type.py
Normal file
5
skyvern/client/types/workflow_run_trigger_type.py
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# This file was auto-generated by Fern from our API Definition.
|
||||
|
||||
import typing
|
||||
|
||||
WorkflowRunTriggerType = typing.Union[typing.Literal["manual", "api", "scheduled"], typing.Any]
|
||||
32
skyvern/client/types/workflow_schedule.py
Normal file
32
skyvern/client/types/workflow_schedule.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# This file was auto-generated by Fern from our API Definition.
|
||||
|
||||
import datetime as dt
|
||||
import typing
|
||||
|
||||
import pydantic
|
||||
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
||||
|
||||
|
||||
class WorkflowSchedule(UniversalBaseModel):
|
||||
workflow_schedule_id: str
|
||||
organization_id: str
|
||||
workflow_permanent_id: str
|
||||
cron_expression: str
|
||||
timezone: str
|
||||
enabled: bool
|
||||
parameters: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
|
||||
temporal_schedule_id: typing.Optional[str] = None
|
||||
name: typing.Optional[str] = None
|
||||
description: typing.Optional[str] = None
|
||||
created_at: dt.datetime
|
||||
modified_at: dt.datetime
|
||||
deleted_at: typing.Optional[dt.datetime] = None
|
||||
|
||||
if IS_PYDANTIC_V2:
|
||||
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
||||
else:
|
||||
|
||||
class Config:
|
||||
frozen = True
|
||||
smart_union = True
|
||||
extra = pydantic.Extra.allow
|
||||
|
|
@ -4,11 +4,11 @@ import typing
|
|||
|
||||
import pydantic
|
||||
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
||||
from .workflow_schedule import WorkflowSchedule
|
||||
|
||||
|
||||
class FolderCreate(UniversalBaseModel):
|
||||
title: str = pydantic.Field()
|
||||
description: typing.Optional[str] = pydantic.Field(default=None)
|
||||
class WorkflowScheduleListResponse(UniversalBaseModel):
|
||||
schedules: typing.List[WorkflowSchedule]
|
||||
|
||||
if IS_PYDANTIC_V2:
|
||||
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
||||
|
|
@ -1,14 +1,16 @@
|
|||
# This file was auto-generated by Fern from our API Definition.
|
||||
|
||||
import datetime as dt
|
||||
import typing
|
||||
|
||||
import pydantic
|
||||
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
||||
from .workflow_schedule import WorkflowSchedule
|
||||
|
||||
|
||||
class FolderUpdate(UniversalBaseModel):
|
||||
title: typing.Optional[str] = pydantic.Field(default=None)
|
||||
description: typing.Optional[str] = pydantic.Field(default=None)
|
||||
class WorkflowScheduleResponse(UniversalBaseModel):
|
||||
schedule: WorkflowSchedule
|
||||
next_runs: typing.Optional[typing.List[dt.datetime]] = None
|
||||
|
||||
if IS_PYDANTIC_V2:
|
||||
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
||||
|
|
@ -6,20 +6,13 @@ import pydantic
|
|||
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
||||
|
||||
|
||||
class ClearCacheResponse(UniversalBaseModel):
|
||||
"""
|
||||
Response model for cache clearing operations.
|
||||
"""
|
||||
|
||||
deleted_count: int = pydantic.Field()
|
||||
"""
|
||||
Number of cached entries deleted
|
||||
"""
|
||||
|
||||
message: str = pydantic.Field()
|
||||
"""
|
||||
Status message
|
||||
"""
|
||||
class WorkflowScheduleUpsertRequest(UniversalBaseModel):
|
||||
cron_expression: str
|
||||
timezone: str
|
||||
enabled: typing.Optional[bool] = None
|
||||
parameters: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
|
||||
name: typing.Optional[str] = None
|
||||
description: typing.Optional[str] = None
|
||||
|
||||
if IS_PYDANTIC_V2:
|
||||
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
||||
|
|
@ -46,7 +46,7 @@ def test_raw_client_delete_folder_raises_not_found_on_empty_404() -> None:
|
|||
status_code=404,
|
||||
text="",
|
||||
headers={},
|
||||
json=Mock(side_effect=AssertionError("json() should not be called for empty 404 delete responses")),
|
||||
json=Mock(return_value=None),
|
||||
)
|
||||
client = RawSkyvern(
|
||||
client_wrapper=SimpleNamespace(httpx_client=SimpleNamespace(request=Mock(return_value=response)))
|
||||
|
|
@ -62,7 +62,7 @@ async def test_async_raw_client_delete_folder_raises_not_found_on_empty_404() ->
|
|||
status_code=404,
|
||||
text="",
|
||||
headers={},
|
||||
json=Mock(side_effect=AssertionError("json() should not be called for empty 404 delete responses")),
|
||||
json=Mock(return_value=None),
|
||||
)
|
||||
client = AsyncRawSkyvern(
|
||||
client_wrapper=SimpleNamespace(httpx_client=SimpleNamespace(request=AsyncMock(return_value=response)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue