From 1b5fad9743fb6ea25ecebf0001a9e7c22db72d15 Mon Sep 17 00:00:00 2001 From: Shuchang Zheng Date: Tue, 21 Oct 2025 14:25:45 -0700 Subject: [PATCH] update skyvern client (#3733) --- skyvern/client/__init__.py | 118 +++ skyvern/client/client.py | 987 +++++++++++++++++- skyvern/client/core/client_wrapper.py | 2 +- skyvern/client/core/http_client.py | 10 - skyvern/client/environment.py | 2 +- skyvern/client/scripts/__init__.py | 2 + skyvern/client/scripts/client.py | 149 +++ skyvern/client/types/__init__.py | 116 ++ skyvern/client/types/action.py | 59 ++ skyvern/client/types/action_block.py | 2 + .../types/action_block_parameters_item.py | 47 + skyvern/client/types/action_block_yaml.py | 1 + skyvern/client/types/action_status.py | 5 + skyvern/client/types/action_type.py | 29 + skyvern/client/types/artifact_type.py | 1 + .../client/types/azure_secret_parameter.py | 27 + .../types/azure_vault_credential_parameter.py | 30 + .../azure_vault_credential_parameter_yaml.py | 24 + skyvern/client/types/block_type.py | 29 + .../client/types/browser_session_response.py | 21 + skyvern/client/types/code_block.py | 1 + .../types/code_block_parameters_item.py | 47 + .../client/types/context_parameter_source.py | 47 + .../client/types/create_script_response.py | 49 + skyvern/client/types/download_to_s3block.py | 1 + skyvern/client/types/extraction_block.py | 2 + .../types/extraction_block_parameters_item.py | 47 + skyvern/client/types/extraction_block_yaml.py | 1 + skyvern/client/types/file_download_block.py | 2 + .../file_download_block_parameters_item.py | 47 + .../client/types/file_download_block_yaml.py | 2 + skyvern/client/types/file_encoding.py | 5 + skyvern/client/types/file_info.py | 6 + skyvern/client/types/file_node.py | 57 + skyvern/client/types/file_parser_block.py | 4 +- .../client/types/file_parser_block_yaml.py | 3 +- skyvern/client/types/file_storage_type.py | 2 +- skyvern/client/types/file_type.py | 2 +- skyvern/client/types/file_upload_block.py | 4 + .../client/types/file_upload_block_yaml.py | 4 + skyvern/client/types/for_loop_block.py | 1 + .../types/for_loop_block_loop_blocks_item.py | 34 +- .../client/types/for_loop_block_loop_over.py | 47 + .../for_loop_block_yaml_loop_blocks_item.py | 16 +- skyvern/client/types/get_run_response.py | 15 + skyvern/client/types/http_request_block.py | 1 + .../http_request_block_parameters_item.py | 47 + .../client/types/input_or_select_context.py | 24 + skyvern/client/types/login_block.py | 2 + .../types/login_block_parameters_item.py | 47 + skyvern/client/types/login_block_yaml.py | 1 + skyvern/client/types/navigation_block.py | 2 + .../types/navigation_block_parameters_item.py | 47 + skyvern/client/types/navigation_block_yaml.py | 1 + .../types/non_empty_password_credential.py | 6 + skyvern/client/types/otp_type.py | 5 + .../types/password_credential_response.py | 8 +- skyvern/client/types/pdf_parser_block.py | 6 + skyvern/client/types/script.py | 58 + skyvern/client/types/script_file_create.py | 42 + skyvern/client/types/script_run_response.py | 19 + skyvern/client/types/select_option.py | 21 + skyvern/client/types/send_email_block.py | 1 + ...vern_schemas_run_blocks_credential_type.py | 4 +- skyvern/client/types/task_block.py | 2 + .../types/task_block_parameters_item.py | 47 + skyvern/client/types/task_block_yaml.py | 1 + skyvern/client/types/task_run_request.py | 31 +- skyvern/client/types/task_run_response.py | 11 + skyvern/client/types/task_v2block.py | 1 + skyvern/client/types/task_v2block_yaml.py | 1 + skyvern/client/types/text_prompt_block.py | 1 + .../text_prompt_block_parameters_item.py | 47 + skyvern/client/types/thought.py | 42 + skyvern/client/types/thought_scenario.py | 17 + skyvern/client/types/thought_type.py | 7 + skyvern/client/types/totp_code.py | 6 + skyvern/client/types/totp_type.py | 5 + skyvern/client/types/upload_to_s3block.py | 1 + skyvern/client/types/url_block.py | 2 + .../client/types/url_block_parameters_item.py | 47 + skyvern/client/types/user_defined_error.py | 21 + skyvern/client/types/validation_block.py | 2 + .../types/validation_block_parameters_item.py | 47 + skyvern/client/types/validation_block_yaml.py | 1 + skyvern/client/types/wait_block.py | 1 + .../types/wait_block_parameters_item.py | 47 + skyvern/client/types/workflow.py | 5 + .../types/workflow_create_yaml_request.py | 5 + .../types/workflow_definition_blocks_item.py | 34 +- .../workflow_definition_parameters_item.py | 47 + .../workflow_definition_yaml_blocks_item.py | 16 +- ...orkflow_definition_yaml_parameters_item.py | 20 + skyvern/client/types/workflow_run_block.py | 58 + .../types/workflow_run_block_data_schema.py | 7 + .../workflow_run_block_navigation_payload.py | 7 + .../client/types/workflow_run_block_output.py | 7 + skyvern/client/types/workflow_run_request.py | 23 +- skyvern/client/types/workflow_run_response.py | 21 + skyvern/client/types/workflow_run_timeline.py | 33 + .../types/workflow_run_timeline_type.py | 5 + 101 files changed, 3069 insertions(+), 56 deletions(-) create mode 100644 skyvern/client/scripts/__init__.py create mode 100644 skyvern/client/scripts/client.py create mode 100644 skyvern/client/types/action.py create mode 100644 skyvern/client/types/action_status.py create mode 100644 skyvern/client/types/action_type.py create mode 100644 skyvern/client/types/azure_secret_parameter.py create mode 100644 skyvern/client/types/azure_vault_credential_parameter.py create mode 100644 skyvern/client/types/azure_vault_credential_parameter_yaml.py create mode 100644 skyvern/client/types/block_type.py create mode 100644 skyvern/client/types/create_script_response.py create mode 100644 skyvern/client/types/file_encoding.py create mode 100644 skyvern/client/types/file_node.py create mode 100644 skyvern/client/types/input_or_select_context.py create mode 100644 skyvern/client/types/otp_type.py create mode 100644 skyvern/client/types/script.py create mode 100644 skyvern/client/types/script_file_create.py create mode 100644 skyvern/client/types/script_run_response.py create mode 100644 skyvern/client/types/select_option.py create mode 100644 skyvern/client/types/thought.py create mode 100644 skyvern/client/types/thought_scenario.py create mode 100644 skyvern/client/types/thought_type.py create mode 100644 skyvern/client/types/totp_type.py create mode 100644 skyvern/client/types/user_defined_error.py create mode 100644 skyvern/client/types/workflow_run_block.py create mode 100644 skyvern/client/types/workflow_run_block_data_schema.py create mode 100644 skyvern/client/types/workflow_run_block_navigation_payload.py create mode 100644 skyvern/client/types/workflow_run_block_output.py create mode 100644 skyvern/client/types/workflow_run_timeline.py create mode 100644 skyvern/client/types/workflow_run_timeline_type.py diff --git a/skyvern/client/__init__.py b/skyvern/client/__init__.py index 91af53c1..f186c57d 100644 --- a/skyvern/client/__init__.py +++ b/skyvern/client/__init__.py @@ -1,10 +1,13 @@ # This file was auto-generated by Fern from our API Definition. from .types import ( + Action, ActionBlock, ActionBlockDataSchema, ActionBlockParametersItem, ActionBlockParametersItem_AwsSecret, + ActionBlockParametersItem_AzureSecret, + ActionBlockParametersItem_AzureVaultCredential, ActionBlockParametersItem_BitwardenCreditCardData, ActionBlockParametersItem_BitwardenLoginCredential, ActionBlockParametersItem_BitwardenSensitiveInformation, @@ -14,20 +17,28 @@ from .types import ( ActionBlockParametersItem_Output, ActionBlockParametersItem_Workflow, ActionBlockYaml, + ActionStatus, + ActionType, Artifact, ArtifactType, AwsSecretParameter, AwsSecretParameterYaml, + AzureSecretParameter, + AzureVaultCredentialParameter, + AzureVaultCredentialParameterYaml, BitwardenCreditCardDataParameter, BitwardenCreditCardDataParameterYaml, BitwardenLoginCredentialParameter, BitwardenLoginCredentialParameterYaml, BitwardenSensitiveInformationParameter, BitwardenSensitiveInformationParameterYaml, + BlockType, BrowserSessionResponse, CodeBlock, CodeBlockParametersItem, CodeBlockParametersItem_AwsSecret, + CodeBlockParametersItem_AzureSecret, + CodeBlockParametersItem_AzureVaultCredential, CodeBlockParametersItem_BitwardenCreditCardData, CodeBlockParametersItem_BitwardenLoginCredential, CodeBlockParametersItem_BitwardenSensitiveInformation, @@ -40,6 +51,8 @@ from .types import ( ContextParameter, ContextParameterSource, ContextParameterSource_AwsSecret, + ContextParameterSource_AzureSecret, + ContextParameterSource_AzureVaultCredential, ContextParameterSource_BitwardenCreditCardData, ContextParameterSource_BitwardenLoginCredential, ContextParameterSource_BitwardenSensitiveInformation, @@ -51,6 +64,7 @@ from .types import ( ContextParameterValue, ContextParameterYaml, CreateCredentialRequestCredential, + CreateScriptResponse, CredentialParameter, CredentialParameterYaml, CredentialResponse, @@ -63,6 +77,8 @@ from .types import ( ExtractionBlockDataSchema, ExtractionBlockParametersItem, ExtractionBlockParametersItem_AwsSecret, + ExtractionBlockParametersItem_AzureSecret, + ExtractionBlockParametersItem_AzureVaultCredential, ExtractionBlockParametersItem_BitwardenCreditCardData, ExtractionBlockParametersItem_BitwardenLoginCredential, ExtractionBlockParametersItem_BitwardenSensitiveInformation, @@ -77,6 +93,8 @@ from .types import ( FileDownloadBlockDataSchema, FileDownloadBlockParametersItem, FileDownloadBlockParametersItem_AwsSecret, + FileDownloadBlockParametersItem_AzureSecret, + FileDownloadBlockParametersItem_AzureVaultCredential, FileDownloadBlockParametersItem_BitwardenCreditCardData, FileDownloadBlockParametersItem_BitwardenLoginCredential, FileDownloadBlockParametersItem_BitwardenSensitiveInformation, @@ -86,7 +104,9 @@ from .types import ( FileDownloadBlockParametersItem_Output, FileDownloadBlockParametersItem_Workflow, FileDownloadBlockYaml, + FileEncoding, FileInfo, + FileNode, FileParserBlock, FileParserBlockYaml, FileStorageType, @@ -117,6 +137,8 @@ from .types import ( ForLoopBlockLoopBlocksItem_Wait, ForLoopBlockLoopOver, ForLoopBlockLoopOver_AwsSecret, + ForLoopBlockLoopOver_AzureSecret, + ForLoopBlockLoopOver_AzureVaultCredential, ForLoopBlockLoopOver_BitwardenCreditCardData, ForLoopBlockLoopOver_BitwardenLoginCredential, ForLoopBlockLoopOver_BitwardenSensitiveInformation, @@ -157,6 +179,8 @@ from .types import ( HttpRequestBlock, HttpRequestBlockParametersItem, HttpRequestBlockParametersItem_AwsSecret, + HttpRequestBlockParametersItem_AzureSecret, + HttpRequestBlockParametersItem_AzureVaultCredential, HttpRequestBlockParametersItem_BitwardenCreditCardData, HttpRequestBlockParametersItem_BitwardenLoginCredential, HttpRequestBlockParametersItem_BitwardenSensitiveInformation, @@ -167,10 +191,13 @@ from .types import ( HttpRequestBlockParametersItem_Workflow, HttpRequestBlockYaml, HttpValidationError, + InputOrSelectContext, LoginBlock, LoginBlockDataSchema, LoginBlockParametersItem, LoginBlockParametersItem_AwsSecret, + LoginBlockParametersItem_AzureSecret, + LoginBlockParametersItem_AzureVaultCredential, LoginBlockParametersItem_BitwardenCreditCardData, LoginBlockParametersItem_BitwardenLoginCredential, LoginBlockParametersItem_BitwardenSensitiveInformation, @@ -184,6 +211,8 @@ from .types import ( NavigationBlockDataSchema, NavigationBlockParametersItem, NavigationBlockParametersItem_AwsSecret, + NavigationBlockParametersItem_AzureSecret, + NavigationBlockParametersItem_AzureVaultCredential, NavigationBlockParametersItem_BitwardenCreditCardData, NavigationBlockParametersItem_BitwardenLoginCredential, NavigationBlockParametersItem_BitwardenSensitiveInformation, @@ -197,6 +226,7 @@ from .types import ( NonEmptyPasswordCredential, OnePasswordCredentialParameter, OnePasswordCredentialParameterYaml, + OtpType, OutputParameter, OutputParameterYaml, PasswordCredentialResponse, @@ -205,6 +235,10 @@ from .types import ( ProxyLocation, RunEngine, RunStatus, + Script, + ScriptFileCreate, + ScriptRunResponse, + SelectOption, SendEmailBlock, SendEmailBlockYaml, SkyvernForgeSdkSchemasCredentialsCredentialType, @@ -213,6 +247,8 @@ from .types import ( TaskBlockDataSchema, TaskBlockParametersItem, TaskBlockParametersItem_AwsSecret, + TaskBlockParametersItem_AzureSecret, + TaskBlockParametersItem_AzureVaultCredential, TaskBlockParametersItem_BitwardenCreditCardData, TaskBlockParametersItem_BitwardenLoginCredential, TaskBlockParametersItem_BitwardenSensitiveInformation, @@ -232,6 +268,8 @@ from .types import ( TextPromptBlock, TextPromptBlockParametersItem, TextPromptBlockParametersItem_AwsSecret, + TextPromptBlockParametersItem_AzureSecret, + TextPromptBlockParametersItem_AzureVaultCredential, TextPromptBlockParametersItem_BitwardenCreditCardData, TextPromptBlockParametersItem_BitwardenLoginCredential, TextPromptBlockParametersItem_BitwardenSensitiveInformation, @@ -241,13 +279,19 @@ from .types import ( TextPromptBlockParametersItem_Output, TextPromptBlockParametersItem_Workflow, TextPromptBlockYaml, + Thought, + ThoughtScenario, + ThoughtType, TotpCode, + TotpType, UploadToS3Block, UploadToS3BlockYaml, UrlBlock, UrlBlockDataSchema, UrlBlockParametersItem, UrlBlockParametersItem_AwsSecret, + UrlBlockParametersItem_AzureSecret, + UrlBlockParametersItem_AzureVaultCredential, UrlBlockParametersItem_BitwardenCreditCardData, UrlBlockParametersItem_BitwardenLoginCredential, UrlBlockParametersItem_BitwardenSensitiveInformation, @@ -257,10 +301,13 @@ from .types import ( UrlBlockParametersItem_Output, UrlBlockParametersItem_Workflow, UrlBlockYaml, + UserDefinedError, ValidationBlock, ValidationBlockDataSchema, ValidationBlockParametersItem, ValidationBlockParametersItem_AwsSecret, + ValidationBlockParametersItem_AzureSecret, + ValidationBlockParametersItem_AzureVaultCredential, ValidationBlockParametersItem_BitwardenCreditCardData, ValidationBlockParametersItem_BitwardenLoginCredential, ValidationBlockParametersItem_BitwardenSensitiveInformation, @@ -275,6 +322,8 @@ from .types import ( WaitBlock, WaitBlockParametersItem, WaitBlockParametersItem_AwsSecret, + WaitBlockParametersItem_AzureSecret, + WaitBlockParametersItem_AzureVaultCredential, WaitBlockParametersItem_BitwardenCreditCardData, WaitBlockParametersItem_BitwardenLoginCredential, WaitBlockParametersItem_BitwardenSensitiveInformation, @@ -310,6 +359,8 @@ from .types import ( WorkflowDefinitionBlocksItem_Wait, WorkflowDefinitionParametersItem, WorkflowDefinitionParametersItem_AwsSecret, + WorkflowDefinitionParametersItem_AzureSecret, + WorkflowDefinitionParametersItem_AzureVaultCredential, WorkflowDefinitionParametersItem_BitwardenCreditCardData, WorkflowDefinitionParametersItem_BitwardenLoginCredential, WorkflowDefinitionParametersItem_BitwardenSensitiveInformation, @@ -342,6 +393,7 @@ from .types import ( WorkflowDefinitionYamlBlocksItem_Wait, WorkflowDefinitionYamlParametersItem, WorkflowDefinitionYamlParametersItem_AwsSecret, + WorkflowDefinitionYamlParametersItem_AzureVaultCredential, WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData, WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential, WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation, @@ -356,21 +408,31 @@ from .types import ( WorkflowParameterYaml, WorkflowParameterYamlDefaultValue, WorkflowRequest, + WorkflowRunBlock, + WorkflowRunBlockDataSchema, + WorkflowRunBlockNavigationPayload, + WorkflowRunBlockOutput, WorkflowRunRequest, WorkflowRunResponse, WorkflowRunResponseOutput, + WorkflowRunTimeline, + WorkflowRunTimelineType, WorkflowStatus, ) from .errors import BadRequestError, ForbiddenError, NotFoundError, UnprocessableEntityError +from . import scripts from .client import AsyncSkyvern, Skyvern from .environment import SkyvernEnvironment from .version import __version__ __all__ = [ + "Action", "ActionBlock", "ActionBlockDataSchema", "ActionBlockParametersItem", "ActionBlockParametersItem_AwsSecret", + "ActionBlockParametersItem_AzureSecret", + "ActionBlockParametersItem_AzureVaultCredential", "ActionBlockParametersItem_BitwardenCreditCardData", "ActionBlockParametersItem_BitwardenLoginCredential", "ActionBlockParametersItem_BitwardenSensitiveInformation", @@ -380,11 +442,16 @@ __all__ = [ "ActionBlockParametersItem_Output", "ActionBlockParametersItem_Workflow", "ActionBlockYaml", + "ActionStatus", + "ActionType", "Artifact", "ArtifactType", "AsyncSkyvern", "AwsSecretParameter", "AwsSecretParameterYaml", + "AzureSecretParameter", + "AzureVaultCredentialParameter", + "AzureVaultCredentialParameterYaml", "BadRequestError", "BitwardenCreditCardDataParameter", "BitwardenCreditCardDataParameterYaml", @@ -392,10 +459,13 @@ __all__ = [ "BitwardenLoginCredentialParameterYaml", "BitwardenSensitiveInformationParameter", "BitwardenSensitiveInformationParameterYaml", + "BlockType", "BrowserSessionResponse", "CodeBlock", "CodeBlockParametersItem", "CodeBlockParametersItem_AwsSecret", + "CodeBlockParametersItem_AzureSecret", + "CodeBlockParametersItem_AzureVaultCredential", "CodeBlockParametersItem_BitwardenCreditCardData", "CodeBlockParametersItem_BitwardenLoginCredential", "CodeBlockParametersItem_BitwardenSensitiveInformation", @@ -408,6 +478,8 @@ __all__ = [ "ContextParameter", "ContextParameterSource", "ContextParameterSource_AwsSecret", + "ContextParameterSource_AzureSecret", + "ContextParameterSource_AzureVaultCredential", "ContextParameterSource_BitwardenCreditCardData", "ContextParameterSource_BitwardenLoginCredential", "ContextParameterSource_BitwardenSensitiveInformation", @@ -419,6 +491,7 @@ __all__ = [ "ContextParameterValue", "ContextParameterYaml", "CreateCredentialRequestCredential", + "CreateScriptResponse", "CredentialParameter", "CredentialParameterYaml", "CredentialResponse", @@ -431,6 +504,8 @@ __all__ = [ "ExtractionBlockDataSchema", "ExtractionBlockParametersItem", "ExtractionBlockParametersItem_AwsSecret", + "ExtractionBlockParametersItem_AzureSecret", + "ExtractionBlockParametersItem_AzureVaultCredential", "ExtractionBlockParametersItem_BitwardenCreditCardData", "ExtractionBlockParametersItem_BitwardenLoginCredential", "ExtractionBlockParametersItem_BitwardenSensitiveInformation", @@ -445,6 +520,8 @@ __all__ = [ "FileDownloadBlockDataSchema", "FileDownloadBlockParametersItem", "FileDownloadBlockParametersItem_AwsSecret", + "FileDownloadBlockParametersItem_AzureSecret", + "FileDownloadBlockParametersItem_AzureVaultCredential", "FileDownloadBlockParametersItem_BitwardenCreditCardData", "FileDownloadBlockParametersItem_BitwardenLoginCredential", "FileDownloadBlockParametersItem_BitwardenSensitiveInformation", @@ -454,7 +531,9 @@ __all__ = [ "FileDownloadBlockParametersItem_Output", "FileDownloadBlockParametersItem_Workflow", "FileDownloadBlockYaml", + "FileEncoding", "FileInfo", + "FileNode", "FileParserBlock", "FileParserBlockYaml", "FileStorageType", @@ -485,6 +564,8 @@ __all__ = [ "ForLoopBlockLoopBlocksItem_Wait", "ForLoopBlockLoopOver", "ForLoopBlockLoopOver_AwsSecret", + "ForLoopBlockLoopOver_AzureSecret", + "ForLoopBlockLoopOver_AzureVaultCredential", "ForLoopBlockLoopOver_BitwardenCreditCardData", "ForLoopBlockLoopOver_BitwardenLoginCredential", "ForLoopBlockLoopOver_BitwardenSensitiveInformation", @@ -526,6 +607,8 @@ __all__ = [ "HttpRequestBlock", "HttpRequestBlockParametersItem", "HttpRequestBlockParametersItem_AwsSecret", + "HttpRequestBlockParametersItem_AzureSecret", + "HttpRequestBlockParametersItem_AzureVaultCredential", "HttpRequestBlockParametersItem_BitwardenCreditCardData", "HttpRequestBlockParametersItem_BitwardenLoginCredential", "HttpRequestBlockParametersItem_BitwardenSensitiveInformation", @@ -536,10 +619,13 @@ __all__ = [ "HttpRequestBlockParametersItem_Workflow", "HttpRequestBlockYaml", "HttpValidationError", + "InputOrSelectContext", "LoginBlock", "LoginBlockDataSchema", "LoginBlockParametersItem", "LoginBlockParametersItem_AwsSecret", + "LoginBlockParametersItem_AzureSecret", + "LoginBlockParametersItem_AzureVaultCredential", "LoginBlockParametersItem_BitwardenCreditCardData", "LoginBlockParametersItem_BitwardenLoginCredential", "LoginBlockParametersItem_BitwardenSensitiveInformation", @@ -553,6 +639,8 @@ __all__ = [ "NavigationBlockDataSchema", "NavigationBlockParametersItem", "NavigationBlockParametersItem_AwsSecret", + "NavigationBlockParametersItem_AzureSecret", + "NavigationBlockParametersItem_AzureVaultCredential", "NavigationBlockParametersItem_BitwardenCreditCardData", "NavigationBlockParametersItem_BitwardenLoginCredential", "NavigationBlockParametersItem_BitwardenSensitiveInformation", @@ -567,6 +655,7 @@ __all__ = [ "NotFoundError", "OnePasswordCredentialParameter", "OnePasswordCredentialParameterYaml", + "OtpType", "OutputParameter", "OutputParameterYaml", "PasswordCredentialResponse", @@ -575,6 +664,10 @@ __all__ = [ "ProxyLocation", "RunEngine", "RunStatus", + "Script", + "ScriptFileCreate", + "ScriptRunResponse", + "SelectOption", "SendEmailBlock", "SendEmailBlockYaml", "Skyvern", @@ -585,6 +678,8 @@ __all__ = [ "TaskBlockDataSchema", "TaskBlockParametersItem", "TaskBlockParametersItem_AwsSecret", + "TaskBlockParametersItem_AzureSecret", + "TaskBlockParametersItem_AzureVaultCredential", "TaskBlockParametersItem_BitwardenCreditCardData", "TaskBlockParametersItem_BitwardenLoginCredential", "TaskBlockParametersItem_BitwardenSensitiveInformation", @@ -604,6 +699,8 @@ __all__ = [ "TextPromptBlock", "TextPromptBlockParametersItem", "TextPromptBlockParametersItem_AwsSecret", + "TextPromptBlockParametersItem_AzureSecret", + "TextPromptBlockParametersItem_AzureVaultCredential", "TextPromptBlockParametersItem_BitwardenCreditCardData", "TextPromptBlockParametersItem_BitwardenLoginCredential", "TextPromptBlockParametersItem_BitwardenSensitiveInformation", @@ -613,7 +710,11 @@ __all__ = [ "TextPromptBlockParametersItem_Output", "TextPromptBlockParametersItem_Workflow", "TextPromptBlockYaml", + "Thought", + "ThoughtScenario", + "ThoughtType", "TotpCode", + "TotpType", "UnprocessableEntityError", "UploadToS3Block", "UploadToS3BlockYaml", @@ -621,6 +722,8 @@ __all__ = [ "UrlBlockDataSchema", "UrlBlockParametersItem", "UrlBlockParametersItem_AwsSecret", + "UrlBlockParametersItem_AzureSecret", + "UrlBlockParametersItem_AzureVaultCredential", "UrlBlockParametersItem_BitwardenCreditCardData", "UrlBlockParametersItem_BitwardenLoginCredential", "UrlBlockParametersItem_BitwardenSensitiveInformation", @@ -630,10 +733,13 @@ __all__ = [ "UrlBlockParametersItem_Output", "UrlBlockParametersItem_Workflow", "UrlBlockYaml", + "UserDefinedError", "ValidationBlock", "ValidationBlockDataSchema", "ValidationBlockParametersItem", "ValidationBlockParametersItem_AwsSecret", + "ValidationBlockParametersItem_AzureSecret", + "ValidationBlockParametersItem_AzureVaultCredential", "ValidationBlockParametersItem_BitwardenCreditCardData", "ValidationBlockParametersItem_BitwardenLoginCredential", "ValidationBlockParametersItem_BitwardenSensitiveInformation", @@ -648,6 +754,8 @@ __all__ = [ "WaitBlock", "WaitBlockParametersItem", "WaitBlockParametersItem_AwsSecret", + "WaitBlockParametersItem_AzureSecret", + "WaitBlockParametersItem_AzureVaultCredential", "WaitBlockParametersItem_BitwardenCreditCardData", "WaitBlockParametersItem_BitwardenLoginCredential", "WaitBlockParametersItem_BitwardenSensitiveInformation", @@ -683,6 +791,8 @@ __all__ = [ "WorkflowDefinitionBlocksItem_Wait", "WorkflowDefinitionParametersItem", "WorkflowDefinitionParametersItem_AwsSecret", + "WorkflowDefinitionParametersItem_AzureSecret", + "WorkflowDefinitionParametersItem_AzureVaultCredential", "WorkflowDefinitionParametersItem_BitwardenCreditCardData", "WorkflowDefinitionParametersItem_BitwardenLoginCredential", "WorkflowDefinitionParametersItem_BitwardenSensitiveInformation", @@ -715,6 +825,7 @@ __all__ = [ "WorkflowDefinitionYamlBlocksItem_Wait", "WorkflowDefinitionYamlParametersItem", "WorkflowDefinitionYamlParametersItem_AwsSecret", + "WorkflowDefinitionYamlParametersItem_AzureVaultCredential", "WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData", "WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential", "WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation", @@ -729,9 +840,16 @@ __all__ = [ "WorkflowParameterYaml", "WorkflowParameterYamlDefaultValue", "WorkflowRequest", + "WorkflowRunBlock", + "WorkflowRunBlockDataSchema", + "WorkflowRunBlockNavigationPayload", + "WorkflowRunBlockOutput", "WorkflowRunRequest", "WorkflowRunResponse", "WorkflowRunResponseOutput", + "WorkflowRunTimeline", + "WorkflowRunTimelineType", "WorkflowStatus", "__version__", + "scripts", ] diff --git a/skyvern/client/client.py b/skyvern/client/client.py index 3bfc49de..a3af9d34 100644 --- a/skyvern/client/client.py +++ b/skyvern/client/client.py @@ -4,6 +4,7 @@ import typing from .environment import SkyvernEnvironment import httpx from .core.client_wrapper import SyncClientWrapper +from .scripts.client import ScriptsClient from .types.run_engine import RunEngine from .types.proxy_location import ProxyLocation from .types.task_run_request_data_extraction_schema import TaskRunRequestDataExtractionSchema @@ -23,6 +24,7 @@ from .types.workflow import Workflow from .types.workflow_create_yaml_request import WorkflowCreateYamlRequest from .types.artifact import Artifact from .types.artifact_type import ArtifactType +from .types.workflow_run_timeline import WorkflowRunTimeline from .types.browser_session_response import BrowserSessionResponse from .errors.forbidden_error import ForbiddenError import datetime as dt @@ -31,7 +33,11 @@ from .types.credential_response import CredentialResponse from .types.skyvern_forge_sdk_schemas_credentials_credential_type import SkyvernForgeSdkSchemasCredentialsCredentialType from .types.create_credential_request_credential import CreateCredentialRequestCredential from .types.skyvern_schemas_run_blocks_credential_type import SkyvernSchemasRunBlocksCredentialType +from .types.script import Script +from .types.script_file_create import ScriptFileCreate +from .types.create_script_response import CreateScriptResponse from .core.client_wrapper import AsyncClientWrapper +from .scripts.client import AsyncScriptsClient # this is used as the default value for optional parameters OMIT = typing.cast(typing.Any, ...) @@ -99,6 +105,7 @@ class Skyvern: else httpx.Client(timeout=_defaulted_timeout), timeout=_defaulted_timeout, ) + self.scripts = ScriptsClient(client_wrapper=self._client_wrapper) def run_task( self, @@ -121,6 +128,7 @@ class Skyvern: publish_workflow: typing.Optional[bool] = OMIT, include_action_history_in_verification: typing.Optional[bool] = OMIT, max_screenshot_scrolls: typing.Optional[int] = OMIT, + browser_address: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> TaskRunResponse: """ @@ -214,6 +222,9 @@ class Skyvern: max_screenshot_scrolls : typing.Optional[int] The maximum number of scrolls for the post action screenshot. When it's None or 0, it takes the current viewpoint screenshot. + browser_address : typing.Optional[str] + The CDP address for the task. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -257,6 +268,7 @@ class Skyvern: "publish_workflow": publish_workflow, "include_action_history_in_verification": include_action_history_in_verification, "max_screenshot_scrolls": max_screenshot_scrolls, + "browser_address": browser_address, }, headers={ "x-user-agent": str(user_agent) if user_agent is not None else None, @@ -314,6 +326,9 @@ class Skyvern: browser_session_id: typing.Optional[str] = OMIT, max_screenshot_scrolls: typing.Optional[int] = OMIT, extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT, + browser_address: typing.Optional[str] = OMIT, + ai_fallback: typing.Optional[bool] = OMIT, + run_with: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> WorkflowRunResponse: """ @@ -381,6 +396,15 @@ class Skyvern: extra_http_headers : typing.Optional[typing.Dict[str, typing.Optional[str]]] The extra HTTP headers for the requests in browser. + browser_address : typing.Optional[str] + The CDP address for the workflow run. + + ai_fallback : typing.Optional[bool] + Whether to fallback to AI if the workflow run fails. + + run_with : typing.Optional[str] + Whether to run the workflow with agent or code. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -418,6 +442,9 @@ class Skyvern: "browser_session_id": browser_session_id, "max_screenshot_scrolls": max_screenshot_scrolls, "extra_http_headers": extra_http_headers, + "browser_address": browser_address, + "ai_fallback": ai_fallback, + "run_with": run_with, }, headers={ "x-max-steps-override": str(max_steps_override) if max_steps_override is not None else None, @@ -595,6 +622,7 @@ class Skyvern: page_size: typing.Optional[int] = None, only_saved_tasks: typing.Optional[bool] = None, only_workflows: typing.Optional[bool] = None, + search_key: typing.Optional[str] = None, title: typing.Optional[str] = None, template: typing.Optional[bool] = None, request_options: typing.Optional[RequestOptions] = None, @@ -602,6 +630,13 @@ class Skyvern: """ Get all workflows with the latest version for the organization. + Search semantics: + - If `search_key` is provided, its value is used as a unified search term for both + `workflows.title` and workflow parameter metadata (key, description, and default_value for + `WorkflowParameterModel`). + - Falls back to deprecated `title` (title-only search) if `search_key` is not provided. + - Parameter metadata search excludes soft-deleted parameter rows across all parameter tables. + Parameters ---------- page : typing.Optional[int] @@ -612,7 +647,11 @@ class Skyvern: only_workflows : typing.Optional[bool] + search_key : typing.Optional[str] + Unified search across workflow title and parameter metadata (key, description, default_value). + title : typing.Optional[str] + Deprecated: use search_key instead. template : typing.Optional[bool] @@ -642,6 +681,7 @@ class Skyvern: "page_size": page_size, "only_saved_tasks": only_saved_tasks, "only_workflows": only_workflows, + "search_key": search_key, "title": title, "template": template, }, @@ -1077,6 +1117,86 @@ class Skyvern: raise ApiError(status_code=_response.status_code, body=_response.text) raise ApiError(status_code=_response.status_code, body=_response_json) + def get_run_timeline( + self, run_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> typing.List[WorkflowRunTimeline]: + """ + Get timeline for a run (workflow run or task_v2 run) + + Parameters + ---------- + run_id : str + The id of the workflow run or task_v2 run. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + typing.List[WorkflowRunTimeline] + Successfully retrieved run timeline + + Examples + -------- + from skyvern import Skyvern + + client = Skyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + client.get_run_timeline( + run_id="wr_123", + ) + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/runs/{jsonable_encoder(run_id)}/timeline", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + typing.List[WorkflowRunTimeline], + parse_obj_as( + type_=typing.List[WorkflowRunTimeline], # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 400: + raise BadRequestError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + if _response.status_code == 404: + raise NotFoundError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + def get_browser_sessions( self, *, request_options: typing.Optional[RequestOptions] = None ) -> typing.List[BrowserSessionResponse]: @@ -1143,7 +1263,11 @@ class Skyvern: raise ApiError(status_code=_response.status_code, body=_response_json) def create_browser_session( - self, *, timeout: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None + self, + *, + timeout: typing.Optional[int] = OMIT, + proxy_location: typing.Optional[ProxyLocation] = OMIT, + request_options: typing.Optional[RequestOptions] = None, ) -> BrowserSessionResponse: """ Create a browser session that persists across multiple runs @@ -1151,7 +1275,32 @@ class Skyvern: Parameters ---------- timeout : typing.Optional[int] - Timeout in minutes for the session. Timeout is applied after the session is started. Must be between 5 and 120. Defaults to 60. + Timeout in minutes for the session. Timeout is applied after the session is started. Must be between 5 and 1440. Defaults to 60. + + proxy_location : typing.Optional[ProxyLocation] + + Geographic Proxy location to route the browser traffic through. This is only available in Skyvern Cloud. + + Available geotargeting options: + - RESIDENTIAL: the default value. Skyvern Cloud uses a random US residential proxy. + - RESIDENTIAL_ES: Spain + - RESIDENTIAL_IE: Ireland + - RESIDENTIAL_GB: United Kingdom + - RESIDENTIAL_IN: India + - RESIDENTIAL_JP: Japan + - RESIDENTIAL_FR: France + - RESIDENTIAL_DE: Germany + - RESIDENTIAL_NZ: New Zealand + - RESIDENTIAL_ZA: South Africa + - RESIDENTIAL_AR: Argentina + - RESIDENTIAL_AU: Australia + - RESIDENTIAL_ISP: ISP proxy + - US-CA: California + - US-NY: New York + - US-TX: Texas + - US-FL: Florida + - US-WA: Washington + - NONE: No proxy request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1176,6 +1325,7 @@ class Skyvern: method="POST", json={ "timeout": timeout, + "proxy_location": proxy_location, }, headers={ "content-type": "application/json", @@ -1750,6 +1900,7 @@ class Skyvern: totp_identifier: typing.Optional[str] = OMIT, totp_url: typing.Optional[str] = OMIT, browser_session_id: typing.Optional[str] = OMIT, + browser_address: typing.Optional[str] = OMIT, extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT, max_screenshot_scrolling_times: typing.Optional[int] = OMIT, credential_id: typing.Optional[str] = OMIT, @@ -1757,10 +1908,14 @@ class Skyvern: bitwarden_item_id: typing.Optional[str] = OMIT, onepassword_vault_id: typing.Optional[str] = OMIT, onepassword_item_id: typing.Optional[str] = OMIT, + azure_vault_name: typing.Optional[str] = OMIT, + azure_vault_username_key: typing.Optional[str] = OMIT, + azure_vault_password_key: typing.Optional[str] = OMIT, + azure_vault_totp_secret_key: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> WorkflowRunResponse: """ - Log in to a website using either credential stored in Skyvern, Bitwarden or 1Password + Log in to a website using either credential stored in Skyvern, Bitwarden, 1Password, or Azure Vault Parameters ---------- @@ -1788,6 +1943,9 @@ class Skyvern: browser_session_id : typing.Optional[str] ID of the browser session to use, which is prefixed by `pbs_` e.g. `pbs_123456` + browser_address : typing.Optional[str] + The CDP address for the task. + extra_http_headers : typing.Optional[typing.Dict[str, typing.Optional[str]]] Additional HTTP headers to include in requests @@ -1809,6 +1967,18 @@ class Skyvern: onepassword_item_id : typing.Optional[str] 1Password item ID + azure_vault_name : typing.Optional[str] + Azure Vault Name + + azure_vault_username_key : typing.Optional[str] + Azure Vault username key + + azure_vault_password_key : typing.Optional[str] + Azure Vault password key + + azure_vault_totp_secret_key : typing.Optional[str] + Azure Vault TOTP secret key + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -1841,6 +2011,7 @@ class Skyvern: "totp_identifier": totp_identifier, "totp_url": totp_url, "browser_session_id": browser_session_id, + "browser_address": browser_address, "extra_http_headers": extra_http_headers, "max_screenshot_scrolling_times": max_screenshot_scrolling_times, "credential_id": credential_id, @@ -1848,6 +2019,10 @@ class Skyvern: "bitwarden_item_id": bitwarden_item_id, "onepassword_vault_id": onepassword_vault_id, "onepassword_item_id": onepassword_item_id, + "azure_vault_name": azure_vault_name, + "azure_vault_username_key": azure_vault_username_key, + "azure_vault_password_key": azure_vault_password_key, + "azure_vault_totp_secret_key": azure_vault_totp_secret_key, }, headers={ "content-type": "application/json", @@ -1879,6 +2054,298 @@ class Skyvern: raise ApiError(status_code=_response.status_code, body=_response.text) raise ApiError(status_code=_response.status_code, body=_response_json) + def get_scripts( + self, + *, + page: typing.Optional[int] = None, + page_size: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> typing.List[Script]: + """ + Retrieves a paginated list of scripts for the current organization + + Parameters + ---------- + page : typing.Optional[int] + Page number for pagination + + page_size : typing.Optional[int] + Number of items per page + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + typing.List[Script] + Successful Response + + Examples + -------- + from skyvern import Skyvern + + client = Skyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + client.get_scripts( + page=1, + page_size=10, + ) + """ + _response = self._client_wrapper.httpx_client.request( + "v1/scripts", + method="GET", + params={ + "page": page, + "page_size": page_size, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + typing.List[Script], + parse_obj_as( + type_=typing.List[Script], # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + + def create_script( + self, + *, + workflow_id: typing.Optional[str] = OMIT, + run_id: typing.Optional[str] = OMIT, + files: typing.Optional[typing.Sequence[ScriptFileCreate]] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> CreateScriptResponse: + """ + Create a new script with optional files and metadata + + Parameters + ---------- + workflow_id : typing.Optional[str] + Associated workflow ID + + run_id : typing.Optional[str] + Associated run ID + + files : typing.Optional[typing.Sequence[ScriptFileCreate]] + Array of files to include in the script + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + CreateScriptResponse + Successful Response + + Examples + -------- + from skyvern import Skyvern + + client = Skyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + client.create_script() + """ + _response = self._client_wrapper.httpx_client.request( + "v1/scripts", + method="POST", + json={ + "workflow_id": workflow_id, + "run_id": run_id, + "files": convert_and_respect_annotation_metadata( + object_=files, annotation=typing.Sequence[ScriptFileCreate], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + CreateScriptResponse, + parse_obj_as( + type_=CreateScriptResponse, # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + + def get_script(self, script_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Script: + """ + Retrieves a specific script by its ID + + Parameters + ---------- + script_id : str + The unique identifier of the script + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + Script + Successful Response + + Examples + -------- + from skyvern import Skyvern + + client = Skyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + client.get_script( + script_id="s_abc123", + ) + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/scripts/{jsonable_encoder(script_id)}", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + Script, + parse_obj_as( + type_=Script, # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + + def deploy_script( + self, + script_id: str, + *, + files: typing.Sequence[ScriptFileCreate], + request_options: typing.Optional[RequestOptions] = None, + ) -> CreateScriptResponse: + """ + Deploy a script with updated files, creating a new version + + Parameters + ---------- + script_id : str + The unique identifier of the script + + files : typing.Sequence[ScriptFileCreate] + Array of files to include in the script + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + CreateScriptResponse + Successful Response + + Examples + -------- + from skyvern import ScriptFileCreate, Skyvern + + client = Skyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + client.deploy_script( + script_id="s_abc123", + files=[ + ScriptFileCreate( + path="src/main.py", + content="content", + ) + ], + ) + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/scripts/{jsonable_encoder(script_id)}/deploy", + method="POST", + json={ + "files": convert_and_respect_annotation_metadata( + object_=files, annotation=typing.Sequence[ScriptFileCreate], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + CreateScriptResponse, + parse_obj_as( + type_=CreateScriptResponse, # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + class AsyncSkyvern: """ @@ -1942,6 +2409,7 @@ class AsyncSkyvern: else httpx.AsyncClient(timeout=_defaulted_timeout), timeout=_defaulted_timeout, ) + self.scripts = AsyncScriptsClient(client_wrapper=self._client_wrapper) async def run_task( self, @@ -1959,12 +2427,12 @@ class AsyncSkyvern: totp_identifier: typing.Optional[str] = OMIT, totp_url: typing.Optional[str] = OMIT, browser_session_id: typing.Optional[str] = OMIT, - browser_address: typing.Optional[str] = OMIT, model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT, extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT, publish_workflow: typing.Optional[bool] = OMIT, include_action_history_in_verification: typing.Optional[bool] = OMIT, max_screenshot_scrolls: typing.Optional[int] = OMIT, + browser_address: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> TaskRunResponse: """ @@ -2042,9 +2510,6 @@ class AsyncSkyvern: Run the task or workflow in the specific Skyvern browser session. Having a browser session can persist the real-time state of the browser, so that the next run can continue from where the previous run left off. - browser_address : typing.Optional[str] - The CDP address for the task - model : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] Optional model configuration. @@ -2061,6 +2526,9 @@ class AsyncSkyvern: max_screenshot_scrolls : typing.Optional[int] The maximum number of scrolls for the post action screenshot. When it's None or 0, it takes the current viewpoint screenshot. + browser_address : typing.Optional[str] + The CDP address for the task. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -2107,12 +2575,12 @@ class AsyncSkyvern: "totp_identifier": totp_identifier, "totp_url": totp_url, "browser_session_id": browser_session_id, - "browser_address": browser_address, "model": model, "extra_http_headers": extra_http_headers, "publish_workflow": publish_workflow, "include_action_history_in_verification": include_action_history_in_verification, "max_screenshot_scrolls": max_screenshot_scrolls, + "browser_address": browser_address, }, headers={ "x-user-agent": str(user_agent) if user_agent is not None else None, @@ -2168,9 +2636,11 @@ class AsyncSkyvern: totp_url: typing.Optional[str] = OMIT, totp_identifier: typing.Optional[str] = OMIT, browser_session_id: typing.Optional[str] = OMIT, - browser_address: typing.Optional[str] = OMIT, max_screenshot_scrolls: typing.Optional[int] = OMIT, extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT, + browser_address: typing.Optional[str] = OMIT, + ai_fallback: typing.Optional[bool] = OMIT, + run_with: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> WorkflowRunResponse: """ @@ -2232,15 +2702,21 @@ class AsyncSkyvern: browser_session_id : typing.Optional[str] ID of a Skyvern browser session to reuse, having it continue from the current screen state - browser_address : typing.Optional[str] - The CDP address for the workflow - max_screenshot_scrolls : typing.Optional[int] The maximum number of scrolls for the post action screenshot. When it's None or 0, it takes the current viewpoint screenshot. extra_http_headers : typing.Optional[typing.Dict[str, typing.Optional[str]]] The extra HTTP headers for the requests in browser. + browser_address : typing.Optional[str] + The CDP address for the workflow run. + + ai_fallback : typing.Optional[bool] + Whether to fallback to AI if the workflow run fails. + + run_with : typing.Optional[str] + Whether to run the workflow with agent or code. + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -2284,9 +2760,11 @@ class AsyncSkyvern: "totp_url": totp_url, "totp_identifier": totp_identifier, "browser_session_id": browser_session_id, - "browser_address": browser_address, "max_screenshot_scrolls": max_screenshot_scrolls, "extra_http_headers": extra_http_headers, + "browser_address": browser_address, + "ai_fallback": ai_fallback, + "run_with": run_with, }, headers={ "x-max-steps-override": str(max_steps_override) if max_steps_override is not None else None, @@ -2480,6 +2958,7 @@ class AsyncSkyvern: page_size: typing.Optional[int] = None, only_saved_tasks: typing.Optional[bool] = None, only_workflows: typing.Optional[bool] = None, + search_key: typing.Optional[str] = None, title: typing.Optional[str] = None, template: typing.Optional[bool] = None, request_options: typing.Optional[RequestOptions] = None, @@ -2487,6 +2966,13 @@ class AsyncSkyvern: """ Get all workflows with the latest version for the organization. + Search semantics: + - If `search_key` is provided, its value is used as a unified search term for both + `workflows.title` and workflow parameter metadata (key, description, and default_value for + `WorkflowParameterModel`). + - Falls back to deprecated `title` (title-only search) if `search_key` is not provided. + - Parameter metadata search excludes soft-deleted parameter rows across all parameter tables. + Parameters ---------- page : typing.Optional[int] @@ -2497,7 +2983,11 @@ class AsyncSkyvern: only_workflows : typing.Optional[bool] + search_key : typing.Optional[str] + Unified search across workflow title and parameter metadata (key, description, default_value). + title : typing.Optional[str] + Deprecated: use search_key instead. template : typing.Optional[bool] @@ -2535,6 +3025,7 @@ class AsyncSkyvern: "page_size": page_size, "only_saved_tasks": only_saved_tasks, "only_workflows": only_workflows, + "search_key": search_key, "title": title, "template": template, }, @@ -3020,6 +3511,94 @@ class AsyncSkyvern: raise ApiError(status_code=_response.status_code, body=_response.text) raise ApiError(status_code=_response.status_code, body=_response_json) + async def get_run_timeline( + self, run_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> typing.List[WorkflowRunTimeline]: + """ + Get timeline for a run (workflow run or task_v2 run) + + Parameters + ---------- + run_id : str + The id of the workflow run or task_v2 run. + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + typing.List[WorkflowRunTimeline] + Successfully retrieved run timeline + + Examples + -------- + import asyncio + + from skyvern import AsyncSkyvern + + client = AsyncSkyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + + + async def main() -> None: + await client.get_run_timeline( + run_id="wr_123", + ) + + + asyncio.run(main()) + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/runs/{jsonable_encoder(run_id)}/timeline", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + typing.List[WorkflowRunTimeline], + parse_obj_as( + type_=typing.List[WorkflowRunTimeline], # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 400: + raise BadRequestError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + if _response.status_code == 404: + raise NotFoundError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + async def get_browser_sessions( self, *, request_options: typing.Optional[RequestOptions] = None ) -> typing.List[BrowserSessionResponse]: @@ -3094,7 +3673,11 @@ class AsyncSkyvern: raise ApiError(status_code=_response.status_code, body=_response_json) async def create_browser_session( - self, *, timeout: typing.Optional[int] = OMIT, request_options: typing.Optional[RequestOptions] = None + self, + *, + timeout: typing.Optional[int] = OMIT, + proxy_location: typing.Optional[ProxyLocation] = OMIT, + request_options: typing.Optional[RequestOptions] = None, ) -> BrowserSessionResponse: """ Create a browser session that persists across multiple runs @@ -3102,7 +3685,32 @@ class AsyncSkyvern: Parameters ---------- timeout : typing.Optional[int] - Timeout in minutes for the session. Timeout is applied after the session is started. Must be between 5 and 120. Defaults to 60. + Timeout in minutes for the session. Timeout is applied after the session is started. Must be between 5 and 1440. Defaults to 60. + + proxy_location : typing.Optional[ProxyLocation] + + Geographic Proxy location to route the browser traffic through. This is only available in Skyvern Cloud. + + Available geotargeting options: + - RESIDENTIAL: the default value. Skyvern Cloud uses a random US residential proxy. + - RESIDENTIAL_ES: Spain + - RESIDENTIAL_IE: Ireland + - RESIDENTIAL_GB: United Kingdom + - RESIDENTIAL_IN: India + - RESIDENTIAL_JP: Japan + - RESIDENTIAL_FR: France + - RESIDENTIAL_DE: Germany + - RESIDENTIAL_NZ: New Zealand + - RESIDENTIAL_ZA: South Africa + - RESIDENTIAL_AR: Argentina + - RESIDENTIAL_AU: Australia + - RESIDENTIAL_ISP: ISP proxy + - US-CA: California + - US-NY: New York + - US-TX: Texas + - US-FL: Florida + - US-WA: Washington + - NONE: No proxy request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -3135,6 +3743,7 @@ class AsyncSkyvern: method="POST", json={ "timeout": timeout, + "proxy_location": proxy_location, }, headers={ "content-type": "application/json", @@ -3775,10 +4384,14 @@ class AsyncSkyvern: bitwarden_item_id: typing.Optional[str] = OMIT, onepassword_vault_id: typing.Optional[str] = OMIT, onepassword_item_id: typing.Optional[str] = OMIT, + azure_vault_name: typing.Optional[str] = OMIT, + azure_vault_username_key: typing.Optional[str] = OMIT, + azure_vault_password_key: typing.Optional[str] = OMIT, + azure_vault_totp_secret_key: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None, ) -> WorkflowRunResponse: """ - Log in to a website using either credential stored in Skyvern, Bitwarden or 1Password + Log in to a website using either credential stored in Skyvern, Bitwarden, 1Password, or Azure Vault Parameters ---------- @@ -3807,7 +4420,7 @@ class AsyncSkyvern: ID of the browser session to use, which is prefixed by `pbs_` e.g. `pbs_123456` browser_address : typing.Optional[str] - The CDP address for the task + The CDP address for the task. extra_http_headers : typing.Optional[typing.Dict[str, typing.Optional[str]]] Additional HTTP headers to include in requests @@ -3830,6 +4443,18 @@ class AsyncSkyvern: onepassword_item_id : typing.Optional[str] 1Password item ID + azure_vault_name : typing.Optional[str] + Azure Vault Name + + azure_vault_username_key : typing.Optional[str] + Azure Vault username key + + azure_vault_password_key : typing.Optional[str] + Azure Vault password key + + azure_vault_totp_secret_key : typing.Optional[str] + Azure Vault TOTP secret key + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -3878,6 +4503,10 @@ class AsyncSkyvern: "bitwarden_item_id": bitwarden_item_id, "onepassword_vault_id": onepassword_vault_id, "onepassword_item_id": onepassword_item_id, + "azure_vault_name": azure_vault_name, + "azure_vault_username_key": azure_vault_username_key, + "azure_vault_password_key": azure_vault_password_key, + "azure_vault_totp_secret_key": azure_vault_totp_secret_key, }, headers={ "content-type": "application/json", @@ -3909,6 +4538,330 @@ class AsyncSkyvern: raise ApiError(status_code=_response.status_code, body=_response.text) raise ApiError(status_code=_response.status_code, body=_response_json) + async def get_scripts( + self, + *, + page: typing.Optional[int] = None, + page_size: typing.Optional[int] = None, + request_options: typing.Optional[RequestOptions] = None, + ) -> typing.List[Script]: + """ + Retrieves a paginated list of scripts for the current organization + + Parameters + ---------- + page : typing.Optional[int] + Page number for pagination + + page_size : typing.Optional[int] + Number of items per page + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + typing.List[Script] + Successful Response + + Examples + -------- + import asyncio + + from skyvern import AsyncSkyvern + + client = AsyncSkyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + + + async def main() -> None: + await client.get_scripts( + page=1, + page_size=10, + ) + + + asyncio.run(main()) + """ + _response = await self._client_wrapper.httpx_client.request( + "v1/scripts", + method="GET", + params={ + "page": page, + "page_size": page_size, + }, + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + typing.List[Script], + parse_obj_as( + type_=typing.List[Script], # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + + async def create_script( + self, + *, + workflow_id: typing.Optional[str] = OMIT, + run_id: typing.Optional[str] = OMIT, + files: typing.Optional[typing.Sequence[ScriptFileCreate]] = OMIT, + request_options: typing.Optional[RequestOptions] = None, + ) -> CreateScriptResponse: + """ + Create a new script with optional files and metadata + + Parameters + ---------- + workflow_id : typing.Optional[str] + Associated workflow ID + + run_id : typing.Optional[str] + Associated run ID + + files : typing.Optional[typing.Sequence[ScriptFileCreate]] + Array of files to include in the script + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + CreateScriptResponse + Successful Response + + Examples + -------- + import asyncio + + from skyvern import AsyncSkyvern + + client = AsyncSkyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + + + async def main() -> None: + await client.create_script() + + + asyncio.run(main()) + """ + _response = await self._client_wrapper.httpx_client.request( + "v1/scripts", + method="POST", + json={ + "workflow_id": workflow_id, + "run_id": run_id, + "files": convert_and_respect_annotation_metadata( + object_=files, annotation=typing.Sequence[ScriptFileCreate], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + CreateScriptResponse, + parse_obj_as( + type_=CreateScriptResponse, # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + + async def get_script(self, script_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Script: + """ + Retrieves a specific script by its ID + + Parameters + ---------- + script_id : str + The unique identifier of the script + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + Script + Successful Response + + Examples + -------- + import asyncio + + from skyvern import AsyncSkyvern + + client = AsyncSkyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + + + async def main() -> None: + await client.get_script( + script_id="s_abc123", + ) + + + asyncio.run(main()) + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/scripts/{jsonable_encoder(script_id)}", + method="GET", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + Script, + parse_obj_as( + type_=Script, # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + + async def deploy_script( + self, + script_id: str, + *, + files: typing.Sequence[ScriptFileCreate], + request_options: typing.Optional[RequestOptions] = None, + ) -> CreateScriptResponse: + """ + Deploy a script with updated files, creating a new version + + Parameters + ---------- + script_id : str + The unique identifier of the script + + files : typing.Sequence[ScriptFileCreate] + Array of files to include in the script + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + CreateScriptResponse + Successful Response + + Examples + -------- + import asyncio + + from skyvern import AsyncSkyvern, ScriptFileCreate + + client = AsyncSkyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + + + async def main() -> None: + await client.deploy_script( + script_id="s_abc123", + files=[ + ScriptFileCreate( + path="src/main.py", + content="content", + ) + ], + ) + + + asyncio.run(main()) + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/scripts/{jsonable_encoder(script_id)}/deploy", + method="POST", + json={ + "files": convert_and_respect_annotation_metadata( + object_=files, annotation=typing.Sequence[ScriptFileCreate], direction="write" + ), + }, + headers={ + "content-type": "application/json", + }, + request_options=request_options, + omit=OMIT, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + CreateScriptResponse, + parse_obj_as( + type_=CreateScriptResponse, # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + def _get_base_url(*, base_url: typing.Optional[str] = None, environment: SkyvernEnvironment) -> str: if base_url is not None: diff --git a/skyvern/client/core/client_wrapper.py b/skyvern/client/core/client_wrapper.py index 5681910b..85026120 100644 --- a/skyvern/client/core/client_wrapper.py +++ b/skyvern/client/core/client_wrapper.py @@ -24,7 +24,7 @@ class BaseClientWrapper: headers: typing.Dict[str, str] = { "X-Fern-Language": "Python", "X-Fern-SDK-Name": "skyvern", - "X-Fern-SDK-Version": "0.2.6", + "X-Fern-SDK-Version": "0.2.18", } if self._api_key is not None: headers["x-api-key"] = self._api_key diff --git a/skyvern/client/core/http_client.py b/skyvern/client/core/http_client.py index ddd1be53..275a54cc 100644 --- a/skyvern/client/core/http_client.py +++ b/skyvern/client/core/http_client.py @@ -371,16 +371,6 @@ class AsyncHttpClient: json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit) - # If omit/pruning removed everything, still send {} for methods that commonly expect a body. - if ( - json_body is None - and data_body is None - and content is None - and files is None - and method.upper() in {"POST", "PUT", "PATCH"} - ): - json_body = {} - # Add the input to each of these and do None-safety checks response = await self.httpx_client.request( method=method, diff --git a/skyvern/client/environment.py b/skyvern/client/environment.py index 15a2b421..a2001184 100644 --- a/skyvern/client/environment.py +++ b/skyvern/client/environment.py @@ -6,4 +6,4 @@ import enum class SkyvernEnvironment(enum.Enum): PRODUCTION = "https://api.skyvern.com" STAGING = "https://api-staging.skyvern.com" - LOCAL = "http://localhost:8000" + DEVELOPMENT = "http://localhost:8000" diff --git a/skyvern/client/scripts/__init__.py b/skyvern/client/scripts/__init__.py new file mode 100644 index 00000000..f3ea2659 --- /dev/null +++ b/skyvern/client/scripts/__init__.py @@ -0,0 +1,2 @@ +# This file was auto-generated by Fern from our API Definition. + diff --git a/skyvern/client/scripts/client.py b/skyvern/client/scripts/client.py new file mode 100644 index 00000000..b6a9db4f --- /dev/null +++ b/skyvern/client/scripts/client.py @@ -0,0 +1,149 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.client_wrapper import SyncClientWrapper +import typing +from ..core.request_options import RequestOptions +from ..core.jsonable_encoder import jsonable_encoder +from ..core.pydantic_utilities import parse_obj_as +from ..errors.unprocessable_entity_error import UnprocessableEntityError +from json.decoder import JSONDecodeError +from ..core.api_error import ApiError +from ..core.client_wrapper import AsyncClientWrapper + + +class ScriptsClient: + def __init__(self, *, client_wrapper: SyncClientWrapper): + self._client_wrapper = client_wrapper + + def run_script( + self, script_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> typing.Optional[typing.Any]: + """ + Run a script + + Parameters + ---------- + script_id : str + The unique identifier of the script + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + typing.Optional[typing.Any] + Successful Response + + Examples + -------- + from skyvern import Skyvern + + client = Skyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + client.scripts.run_script( + script_id="s_abc123", + ) + """ + _response = self._client_wrapper.httpx_client.request( + f"v1/scripts/{jsonable_encoder(script_id)}/run", + method="POST", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + + +class AsyncScriptsClient: + def __init__(self, *, client_wrapper: AsyncClientWrapper): + self._client_wrapper = client_wrapper + + async def run_script( + self, script_id: str, *, request_options: typing.Optional[RequestOptions] = None + ) -> typing.Optional[typing.Any]: + """ + Run a script + + Parameters + ---------- + script_id : str + The unique identifier of the script + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + typing.Optional[typing.Any] + Successful Response + + Examples + -------- + import asyncio + + from skyvern import AsyncSkyvern + + client = AsyncSkyvern( + api_key="YOUR_API_KEY", + x_api_key="YOUR_X_API_KEY", + ) + + + async def main() -> None: + await client.scripts.run_script( + script_id="s_abc123", + ) + + + asyncio.run(main()) + """ + _response = await self._client_wrapper.httpx_client.request( + f"v1/scripts/{jsonable_encoder(script_id)}/run", + method="POST", + request_options=request_options, + ) + try: + if 200 <= _response.status_code < 300: + return typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + if _response.status_code == 422: + raise UnprocessableEntityError( + typing.cast( + typing.Optional[typing.Any], + parse_obj_as( + type_=typing.Optional[typing.Any], # type: ignore + object_=_response.json(), + ), + ) + ) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) diff --git a/skyvern/client/types/__init__.py b/skyvern/client/types/__init__.py index 8b2c6df5..4483868e 100644 --- a/skyvern/client/types/__init__.py +++ b/skyvern/client/types/__init__.py @@ -1,10 +1,13 @@ # This file was auto-generated by Fern from our API Definition. +from .action import Action from .action_block import ActionBlock from .action_block_data_schema import ActionBlockDataSchema from .action_block_parameters_item import ( ActionBlockParametersItem, ActionBlockParametersItem_AwsSecret, + ActionBlockParametersItem_AzureSecret, + ActionBlockParametersItem_AzureVaultCredential, ActionBlockParametersItem_BitwardenCreditCardData, ActionBlockParametersItem_BitwardenLoginCredential, ActionBlockParametersItem_BitwardenSensitiveInformation, @@ -15,21 +18,29 @@ from .action_block_parameters_item import ( ActionBlockParametersItem_Workflow, ) from .action_block_yaml import ActionBlockYaml +from .action_status import ActionStatus +from .action_type import ActionType from .artifact import Artifact from .artifact_type import ArtifactType from .aws_secret_parameter import AwsSecretParameter from .aws_secret_parameter_yaml import AwsSecretParameterYaml +from .azure_secret_parameter import AzureSecretParameter +from .azure_vault_credential_parameter import AzureVaultCredentialParameter +from .azure_vault_credential_parameter_yaml import AzureVaultCredentialParameterYaml from .bitwarden_credit_card_data_parameter import BitwardenCreditCardDataParameter from .bitwarden_credit_card_data_parameter_yaml import BitwardenCreditCardDataParameterYaml from .bitwarden_login_credential_parameter import BitwardenLoginCredentialParameter from .bitwarden_login_credential_parameter_yaml import BitwardenLoginCredentialParameterYaml from .bitwarden_sensitive_information_parameter import BitwardenSensitiveInformationParameter from .bitwarden_sensitive_information_parameter_yaml import BitwardenSensitiveInformationParameterYaml +from .block_type import BlockType from .browser_session_response import BrowserSessionResponse from .code_block import CodeBlock from .code_block_parameters_item import ( CodeBlockParametersItem, CodeBlockParametersItem_AwsSecret, + CodeBlockParametersItem_AzureSecret, + CodeBlockParametersItem_AzureVaultCredential, CodeBlockParametersItem_BitwardenCreditCardData, CodeBlockParametersItem_BitwardenLoginCredential, CodeBlockParametersItem_BitwardenSensitiveInformation, @@ -44,6 +55,8 @@ from .context_parameter import ContextParameter from .context_parameter_source import ( ContextParameterSource, ContextParameterSource_AwsSecret, + ContextParameterSource_AzureSecret, + ContextParameterSource_AzureVaultCredential, ContextParameterSource_BitwardenCreditCardData, ContextParameterSource_BitwardenLoginCredential, ContextParameterSource_BitwardenSensitiveInformation, @@ -56,6 +69,7 @@ from .context_parameter_source import ( from .context_parameter_value import ContextParameterValue from .context_parameter_yaml import ContextParameterYaml from .create_credential_request_credential import CreateCredentialRequestCredential +from .create_script_response import CreateScriptResponse from .credential_parameter import CredentialParameter from .credential_parameter_yaml import CredentialParameterYaml from .credential_response import CredentialResponse @@ -69,6 +83,8 @@ from .extraction_block_data_schema import ExtractionBlockDataSchema from .extraction_block_parameters_item import ( ExtractionBlockParametersItem, ExtractionBlockParametersItem_AwsSecret, + ExtractionBlockParametersItem_AzureSecret, + ExtractionBlockParametersItem_AzureVaultCredential, ExtractionBlockParametersItem_BitwardenCreditCardData, ExtractionBlockParametersItem_BitwardenLoginCredential, ExtractionBlockParametersItem_BitwardenSensitiveInformation, @@ -85,6 +101,8 @@ from .file_download_block_data_schema import FileDownloadBlockDataSchema from .file_download_block_parameters_item import ( FileDownloadBlockParametersItem, FileDownloadBlockParametersItem_AwsSecret, + FileDownloadBlockParametersItem_AzureSecret, + FileDownloadBlockParametersItem_AzureVaultCredential, FileDownloadBlockParametersItem_BitwardenCreditCardData, FileDownloadBlockParametersItem_BitwardenLoginCredential, FileDownloadBlockParametersItem_BitwardenSensitiveInformation, @@ -95,7 +113,9 @@ from .file_download_block_parameters_item import ( FileDownloadBlockParametersItem_Workflow, ) from .file_download_block_yaml import FileDownloadBlockYaml +from .file_encoding import FileEncoding from .file_info import FileInfo +from .file_node import FileNode from .file_parser_block import FileParserBlock from .file_parser_block_yaml import FileParserBlockYaml from .file_storage_type import FileStorageType @@ -129,6 +149,8 @@ from .for_loop_block_loop_blocks_item import ( from .for_loop_block_loop_over import ( ForLoopBlockLoopOver, ForLoopBlockLoopOver_AwsSecret, + ForLoopBlockLoopOver_AzureSecret, + ForLoopBlockLoopOver_AzureVaultCredential, ForLoopBlockLoopOver_BitwardenCreditCardData, ForLoopBlockLoopOver_BitwardenLoginCredential, ForLoopBlockLoopOver_BitwardenSensitiveInformation, @@ -175,6 +197,8 @@ from .http_request_block import HttpRequestBlock from .http_request_block_parameters_item import ( HttpRequestBlockParametersItem, HttpRequestBlockParametersItem_AwsSecret, + HttpRequestBlockParametersItem_AzureSecret, + HttpRequestBlockParametersItem_AzureVaultCredential, HttpRequestBlockParametersItem_BitwardenCreditCardData, HttpRequestBlockParametersItem_BitwardenLoginCredential, HttpRequestBlockParametersItem_BitwardenSensitiveInformation, @@ -186,11 +210,14 @@ from .http_request_block_parameters_item import ( ) from .http_request_block_yaml import HttpRequestBlockYaml from .http_validation_error import HttpValidationError +from .input_or_select_context import InputOrSelectContext from .login_block import LoginBlock from .login_block_data_schema import LoginBlockDataSchema from .login_block_parameters_item import ( LoginBlockParametersItem, LoginBlockParametersItem_AwsSecret, + LoginBlockParametersItem_AzureSecret, + LoginBlockParametersItem_AzureVaultCredential, LoginBlockParametersItem_BitwardenCreditCardData, LoginBlockParametersItem_BitwardenLoginCredential, LoginBlockParametersItem_BitwardenSensitiveInformation, @@ -206,6 +233,8 @@ from .navigation_block_data_schema import NavigationBlockDataSchema from .navigation_block_parameters_item import ( NavigationBlockParametersItem, NavigationBlockParametersItem_AwsSecret, + NavigationBlockParametersItem_AzureSecret, + NavigationBlockParametersItem_AzureVaultCredential, NavigationBlockParametersItem_BitwardenCreditCardData, NavigationBlockParametersItem_BitwardenLoginCredential, NavigationBlockParametersItem_BitwardenSensitiveInformation, @@ -220,6 +249,7 @@ from .non_empty_credit_card_credential import NonEmptyCreditCardCredential from .non_empty_password_credential import NonEmptyPasswordCredential from .one_password_credential_parameter import OnePasswordCredentialParameter from .one_password_credential_parameter_yaml import OnePasswordCredentialParameterYaml +from .otp_type import OtpType from .output_parameter import OutputParameter from .output_parameter_yaml import OutputParameterYaml from .password_credential_response import PasswordCredentialResponse @@ -228,6 +258,10 @@ from .pdf_parser_block_yaml import PdfParserBlockYaml from .proxy_location import ProxyLocation from .run_engine import RunEngine from .run_status import RunStatus +from .script import Script +from .script_file_create import ScriptFileCreate +from .script_run_response import ScriptRunResponse +from .select_option import SelectOption from .send_email_block import SendEmailBlock from .send_email_block_yaml import SendEmailBlockYaml from .skyvern_forge_sdk_schemas_credentials_credential_type import SkyvernForgeSdkSchemasCredentialsCredentialType @@ -237,6 +271,8 @@ from .task_block_data_schema import TaskBlockDataSchema from .task_block_parameters_item import ( TaskBlockParametersItem, TaskBlockParametersItem_AwsSecret, + TaskBlockParametersItem_AzureSecret, + TaskBlockParametersItem_AzureVaultCredential, TaskBlockParametersItem_BitwardenCreditCardData, TaskBlockParametersItem_BitwardenLoginCredential, TaskBlockParametersItem_BitwardenSensitiveInformation, @@ -258,6 +294,8 @@ from .text_prompt_block import TextPromptBlock from .text_prompt_block_parameters_item import ( TextPromptBlockParametersItem, TextPromptBlockParametersItem_AwsSecret, + TextPromptBlockParametersItem_AzureSecret, + TextPromptBlockParametersItem_AzureVaultCredential, TextPromptBlockParametersItem_BitwardenCreditCardData, TextPromptBlockParametersItem_BitwardenLoginCredential, TextPromptBlockParametersItem_BitwardenSensitiveInformation, @@ -268,7 +306,11 @@ from .text_prompt_block_parameters_item import ( TextPromptBlockParametersItem_Workflow, ) from .text_prompt_block_yaml import TextPromptBlockYaml +from .thought import Thought +from .thought_scenario import ThoughtScenario +from .thought_type import ThoughtType from .totp_code import TotpCode +from .totp_type import TotpType from .upload_to_s3block import UploadToS3Block from .upload_to_s3block_yaml import UploadToS3BlockYaml from .url_block import UrlBlock @@ -276,6 +318,8 @@ from .url_block_data_schema import UrlBlockDataSchema from .url_block_parameters_item import ( UrlBlockParametersItem, UrlBlockParametersItem_AwsSecret, + UrlBlockParametersItem_AzureSecret, + UrlBlockParametersItem_AzureVaultCredential, UrlBlockParametersItem_BitwardenCreditCardData, UrlBlockParametersItem_BitwardenLoginCredential, UrlBlockParametersItem_BitwardenSensitiveInformation, @@ -286,11 +330,14 @@ from .url_block_parameters_item import ( UrlBlockParametersItem_Workflow, ) from .url_block_yaml import UrlBlockYaml +from .user_defined_error import UserDefinedError from .validation_block import ValidationBlock from .validation_block_data_schema import ValidationBlockDataSchema from .validation_block_parameters_item import ( ValidationBlockParametersItem, ValidationBlockParametersItem_AwsSecret, + ValidationBlockParametersItem_AzureSecret, + ValidationBlockParametersItem_AzureVaultCredential, ValidationBlockParametersItem_BitwardenCreditCardData, ValidationBlockParametersItem_BitwardenLoginCredential, ValidationBlockParametersItem_BitwardenSensitiveInformation, @@ -307,6 +354,8 @@ from .wait_block import WaitBlock from .wait_block_parameters_item import ( WaitBlockParametersItem, WaitBlockParametersItem_AwsSecret, + WaitBlockParametersItem_AzureSecret, + WaitBlockParametersItem_AzureVaultCredential, WaitBlockParametersItem_BitwardenCreditCardData, WaitBlockParametersItem_BitwardenLoginCredential, WaitBlockParametersItem_BitwardenSensitiveInformation, @@ -346,6 +395,8 @@ from .workflow_definition_blocks_item import ( from .workflow_definition_parameters_item import ( WorkflowDefinitionParametersItem, WorkflowDefinitionParametersItem_AwsSecret, + WorkflowDefinitionParametersItem_AzureSecret, + WorkflowDefinitionParametersItem_AzureVaultCredential, WorkflowDefinitionParametersItem_BitwardenCreditCardData, WorkflowDefinitionParametersItem_BitwardenLoginCredential, WorkflowDefinitionParametersItem_BitwardenSensitiveInformation, @@ -382,6 +433,7 @@ from .workflow_definition_yaml_blocks_item import ( from .workflow_definition_yaml_parameters_item import ( WorkflowDefinitionYamlParametersItem, WorkflowDefinitionYamlParametersItem_AwsSecret, + WorkflowDefinitionYamlParametersItem_AzureVaultCredential, WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData, WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential, WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation, @@ -397,16 +449,25 @@ from .workflow_parameter_type import WorkflowParameterType from .workflow_parameter_yaml import WorkflowParameterYaml from .workflow_parameter_yaml_default_value import WorkflowParameterYamlDefaultValue from .workflow_request import WorkflowRequest +from .workflow_run_block import WorkflowRunBlock +from .workflow_run_block_data_schema import WorkflowRunBlockDataSchema +from .workflow_run_block_navigation_payload import WorkflowRunBlockNavigationPayload +from .workflow_run_block_output import WorkflowRunBlockOutput from .workflow_run_request import WorkflowRunRequest from .workflow_run_response import WorkflowRunResponse from .workflow_run_response_output import WorkflowRunResponseOutput +from .workflow_run_timeline import WorkflowRunTimeline +from .workflow_run_timeline_type import WorkflowRunTimelineType from .workflow_status import WorkflowStatus __all__ = [ + "Action", "ActionBlock", "ActionBlockDataSchema", "ActionBlockParametersItem", "ActionBlockParametersItem_AwsSecret", + "ActionBlockParametersItem_AzureSecret", + "ActionBlockParametersItem_AzureVaultCredential", "ActionBlockParametersItem_BitwardenCreditCardData", "ActionBlockParametersItem_BitwardenLoginCredential", "ActionBlockParametersItem_BitwardenSensitiveInformation", @@ -416,20 +477,28 @@ __all__ = [ "ActionBlockParametersItem_Output", "ActionBlockParametersItem_Workflow", "ActionBlockYaml", + "ActionStatus", + "ActionType", "Artifact", "ArtifactType", "AwsSecretParameter", "AwsSecretParameterYaml", + "AzureSecretParameter", + "AzureVaultCredentialParameter", + "AzureVaultCredentialParameterYaml", "BitwardenCreditCardDataParameter", "BitwardenCreditCardDataParameterYaml", "BitwardenLoginCredentialParameter", "BitwardenLoginCredentialParameterYaml", "BitwardenSensitiveInformationParameter", "BitwardenSensitiveInformationParameterYaml", + "BlockType", "BrowserSessionResponse", "CodeBlock", "CodeBlockParametersItem", "CodeBlockParametersItem_AwsSecret", + "CodeBlockParametersItem_AzureSecret", + "CodeBlockParametersItem_AzureVaultCredential", "CodeBlockParametersItem_BitwardenCreditCardData", "CodeBlockParametersItem_BitwardenLoginCredential", "CodeBlockParametersItem_BitwardenSensitiveInformation", @@ -442,6 +511,8 @@ __all__ = [ "ContextParameter", "ContextParameterSource", "ContextParameterSource_AwsSecret", + "ContextParameterSource_AzureSecret", + "ContextParameterSource_AzureVaultCredential", "ContextParameterSource_BitwardenCreditCardData", "ContextParameterSource_BitwardenLoginCredential", "ContextParameterSource_BitwardenSensitiveInformation", @@ -453,6 +524,7 @@ __all__ = [ "ContextParameterValue", "ContextParameterYaml", "CreateCredentialRequestCredential", + "CreateScriptResponse", "CredentialParameter", "CredentialParameterYaml", "CredentialResponse", @@ -465,6 +537,8 @@ __all__ = [ "ExtractionBlockDataSchema", "ExtractionBlockParametersItem", "ExtractionBlockParametersItem_AwsSecret", + "ExtractionBlockParametersItem_AzureSecret", + "ExtractionBlockParametersItem_AzureVaultCredential", "ExtractionBlockParametersItem_BitwardenCreditCardData", "ExtractionBlockParametersItem_BitwardenLoginCredential", "ExtractionBlockParametersItem_BitwardenSensitiveInformation", @@ -479,6 +553,8 @@ __all__ = [ "FileDownloadBlockDataSchema", "FileDownloadBlockParametersItem", "FileDownloadBlockParametersItem_AwsSecret", + "FileDownloadBlockParametersItem_AzureSecret", + "FileDownloadBlockParametersItem_AzureVaultCredential", "FileDownloadBlockParametersItem_BitwardenCreditCardData", "FileDownloadBlockParametersItem_BitwardenLoginCredential", "FileDownloadBlockParametersItem_BitwardenSensitiveInformation", @@ -488,7 +564,9 @@ __all__ = [ "FileDownloadBlockParametersItem_Output", "FileDownloadBlockParametersItem_Workflow", "FileDownloadBlockYaml", + "FileEncoding", "FileInfo", + "FileNode", "FileParserBlock", "FileParserBlockYaml", "FileStorageType", @@ -519,6 +597,8 @@ __all__ = [ "ForLoopBlockLoopBlocksItem_Wait", "ForLoopBlockLoopOver", "ForLoopBlockLoopOver_AwsSecret", + "ForLoopBlockLoopOver_AzureSecret", + "ForLoopBlockLoopOver_AzureVaultCredential", "ForLoopBlockLoopOver_BitwardenCreditCardData", "ForLoopBlockLoopOver_BitwardenLoginCredential", "ForLoopBlockLoopOver_BitwardenSensitiveInformation", @@ -559,6 +639,8 @@ __all__ = [ "HttpRequestBlock", "HttpRequestBlockParametersItem", "HttpRequestBlockParametersItem_AwsSecret", + "HttpRequestBlockParametersItem_AzureSecret", + "HttpRequestBlockParametersItem_AzureVaultCredential", "HttpRequestBlockParametersItem_BitwardenCreditCardData", "HttpRequestBlockParametersItem_BitwardenLoginCredential", "HttpRequestBlockParametersItem_BitwardenSensitiveInformation", @@ -569,10 +651,13 @@ __all__ = [ "HttpRequestBlockParametersItem_Workflow", "HttpRequestBlockYaml", "HttpValidationError", + "InputOrSelectContext", "LoginBlock", "LoginBlockDataSchema", "LoginBlockParametersItem", "LoginBlockParametersItem_AwsSecret", + "LoginBlockParametersItem_AzureSecret", + "LoginBlockParametersItem_AzureVaultCredential", "LoginBlockParametersItem_BitwardenCreditCardData", "LoginBlockParametersItem_BitwardenLoginCredential", "LoginBlockParametersItem_BitwardenSensitiveInformation", @@ -586,6 +671,8 @@ __all__ = [ "NavigationBlockDataSchema", "NavigationBlockParametersItem", "NavigationBlockParametersItem_AwsSecret", + "NavigationBlockParametersItem_AzureSecret", + "NavigationBlockParametersItem_AzureVaultCredential", "NavigationBlockParametersItem_BitwardenCreditCardData", "NavigationBlockParametersItem_BitwardenLoginCredential", "NavigationBlockParametersItem_BitwardenSensitiveInformation", @@ -599,6 +686,7 @@ __all__ = [ "NonEmptyPasswordCredential", "OnePasswordCredentialParameter", "OnePasswordCredentialParameterYaml", + "OtpType", "OutputParameter", "OutputParameterYaml", "PasswordCredentialResponse", @@ -607,6 +695,10 @@ __all__ = [ "ProxyLocation", "RunEngine", "RunStatus", + "Script", + "ScriptFileCreate", + "ScriptRunResponse", + "SelectOption", "SendEmailBlock", "SendEmailBlockYaml", "SkyvernForgeSdkSchemasCredentialsCredentialType", @@ -615,6 +707,8 @@ __all__ = [ "TaskBlockDataSchema", "TaskBlockParametersItem", "TaskBlockParametersItem_AwsSecret", + "TaskBlockParametersItem_AzureSecret", + "TaskBlockParametersItem_AzureVaultCredential", "TaskBlockParametersItem_BitwardenCreditCardData", "TaskBlockParametersItem_BitwardenLoginCredential", "TaskBlockParametersItem_BitwardenSensitiveInformation", @@ -634,6 +728,8 @@ __all__ = [ "TextPromptBlock", "TextPromptBlockParametersItem", "TextPromptBlockParametersItem_AwsSecret", + "TextPromptBlockParametersItem_AzureSecret", + "TextPromptBlockParametersItem_AzureVaultCredential", "TextPromptBlockParametersItem_BitwardenCreditCardData", "TextPromptBlockParametersItem_BitwardenLoginCredential", "TextPromptBlockParametersItem_BitwardenSensitiveInformation", @@ -643,13 +739,19 @@ __all__ = [ "TextPromptBlockParametersItem_Output", "TextPromptBlockParametersItem_Workflow", "TextPromptBlockYaml", + "Thought", + "ThoughtScenario", + "ThoughtType", "TotpCode", + "TotpType", "UploadToS3Block", "UploadToS3BlockYaml", "UrlBlock", "UrlBlockDataSchema", "UrlBlockParametersItem", "UrlBlockParametersItem_AwsSecret", + "UrlBlockParametersItem_AzureSecret", + "UrlBlockParametersItem_AzureVaultCredential", "UrlBlockParametersItem_BitwardenCreditCardData", "UrlBlockParametersItem_BitwardenLoginCredential", "UrlBlockParametersItem_BitwardenSensitiveInformation", @@ -659,10 +761,13 @@ __all__ = [ "UrlBlockParametersItem_Output", "UrlBlockParametersItem_Workflow", "UrlBlockYaml", + "UserDefinedError", "ValidationBlock", "ValidationBlockDataSchema", "ValidationBlockParametersItem", "ValidationBlockParametersItem_AwsSecret", + "ValidationBlockParametersItem_AzureSecret", + "ValidationBlockParametersItem_AzureVaultCredential", "ValidationBlockParametersItem_BitwardenCreditCardData", "ValidationBlockParametersItem_BitwardenLoginCredential", "ValidationBlockParametersItem_BitwardenSensitiveInformation", @@ -677,6 +782,8 @@ __all__ = [ "WaitBlock", "WaitBlockParametersItem", "WaitBlockParametersItem_AwsSecret", + "WaitBlockParametersItem_AzureSecret", + "WaitBlockParametersItem_AzureVaultCredential", "WaitBlockParametersItem_BitwardenCreditCardData", "WaitBlockParametersItem_BitwardenLoginCredential", "WaitBlockParametersItem_BitwardenSensitiveInformation", @@ -712,6 +819,8 @@ __all__ = [ "WorkflowDefinitionBlocksItem_Wait", "WorkflowDefinitionParametersItem", "WorkflowDefinitionParametersItem_AwsSecret", + "WorkflowDefinitionParametersItem_AzureSecret", + "WorkflowDefinitionParametersItem_AzureVaultCredential", "WorkflowDefinitionParametersItem_BitwardenCreditCardData", "WorkflowDefinitionParametersItem_BitwardenLoginCredential", "WorkflowDefinitionParametersItem_BitwardenSensitiveInformation", @@ -744,6 +853,7 @@ __all__ = [ "WorkflowDefinitionYamlBlocksItem_Wait", "WorkflowDefinitionYamlParametersItem", "WorkflowDefinitionYamlParametersItem_AwsSecret", + "WorkflowDefinitionYamlParametersItem_AzureVaultCredential", "WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData", "WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential", "WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation", @@ -758,8 +868,14 @@ __all__ = [ "WorkflowParameterYaml", "WorkflowParameterYamlDefaultValue", "WorkflowRequest", + "WorkflowRunBlock", + "WorkflowRunBlockDataSchema", + "WorkflowRunBlockNavigationPayload", + "WorkflowRunBlockOutput", "WorkflowRunRequest", "WorkflowRunResponse", "WorkflowRunResponseOutput", + "WorkflowRunTimeline", + "WorkflowRunTimelineType", "WorkflowStatus", ] diff --git a/skyvern/client/types/action.py b/skyvern/client/types/action.py new file mode 100644 index 00000000..d3b83633 --- /dev/null +++ b/skyvern/client/types/action.py @@ -0,0 +1,59 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +from .action_type import ActionType +import typing +from .action_status import ActionStatus +from .user_defined_error import UserDefinedError +from .input_or_select_context import InputOrSelectContext +from .select_option import SelectOption +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic + + +class Action(UniversalBaseModel): + action_type: ActionType + status: typing.Optional[ActionStatus] = None + action_id: typing.Optional[str] = None + source_action_id: typing.Optional[str] = None + organization_id: typing.Optional[str] = None + workflow_run_id: typing.Optional[str] = None + task_id: typing.Optional[str] = None + step_id: typing.Optional[str] = None + step_order: typing.Optional[int] = None + action_order: typing.Optional[int] = None + confidence_float: typing.Optional[float] = None + description: typing.Optional[str] = None + reasoning: typing.Optional[str] = None + intention: typing.Optional[str] = None + response: typing.Optional[str] = None + element_id: typing.Optional[str] = None + skyvern_element_hash: typing.Optional[str] = None + skyvern_element_data: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + tool_call_id: typing.Optional[str] = None + xpath: typing.Optional[str] = None + errors: typing.Optional[typing.List[UserDefinedError]] = None + data_extraction_goal: typing.Optional[str] = None + file_name: typing.Optional[str] = None + file_url: typing.Optional[str] = None + download: typing.Optional[bool] = None + is_upload_file_tag: typing.Optional[bool] = None + text: typing.Optional[str] = None + input_or_select_context: typing.Optional[InputOrSelectContext] = None + option: typing.Optional[SelectOption] = None + is_checked: typing.Optional[bool] = None + verified: typing.Optional[bool] = None + totp_timing_info: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + created_at: typing.Optional[dt.datetime] = None + modified_at: typing.Optional[dt.datetime] = None + created_by: typing.Optional[str] = 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 diff --git a/skyvern/client/types/action_block.py b/skyvern/client/types/action_block.py index ec9342b5..791d1591 100644 --- a/skyvern/client/types/action_block.py +++ b/skyvern/client/types/action_block.py @@ -16,6 +16,7 @@ class ActionBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -36,6 +37,7 @@ class ActionBlock(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/action_block_parameters_item.py b/skyvern/client/types/action_block_parameters_item.py index 4ad27408..39f65871 100644 --- a/skyvern/client/types/action_block_parameters_item.py +++ b/skyvern/client/types/action_block_parameters_item.py @@ -33,6 +33,51 @@ class ActionBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class ActionBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class ActionBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class ActionBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class ActionBlockParametersItem_Workflow(UniversalBaseModel): ActionBlockParametersItem = typing.Union[ ActionBlockParametersItem_AwsSecret, + ActionBlockParametersItem_AzureSecret, + ActionBlockParametersItem_AzureVaultCredential, ActionBlockParametersItem_BitwardenCreditCardData, ActionBlockParametersItem_BitwardenLoginCredential, ActionBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/action_block_yaml.py b/skyvern/client/types/action_block_yaml.py index 47b012c4..1e847aa7 100644 --- a/skyvern/client/types/action_block_yaml.py +++ b/skyvern/client/types/action_block_yaml.py @@ -23,6 +23,7 @@ class ActionBlockYaml(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/action_status.py b/skyvern/client/types/action_status.py new file mode 100644 index 00000000..e8d4cb89 --- /dev/null +++ b/skyvern/client/types/action_status.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ActionStatus = typing.Union[typing.Literal["pending", "skipped", "failed", "completed"], typing.Any] diff --git a/skyvern/client/types/action_type.py b/skyvern/client/types/action_type.py new file mode 100644 index 00000000..ed0d14c8 --- /dev/null +++ b/skyvern/client/types/action_type.py @@ -0,0 +1,29 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ActionType = typing.Union[ + typing.Literal[ + "click", + "input_text", + "upload_file", + "download_file", + "select_option", + "checkbox", + "wait", + "null_action", + "solve_captcha", + "terminate", + "complete", + "reload_page", + "extract", + "verification_code", + "goto_url", + "scroll", + "keypress", + "move", + "drag", + "left_mouse", + ], + typing.Any, +] diff --git a/skyvern/client/types/artifact_type.py b/skyvern/client/types/artifact_type.py index 97faa4a5..59ef5448 100644 --- a/skyvern/client/types/artifact_type.py +++ b/skyvern/client/types/artifact_type.py @@ -29,6 +29,7 @@ ArtifactType = typing.Union[ "html_action", "trace", "har", + "script_file", ], typing.Any, ] diff --git a/skyvern/client/types/azure_secret_parameter.py b/skyvern/client/types/azure_secret_parameter.py new file mode 100644 index 00000000..0b7f6a9d --- /dev/null +++ b/skyvern/client/types/azure_secret_parameter.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import typing +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic + + +class AzureSecretParameter(UniversalBaseModel): + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 diff --git a/skyvern/client/types/azure_vault_credential_parameter.py b/skyvern/client/types/azure_vault_credential_parameter.py new file mode 100644 index 00000000..315c72f0 --- /dev/null +++ b/skyvern/client/types/azure_vault_credential_parameter.py @@ -0,0 +1,30 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import typing +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic + + +class AzureVaultCredentialParameter(UniversalBaseModel): + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 diff --git a/skyvern/client/types/azure_vault_credential_parameter_yaml.py b/skyvern/client/types/azure_vault_credential_parameter_yaml.py new file mode 100644 index 00000000..edce4c90 --- /dev/null +++ b/skyvern/client/types/azure_vault_credential_parameter_yaml.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic + + +class AzureVaultCredentialParameterYaml(UniversalBaseModel): + key: str + description: typing.Optional[str] = None + vault_name: str + username_key: str + password_key: str + totp_secret_key: typing.Optional[str] = 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 diff --git a/skyvern/client/types/block_type.py b/skyvern/client/types/block_type.py new file mode 100644 index 00000000..c653f844 --- /dev/null +++ b/skyvern/client/types/block_type.py @@ -0,0 +1,29 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +BlockType = typing.Union[ + typing.Literal[ + "task", + "task_v2", + "for_loop", + "code", + "text_prompt", + "download_to_s3", + "upload_to_s3", + "file_upload", + "send_email", + "file_url_parser", + "validation", + "action", + "navigation", + "extraction", + "login", + "wait", + "file_download", + "goto_url", + "pdf_parser", + "http_request", + ], + typing.Any, +] diff --git a/skyvern/client/types/browser_session_response.py b/skyvern/client/types/browser_session_response.py index 02f4eda6..16b32549 100644 --- a/skyvern/client/types/browser_session_response.py +++ b/skyvern/client/types/browser_session_response.py @@ -3,6 +3,7 @@ from ..core.pydantic_utilities import UniversalBaseModel import pydantic import typing +from .file_info import FileInfo import datetime as dt from ..core.pydantic_utilities import IS_PYDANTIC_V2 @@ -47,6 +48,26 @@ class BrowserSessionResponse(UniversalBaseModel): Url for the browser session page """ + vnc_streaming_supported: typing.Optional[bool] = pydantic.Field(default=None) + """ + Whether the browser session supports VNC streaming + """ + + download_path: typing.Optional[str] = pydantic.Field(default=None) + """ + The path where the browser session downloads files + """ + + downloaded_files: typing.Optional[typing.List[FileInfo]] = pydantic.Field(default=None) + """ + The list of files downloaded by the browser session + """ + + recordings: typing.Optional[typing.List[FileInfo]] = pydantic.Field(default=None) + """ + The list of video recordings from the browser session + """ + started_at: typing.Optional[dt.datetime] = pydantic.Field(default=None) """ Timestamp when the session was started diff --git a/skyvern/client/types/code_block.py b/skyvern/client/types/code_block.py index dc3a98a6..f95ba966 100644 --- a/skyvern/client/types/code_block.py +++ b/skyvern/client/types/code_block.py @@ -14,6 +14,7 @@ class CodeBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None code: str parameters: typing.Optional[typing.List[CodeBlockParametersItem]] = None diff --git a/skyvern/client/types/code_block_parameters_item.py b/skyvern/client/types/code_block_parameters_item.py index 4c88f0c9..a06ceba2 100644 --- a/skyvern/client/types/code_block_parameters_item.py +++ b/skyvern/client/types/code_block_parameters_item.py @@ -33,6 +33,51 @@ class CodeBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class CodeBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class CodeBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class CodeBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class CodeBlockParametersItem_Workflow(UniversalBaseModel): CodeBlockParametersItem = typing.Union[ CodeBlockParametersItem_AwsSecret, + CodeBlockParametersItem_AzureSecret, + CodeBlockParametersItem_AzureVaultCredential, CodeBlockParametersItem_BitwardenCreditCardData, CodeBlockParametersItem_BitwardenLoginCredential, CodeBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/context_parameter_source.py b/skyvern/client/types/context_parameter_source.py index 86f24bd3..5ee6c21c 100644 --- a/skyvern/client/types/context_parameter_source.py +++ b/skyvern/client/types/context_parameter_source.py @@ -75,6 +75,27 @@ class ContextParameterSource_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class ContextParameterSource_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + class ContextParameterSource_BitwardenLoginCredential(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_login_credential"] = "bitwarden_login_credential" key: str @@ -174,6 +195,30 @@ class ContextParameterSource_Onepassword(UniversalBaseModel): extra = pydantic.Extra.allow +class ContextParameterSource_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class ContextParameterSource_Output(UniversalBaseModel): parameter_type: typing.Literal["output"] = "output" key: str @@ -219,10 +264,12 @@ ContextParameterSource = typing.Union[ ContextParameterSource_Workflow, ContextParameterSource_Context, ContextParameterSource_AwsSecret, + ContextParameterSource_AzureSecret, ContextParameterSource_BitwardenLoginCredential, ContextParameterSource_BitwardenSensitiveInformation, ContextParameterSource_BitwardenCreditCardData, ContextParameterSource_Onepassword, + ContextParameterSource_AzureVaultCredential, ContextParameterSource_Output, ContextParameterSource_Credential, ] diff --git a/skyvern/client/types/create_script_response.py b/skyvern/client/types/create_script_response.py new file mode 100644 index 00000000..d07b7a79 --- /dev/null +++ b/skyvern/client/types/create_script_response.py @@ -0,0 +1,49 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import pydantic +import typing +from .file_node import FileNode +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 + + +class CreateScriptResponse(UniversalBaseModel): + script_id: str = pydantic.Field() + """ + Unique script identifier + """ + + version: int = pydantic.Field() + """ + Script version number + """ + + run_id: typing.Optional[str] = pydantic.Field(default=None) + """ + ID of the workflow run or task run that generated this script + """ + + file_count: int = pydantic.Field() + """ + Total number of files in the script + """ + + file_tree: typing.Dict[str, FileNode] = pydantic.Field() + """ + Hierarchical file tree structure + """ + + created_at: dt.datetime = pydantic.Field() + """ + Timestamp when the script was created + """ + + 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 diff --git a/skyvern/client/types/download_to_s3block.py b/skyvern/client/types/download_to_s3block.py index f6a92672..15fef063 100644 --- a/skyvern/client/types/download_to_s3block.py +++ b/skyvern/client/types/download_to_s3block.py @@ -12,6 +12,7 @@ class DownloadToS3Block(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None url: str if IS_PYDANTIC_V2: diff --git a/skyvern/client/types/extraction_block.py b/skyvern/client/types/extraction_block.py index ee571b94..7c0aa333 100644 --- a/skyvern/client/types/extraction_block.py +++ b/skyvern/client/types/extraction_block.py @@ -16,6 +16,7 @@ class ExtractionBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -36,6 +37,7 @@ class ExtractionBlock(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/extraction_block_parameters_item.py b/skyvern/client/types/extraction_block_parameters_item.py index 587d79c1..50cde828 100644 --- a/skyvern/client/types/extraction_block_parameters_item.py +++ b/skyvern/client/types/extraction_block_parameters_item.py @@ -33,6 +33,51 @@ class ExtractionBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class ExtractionBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class ExtractionBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class ExtractionBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class ExtractionBlockParametersItem_Workflow(UniversalBaseModel): ExtractionBlockParametersItem = typing.Union[ ExtractionBlockParametersItem_AwsSecret, + ExtractionBlockParametersItem_AzureSecret, + ExtractionBlockParametersItem_AzureVaultCredential, ExtractionBlockParametersItem_BitwardenCreditCardData, ExtractionBlockParametersItem_BitwardenLoginCredential, ExtractionBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/extraction_block_yaml.py b/skyvern/client/types/extraction_block_yaml.py index 1a4babea..798b995c 100644 --- a/skyvern/client/types/extraction_block_yaml.py +++ b/skyvern/client/types/extraction_block_yaml.py @@ -21,6 +21,7 @@ class ExtractionBlockYaml(UniversalBaseModel): max_steps_per_run: typing.Optional[int] = None parameter_keys: typing.Optional[typing.List[str]] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/file_download_block.py b/skyvern/client/types/file_download_block.py index bb2f903d..5b0c395c 100644 --- a/skyvern/client/types/file_download_block.py +++ b/skyvern/client/types/file_download_block.py @@ -16,6 +16,7 @@ class FileDownloadBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -36,6 +37,7 @@ class FileDownloadBlock(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/file_download_block_parameters_item.py b/skyvern/client/types/file_download_block_parameters_item.py index d7d3fe69..ea5336f5 100644 --- a/skyvern/client/types/file_download_block_parameters_item.py +++ b/skyvern/client/types/file_download_block_parameters_item.py @@ -33,6 +33,51 @@ class FileDownloadBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class FileDownloadBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class FileDownloadBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class FileDownloadBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class FileDownloadBlockParametersItem_Workflow(UniversalBaseModel): FileDownloadBlockParametersItem = typing.Union[ FileDownloadBlockParametersItem_AwsSecret, + FileDownloadBlockParametersItem_AzureSecret, + FileDownloadBlockParametersItem_AzureVaultCredential, FileDownloadBlockParametersItem_BitwardenCreditCardData, FileDownloadBlockParametersItem_BitwardenLoginCredential, FileDownloadBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/file_download_block_yaml.py b/skyvern/client/types/file_download_block_yaml.py index 4bbc69a9..dd5d5d8c 100644 --- a/skyvern/client/types/file_download_block_yaml.py +++ b/skyvern/client/types/file_download_block_yaml.py @@ -23,6 +23,8 @@ class FileDownloadBlockYaml(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/file_encoding.py b/skyvern/client/types/file_encoding.py new file mode 100644 index 00000000..3e1a9a89 --- /dev/null +++ b/skyvern/client/types/file_encoding.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +FileEncoding = typing.Union[typing.Literal["base64", "utf-8"], typing.Any] diff --git a/skyvern/client/types/file_info.py b/skyvern/client/types/file_info.py index 90aefad3..d5c91a3a 100644 --- a/skyvern/client/types/file_info.py +++ b/skyvern/client/types/file_info.py @@ -3,6 +3,7 @@ from ..core.pydantic_utilities import UniversalBaseModel import pydantic import typing +import datetime as dt from ..core.pydantic_utilities import IS_PYDANTIC_V2 @@ -26,6 +27,11 @@ class FileInfo(UniversalBaseModel): Original filename """ + modified_at: typing.Optional[dt.datetime] = pydantic.Field(default=None) + """ + Modified time of the file + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/skyvern/client/types/file_node.py b/skyvern/client/types/file_node.py new file mode 100644 index 00000000..7367a983 --- /dev/null +++ b/skyvern/client/types/file_node.py @@ -0,0 +1,57 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations +from ..core.pydantic_utilities import UniversalBaseModel +import pydantic +import typing +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.pydantic_utilities import update_forward_refs + + +class FileNode(UniversalBaseModel): + """ + Model representing a file or directory in the file tree. + """ + + type: str = pydantic.Field() + """ + Type of node: 'file' or 'directory' + """ + + size: typing.Optional[int] = pydantic.Field(default=None) + """ + File size in bytes + """ + + mime_type: typing.Optional[str] = pydantic.Field(default=None) + """ + MIME type of the file + """ + + content_hash: typing.Optional[str] = pydantic.Field(default=None) + """ + SHA256 hash of file content + """ + + created_at: dt.datetime = pydantic.Field() + """ + Timestamp when the file was created + """ + + children: typing.Optional[typing.Dict[str, typing.Optional["FileNode"]]] = pydantic.Field(default=None) + """ + Child nodes for directories + """ + + 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 + + +update_forward_refs(FileNode) diff --git a/skyvern/client/types/file_parser_block.py b/skyvern/client/types/file_parser_block.py index e6f50360..31a555f9 100644 --- a/skyvern/client/types/file_parser_block.py +++ b/skyvern/client/types/file_parser_block.py @@ -13,8 +13,10 @@ class FileParserBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None file_url: str - file_type: FileType = "csv" + file_type: FileType + json_schema: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/file_parser_block_yaml.py b/skyvern/client/types/file_parser_block_yaml.py index e5e05c17..f264e099 100644 --- a/skyvern/client/types/file_parser_block_yaml.py +++ b/skyvern/client/types/file_parser_block_yaml.py @@ -12,7 +12,8 @@ class FileParserBlockYaml(UniversalBaseModel): continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None file_url: str - file_type: FileType = "csv" + file_type: FileType + json_schema: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/file_storage_type.py b/skyvern/client/types/file_storage_type.py index 132c3ca8..4a948584 100644 --- a/skyvern/client/types/file_storage_type.py +++ b/skyvern/client/types/file_storage_type.py @@ -2,4 +2,4 @@ import typing -FileStorageType = typing.Literal["s3"] +FileStorageType = typing.Union[typing.Literal["s3", "azure"], typing.Any] diff --git a/skyvern/client/types/file_type.py b/skyvern/client/types/file_type.py index 0c5b2d3c..fade3f1d 100644 --- a/skyvern/client/types/file_type.py +++ b/skyvern/client/types/file_type.py @@ -2,4 +2,4 @@ import typing -FileType = typing.Literal["csv"] +FileType = typing.Union[typing.Literal["csv", "excel", "pdf"], typing.Any] diff --git a/skyvern/client/types/file_upload_block.py b/skyvern/client/types/file_upload_block.py index 5ea3617f..076a1854 100644 --- a/skyvern/client/types/file_upload_block.py +++ b/skyvern/client/types/file_upload_block.py @@ -15,11 +15,15 @@ class FileUploadBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None storage_type: typing.Optional[FileStorageType] = None s3bucket: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="s3_bucket")] = None aws_access_key_id: typing.Optional[str] = None aws_secret_access_key: typing.Optional[str] = None region_name: typing.Optional[str] = None + azure_storage_account_name: typing.Optional[str] = None + azure_storage_account_key: typing.Optional[str] = None + azure_blob_container_name: typing.Optional[str] = None path: typing.Optional[str] = None if IS_PYDANTIC_V2: diff --git a/skyvern/client/types/file_upload_block_yaml.py b/skyvern/client/types/file_upload_block_yaml.py index 1f192c4e..b654008b 100644 --- a/skyvern/client/types/file_upload_block_yaml.py +++ b/skyvern/client/types/file_upload_block_yaml.py @@ -18,6 +18,10 @@ class FileUploadBlockYaml(UniversalBaseModel): aws_access_key_id: typing.Optional[str] = None aws_secret_access_key: typing.Optional[str] = None region_name: typing.Optional[str] = None + azure_storage_account_name: typing.Optional[str] = None + azure_storage_account_key: typing.Optional[str] = None + azure_blob_container_name: typing.Optional[str] = None + azure_folder_path: typing.Optional[str] = None path: typing.Optional[str] = None if IS_PYDANTIC_V2: diff --git a/skyvern/client/types/for_loop_block.py b/skyvern/client/types/for_loop_block.py index 2e02f540..9f1ba493 100644 --- a/skyvern/client/types/for_loop_block.py +++ b/skyvern/client/types/for_loop_block.py @@ -16,6 +16,7 @@ class ForLoopBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None loop_blocks: typing.List["ForLoopBlockLoopBlocksItem"] loop_over: typing.Optional[ForLoopBlockLoopOver] = None loop_variable_reference: typing.Optional[str] = None diff --git a/skyvern/client/types/for_loop_block_loop_blocks_item.py b/skyvern/client/types/for_loop_block_loop_blocks_item.py index 3d127870..aeeffbcd 100644 --- a/skyvern/client/types/for_loop_block_loop_blocks_item.py +++ b/skyvern/client/types/for_loop_block_loop_blocks_item.py @@ -43,6 +43,7 @@ class ForLoopBlockLoopBlocksItem_Action(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -63,6 +64,7 @@ class ForLoopBlockLoopBlocksItem_Action(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -80,6 +82,7 @@ class ForLoopBlockLoopBlocksItem_Code(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None code: str parameters: typing.Optional[typing.List[CodeBlockParametersItem]] = None @@ -99,6 +102,7 @@ class ForLoopBlockLoopBlocksItem_DownloadToS3(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None url: str if IS_PYDANTIC_V2: @@ -117,6 +121,7 @@ class ForLoopBlockLoopBlocksItem_Extraction(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -137,6 +142,7 @@ class ForLoopBlockLoopBlocksItem_Extraction(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -154,6 +160,7 @@ class ForLoopBlockLoopBlocksItem_FileDownload(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -174,6 +181,7 @@ class ForLoopBlockLoopBlocksItem_FileDownload(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -191,11 +199,15 @@ class ForLoopBlockLoopBlocksItem_FileUpload(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None storage_type: typing.Optional[FileStorageType] = None s3bucket: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="s3_bucket")] = None aws_access_key_id: typing.Optional[str] = None aws_secret_access_key: typing.Optional[str] = None region_name: typing.Optional[str] = None + azure_storage_account_name: typing.Optional[str] = None + azure_storage_account_key: typing.Optional[str] = None + azure_blob_container_name: typing.Optional[str] = None path: typing.Optional[str] = None if IS_PYDANTIC_V2: @@ -214,8 +226,10 @@ class ForLoopBlockLoopBlocksItem_FileUrlParser(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None file_url: str - file_type: FileType = "csv" + file_type: FileType + json_schema: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -233,6 +247,7 @@ class ForLoopBlockLoopBlocksItem_ForLoop(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None loop_blocks: typing.List["ForLoopBlockLoopBlocksItem"] loop_over: typing.Optional[ForLoopBlockLoopOver] = None loop_variable_reference: typing.Optional[str] = None @@ -257,6 +272,7 @@ class ForLoopBlockLoopBlocksItem_GotoUrl(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: str title: typing.Optional[str] = None @@ -277,6 +293,7 @@ class ForLoopBlockLoopBlocksItem_GotoUrl(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -294,6 +311,7 @@ class ForLoopBlockLoopBlocksItem_HttpRequest(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None method: typing.Optional[str] = None url: typing.Optional[str] = None headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None @@ -318,6 +336,7 @@ class ForLoopBlockLoopBlocksItem_Login(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -338,6 +357,7 @@ class ForLoopBlockLoopBlocksItem_Login(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -355,6 +375,7 @@ class ForLoopBlockLoopBlocksItem_Navigation(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -375,6 +396,7 @@ class ForLoopBlockLoopBlocksItem_Navigation(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -392,6 +414,7 @@ class ForLoopBlockLoopBlocksItem_PdfParser(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None file_url: str json_schema: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None @@ -411,6 +434,7 @@ class ForLoopBlockLoopBlocksItem_SendEmail(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None smtp_host: AwsSecretParameter smtp_port: AwsSecretParameter smtp_username: AwsSecretParameter @@ -437,6 +461,7 @@ class ForLoopBlockLoopBlocksItem_Task(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -457,6 +482,7 @@ class ForLoopBlockLoopBlocksItem_Task(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -474,6 +500,7 @@ class ForLoopBlockLoopBlocksItem_TaskV2(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None prompt: str url: typing.Optional[str] = None totp_verification_url: typing.Optional[str] = None @@ -497,6 +524,7 @@ class ForLoopBlockLoopBlocksItem_TextPrompt(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None llm_key: typing.Optional[str] = None prompt: str parameters: typing.Optional[typing.List[TextPromptBlockParametersItem]] = None @@ -518,6 +546,7 @@ class ForLoopBlockLoopBlocksItem_UploadToS3(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None path: typing.Optional[str] = None if IS_PYDANTIC_V2: @@ -536,6 +565,7 @@ class ForLoopBlockLoopBlocksItem_Validation(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -556,6 +586,7 @@ class ForLoopBlockLoopBlocksItem_Validation(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -573,6 +604,7 @@ class ForLoopBlockLoopBlocksItem_Wait(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None wait_sec: int parameters: typing.Optional[typing.List[WaitBlockParametersItem]] = None diff --git a/skyvern/client/types/for_loop_block_loop_over.py b/skyvern/client/types/for_loop_block_loop_over.py index 2b5e8f44..8291b579 100644 --- a/skyvern/client/types/for_loop_block_loop_over.py +++ b/skyvern/client/types/for_loop_block_loop_over.py @@ -33,6 +33,51 @@ class ForLoopBlockLoopOver_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class ForLoopBlockLoopOver_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class ForLoopBlockLoopOver_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class ForLoopBlockLoopOver_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class ForLoopBlockLoopOver_Workflow(UniversalBaseModel): ForLoopBlockLoopOver = typing.Union[ ForLoopBlockLoopOver_AwsSecret, + ForLoopBlockLoopOver_AzureSecret, + ForLoopBlockLoopOver_AzureVaultCredential, ForLoopBlockLoopOver_BitwardenCreditCardData, ForLoopBlockLoopOver_BitwardenLoginCredential, ForLoopBlockLoopOver_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/for_loop_block_yaml_loop_blocks_item.py b/skyvern/client/types/for_loop_block_yaml_loop_blocks_item.py index 69b21187..f2a3bc34 100644 --- a/skyvern/client/types/for_loop_block_yaml_loop_blocks_item.py +++ b/skyvern/client/types/for_loop_block_yaml_loop_blocks_item.py @@ -35,6 +35,7 @@ class ForLoopBlockYamlLoopBlocksItem_Task(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None complete_criterion: typing.Optional[str] = None terminate_criterion: typing.Optional[str] = None complete_verification: typing.Optional[bool] = None @@ -155,6 +156,10 @@ class ForLoopBlockYamlLoopBlocksItem_FileUpload(UniversalBaseModel): aws_access_key_id: typing.Optional[str] = None aws_secret_access_key: typing.Optional[str] = None region_name: typing.Optional[str] = None + azure_storage_account_name: typing.Optional[str] = None + azure_storage_account_key: typing.Optional[str] = None + azure_blob_container_name: typing.Optional[str] = None + azure_folder_path: typing.Optional[str] = None path: typing.Optional[str] = None if IS_PYDANTIC_V2: @@ -198,7 +203,8 @@ class ForLoopBlockYamlLoopBlocksItem_FileUrlParser(UniversalBaseModel): continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None file_url: str - file_type: FileType = "csv" + file_type: FileType + json_schema: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -219,6 +225,7 @@ class ForLoopBlockYamlLoopBlocksItem_Validation(UniversalBaseModel): terminate_criterion: typing.Optional[str] = None error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None parameter_keys: typing.Optional[typing.List[str]] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -247,6 +254,7 @@ class ForLoopBlockYamlLoopBlocksItem_Action(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -276,6 +284,7 @@ class ForLoopBlockYamlLoopBlocksItem_Navigation(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None complete_criterion: typing.Optional[str] = None terminate_criterion: typing.Optional[str] = None complete_verification: typing.Optional[bool] = None @@ -305,6 +314,7 @@ class ForLoopBlockYamlLoopBlocksItem_Extraction(UniversalBaseModel): max_steps_per_run: typing.Optional[int] = None parameter_keys: typing.Optional[typing.List[str]] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -332,6 +342,7 @@ class ForLoopBlockYamlLoopBlocksItem_Login(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None complete_criterion: typing.Optional[str] = None terminate_criterion: typing.Optional[str] = None complete_verification: typing.Optional[bool] = None @@ -380,6 +391,8 @@ class ForLoopBlockYamlLoopBlocksItem_FileDownload(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -437,6 +450,7 @@ class ForLoopBlockYamlLoopBlocksItem_TaskV2(UniversalBaseModel): totp_identifier: typing.Optional[str] = None max_iterations: typing.Optional[int] = None max_steps: typing.Optional[int] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/get_run_response.py b/skyvern/client/types/get_run_response.py index 5c2afce4..535da042 100644 --- a/skyvern/client/types/get_run_response.py +++ b/skyvern/client/types/get_run_response.py @@ -7,6 +7,7 @@ from .run_status import RunStatus from .task_run_response_output import TaskRunResponseOutput from .file_info import FileInfo import datetime as dt +from .script_run_response import ScriptRunResponse from .task_run_request import TaskRunRequest from ..core.pydantic_utilities import IS_PYDANTIC_V2 import pydantic @@ -31,6 +32,8 @@ class GetRunResponse_TaskV1(UniversalBaseModel): app_url: typing.Optional[str] = None browser_session_id: typing.Optional[str] = None max_screenshot_scrolls: typing.Optional[int] = None + script_run: typing.Optional[ScriptRunResponse] = None + errors: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = None run_request: typing.Optional[TaskRunRequest] = None if IS_PYDANTIC_V2: @@ -60,6 +63,8 @@ class GetRunResponse_TaskV2(UniversalBaseModel): app_url: typing.Optional[str] = None browser_session_id: typing.Optional[str] = None max_screenshot_scrolls: typing.Optional[int] = None + script_run: typing.Optional[ScriptRunResponse] = None + errors: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = None run_request: typing.Optional[TaskRunRequest] = None if IS_PYDANTIC_V2: @@ -89,6 +94,8 @@ class GetRunResponse_OpenaiCua(UniversalBaseModel): app_url: typing.Optional[str] = None browser_session_id: typing.Optional[str] = None max_screenshot_scrolls: typing.Optional[int] = None + script_run: typing.Optional[ScriptRunResponse] = None + errors: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = None run_request: typing.Optional[TaskRunRequest] = None if IS_PYDANTIC_V2: @@ -118,6 +125,8 @@ class GetRunResponse_AnthropicCua(UniversalBaseModel): app_url: typing.Optional[str] = None browser_session_id: typing.Optional[str] = None max_screenshot_scrolls: typing.Optional[int] = None + script_run: typing.Optional[ScriptRunResponse] = None + errors: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = None run_request: typing.Optional[TaskRunRequest] = None if IS_PYDANTIC_V2: @@ -147,6 +156,8 @@ class GetRunResponse_UiTars(UniversalBaseModel): app_url: typing.Optional[str] = None browser_session_id: typing.Optional[str] = None max_screenshot_scrolls: typing.Optional[int] = None + script_run: typing.Optional[ScriptRunResponse] = None + errors: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = None run_request: typing.Optional[TaskRunRequest] = None if IS_PYDANTIC_V2: @@ -176,6 +187,10 @@ class GetRunResponse_WorkflowRun(UniversalBaseModel): app_url: typing.Optional[str] = None browser_session_id: typing.Optional[str] = None max_screenshot_scrolls: typing.Optional[int] = None + script_run: typing.Optional[ScriptRunResponse] = None + errors: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = None + run_with: typing.Optional[str] = None + ai_fallback: typing.Optional[bool] = None run_request: typing.Optional[WorkflowRunRequest] = None if IS_PYDANTIC_V2: diff --git a/skyvern/client/types/http_request_block.py b/skyvern/client/types/http_request_block.py index 653625b0..758c4d6c 100644 --- a/skyvern/client/types/http_request_block.py +++ b/skyvern/client/types/http_request_block.py @@ -14,6 +14,7 @@ class HttpRequestBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None method: typing.Optional[str] = None url: typing.Optional[str] = None headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None diff --git a/skyvern/client/types/http_request_block_parameters_item.py b/skyvern/client/types/http_request_block_parameters_item.py index c911ab00..3069b31c 100644 --- a/skyvern/client/types/http_request_block_parameters_item.py +++ b/skyvern/client/types/http_request_block_parameters_item.py @@ -33,6 +33,51 @@ class HttpRequestBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class HttpRequestBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class HttpRequestBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class HttpRequestBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class HttpRequestBlockParametersItem_Workflow(UniversalBaseModel): HttpRequestBlockParametersItem = typing.Union[ HttpRequestBlockParametersItem_AwsSecret, + HttpRequestBlockParametersItem_AzureSecret, + HttpRequestBlockParametersItem_AzureVaultCredential, HttpRequestBlockParametersItem_BitwardenCreditCardData, HttpRequestBlockParametersItem_BitwardenLoginCredential, HttpRequestBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/input_or_select_context.py b/skyvern/client/types/input_or_select_context.py new file mode 100644 index 00000000..2fccd7b7 --- /dev/null +++ b/skyvern/client/types/input_or_select_context.py @@ -0,0 +1,24 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic + + +class InputOrSelectContext(UniversalBaseModel): + intention: typing.Optional[str] = None + field: typing.Optional[str] = None + is_required: typing.Optional[bool] = None + is_search_bar: typing.Optional[bool] = None + is_location_input: typing.Optional[bool] = None + is_date_related: typing.Optional[bool] = 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 diff --git a/skyvern/client/types/login_block.py b/skyvern/client/types/login_block.py index 69e2841c..7673f7bd 100644 --- a/skyvern/client/types/login_block.py +++ b/skyvern/client/types/login_block.py @@ -16,6 +16,7 @@ class LoginBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -36,6 +37,7 @@ class LoginBlock(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/login_block_parameters_item.py b/skyvern/client/types/login_block_parameters_item.py index c1cca623..d48303c6 100644 --- a/skyvern/client/types/login_block_parameters_item.py +++ b/skyvern/client/types/login_block_parameters_item.py @@ -33,6 +33,51 @@ class LoginBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class LoginBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class LoginBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class LoginBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class LoginBlockParametersItem_Workflow(UniversalBaseModel): LoginBlockParametersItem = typing.Union[ LoginBlockParametersItem_AwsSecret, + LoginBlockParametersItem_AzureSecret, + LoginBlockParametersItem_AzureVaultCredential, LoginBlockParametersItem_BitwardenCreditCardData, LoginBlockParametersItem_BitwardenLoginCredential, LoginBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/login_block_yaml.py b/skyvern/client/types/login_block_yaml.py index 34d4e320..a62684dd 100644 --- a/skyvern/client/types/login_block_yaml.py +++ b/skyvern/client/types/login_block_yaml.py @@ -22,6 +22,7 @@ class LoginBlockYaml(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None complete_criterion: typing.Optional[str] = None terminate_criterion: typing.Optional[str] = None complete_verification: typing.Optional[bool] = None diff --git a/skyvern/client/types/navigation_block.py b/skyvern/client/types/navigation_block.py index e9dc08c8..d7a152d5 100644 --- a/skyvern/client/types/navigation_block.py +++ b/skyvern/client/types/navigation_block.py @@ -16,6 +16,7 @@ class NavigationBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -36,6 +37,7 @@ class NavigationBlock(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/navigation_block_parameters_item.py b/skyvern/client/types/navigation_block_parameters_item.py index 40e66006..dd375392 100644 --- a/skyvern/client/types/navigation_block_parameters_item.py +++ b/skyvern/client/types/navigation_block_parameters_item.py @@ -33,6 +33,51 @@ class NavigationBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class NavigationBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class NavigationBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class NavigationBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class NavigationBlockParametersItem_Workflow(UniversalBaseModel): NavigationBlockParametersItem = typing.Union[ NavigationBlockParametersItem_AwsSecret, + NavigationBlockParametersItem_AzureSecret, + NavigationBlockParametersItem_AzureVaultCredential, NavigationBlockParametersItem_BitwardenCreditCardData, NavigationBlockParametersItem_BitwardenLoginCredential, NavigationBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/navigation_block_yaml.py b/skyvern/client/types/navigation_block_yaml.py index f3b0f211..2b0bac42 100644 --- a/skyvern/client/types/navigation_block_yaml.py +++ b/skyvern/client/types/navigation_block_yaml.py @@ -24,6 +24,7 @@ class NavigationBlockYaml(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None complete_criterion: typing.Optional[str] = None terminate_criterion: typing.Optional[str] = None complete_verification: typing.Optional[bool] = None diff --git a/skyvern/client/types/non_empty_password_credential.py b/skyvern/client/types/non_empty_password_credential.py index 3d267c39..ba154620 100644 --- a/skyvern/client/types/non_empty_password_credential.py +++ b/skyvern/client/types/non_empty_password_credential.py @@ -3,6 +3,7 @@ from ..core.pydantic_utilities import UniversalBaseModel import pydantic import typing +from .totp_type import TotpType from ..core.pydantic_utilities import IS_PYDANTIC_V2 @@ -26,6 +27,11 @@ class NonEmptyPasswordCredential(UniversalBaseModel): Optional TOTP (Time-based One-Time Password) string used to generate 2FA codes """ + totp_type: typing.Optional[TotpType] = pydantic.Field(default=None) + """ + Type of 2FA method used for this credential + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/skyvern/client/types/otp_type.py b/skyvern/client/types/otp_type.py new file mode 100644 index 00000000..50837659 --- /dev/null +++ b/skyvern/client/types/otp_type.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +OtpType = typing.Union[typing.Literal["totp", "magic_link"], typing.Any] diff --git a/skyvern/client/types/password_credential_response.py b/skyvern/client/types/password_credential_response.py index 875349c4..9a0c5887 100644 --- a/skyvern/client/types/password_credential_response.py +++ b/skyvern/client/types/password_credential_response.py @@ -2,8 +2,9 @@ from ..core.pydantic_utilities import UniversalBaseModel import pydantic -from ..core.pydantic_utilities import IS_PYDANTIC_V2 import typing +from .totp_type import TotpType +from ..core.pydantic_utilities import IS_PYDANTIC_V2 class PasswordCredentialResponse(UniversalBaseModel): @@ -16,6 +17,11 @@ class PasswordCredentialResponse(UniversalBaseModel): The username associated with the credential """ + totp_type: typing.Optional[TotpType] = pydantic.Field(default=None) + """ + Type of 2FA method used for this credential + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/skyvern/client/types/pdf_parser_block.py b/skyvern/client/types/pdf_parser_block.py index e5b1e1e8..79b7fc74 100644 --- a/skyvern/client/types/pdf_parser_block.py +++ b/skyvern/client/types/pdf_parser_block.py @@ -8,10 +8,16 @@ import pydantic class PdfParserBlock(UniversalBaseModel): + """ + DEPRECATED: Use FileParserBlock with file_type=FileType.PDF instead. + This block will be removed in a future version. + """ + label: str output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None file_url: str json_schema: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None diff --git a/skyvern/client/types/script.py b/skyvern/client/types/script.py new file mode 100644 index 00000000..c31ad210 --- /dev/null +++ b/skyvern/client/types/script.py @@ -0,0 +1,58 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import pydantic +import typing +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 + + +class Script(UniversalBaseModel): + script_revision_id: str = pydantic.Field() + """ + Unique identifier for this specific script revision + """ + + script_id: str = pydantic.Field() + """ + User-facing script identifier, consistent across versions + """ + + organization_id: str = pydantic.Field() + """ + ID of the organization that owns this script + """ + + run_id: typing.Optional[str] = pydantic.Field(default=None) + """ + ID of the workflow run or task run that generated this script + """ + + version: int = pydantic.Field() + """ + Version number of the script + """ + + created_at: dt.datetime = pydantic.Field() + """ + Timestamp when the script was created + """ + + modified_at: dt.datetime = pydantic.Field() + """ + Timestamp when the script was last modified + """ + + deleted_at: typing.Optional[dt.datetime] = pydantic.Field(default=None) + """ + Timestamp when the script was soft deleted + """ + + 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 diff --git a/skyvern/client/types/script_file_create.py b/skyvern/client/types/script_file_create.py new file mode 100644 index 00000000..3099379b --- /dev/null +++ b/skyvern/client/types/script_file_create.py @@ -0,0 +1,42 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import pydantic +import typing +from .file_encoding import FileEncoding +from ..core.pydantic_utilities import IS_PYDANTIC_V2 + + +class ScriptFileCreate(UniversalBaseModel): + """ + Model representing a file in a script. + """ + + path: str = pydantic.Field() + """ + File path relative to script root + """ + + content: str = pydantic.Field() + """ + Base64 encoded file content + """ + + encoding: typing.Optional[FileEncoding] = pydantic.Field(default=None) + """ + Content encoding + """ + + mime_type: typing.Optional[str] = pydantic.Field(default=None) + """ + MIME type (auto-detected if not provided) + """ + + 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 diff --git a/skyvern/client/types/script_run_response.py b/skyvern/client/types/script_run_response.py new file mode 100644 index 00000000..5c01f0e1 --- /dev/null +++ b/skyvern/client/types/script_run_response.py @@ -0,0 +1,19 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic + + +class ScriptRunResponse(UniversalBaseModel): + ai_fallback_triggered: typing.Optional[bool] = 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 diff --git a/skyvern/client/types/select_option.py b/skyvern/client/types/select_option.py new file mode 100644 index 00000000..3b8a6d9d --- /dev/null +++ b/skyvern/client/types/select_option.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import typing +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic + + +class SelectOption(UniversalBaseModel): + label: typing.Optional[str] = None + value: typing.Optional[str] = None + index: typing.Optional[int] = 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 diff --git a/skyvern/client/types/send_email_block.py b/skyvern/client/types/send_email_block.py index 9b370620..cdac72b7 100644 --- a/skyvern/client/types/send_email_block.py +++ b/skyvern/client/types/send_email_block.py @@ -13,6 +13,7 @@ class SendEmailBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None smtp_host: AwsSecretParameter smtp_port: AwsSecretParameter smtp_username: AwsSecretParameter diff --git a/skyvern/client/types/skyvern_schemas_run_blocks_credential_type.py b/skyvern/client/types/skyvern_schemas_run_blocks_credential_type.py index 3a2cf41f..e153f92e 100644 --- a/skyvern/client/types/skyvern_schemas_run_blocks_credential_type.py +++ b/skyvern/client/types/skyvern_schemas_run_blocks_credential_type.py @@ -2,4 +2,6 @@ import typing -SkyvernSchemasRunBlocksCredentialType = typing.Union[typing.Literal["skyvern", "bitwarden", "1password"], typing.Any] +SkyvernSchemasRunBlocksCredentialType = typing.Union[ + typing.Literal["skyvern", "bitwarden", "1password", "azure_vault"], typing.Any +] diff --git a/skyvern/client/types/task_block.py b/skyvern/client/types/task_block.py index 5a09f143..48b4454c 100644 --- a/skyvern/client/types/task_block.py +++ b/skyvern/client/types/task_block.py @@ -16,6 +16,7 @@ class TaskBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -36,6 +37,7 @@ class TaskBlock(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/task_block_parameters_item.py b/skyvern/client/types/task_block_parameters_item.py index c9f5b034..38981971 100644 --- a/skyvern/client/types/task_block_parameters_item.py +++ b/skyvern/client/types/task_block_parameters_item.py @@ -33,6 +33,51 @@ class TaskBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class TaskBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class TaskBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class TaskBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class TaskBlockParametersItem_Workflow(UniversalBaseModel): TaskBlockParametersItem = typing.Union[ TaskBlockParametersItem_AwsSecret, + TaskBlockParametersItem_AzureSecret, + TaskBlockParametersItem_AzureVaultCredential, TaskBlockParametersItem_BitwardenCreditCardData, TaskBlockParametersItem_BitwardenLoginCredential, TaskBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/task_block_yaml.py b/skyvern/client/types/task_block_yaml.py index 12ce1d47..20b9a458 100644 --- a/skyvern/client/types/task_block_yaml.py +++ b/skyvern/client/types/task_block_yaml.py @@ -27,6 +27,7 @@ class TaskBlockYaml(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None complete_criterion: typing.Optional[str] = None terminate_criterion: typing.Optional[str] = None complete_verification: typing.Optional[bool] = None diff --git a/skyvern/client/types/task_run_request.py b/skyvern/client/types/task_run_request.py index 7dc423be..b8f26d12 100644 --- a/skyvern/client/types/task_run_request.py +++ b/skyvern/client/types/task_run_request.py @@ -12,19 +12,19 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2 class TaskRunRequest(UniversalBaseModel): prompt: str = pydantic.Field() """ - + The goal or task description for Skyvern to accomplish """ url: typing.Optional[str] = pydantic.Field(default=None) """ - + The starting URL for the task. If not provided, Skyvern will attempt to determine an appropriate URL """ engine: typing.Optional[RunEngine] = pydantic.Field(default=None) """ - + The engine that powers the agent task. The default value is `skyvern-2.0`, the latest Skyvern agent that performs pretty well with complex and multi-step tasks. `skyvern-1.0` is good for simple tasks like filling a form, or searching for information on Google. The `openai-cua` engine uses OpenAI's CUA model. The `anthropic-cua` uses Anthropic's Claude Sonnet 3.7 model with the computer use tool. """ @@ -35,9 +35,9 @@ class TaskRunRequest(UniversalBaseModel): proxy_location: typing.Optional[ProxyLocation] = pydantic.Field(default=None) """ - + Geographic Proxy location to route the browser traffic through. This is only available in Skyvern Cloud. - + Available geotargeting options: - RESIDENTIAL: the default value. Skyvern Cloud uses a random US residential proxy. - RESIDENTIAL_ES: Spain @@ -62,49 +62,49 @@ class TaskRunRequest(UniversalBaseModel): data_extraction_schema: typing.Optional[TaskRunRequestDataExtractionSchema] = pydantic.Field(default=None) """ - + The schema for data to be extracted from the webpage. If you're looking for consistent data schema being returned by the agent, it's highly recommended to use https://json-schema.org/. """ error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = pydantic.Field(default=None) """ - + Custom mapping of error codes to error messages if Skyvern encounters an error. """ max_steps: typing.Optional[int] = pydantic.Field(default=None) """ - + Maximum number of steps the task can take. Task will fail if it exceeds this number. Cautions: you are charged per step so please set this number to a reasonable value. Contact sales@skyvern.com for custom pricing. """ webhook_url: typing.Optional[str] = pydantic.Field(default=None) """ - + After a run is finished, send an update to this URL. Refer to https://www.skyvern.com/docs/running-tasks/webhooks-faq for more details. """ totp_identifier: typing.Optional[str] = pydantic.Field(default=None) """ - + Identifier for the TOTP/2FA/MFA code when the code is pushed to Skyvern. Refer to https://www.skyvern.com/docs/credentials/totp#option-3-push-code-to-skyvern for more details. """ totp_url: typing.Optional[str] = pydantic.Field(default=None) """ - + URL that serves TOTP/2FA/MFA codes for Skyvern to use during the workflow run. Refer to https://www.skyvern.com/docs/credentials/totp#option-2-get-code-from-your-endpoint for more details. """ browser_session_id: typing.Optional[str] = pydantic.Field(default=None) """ - + Run the task or workflow in the specific Skyvern browser session. Having a browser session can persist the real-time state of the browser, so that the next run can continue from where the previous run left off. """ model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None) """ - + Optional model configuration. """ @@ -128,6 +128,11 @@ class TaskRunRequest(UniversalBaseModel): The maximum number of scrolls for the post action screenshot. When it's None or 0, it takes the current viewpoint screenshot. """ + browser_address: typing.Optional[str] = pydantic.Field(default=None) + """ + The CDP address for the task. + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/skyvern/client/types/task_run_response.py b/skyvern/client/types/task_run_response.py index d53902e1..f4d1657c 100644 --- a/skyvern/client/types/task_run_response.py +++ b/skyvern/client/types/task_run_response.py @@ -7,6 +7,7 @@ import typing from .task_run_response_output import TaskRunResponseOutput from .file_info import FileInfo import datetime as dt +from .script_run_response import ScriptRunResponse from .task_run_request import TaskRunRequest from ..core.pydantic_utilities import IS_PYDANTIC_V2 @@ -87,6 +88,16 @@ class TaskRunResponse(UniversalBaseModel): The maximum number of scrolls for the post action screenshot. When it's None or 0, it takes the current viewpoint screenshot """ + script_run: typing.Optional[ScriptRunResponse] = pydantic.Field(default=None) + """ + The script run result + """ + + errors: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = pydantic.Field(default=None) + """ + The errors for the run + """ + run_request: typing.Optional[TaskRunRequest] = pydantic.Field(default=None) """ The original request parameters used to start this task run diff --git a/skyvern/client/types/task_v2block.py b/skyvern/client/types/task_v2block.py index bba98592..37000f66 100644 --- a/skyvern/client/types/task_v2block.py +++ b/skyvern/client/types/task_v2block.py @@ -12,6 +12,7 @@ class TaskV2Block(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None prompt: str url: typing.Optional[str] = None totp_verification_url: typing.Optional[str] = None diff --git a/skyvern/client/types/task_v2block_yaml.py b/skyvern/client/types/task_v2block_yaml.py index 47b038f8..fbc3188e 100644 --- a/skyvern/client/types/task_v2block_yaml.py +++ b/skyvern/client/types/task_v2block_yaml.py @@ -16,6 +16,7 @@ class TaskV2BlockYaml(UniversalBaseModel): totp_identifier: typing.Optional[str] = None max_iterations: typing.Optional[int] = None max_steps: typing.Optional[int] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/text_prompt_block.py b/skyvern/client/types/text_prompt_block.py index 061d1da9..f0343882 100644 --- a/skyvern/client/types/text_prompt_block.py +++ b/skyvern/client/types/text_prompt_block.py @@ -14,6 +14,7 @@ class TextPromptBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None llm_key: typing.Optional[str] = None prompt: str parameters: typing.Optional[typing.List[TextPromptBlockParametersItem]] = None diff --git a/skyvern/client/types/text_prompt_block_parameters_item.py b/skyvern/client/types/text_prompt_block_parameters_item.py index c0fa963e..ab462a91 100644 --- a/skyvern/client/types/text_prompt_block_parameters_item.py +++ b/skyvern/client/types/text_prompt_block_parameters_item.py @@ -33,6 +33,51 @@ class TextPromptBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class TextPromptBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class TextPromptBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class TextPromptBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class TextPromptBlockParametersItem_Workflow(UniversalBaseModel): TextPromptBlockParametersItem = typing.Union[ TextPromptBlockParametersItem_AwsSecret, + TextPromptBlockParametersItem_AzureSecret, + TextPromptBlockParametersItem_AzureVaultCredential, TextPromptBlockParametersItem_BitwardenCreditCardData, TextPromptBlockParametersItem_BitwardenLoginCredential, TextPromptBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/thought.py b/skyvern/client/types/thought.py new file mode 100644 index 00000000..579b92f5 --- /dev/null +++ b/skyvern/client/types/thought.py @@ -0,0 +1,42 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import typing +from .thought_type import ThoughtType +from .thought_scenario import ThoughtScenario +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic + + +class Thought(UniversalBaseModel): + thought_id: str + task_id: str + organization_id: str + workflow_run_id: typing.Optional[str] = None + workflow_run_block_id: typing.Optional[str] = None + workflow_id: typing.Optional[str] = None + workflow_permanent_id: typing.Optional[str] = None + user_input: typing.Optional[str] = None + observation: typing.Optional[str] = None + thought: typing.Optional[str] = None + answer: typing.Optional[str] = None + thought_type: typing.Optional[ThoughtType] = None + thought_scenario: typing.Optional[ThoughtScenario] = None + output: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + input_token_count: typing.Optional[int] = None + output_token_count: typing.Optional[int] = None + reasoning_token_count: typing.Optional[int] = None + cached_token_count: typing.Optional[int] = None + thought_cost: typing.Optional[float] = 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 diff --git a/skyvern/client/types/thought_scenario.py b/skyvern/client/types/thought_scenario.py new file mode 100644 index 00000000..6b86fd34 --- /dev/null +++ b/skyvern/client/types/thought_scenario.py @@ -0,0 +1,17 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ThoughtScenario = typing.Union[ + typing.Literal[ + "generate_plan", + "user_goal_check", + "failure_describe", + "summarization", + "generate_metadata", + "extract_loop_values", + "generate_task_in_loop", + "generate_general_task", + ], + typing.Any, +] diff --git a/skyvern/client/types/thought_type.py b/skyvern/client/types/thought_type.py new file mode 100644 index 00000000..4cedef3e --- /dev/null +++ b/skyvern/client/types/thought_type.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +ThoughtType = typing.Union[ + typing.Literal["plan", "metadata", "user_goal_check", "internal_plan", "failure_describe"], typing.Any +] diff --git a/skyvern/client/types/totp_code.py b/skyvern/client/types/totp_code.py index b09d2dda..210fbbf8 100644 --- a/skyvern/client/types/totp_code.py +++ b/skyvern/client/types/totp_code.py @@ -4,6 +4,7 @@ from ..core.pydantic_utilities import UniversalBaseModel import pydantic import typing import datetime as dt +from .otp_type import OtpType from ..core.pydantic_utilities import IS_PYDANTIC_V2 @@ -68,6 +69,11 @@ class TotpCode(UniversalBaseModel): The timestamp when the TOTP code was modified. """ + otp_type: typing.Optional[OtpType] = pydantic.Field(default=None) + """ + The type of the OTP code. + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/skyvern/client/types/totp_type.py b/skyvern/client/types/totp_type.py new file mode 100644 index 00000000..8d15e04c --- /dev/null +++ b/skyvern/client/types/totp_type.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +TotpType = typing.Union[typing.Literal["authenticator", "email", "text", "none"], typing.Any] diff --git a/skyvern/client/types/upload_to_s3block.py b/skyvern/client/types/upload_to_s3block.py index af9fe918..08787236 100644 --- a/skyvern/client/types/upload_to_s3block.py +++ b/skyvern/client/types/upload_to_s3block.py @@ -12,6 +12,7 @@ class UploadToS3Block(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None path: typing.Optional[str] = None if IS_PYDANTIC_V2: diff --git a/skyvern/client/types/url_block.py b/skyvern/client/types/url_block.py index 99a82ba2..d1769c6e 100644 --- a/skyvern/client/types/url_block.py +++ b/skyvern/client/types/url_block.py @@ -16,6 +16,7 @@ class UrlBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: str title: typing.Optional[str] = None @@ -36,6 +37,7 @@ class UrlBlock(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/url_block_parameters_item.py b/skyvern/client/types/url_block_parameters_item.py index 0ce80a1e..795872cf 100644 --- a/skyvern/client/types/url_block_parameters_item.py +++ b/skyvern/client/types/url_block_parameters_item.py @@ -33,6 +33,51 @@ class UrlBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class UrlBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class UrlBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class UrlBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class UrlBlockParametersItem_Workflow(UniversalBaseModel): UrlBlockParametersItem = typing.Union[ UrlBlockParametersItem_AwsSecret, + UrlBlockParametersItem_AzureSecret, + UrlBlockParametersItem_AzureVaultCredential, UrlBlockParametersItem_BitwardenCreditCardData, UrlBlockParametersItem_BitwardenLoginCredential, UrlBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/user_defined_error.py b/skyvern/client/types/user_defined_error.py new file mode 100644 index 00000000..0ef64bcc --- /dev/null +++ b/skyvern/client/types/user_defined_error.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import typing +import pydantic + + +class UserDefinedError(UniversalBaseModel): + error_code: str + reasoning: str + confidence_float: float + + 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 diff --git a/skyvern/client/types/validation_block.py b/skyvern/client/types/validation_block.py index 183252b6..3190bd2f 100644 --- a/skyvern/client/types/validation_block.py +++ b/skyvern/client/types/validation_block.py @@ -16,6 +16,7 @@ class ValidationBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -36,6 +37,7 @@ class ValidationBlock(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/validation_block_parameters_item.py b/skyvern/client/types/validation_block_parameters_item.py index 00130248..403c3c7a 100644 --- a/skyvern/client/types/validation_block_parameters_item.py +++ b/skyvern/client/types/validation_block_parameters_item.py @@ -33,6 +33,51 @@ class ValidationBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class ValidationBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class ValidationBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class ValidationBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class ValidationBlockParametersItem_Workflow(UniversalBaseModel): ValidationBlockParametersItem = typing.Union[ ValidationBlockParametersItem_AwsSecret, + ValidationBlockParametersItem_AzureSecret, + ValidationBlockParametersItem_AzureVaultCredential, ValidationBlockParametersItem_BitwardenCreditCardData, ValidationBlockParametersItem_BitwardenLoginCredential, ValidationBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/validation_block_yaml.py b/skyvern/client/types/validation_block_yaml.py index 134409c2..3ade5ccb 100644 --- a/skyvern/client/types/validation_block_yaml.py +++ b/skyvern/client/types/validation_block_yaml.py @@ -14,6 +14,7 @@ class ValidationBlockYaml(UniversalBaseModel): terminate_criterion: typing.Optional[str] = None error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None parameter_keys: typing.Optional[typing.List[str]] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/wait_block.py b/skyvern/client/types/wait_block.py index e5cca803..3e4371f4 100644 --- a/skyvern/client/types/wait_block.py +++ b/skyvern/client/types/wait_block.py @@ -14,6 +14,7 @@ class WaitBlock(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None wait_sec: int parameters: typing.Optional[typing.List[WaitBlockParametersItem]] = None diff --git a/skyvern/client/types/wait_block_parameters_item.py b/skyvern/client/types/wait_block_parameters_item.py index 7b03f7ce..1e8caa3c 100644 --- a/skyvern/client/types/wait_block_parameters_item.py +++ b/skyvern/client/types/wait_block_parameters_item.py @@ -33,6 +33,51 @@ class WaitBlockParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class WaitBlockParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class WaitBlockParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class WaitBlockParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class WaitBlockParametersItem_Workflow(UniversalBaseModel): WaitBlockParametersItem = typing.Union[ WaitBlockParametersItem_AwsSecret, + WaitBlockParametersItem_AzureSecret, + WaitBlockParametersItem_AzureVaultCredential, WaitBlockParametersItem_BitwardenCreditCardData, WaitBlockParametersItem_BitwardenLoginCredential, WaitBlockParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/workflow.py b/skyvern/client/types/workflow.py index d1f33f26..50f08780 100644 --- a/skyvern/client/types/workflow.py +++ b/skyvern/client/types/workflow.py @@ -30,6 +30,11 @@ class Workflow(UniversalBaseModel): status: typing.Optional[WorkflowStatus] = None max_screenshot_scrolls: typing.Optional[int] = None extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None + run_with: typing.Optional[str] = None + ai_fallback: typing.Optional[bool] = None + cache_key: typing.Optional[str] = None + run_sequentially: typing.Optional[bool] = None + sequential_key: typing.Optional[str] = None created_at: dt.datetime modified_at: dt.datetime deleted_at: typing.Optional[dt.datetime] = None diff --git a/skyvern/client/types/workflow_create_yaml_request.py b/skyvern/client/types/workflow_create_yaml_request.py index 46ccba0f..9f2f868c 100644 --- a/skyvern/client/types/workflow_create_yaml_request.py +++ b/skyvern/client/types/workflow_create_yaml_request.py @@ -24,6 +24,11 @@ class WorkflowCreateYamlRequest(UniversalBaseModel): max_screenshot_scrolls: typing.Optional[int] = None extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None status: typing.Optional[WorkflowStatus] = None + run_with: typing.Optional[str] = None + ai_fallback: typing.Optional[bool] = None + cache_key: typing.Optional[str] = None + run_sequentially: typing.Optional[bool] = None + sequential_key: typing.Optional[str] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/workflow_definition_blocks_item.py b/skyvern/client/types/workflow_definition_blocks_item.py index e1e62893..fb8f7042 100644 --- a/skyvern/client/types/workflow_definition_blocks_item.py +++ b/skyvern/client/types/workflow_definition_blocks_item.py @@ -43,6 +43,7 @@ class WorkflowDefinitionBlocksItem_Action(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -63,6 +64,7 @@ class WorkflowDefinitionBlocksItem_Action(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -80,6 +82,7 @@ class WorkflowDefinitionBlocksItem_Code(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None code: str parameters: typing.Optional[typing.List[CodeBlockParametersItem]] = None @@ -99,6 +102,7 @@ class WorkflowDefinitionBlocksItem_DownloadToS3(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None url: str if IS_PYDANTIC_V2: @@ -117,6 +121,7 @@ class WorkflowDefinitionBlocksItem_Extraction(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -137,6 +142,7 @@ class WorkflowDefinitionBlocksItem_Extraction(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -154,6 +160,7 @@ class WorkflowDefinitionBlocksItem_FileDownload(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -174,6 +181,7 @@ class WorkflowDefinitionBlocksItem_FileDownload(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -191,11 +199,15 @@ class WorkflowDefinitionBlocksItem_FileUpload(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None storage_type: typing.Optional[FileStorageType] = None s3bucket: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="s3_bucket")] = None aws_access_key_id: typing.Optional[str] = None aws_secret_access_key: typing.Optional[str] = None region_name: typing.Optional[str] = None + azure_storage_account_name: typing.Optional[str] = None + azure_storage_account_key: typing.Optional[str] = None + azure_blob_container_name: typing.Optional[str] = None path: typing.Optional[str] = None if IS_PYDANTIC_V2: @@ -214,8 +226,10 @@ class WorkflowDefinitionBlocksItem_FileUrlParser(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None file_url: str - file_type: FileType = "csv" + file_type: FileType + json_schema: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -233,6 +247,7 @@ class WorkflowDefinitionBlocksItem_ForLoop(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None loop_blocks: typing.List["ForLoopBlockLoopBlocksItem"] loop_over: typing.Optional[ForLoopBlockLoopOver] = None loop_variable_reference: typing.Optional[str] = None @@ -258,6 +273,7 @@ class WorkflowDefinitionBlocksItem_GotoUrl(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: str title: typing.Optional[str] = None @@ -278,6 +294,7 @@ class WorkflowDefinitionBlocksItem_GotoUrl(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -295,6 +312,7 @@ class WorkflowDefinitionBlocksItem_HttpRequest(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None method: typing.Optional[str] = None url: typing.Optional[str] = None headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None @@ -319,6 +337,7 @@ class WorkflowDefinitionBlocksItem_Login(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -339,6 +358,7 @@ class WorkflowDefinitionBlocksItem_Login(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -356,6 +376,7 @@ class WorkflowDefinitionBlocksItem_Navigation(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -376,6 +397,7 @@ class WorkflowDefinitionBlocksItem_Navigation(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -393,6 +415,7 @@ class WorkflowDefinitionBlocksItem_PdfParser(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None file_url: str json_schema: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None @@ -412,6 +435,7 @@ class WorkflowDefinitionBlocksItem_SendEmail(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None smtp_host: AwsSecretParameter smtp_port: AwsSecretParameter smtp_username: AwsSecretParameter @@ -438,6 +462,7 @@ class WorkflowDefinitionBlocksItem_Task(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -458,6 +483,7 @@ class WorkflowDefinitionBlocksItem_Task(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -475,6 +501,7 @@ class WorkflowDefinitionBlocksItem_TaskV2(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None prompt: str url: typing.Optional[str] = None totp_verification_url: typing.Optional[str] = None @@ -498,6 +525,7 @@ class WorkflowDefinitionBlocksItem_TextPrompt(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None llm_key: typing.Optional[str] = None prompt: str parameters: typing.Optional[typing.List[TextPromptBlockParametersItem]] = None @@ -519,6 +547,7 @@ class WorkflowDefinitionBlocksItem_UploadToS3(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None path: typing.Optional[str] = None if IS_PYDANTIC_V2: @@ -537,6 +566,7 @@ class WorkflowDefinitionBlocksItem_Validation(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None task_type: typing.Optional[str] = None url: typing.Optional[str] = None title: typing.Optional[str] = None @@ -557,6 +587,7 @@ class WorkflowDefinitionBlocksItem_Validation(UniversalBaseModel): cache_actions: typing.Optional[bool] = None complete_verification: typing.Optional[bool] = None include_action_history_in_verification: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -574,6 +605,7 @@ class WorkflowDefinitionBlocksItem_Wait(UniversalBaseModel): output_parameter: OutputParameter continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None + disable_cache: typing.Optional[bool] = None wait_sec: int parameters: typing.Optional[typing.List[WaitBlockParametersItem]] = None diff --git a/skyvern/client/types/workflow_definition_parameters_item.py b/skyvern/client/types/workflow_definition_parameters_item.py index c6d51585..df9f0c82 100644 --- a/skyvern/client/types/workflow_definition_parameters_item.py +++ b/skyvern/client/types/workflow_definition_parameters_item.py @@ -33,6 +33,51 @@ class WorkflowDefinitionParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class WorkflowDefinitionParametersItem_AzureSecret(UniversalBaseModel): + parameter_type: typing.Literal["azure_secret"] = "azure_secret" + key: str + description: typing.Optional[str] = None + azure_secret_parameter_id: str + workflow_id: str + azure_key: str + 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 + + +class WorkflowDefinitionParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + azure_vault_credential_parameter_id: str + workflow_id: str + vault_name: str + username_key: str + password_key: str + totp_secret_key: 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 + + class WorkflowDefinitionParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -218,6 +263,8 @@ class WorkflowDefinitionParametersItem_Workflow(UniversalBaseModel): WorkflowDefinitionParametersItem = typing.Union[ WorkflowDefinitionParametersItem_AwsSecret, + WorkflowDefinitionParametersItem_AzureSecret, + WorkflowDefinitionParametersItem_AzureVaultCredential, WorkflowDefinitionParametersItem_BitwardenCreditCardData, WorkflowDefinitionParametersItem_BitwardenLoginCredential, WorkflowDefinitionParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/workflow_definition_yaml_blocks_item.py b/skyvern/client/types/workflow_definition_yaml_blocks_item.py index 16fb43ef..d99e549c 100644 --- a/skyvern/client/types/workflow_definition_yaml_blocks_item.py +++ b/skyvern/client/types/workflow_definition_yaml_blocks_item.py @@ -32,6 +32,7 @@ class WorkflowDefinitionYamlBlocksItem_Action(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -92,6 +93,7 @@ class WorkflowDefinitionYamlBlocksItem_Extraction(UniversalBaseModel): max_steps_per_run: typing.Optional[int] = None parameter_keys: typing.Optional[typing.List[str]] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -120,6 +122,8 @@ class WorkflowDefinitionYamlBlocksItem_FileDownload(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None + download_timeout: typing.Optional[float] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -141,6 +145,10 @@ class WorkflowDefinitionYamlBlocksItem_FileUpload(UniversalBaseModel): aws_access_key_id: typing.Optional[str] = None aws_secret_access_key: typing.Optional[str] = None region_name: typing.Optional[str] = None + azure_storage_account_name: typing.Optional[str] = None + azure_storage_account_key: typing.Optional[str] = None + azure_blob_container_name: typing.Optional[str] = None + azure_folder_path: typing.Optional[str] = None path: typing.Optional[str] = None if IS_PYDANTIC_V2: @@ -159,7 +167,8 @@ class WorkflowDefinitionYamlBlocksItem_FileUrlParser(UniversalBaseModel): continue_on_failure: typing.Optional[bool] = None model: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None file_url: str - file_type: FileType = "csv" + file_type: FileType + json_schema: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -251,6 +260,7 @@ class WorkflowDefinitionYamlBlocksItem_Login(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None complete_criterion: typing.Optional[str] = None terminate_criterion: typing.Optional[str] = None complete_verification: typing.Optional[bool] = None @@ -283,6 +293,7 @@ class WorkflowDefinitionYamlBlocksItem_Navigation(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None complete_criterion: typing.Optional[str] = None terminate_criterion: typing.Optional[str] = None complete_verification: typing.Optional[bool] = None @@ -361,6 +372,7 @@ class WorkflowDefinitionYamlBlocksItem_Task(UniversalBaseModel): totp_verification_url: typing.Optional[str] = None totp_identifier: typing.Optional[str] = None cache_actions: typing.Optional[bool] = None + disable_cache: typing.Optional[bool] = None complete_criterion: typing.Optional[str] = None terminate_criterion: typing.Optional[str] = None complete_verification: typing.Optional[bool] = None @@ -387,6 +399,7 @@ class WorkflowDefinitionYamlBlocksItem_TaskV2(UniversalBaseModel): totp_identifier: typing.Optional[str] = None max_iterations: typing.Optional[int] = None max_steps: typing.Optional[int] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 @@ -444,6 +457,7 @@ class WorkflowDefinitionYamlBlocksItem_Validation(UniversalBaseModel): terminate_criterion: typing.Optional[str] = None error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None parameter_keys: typing.Optional[typing.List[str]] = None + disable_cache: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/skyvern/client/types/workflow_definition_yaml_parameters_item.py b/skyvern/client/types/workflow_definition_yaml_parameters_item.py index d827fcda..00bd1254 100644 --- a/skyvern/client/types/workflow_definition_yaml_parameters_item.py +++ b/skyvern/client/types/workflow_definition_yaml_parameters_item.py @@ -25,6 +25,25 @@ class WorkflowDefinitionYamlParametersItem_AwsSecret(UniversalBaseModel): extra = pydantic.Extra.allow +class WorkflowDefinitionYamlParametersItem_AzureVaultCredential(UniversalBaseModel): + parameter_type: typing.Literal["azure_vault_credential"] = "azure_vault_credential" + key: str + description: typing.Optional[str] = None + vault_name: str + username_key: str + password_key: str + totp_secret_key: typing.Optional[str] = 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 + + class WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData(UniversalBaseModel): parameter_type: typing.Literal["bitwarden_credit_card_data"] = "bitwarden_credit_card_data" key: str @@ -170,6 +189,7 @@ class WorkflowDefinitionYamlParametersItem_Workflow(UniversalBaseModel): WorkflowDefinitionYamlParametersItem = typing.Union[ WorkflowDefinitionYamlParametersItem_AwsSecret, + WorkflowDefinitionYamlParametersItem_AzureVaultCredential, WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData, WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential, WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation, diff --git a/skyvern/client/types/workflow_run_block.py b/skyvern/client/types/workflow_run_block.py new file mode 100644 index 00000000..7fd835e1 --- /dev/null +++ b/skyvern/client/types/workflow_run_block.py @@ -0,0 +1,58 @@ +# This file was auto-generated by Fern from our API Definition. + +from ..core.pydantic_utilities import UniversalBaseModel +import typing +from .block_type import BlockType +from .workflow_run_block_output import WorkflowRunBlockOutput +from .run_engine import RunEngine +from .workflow_run_block_navigation_payload import WorkflowRunBlockNavigationPayload +from .workflow_run_block_data_schema import WorkflowRunBlockDataSchema +from .action import Action +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic + + +class WorkflowRunBlock(UniversalBaseModel): + workflow_run_block_id: str + block_workflow_run_id: typing.Optional[str] = None + workflow_run_id: str + organization_id: str + description: typing.Optional[str] = None + parent_workflow_run_block_id: typing.Optional[str] = None + block_type: BlockType + label: typing.Optional[str] = None + status: typing.Optional[str] = None + output: typing.Optional[WorkflowRunBlockOutput] = None + continue_on_failure: typing.Optional[bool] = None + failure_reason: typing.Optional[str] = None + engine: typing.Optional[RunEngine] = None + task_id: typing.Optional[str] = None + url: typing.Optional[str] = None + navigation_goal: typing.Optional[str] = None + navigation_payload: typing.Optional[WorkflowRunBlockNavigationPayload] = None + data_extraction_goal: typing.Optional[str] = None + data_schema: typing.Optional[WorkflowRunBlockDataSchema] = None + terminate_criterion: typing.Optional[str] = None + complete_criterion: typing.Optional[str] = None + actions: typing.Optional[typing.List[Action]] = None + created_at: dt.datetime + modified_at: dt.datetime + include_action_history_in_verification: typing.Optional[bool] = None + duration: typing.Optional[float] = None + loop_values: typing.Optional[typing.List[typing.Optional[typing.Any]]] = None + current_value: typing.Optional[str] = None + current_index: typing.Optional[int] = None + recipients: typing.Optional[typing.List[str]] = None + attachments: typing.Optional[typing.List[str]] = None + subject: typing.Optional[str] = None + body: typing.Optional[str] = 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 diff --git a/skyvern/client/types/workflow_run_block_data_schema.py b/skyvern/client/types/workflow_run_block_data_schema.py new file mode 100644 index 00000000..fdc954c2 --- /dev/null +++ b/skyvern/client/types/workflow_run_block_data_schema.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +WorkflowRunBlockDataSchema = typing.Union[ + typing.Dict[str, typing.Optional[typing.Any]], typing.List[typing.Optional[typing.Any]], str +] diff --git a/skyvern/client/types/workflow_run_block_navigation_payload.py b/skyvern/client/types/workflow_run_block_navigation_payload.py new file mode 100644 index 00000000..c6fc531c --- /dev/null +++ b/skyvern/client/types/workflow_run_block_navigation_payload.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +WorkflowRunBlockNavigationPayload = typing.Union[ + typing.Dict[str, typing.Optional[typing.Any]], typing.List[typing.Optional[typing.Any]], str +] diff --git a/skyvern/client/types/workflow_run_block_output.py b/skyvern/client/types/workflow_run_block_output.py new file mode 100644 index 00000000..df9da62d --- /dev/null +++ b/skyvern/client/types/workflow_run_block_output.py @@ -0,0 +1,7 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +WorkflowRunBlockOutput = typing.Union[ + typing.Dict[str, typing.Optional[typing.Any]], typing.List[typing.Optional[typing.Any]], str +] diff --git a/skyvern/client/types/workflow_run_request.py b/skyvern/client/types/workflow_run_request.py index 2efb5231..e811042b 100644 --- a/skyvern/client/types/workflow_run_request.py +++ b/skyvern/client/types/workflow_run_request.py @@ -25,9 +25,9 @@ class WorkflowRunRequest(UniversalBaseModel): proxy_location: typing.Optional[ProxyLocation] = pydantic.Field(default=None) """ - + Geographic Proxy location to route the browser traffic through. This is only available in Skyvern Cloud. - + Available geotargeting options: - RESIDENTIAL: the default value. Skyvern Cloud uses a random US residential proxy. - RESIDENTIAL_ES: Spain @@ -57,13 +57,13 @@ class WorkflowRunRequest(UniversalBaseModel): totp_url: typing.Optional[str] = pydantic.Field(default=None) """ - + URL that serves TOTP/2FA/MFA codes for Skyvern to use during the workflow run. Refer to https://www.skyvern.com/docs/credentials/totp#option-2-get-code-from-your-endpoint for more details. """ totp_identifier: typing.Optional[str] = pydantic.Field(default=None) """ - + Identifier for the TOTP/2FA/MFA code when the code is pushed to Skyvern. Refer to https://www.skyvern.com/docs/credentials/totp#option-3-push-code-to-skyvern for more details. """ @@ -82,6 +82,21 @@ class WorkflowRunRequest(UniversalBaseModel): The extra HTTP headers for the requests in browser. """ + browser_address: typing.Optional[str] = pydantic.Field(default=None) + """ + The CDP address for the workflow run. + """ + + ai_fallback: typing.Optional[bool] = pydantic.Field(default=None) + """ + Whether to fallback to AI if the workflow run fails. + """ + + run_with: typing.Optional[str] = pydantic.Field(default=None) + """ + Whether to run the workflow with agent or code. + """ + if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 else: diff --git a/skyvern/client/types/workflow_run_response.py b/skyvern/client/types/workflow_run_response.py index d31b86ba..a112f335 100644 --- a/skyvern/client/types/workflow_run_response.py +++ b/skyvern/client/types/workflow_run_response.py @@ -7,6 +7,7 @@ import typing from .workflow_run_response_output import WorkflowRunResponseOutput from .file_info import FileInfo import datetime as dt +from .script_run_response import ScriptRunResponse from .workflow_run_request import WorkflowRunRequest from ..core.pydantic_utilities import IS_PYDANTIC_V2 @@ -87,6 +88,26 @@ class WorkflowRunResponse(UniversalBaseModel): The maximum number of scrolls for the post action screenshot. When it's None or 0, it takes the current viewpoint screenshot """ + script_run: typing.Optional[ScriptRunResponse] = pydantic.Field(default=None) + """ + The script run result + """ + + errors: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = pydantic.Field(default=None) + """ + The errors for the run + """ + + run_with: typing.Optional[str] = pydantic.Field(default=None) + """ + Whether the workflow run was executed with agent or code + """ + + ai_fallback: typing.Optional[bool] = pydantic.Field(default=None) + """ + Whether to fallback to AI if code run fails. + """ + run_request: typing.Optional[WorkflowRunRequest] = pydantic.Field(default=None) """ The original request parameters used to start this workflow run diff --git a/skyvern/client/types/workflow_run_timeline.py b/skyvern/client/types/workflow_run_timeline.py new file mode 100644 index 00000000..0e09e458 --- /dev/null +++ b/skyvern/client/types/workflow_run_timeline.py @@ -0,0 +1,33 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations +from ..core.pydantic_utilities import UniversalBaseModel +from .workflow_run_timeline_type import WorkflowRunTimelineType +import typing +from .workflow_run_block import WorkflowRunBlock +from .thought import Thought +import datetime as dt +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +import pydantic +from ..core.pydantic_utilities import update_forward_refs + + +class WorkflowRunTimeline(UniversalBaseModel): + type: WorkflowRunTimelineType + block: typing.Optional[WorkflowRunBlock] = None + thought: typing.Optional[Thought] = None + children: typing.Optional[typing.List["WorkflowRunTimeline"]] = 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 + + +update_forward_refs(WorkflowRunTimeline) diff --git a/skyvern/client/types/workflow_run_timeline_type.py b/skyvern/client/types/workflow_run_timeline_type.py new file mode 100644 index 00000000..f4468240 --- /dev/null +++ b/skyvern/client/types/workflow_run_timeline_type.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +WorkflowRunTimelineType = typing.Union[typing.Literal["thought", "block"], typing.Any]