new create_workflow and update_workflow endpoints (#2409)

This commit is contained in:
Shuchang Zheng
2025-05-20 20:07:31 -07:00
committed by GitHub
parent d0d07c3985
commit 355bfe6b6f
41 changed files with 4683 additions and 2427 deletions

File diff suppressed because one or more lines are too long

View File

@@ -12,10 +12,15 @@ from .types import (
ActionBlockParametersItem_Credential,
ActionBlockParametersItem_Output,
ActionBlockParametersItem_Workflow,
ActionBlockYaml,
AwsSecretParameter,
AwsSecretParameterYaml,
BitwardenCreditCardDataParameter,
BitwardenCreditCardDataParameterYaml,
BitwardenLoginCredentialParameter,
BitwardenLoginCredentialParameterYaml,
BitwardenSensitiveInformationParameter,
BitwardenSensitiveInformationParameterYaml,
BrowserSessionResponse,
CodeBlock,
CodeBlockParametersItem,
@@ -27,6 +32,7 @@ from .types import (
CodeBlockParametersItem_Credential,
CodeBlockParametersItem_Output,
CodeBlockParametersItem_Workflow,
CodeBlockYaml,
ContextParameter,
ContextParameterSource,
ContextParameterSource_AwsSecret,
@@ -38,12 +44,15 @@ from .types import (
ContextParameterSource_Output,
ContextParameterSource_Workflow,
ContextParameterValue,
ContextParameterYaml,
CredentialParameter,
CredentialParameterYaml,
CredentialResponse,
CredentialResponseCredential,
CredentialType,
CreditCardCredentialResponse,
DownloadToS3Block,
DownloadToS3BlockYaml,
ExtractionBlock,
ExtractionBlockDataSchema,
ExtractionBlockParametersItem,
@@ -55,6 +64,8 @@ from .types import (
ExtractionBlockParametersItem_Credential,
ExtractionBlockParametersItem_Output,
ExtractionBlockParametersItem_Workflow,
ExtractionBlockYaml,
ExtractionBlockYamlDataSchema,
FileDownloadBlock,
FileDownloadBlockDataSchema,
FileDownloadBlockParametersItem,
@@ -66,11 +77,14 @@ from .types import (
FileDownloadBlockParametersItem_Credential,
FileDownloadBlockParametersItem_Output,
FileDownloadBlockParametersItem_Workflow,
FileDownloadBlockYaml,
FileInfo,
FileParserBlock,
FileParserBlockYaml,
FileStorageType,
FileType,
FileUploadBlock,
FileUploadBlockYaml,
ForLoopBlock,
ForLoopBlockLoopBlocksItem,
ForLoopBlockLoopBlocksItem_Action,
@@ -101,6 +115,27 @@ from .types import (
ForLoopBlockLoopOver_Credential,
ForLoopBlockLoopOver_Output,
ForLoopBlockLoopOver_Workflow,
ForLoopBlockYaml,
ForLoopBlockYamlLoopBlocksItem,
ForLoopBlockYamlLoopBlocksItem_Action,
ForLoopBlockYamlLoopBlocksItem_Code,
ForLoopBlockYamlLoopBlocksItem_DownloadToS3,
ForLoopBlockYamlLoopBlocksItem_Extraction,
ForLoopBlockYamlLoopBlocksItem_FileDownload,
ForLoopBlockYamlLoopBlocksItem_FileUpload,
ForLoopBlockYamlLoopBlocksItem_FileUrlParser,
ForLoopBlockYamlLoopBlocksItem_ForLoop,
ForLoopBlockYamlLoopBlocksItem_GotoUrl,
ForLoopBlockYamlLoopBlocksItem_Login,
ForLoopBlockYamlLoopBlocksItem_Navigation,
ForLoopBlockYamlLoopBlocksItem_PdfParser,
ForLoopBlockYamlLoopBlocksItem_SendEmail,
ForLoopBlockYamlLoopBlocksItem_Task,
ForLoopBlockYamlLoopBlocksItem_TaskV2,
ForLoopBlockYamlLoopBlocksItem_TextPrompt,
ForLoopBlockYamlLoopBlocksItem_UploadToS3,
ForLoopBlockYamlLoopBlocksItem_Validation,
ForLoopBlockYamlLoopBlocksItem_Wait,
HttpValidationError,
LoginBlock,
LoginBlockDataSchema,
@@ -113,6 +148,7 @@ from .types import (
LoginBlockParametersItem_Credential,
LoginBlockParametersItem_Output,
LoginBlockParametersItem_Workflow,
LoginBlockYaml,
NavigationBlock,
NavigationBlockDataSchema,
NavigationBlockParametersItem,
@@ -124,15 +160,19 @@ from .types import (
NavigationBlockParametersItem_Credential,
NavigationBlockParametersItem_Output,
NavigationBlockParametersItem_Workflow,
NavigationBlockYaml,
NonEmptyCreditCardCredential,
NonEmptyPasswordCredential,
OutputParameter,
OutputParameterYaml,
PasswordCredentialResponse,
PdfParserBlock,
PdfParserBlockYaml,
ProxyLocation,
RunEngine,
RunStatus,
SendEmailBlock,
SendEmailBlockYaml,
TaskBlock,
TaskBlockDataSchema,
TaskBlockParametersItem,
@@ -144,11 +184,14 @@ from .types import (
TaskBlockParametersItem_Credential,
TaskBlockParametersItem_Output,
TaskBlockParametersItem_Workflow,
TaskBlockYaml,
TaskBlockYamlDataSchema,
TaskRunRequest,
TaskRunRequestDataExtractionSchema,
TaskRunResponse,
TaskRunResponseOutput,
TaskV2Block,
TaskV2BlockYaml,
TextPromptBlock,
TextPromptBlockParametersItem,
TextPromptBlockParametersItem_AwsSecret,
@@ -159,8 +202,10 @@ from .types import (
TextPromptBlockParametersItem_Credential,
TextPromptBlockParametersItem_Output,
TextPromptBlockParametersItem_Workflow,
TextPromptBlockYaml,
TotpCode,
UploadToS3Block,
UploadToS3BlockYaml,
UrlBlock,
UrlBlockDataSchema,
UrlBlockParametersItem,
@@ -172,6 +217,7 @@ from .types import (
UrlBlockParametersItem_Credential,
UrlBlockParametersItem_Output,
UrlBlockParametersItem_Workflow,
UrlBlockYaml,
ValidationBlock,
ValidationBlockDataSchema,
ValidationBlockParametersItem,
@@ -183,6 +229,7 @@ from .types import (
ValidationBlockParametersItem_Credential,
ValidationBlockParametersItem_Output,
ValidationBlockParametersItem_Workflow,
ValidationBlockYaml,
ValidationError,
ValidationErrorLocItem,
WaitBlock,
@@ -195,7 +242,9 @@ from .types import (
WaitBlockParametersItem_Credential,
WaitBlockParametersItem_Output,
WaitBlockParametersItem_Workflow,
WaitBlockYaml,
Workflow,
WorkflowCreateYamlRequest,
WorkflowDefinition,
WorkflowDefinitionBlocksItem,
WorkflowDefinitionBlocksItem_Action,
@@ -226,9 +275,42 @@ from .types import (
WorkflowDefinitionParametersItem_Credential,
WorkflowDefinitionParametersItem_Output,
WorkflowDefinitionParametersItem_Workflow,
WorkflowDefinitionYaml,
WorkflowDefinitionYamlBlocksItem,
WorkflowDefinitionYamlBlocksItem_Action,
WorkflowDefinitionYamlBlocksItem_Code,
WorkflowDefinitionYamlBlocksItem_DownloadToS3,
WorkflowDefinitionYamlBlocksItem_Extraction,
WorkflowDefinitionYamlBlocksItem_FileDownload,
WorkflowDefinitionYamlBlocksItem_FileUpload,
WorkflowDefinitionYamlBlocksItem_FileUrlParser,
WorkflowDefinitionYamlBlocksItem_ForLoop,
WorkflowDefinitionYamlBlocksItem_GotoUrl,
WorkflowDefinitionYamlBlocksItem_Login,
WorkflowDefinitionYamlBlocksItem_Navigation,
WorkflowDefinitionYamlBlocksItem_PdfParser,
WorkflowDefinitionYamlBlocksItem_SendEmail,
WorkflowDefinitionYamlBlocksItem_Task,
WorkflowDefinitionYamlBlocksItem_TaskV2,
WorkflowDefinitionYamlBlocksItem_TextPrompt,
WorkflowDefinitionYamlBlocksItem_UploadToS3,
WorkflowDefinitionYamlBlocksItem_Validation,
WorkflowDefinitionYamlBlocksItem_Wait,
WorkflowDefinitionYamlParametersItem,
WorkflowDefinitionYamlParametersItem_AwsSecret,
WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData,
WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential,
WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation,
WorkflowDefinitionYamlParametersItem_Context,
WorkflowDefinitionYamlParametersItem_Credential,
WorkflowDefinitionYamlParametersItem_Output,
WorkflowDefinitionYamlParametersItem_Workflow,
WorkflowParameter,
WorkflowParameterDefaultValue,
WorkflowParameterType,
WorkflowParameterYaml,
WorkflowParameterYamlDefaultValue,
WorkflowRequest,
WorkflowRunRequest,
WorkflowRunResponse,
WorkflowRunResponseOutput,
@@ -261,6 +343,7 @@ __all__ = [
"ActionBlockParametersItem_Credential",
"ActionBlockParametersItem_Output",
"ActionBlockParametersItem_Workflow",
"ActionBlockYaml",
"AgentGetRunResponse",
"AgentGetRunResponse_AnthropicCua",
"AgentGetRunResponse_OpenaiCua",
@@ -269,10 +352,14 @@ __all__ = [
"AgentGetRunResponse_WorkflowRun",
"AsyncSkyvern",
"AwsSecretParameter",
"AwsSecretParameterYaml",
"BadRequestError",
"BitwardenCreditCardDataParameter",
"BitwardenCreditCardDataParameterYaml",
"BitwardenLoginCredentialParameter",
"BitwardenLoginCredentialParameterYaml",
"BitwardenSensitiveInformationParameter",
"BitwardenSensitiveInformationParameterYaml",
"BrowserSessionResponse",
"CodeBlock",
"CodeBlockParametersItem",
@@ -284,6 +371,7 @@ __all__ = [
"CodeBlockParametersItem_Credential",
"CodeBlockParametersItem_Output",
"CodeBlockParametersItem_Workflow",
"CodeBlockYaml",
"ContextParameter",
"ContextParameterSource",
"ContextParameterSource_AwsSecret",
@@ -295,13 +383,16 @@ __all__ = [
"ContextParameterSource_Output",
"ContextParameterSource_Workflow",
"ContextParameterValue",
"ContextParameterYaml",
"CreateCredentialRequestCredential",
"CredentialParameter",
"CredentialParameterYaml",
"CredentialResponse",
"CredentialResponseCredential",
"CredentialType",
"CreditCardCredentialResponse",
"DownloadToS3Block",
"DownloadToS3BlockYaml",
"ExtractionBlock",
"ExtractionBlockDataSchema",
"ExtractionBlockParametersItem",
@@ -313,6 +404,8 @@ __all__ = [
"ExtractionBlockParametersItem_Credential",
"ExtractionBlockParametersItem_Output",
"ExtractionBlockParametersItem_Workflow",
"ExtractionBlockYaml",
"ExtractionBlockYamlDataSchema",
"FileDownloadBlock",
"FileDownloadBlockDataSchema",
"FileDownloadBlockParametersItem",
@@ -324,11 +417,14 @@ __all__ = [
"FileDownloadBlockParametersItem_Credential",
"FileDownloadBlockParametersItem_Output",
"FileDownloadBlockParametersItem_Workflow",
"FileDownloadBlockYaml",
"FileInfo",
"FileParserBlock",
"FileParserBlockYaml",
"FileStorageType",
"FileType",
"FileUploadBlock",
"FileUploadBlockYaml",
"ForLoopBlock",
"ForLoopBlockLoopBlocksItem",
"ForLoopBlockLoopBlocksItem_Action",
@@ -359,6 +455,27 @@ __all__ = [
"ForLoopBlockLoopOver_Credential",
"ForLoopBlockLoopOver_Output",
"ForLoopBlockLoopOver_Workflow",
"ForLoopBlockYaml",
"ForLoopBlockYamlLoopBlocksItem",
"ForLoopBlockYamlLoopBlocksItem_Action",
"ForLoopBlockYamlLoopBlocksItem_Code",
"ForLoopBlockYamlLoopBlocksItem_DownloadToS3",
"ForLoopBlockYamlLoopBlocksItem_Extraction",
"ForLoopBlockYamlLoopBlocksItem_FileDownload",
"ForLoopBlockYamlLoopBlocksItem_FileUpload",
"ForLoopBlockYamlLoopBlocksItem_FileUrlParser",
"ForLoopBlockYamlLoopBlocksItem_ForLoop",
"ForLoopBlockYamlLoopBlocksItem_GotoUrl",
"ForLoopBlockYamlLoopBlocksItem_Login",
"ForLoopBlockYamlLoopBlocksItem_Navigation",
"ForLoopBlockYamlLoopBlocksItem_PdfParser",
"ForLoopBlockYamlLoopBlocksItem_SendEmail",
"ForLoopBlockYamlLoopBlocksItem_Task",
"ForLoopBlockYamlLoopBlocksItem_TaskV2",
"ForLoopBlockYamlLoopBlocksItem_TextPrompt",
"ForLoopBlockYamlLoopBlocksItem_UploadToS3",
"ForLoopBlockYamlLoopBlocksItem_Validation",
"ForLoopBlockYamlLoopBlocksItem_Wait",
"ForbiddenError",
"HttpValidationError",
"LoginBlock",
@@ -372,6 +489,7 @@ __all__ = [
"LoginBlockParametersItem_Credential",
"LoginBlockParametersItem_Output",
"LoginBlockParametersItem_Workflow",
"LoginBlockYaml",
"NavigationBlock",
"NavigationBlockDataSchema",
"NavigationBlockParametersItem",
@@ -383,16 +501,20 @@ __all__ = [
"NavigationBlockParametersItem_Credential",
"NavigationBlockParametersItem_Output",
"NavigationBlockParametersItem_Workflow",
"NavigationBlockYaml",
"NonEmptyCreditCardCredential",
"NonEmptyPasswordCredential",
"NotFoundError",
"OutputParameter",
"OutputParameterYaml",
"PasswordCredentialResponse",
"PdfParserBlock",
"PdfParserBlockYaml",
"ProxyLocation",
"RunEngine",
"RunStatus",
"SendEmailBlock",
"SendEmailBlockYaml",
"Skyvern",
"SkyvernEnvironment",
"TaskBlock",
@@ -406,11 +528,14 @@ __all__ = [
"TaskBlockParametersItem_Credential",
"TaskBlockParametersItem_Output",
"TaskBlockParametersItem_Workflow",
"TaskBlockYaml",
"TaskBlockYamlDataSchema",
"TaskRunRequest",
"TaskRunRequestDataExtractionSchema",
"TaskRunResponse",
"TaskRunResponseOutput",
"TaskV2Block",
"TaskV2BlockYaml",
"TextPromptBlock",
"TextPromptBlockParametersItem",
"TextPromptBlockParametersItem_AwsSecret",
@@ -421,9 +546,11 @@ __all__ = [
"TextPromptBlockParametersItem_Credential",
"TextPromptBlockParametersItem_Output",
"TextPromptBlockParametersItem_Workflow",
"TextPromptBlockYaml",
"TotpCode",
"UnprocessableEntityError",
"UploadToS3Block",
"UploadToS3BlockYaml",
"UrlBlock",
"UrlBlockDataSchema",
"UrlBlockParametersItem",
@@ -435,6 +562,7 @@ __all__ = [
"UrlBlockParametersItem_Credential",
"UrlBlockParametersItem_Output",
"UrlBlockParametersItem_Workflow",
"UrlBlockYaml",
"ValidationBlock",
"ValidationBlockDataSchema",
"ValidationBlockParametersItem",
@@ -446,6 +574,7 @@ __all__ = [
"ValidationBlockParametersItem_Credential",
"ValidationBlockParametersItem_Output",
"ValidationBlockParametersItem_Workflow",
"ValidationBlockYaml",
"ValidationError",
"ValidationErrorLocItem",
"WaitBlock",
@@ -458,7 +587,9 @@ __all__ = [
"WaitBlockParametersItem_Credential",
"WaitBlockParametersItem_Output",
"WaitBlockParametersItem_Workflow",
"WaitBlockYaml",
"Workflow",
"WorkflowCreateYamlRequest",
"WorkflowDefinition",
"WorkflowDefinitionBlocksItem",
"WorkflowDefinitionBlocksItem_Action",
@@ -489,9 +620,42 @@ __all__ = [
"WorkflowDefinitionParametersItem_Credential",
"WorkflowDefinitionParametersItem_Output",
"WorkflowDefinitionParametersItem_Workflow",
"WorkflowDefinitionYaml",
"WorkflowDefinitionYamlBlocksItem",
"WorkflowDefinitionYamlBlocksItem_Action",
"WorkflowDefinitionYamlBlocksItem_Code",
"WorkflowDefinitionYamlBlocksItem_DownloadToS3",
"WorkflowDefinitionYamlBlocksItem_Extraction",
"WorkflowDefinitionYamlBlocksItem_FileDownload",
"WorkflowDefinitionYamlBlocksItem_FileUpload",
"WorkflowDefinitionYamlBlocksItem_FileUrlParser",
"WorkflowDefinitionYamlBlocksItem_ForLoop",
"WorkflowDefinitionYamlBlocksItem_GotoUrl",
"WorkflowDefinitionYamlBlocksItem_Login",
"WorkflowDefinitionYamlBlocksItem_Navigation",
"WorkflowDefinitionYamlBlocksItem_PdfParser",
"WorkflowDefinitionYamlBlocksItem_SendEmail",
"WorkflowDefinitionYamlBlocksItem_Task",
"WorkflowDefinitionYamlBlocksItem_TaskV2",
"WorkflowDefinitionYamlBlocksItem_TextPrompt",
"WorkflowDefinitionYamlBlocksItem_UploadToS3",
"WorkflowDefinitionYamlBlocksItem_Validation",
"WorkflowDefinitionYamlBlocksItem_Wait",
"WorkflowDefinitionYamlParametersItem",
"WorkflowDefinitionYamlParametersItem_AwsSecret",
"WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData",
"WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential",
"WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation",
"WorkflowDefinitionYamlParametersItem_Context",
"WorkflowDefinitionYamlParametersItem_Credential",
"WorkflowDefinitionYamlParametersItem_Output",
"WorkflowDefinitionYamlParametersItem_Workflow",
"WorkflowParameter",
"WorkflowParameterDefaultValue",
"WorkflowParameterType",
"WorkflowParameterYaml",
"WorkflowParameterYamlDefaultValue",
"WorkflowRequest",
"WorkflowRunRequest",
"WorkflowRunResponse",
"WorkflowRunResponseOutput",

View File

@@ -17,7 +17,6 @@ from ..types.workflow_run_response import WorkflowRunResponse
from .types.agent_get_run_response import AgentGetRunResponse
from ..core.jsonable_encoder import jsonable_encoder
from ..errors.not_found_error import NotFoundError
from ..types.workflow import Workflow
from ..core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
@@ -434,64 +433,6 @@ class AgentClient:
raise ApiError(status_code=_response.status_code, body=_response.text)
raise ApiError(status_code=_response.status_code, body=_response_json)
def update_workflow(self, workflow_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Workflow:
"""
Update a workflow definition
Parameters
----------
workflow_id : str
The ID of the workflow to update. Workflow ID starts with `wpid_`.
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
Workflow
Successfully updated workflow
Examples
--------
from skyvern import Skyvern
client = Skyvern(
api_key="YOUR_API_KEY",
authorization="YOUR_AUTHORIZATION",
)
client.agent.update_workflow(
workflow_id="wpid_123",
)
"""
_response = self._client_wrapper.httpx_client.request(
f"v1/workflows/{jsonable_encoder(workflow_id)}",
method="POST",
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return typing.cast(
Workflow,
parse_obj_as(
type_=Workflow, # 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 AsyncAgentClient:
def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -936,71 +877,3 @@ class AsyncAgentClient:
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, body=_response.text)
raise ApiError(status_code=_response.status_code, body=_response_json)
async def update_workflow(
self, workflow_id: str, *, request_options: typing.Optional[RequestOptions] = None
) -> Workflow:
"""
Update a workflow definition
Parameters
----------
workflow_id : str
The ID of the workflow to update. Workflow ID starts with `wpid_`.
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
Workflow
Successfully updated workflow
Examples
--------
import asyncio
from skyvern import AsyncSkyvern
client = AsyncSkyvern(
api_key="YOUR_API_KEY",
authorization="YOUR_AUTHORIZATION",
)
async def main() -> None:
await client.agent.update_workflow(
workflow_id="wpid_123",
)
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"v1/workflows/{jsonable_encoder(workflow_id)}",
method="POST",
request_options=request_options,
)
try:
if 200 <= _response.status_code < 300:
return typing.cast(
Workflow,
parse_obj_as(
type_=Workflow, # 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)

View File

@@ -13,10 +13,15 @@ from .action_block_parameters_item import (
ActionBlockParametersItem_Output,
ActionBlockParametersItem_Workflow,
)
from .action_block_yaml import ActionBlockYaml
from .aws_secret_parameter import AwsSecretParameter
from .aws_secret_parameter_yaml import AwsSecretParameterYaml
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 .browser_session_response import BrowserSessionResponse
from .code_block import CodeBlock
from .code_block_parameters_item import (
@@ -30,6 +35,7 @@ from .code_block_parameters_item import (
CodeBlockParametersItem_Output,
CodeBlockParametersItem_Workflow,
)
from .code_block_yaml import CodeBlockYaml
from .context_parameter import ContextParameter
from .context_parameter_source import (
ContextParameterSource,
@@ -43,12 +49,15 @@ from .context_parameter_source import (
ContextParameterSource_Workflow,
)
from .context_parameter_value import ContextParameterValue
from .context_parameter_yaml import ContextParameterYaml
from .credential_parameter import CredentialParameter
from .credential_parameter_yaml import CredentialParameterYaml
from .credential_response import CredentialResponse
from .credential_response_credential import CredentialResponseCredential
from .credential_type import CredentialType
from .credit_card_credential_response import CreditCardCredentialResponse
from .download_to_s3block import DownloadToS3Block
from .download_to_s3block_yaml import DownloadToS3BlockYaml
from .extraction_block import ExtractionBlock
from .extraction_block_data_schema import ExtractionBlockDataSchema
from .extraction_block_parameters_item import (
@@ -62,6 +71,8 @@ from .extraction_block_parameters_item import (
ExtractionBlockParametersItem_Output,
ExtractionBlockParametersItem_Workflow,
)
from .extraction_block_yaml import ExtractionBlockYaml
from .extraction_block_yaml_data_schema import ExtractionBlockYamlDataSchema
from .file_download_block import FileDownloadBlock
from .file_download_block_data_schema import FileDownloadBlockDataSchema
from .file_download_block_parameters_item import (
@@ -75,11 +86,14 @@ from .file_download_block_parameters_item import (
FileDownloadBlockParametersItem_Output,
FileDownloadBlockParametersItem_Workflow,
)
from .file_download_block_yaml import FileDownloadBlockYaml
from .file_info import FileInfo
from .file_parser_block import FileParserBlock
from .file_parser_block_yaml import FileParserBlockYaml
from .file_storage_type import FileStorageType
from .file_type import FileType
from .file_upload_block import FileUploadBlock
from .file_upload_block_yaml import FileUploadBlockYaml
from .for_loop_block import ForLoopBlock
from .for_loop_block_loop_blocks_item import (
ForLoopBlockLoopBlocksItem,
@@ -114,6 +128,29 @@ from .for_loop_block_loop_over import (
ForLoopBlockLoopOver_Output,
ForLoopBlockLoopOver_Workflow,
)
from .for_loop_block_yaml import ForLoopBlockYaml
from .for_loop_block_yaml_loop_blocks_item import (
ForLoopBlockYamlLoopBlocksItem,
ForLoopBlockYamlLoopBlocksItem_Action,
ForLoopBlockYamlLoopBlocksItem_Code,
ForLoopBlockYamlLoopBlocksItem_DownloadToS3,
ForLoopBlockYamlLoopBlocksItem_Extraction,
ForLoopBlockYamlLoopBlocksItem_FileDownload,
ForLoopBlockYamlLoopBlocksItem_FileUpload,
ForLoopBlockYamlLoopBlocksItem_FileUrlParser,
ForLoopBlockYamlLoopBlocksItem_ForLoop,
ForLoopBlockYamlLoopBlocksItem_GotoUrl,
ForLoopBlockYamlLoopBlocksItem_Login,
ForLoopBlockYamlLoopBlocksItem_Navigation,
ForLoopBlockYamlLoopBlocksItem_PdfParser,
ForLoopBlockYamlLoopBlocksItem_SendEmail,
ForLoopBlockYamlLoopBlocksItem_Task,
ForLoopBlockYamlLoopBlocksItem_TaskV2,
ForLoopBlockYamlLoopBlocksItem_TextPrompt,
ForLoopBlockYamlLoopBlocksItem_UploadToS3,
ForLoopBlockYamlLoopBlocksItem_Validation,
ForLoopBlockYamlLoopBlocksItem_Wait,
)
from .http_validation_error import HttpValidationError
from .login_block import LoginBlock
from .login_block_data_schema import LoginBlockDataSchema
@@ -128,6 +165,7 @@ from .login_block_parameters_item import (
LoginBlockParametersItem_Output,
LoginBlockParametersItem_Workflow,
)
from .login_block_yaml import LoginBlockYaml
from .navigation_block import NavigationBlock
from .navigation_block_data_schema import NavigationBlockDataSchema
from .navigation_block_parameters_item import (
@@ -141,15 +179,19 @@ from .navigation_block_parameters_item import (
NavigationBlockParametersItem_Output,
NavigationBlockParametersItem_Workflow,
)
from .navigation_block_yaml import NavigationBlockYaml
from .non_empty_credit_card_credential import NonEmptyCreditCardCredential
from .non_empty_password_credential import NonEmptyPasswordCredential
from .output_parameter import OutputParameter
from .output_parameter_yaml import OutputParameterYaml
from .password_credential_response import PasswordCredentialResponse
from .pdf_parser_block import PdfParserBlock
from .pdf_parser_block_yaml import PdfParserBlockYaml
from .proxy_location import ProxyLocation
from .run_engine import RunEngine
from .run_status import RunStatus
from .send_email_block import SendEmailBlock
from .send_email_block_yaml import SendEmailBlockYaml
from .task_block import TaskBlock
from .task_block_data_schema import TaskBlockDataSchema
from .task_block_parameters_item import (
@@ -163,11 +205,14 @@ from .task_block_parameters_item import (
TaskBlockParametersItem_Output,
TaskBlockParametersItem_Workflow,
)
from .task_block_yaml import TaskBlockYaml
from .task_block_yaml_data_schema import TaskBlockYamlDataSchema
from .task_run_request import TaskRunRequest
from .task_run_request_data_extraction_schema import TaskRunRequestDataExtractionSchema
from .task_run_response import TaskRunResponse
from .task_run_response_output import TaskRunResponseOutput
from .task_v2block import TaskV2Block
from .task_v2block_yaml import TaskV2BlockYaml
from .text_prompt_block import TextPromptBlock
from .text_prompt_block_parameters_item import (
TextPromptBlockParametersItem,
@@ -180,8 +225,10 @@ from .text_prompt_block_parameters_item import (
TextPromptBlockParametersItem_Output,
TextPromptBlockParametersItem_Workflow,
)
from .text_prompt_block_yaml import TextPromptBlockYaml
from .totp_code import TotpCode
from .upload_to_s3block import UploadToS3Block
from .upload_to_s3block_yaml import UploadToS3BlockYaml
from .url_block import UrlBlock
from .url_block_data_schema import UrlBlockDataSchema
from .url_block_parameters_item import (
@@ -195,6 +242,7 @@ from .url_block_parameters_item import (
UrlBlockParametersItem_Output,
UrlBlockParametersItem_Workflow,
)
from .url_block_yaml import UrlBlockYaml
from .validation_block import ValidationBlock
from .validation_block_data_schema import ValidationBlockDataSchema
from .validation_block_parameters_item import (
@@ -208,6 +256,7 @@ from .validation_block_parameters_item import (
ValidationBlockParametersItem_Output,
ValidationBlockParametersItem_Workflow,
)
from .validation_block_yaml import ValidationBlockYaml
from .validation_error import ValidationError
from .validation_error_loc_item import ValidationErrorLocItem
from .wait_block import WaitBlock
@@ -222,7 +271,9 @@ from .wait_block_parameters_item import (
WaitBlockParametersItem_Output,
WaitBlockParametersItem_Workflow,
)
from .wait_block_yaml import WaitBlockYaml
from .workflow import Workflow
from .workflow_create_yaml_request import WorkflowCreateYamlRequest
from .workflow_definition import WorkflowDefinition
from .workflow_definition_blocks_item import (
WorkflowDefinitionBlocksItem,
@@ -257,9 +308,46 @@ from .workflow_definition_parameters_item import (
WorkflowDefinitionParametersItem_Output,
WorkflowDefinitionParametersItem_Workflow,
)
from .workflow_definition_yaml import WorkflowDefinitionYaml
from .workflow_definition_yaml_blocks_item import (
WorkflowDefinitionYamlBlocksItem,
WorkflowDefinitionYamlBlocksItem_Action,
WorkflowDefinitionYamlBlocksItem_Code,
WorkflowDefinitionYamlBlocksItem_DownloadToS3,
WorkflowDefinitionYamlBlocksItem_Extraction,
WorkflowDefinitionYamlBlocksItem_FileDownload,
WorkflowDefinitionYamlBlocksItem_FileUpload,
WorkflowDefinitionYamlBlocksItem_FileUrlParser,
WorkflowDefinitionYamlBlocksItem_ForLoop,
WorkflowDefinitionYamlBlocksItem_GotoUrl,
WorkflowDefinitionYamlBlocksItem_Login,
WorkflowDefinitionYamlBlocksItem_Navigation,
WorkflowDefinitionYamlBlocksItem_PdfParser,
WorkflowDefinitionYamlBlocksItem_SendEmail,
WorkflowDefinitionYamlBlocksItem_Task,
WorkflowDefinitionYamlBlocksItem_TaskV2,
WorkflowDefinitionYamlBlocksItem_TextPrompt,
WorkflowDefinitionYamlBlocksItem_UploadToS3,
WorkflowDefinitionYamlBlocksItem_Validation,
WorkflowDefinitionYamlBlocksItem_Wait,
)
from .workflow_definition_yaml_parameters_item import (
WorkflowDefinitionYamlParametersItem,
WorkflowDefinitionYamlParametersItem_AwsSecret,
WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData,
WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential,
WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation,
WorkflowDefinitionYamlParametersItem_Context,
WorkflowDefinitionYamlParametersItem_Credential,
WorkflowDefinitionYamlParametersItem_Output,
WorkflowDefinitionYamlParametersItem_Workflow,
)
from .workflow_parameter import WorkflowParameter
from .workflow_parameter_default_value import WorkflowParameterDefaultValue
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_request import WorkflowRunRequest
from .workflow_run_response import WorkflowRunResponse
from .workflow_run_response_output import WorkflowRunResponseOutput
@@ -277,10 +365,15 @@ __all__ = [
"ActionBlockParametersItem_Credential",
"ActionBlockParametersItem_Output",
"ActionBlockParametersItem_Workflow",
"ActionBlockYaml",
"AwsSecretParameter",
"AwsSecretParameterYaml",
"BitwardenCreditCardDataParameter",
"BitwardenCreditCardDataParameterYaml",
"BitwardenLoginCredentialParameter",
"BitwardenLoginCredentialParameterYaml",
"BitwardenSensitiveInformationParameter",
"BitwardenSensitiveInformationParameterYaml",
"BrowserSessionResponse",
"CodeBlock",
"CodeBlockParametersItem",
@@ -292,6 +385,7 @@ __all__ = [
"CodeBlockParametersItem_Credential",
"CodeBlockParametersItem_Output",
"CodeBlockParametersItem_Workflow",
"CodeBlockYaml",
"ContextParameter",
"ContextParameterSource",
"ContextParameterSource_AwsSecret",
@@ -303,12 +397,15 @@ __all__ = [
"ContextParameterSource_Output",
"ContextParameterSource_Workflow",
"ContextParameterValue",
"ContextParameterYaml",
"CredentialParameter",
"CredentialParameterYaml",
"CredentialResponse",
"CredentialResponseCredential",
"CredentialType",
"CreditCardCredentialResponse",
"DownloadToS3Block",
"DownloadToS3BlockYaml",
"ExtractionBlock",
"ExtractionBlockDataSchema",
"ExtractionBlockParametersItem",
@@ -320,6 +417,8 @@ __all__ = [
"ExtractionBlockParametersItem_Credential",
"ExtractionBlockParametersItem_Output",
"ExtractionBlockParametersItem_Workflow",
"ExtractionBlockYaml",
"ExtractionBlockYamlDataSchema",
"FileDownloadBlock",
"FileDownloadBlockDataSchema",
"FileDownloadBlockParametersItem",
@@ -331,11 +430,14 @@ __all__ = [
"FileDownloadBlockParametersItem_Credential",
"FileDownloadBlockParametersItem_Output",
"FileDownloadBlockParametersItem_Workflow",
"FileDownloadBlockYaml",
"FileInfo",
"FileParserBlock",
"FileParserBlockYaml",
"FileStorageType",
"FileType",
"FileUploadBlock",
"FileUploadBlockYaml",
"ForLoopBlock",
"ForLoopBlockLoopBlocksItem",
"ForLoopBlockLoopBlocksItem_Action",
@@ -366,6 +468,27 @@ __all__ = [
"ForLoopBlockLoopOver_Credential",
"ForLoopBlockLoopOver_Output",
"ForLoopBlockLoopOver_Workflow",
"ForLoopBlockYaml",
"ForLoopBlockYamlLoopBlocksItem",
"ForLoopBlockYamlLoopBlocksItem_Action",
"ForLoopBlockYamlLoopBlocksItem_Code",
"ForLoopBlockYamlLoopBlocksItem_DownloadToS3",
"ForLoopBlockYamlLoopBlocksItem_Extraction",
"ForLoopBlockYamlLoopBlocksItem_FileDownload",
"ForLoopBlockYamlLoopBlocksItem_FileUpload",
"ForLoopBlockYamlLoopBlocksItem_FileUrlParser",
"ForLoopBlockYamlLoopBlocksItem_ForLoop",
"ForLoopBlockYamlLoopBlocksItem_GotoUrl",
"ForLoopBlockYamlLoopBlocksItem_Login",
"ForLoopBlockYamlLoopBlocksItem_Navigation",
"ForLoopBlockYamlLoopBlocksItem_PdfParser",
"ForLoopBlockYamlLoopBlocksItem_SendEmail",
"ForLoopBlockYamlLoopBlocksItem_Task",
"ForLoopBlockYamlLoopBlocksItem_TaskV2",
"ForLoopBlockYamlLoopBlocksItem_TextPrompt",
"ForLoopBlockYamlLoopBlocksItem_UploadToS3",
"ForLoopBlockYamlLoopBlocksItem_Validation",
"ForLoopBlockYamlLoopBlocksItem_Wait",
"HttpValidationError",
"LoginBlock",
"LoginBlockDataSchema",
@@ -378,6 +501,7 @@ __all__ = [
"LoginBlockParametersItem_Credential",
"LoginBlockParametersItem_Output",
"LoginBlockParametersItem_Workflow",
"LoginBlockYaml",
"NavigationBlock",
"NavigationBlockDataSchema",
"NavigationBlockParametersItem",
@@ -389,15 +513,19 @@ __all__ = [
"NavigationBlockParametersItem_Credential",
"NavigationBlockParametersItem_Output",
"NavigationBlockParametersItem_Workflow",
"NavigationBlockYaml",
"NonEmptyCreditCardCredential",
"NonEmptyPasswordCredential",
"OutputParameter",
"OutputParameterYaml",
"PasswordCredentialResponse",
"PdfParserBlock",
"PdfParserBlockYaml",
"ProxyLocation",
"RunEngine",
"RunStatus",
"SendEmailBlock",
"SendEmailBlockYaml",
"TaskBlock",
"TaskBlockDataSchema",
"TaskBlockParametersItem",
@@ -409,11 +537,14 @@ __all__ = [
"TaskBlockParametersItem_Credential",
"TaskBlockParametersItem_Output",
"TaskBlockParametersItem_Workflow",
"TaskBlockYaml",
"TaskBlockYamlDataSchema",
"TaskRunRequest",
"TaskRunRequestDataExtractionSchema",
"TaskRunResponse",
"TaskRunResponseOutput",
"TaskV2Block",
"TaskV2BlockYaml",
"TextPromptBlock",
"TextPromptBlockParametersItem",
"TextPromptBlockParametersItem_AwsSecret",
@@ -424,8 +555,10 @@ __all__ = [
"TextPromptBlockParametersItem_Credential",
"TextPromptBlockParametersItem_Output",
"TextPromptBlockParametersItem_Workflow",
"TextPromptBlockYaml",
"TotpCode",
"UploadToS3Block",
"UploadToS3BlockYaml",
"UrlBlock",
"UrlBlockDataSchema",
"UrlBlockParametersItem",
@@ -437,6 +570,7 @@ __all__ = [
"UrlBlockParametersItem_Credential",
"UrlBlockParametersItem_Output",
"UrlBlockParametersItem_Workflow",
"UrlBlockYaml",
"ValidationBlock",
"ValidationBlockDataSchema",
"ValidationBlockParametersItem",
@@ -448,6 +582,7 @@ __all__ = [
"ValidationBlockParametersItem_Credential",
"ValidationBlockParametersItem_Output",
"ValidationBlockParametersItem_Workflow",
"ValidationBlockYaml",
"ValidationError",
"ValidationErrorLocItem",
"WaitBlock",
@@ -460,7 +595,9 @@ __all__ = [
"WaitBlockParametersItem_Credential",
"WaitBlockParametersItem_Output",
"WaitBlockParametersItem_Workflow",
"WaitBlockYaml",
"Workflow",
"WorkflowCreateYamlRequest",
"WorkflowDefinition",
"WorkflowDefinitionBlocksItem",
"WorkflowDefinitionBlocksItem_Action",
@@ -491,9 +628,42 @@ __all__ = [
"WorkflowDefinitionParametersItem_Credential",
"WorkflowDefinitionParametersItem_Output",
"WorkflowDefinitionParametersItem_Workflow",
"WorkflowDefinitionYaml",
"WorkflowDefinitionYamlBlocksItem",
"WorkflowDefinitionYamlBlocksItem_Action",
"WorkflowDefinitionYamlBlocksItem_Code",
"WorkflowDefinitionYamlBlocksItem_DownloadToS3",
"WorkflowDefinitionYamlBlocksItem_Extraction",
"WorkflowDefinitionYamlBlocksItem_FileDownload",
"WorkflowDefinitionYamlBlocksItem_FileUpload",
"WorkflowDefinitionYamlBlocksItem_FileUrlParser",
"WorkflowDefinitionYamlBlocksItem_ForLoop",
"WorkflowDefinitionYamlBlocksItem_GotoUrl",
"WorkflowDefinitionYamlBlocksItem_Login",
"WorkflowDefinitionYamlBlocksItem_Navigation",
"WorkflowDefinitionYamlBlocksItem_PdfParser",
"WorkflowDefinitionYamlBlocksItem_SendEmail",
"WorkflowDefinitionYamlBlocksItem_Task",
"WorkflowDefinitionYamlBlocksItem_TaskV2",
"WorkflowDefinitionYamlBlocksItem_TextPrompt",
"WorkflowDefinitionYamlBlocksItem_UploadToS3",
"WorkflowDefinitionYamlBlocksItem_Validation",
"WorkflowDefinitionYamlBlocksItem_Wait",
"WorkflowDefinitionYamlParametersItem",
"WorkflowDefinitionYamlParametersItem_AwsSecret",
"WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData",
"WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential",
"WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation",
"WorkflowDefinitionYamlParametersItem_Context",
"WorkflowDefinitionYamlParametersItem_Credential",
"WorkflowDefinitionYamlParametersItem_Output",
"WorkflowDefinitionYamlParametersItem_Workflow",
"WorkflowParameter",
"WorkflowParameterDefaultValue",
"WorkflowParameterType",
"WorkflowParameterYaml",
"WorkflowParameterYamlDefaultValue",
"WorkflowRequest",
"WorkflowRunRequest",
"WorkflowRunResponse",
"WorkflowRunResponseOutput",

View File

@@ -0,0 +1,31 @@
# 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 ActionBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
url: typing.Optional[str] = None
title: typing.Optional[str] = None
navigation_goal: typing.Optional[str] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
complete_on_download: typing.Optional[bool] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: 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

View File

@@ -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 AwsSecretParameterYaml(UniversalBaseModel):
key: str
description: typing.Optional[str] = None
aws_key: str
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

View File

@@ -0,0 +1,25 @@
# 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 BitwardenCreditCardDataParameterYaml(UniversalBaseModel):
key: str
description: typing.Optional[str] = None
bitwarden_client_id_aws_secret_key: str
bitwarden_client_secret_aws_secret_key: str
bitwarden_master_password_aws_secret_key: str
bitwarden_collection_id: str
bitwarden_item_id: str
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

View File

@@ -0,0 +1,26 @@
# 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 BitwardenLoginCredentialParameterYaml(UniversalBaseModel):
key: str
description: typing.Optional[str] = None
bitwarden_client_id_aws_secret_key: str
bitwarden_client_secret_aws_secret_key: str
bitwarden_master_password_aws_secret_key: str
url_parameter_key: typing.Optional[str] = None
bitwarden_collection_id: typing.Optional[str] = None
bitwarden_item_id: 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

View File

@@ -0,0 +1,26 @@
# 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 BitwardenSensitiveInformationParameterYaml(UniversalBaseModel):
key: str
description: typing.Optional[str] = None
bitwarden_client_id_aws_secret_key: str
bitwarden_client_secret_aws_secret_key: str
bitwarden_master_password_aws_secret_key: str
bitwarden_collection_id: str
bitwarden_identity_key: str
bitwarden_identity_fields: typing.List[str]
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

View File

@@ -0,0 +1,22 @@
# 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 CodeBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
code: str
parameter_keys: typing.Optional[typing.List[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

View File

@@ -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 ContextParameterYaml(UniversalBaseModel):
key: str
description: typing.Optional[str] = None
source_parameter_key: str
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

View File

@@ -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 CredentialParameterYaml(UniversalBaseModel):
key: str
description: typing.Optional[str] = None
credential_id: str
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

View File

@@ -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 DownloadToS3BlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
url: str
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

View File

@@ -0,0 +1,29 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from .extraction_block_yaml_data_schema import ExtractionBlockYamlDataSchema
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class ExtractionBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
data_extraction_goal: str
url: typing.Optional[str] = None
title: typing.Optional[str] = None
data_schema: typing.Optional[ExtractionBlockYamlDataSchema] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
cache_actions: 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

View File

@@ -0,0 +1,7 @@
# This file was auto-generated by Fern from our API Definition.
import typing
ExtractionBlockYamlDataSchema = typing.Union[
typing.Dict[str, typing.Optional[typing.Any]], typing.List[typing.Optional[typing.Any]]
]

View File

@@ -0,0 +1,31 @@
# 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 FileDownloadBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
navigation_goal: str
url: typing.Optional[str] = None
title: typing.Optional[str] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: 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

View File

@@ -0,0 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from .file_type import FileType
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class FileParserBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
file_url: str
file_type: FileType = "csv"
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

View File

@@ -0,0 +1,29 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from .file_storage_type import FileStorageType
import typing_extensions
from ..core.serialization import FieldMetadata
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class FileUploadBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: 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
path: 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

View File

@@ -0,0 +1,31 @@
# This file was auto-generated by Fern from our API Definition.
from __future__ import annotations
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
from ..core.pydantic_utilities import update_forward_refs
class ForLoopBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
loop_blocks: typing.List["ForLoopBlockYamlLoopBlocksItem"]
loop_over_parameter_key: typing.Optional[str] = None
loop_variable_reference: typing.Optional[str] = None
complete_if_empty: 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
from .for_loop_block_yaml_loop_blocks_item import ForLoopBlockYamlLoopBlocksItem # noqa: E402
update_forward_refs(ForLoopBlockYaml)

View File

@@ -0,0 +1,448 @@
# This file was auto-generated by Fern from our API Definition.
from __future__ import annotations
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from .task_block_yaml_data_schema import TaskBlockYamlDataSchema
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
from .file_storage_type import FileStorageType
import typing_extensions
from ..core.serialization import FieldMetadata
from .file_type import FileType
from .run_engine import RunEngine
from .extraction_block_yaml_data_schema import ExtractionBlockYamlDataSchema
from ..core.pydantic_utilities import update_forward_refs
class ForLoopBlockYamlLoopBlocksItem_Task(UniversalBaseModel):
block_type: typing.Literal["task"] = "task"
label: str
continue_on_failure: typing.Optional[bool] = None
url: typing.Optional[str] = None
title: typing.Optional[str] = None
navigation_goal: typing.Optional[str] = None
data_extraction_goal: typing.Optional[str] = None
data_schema: typing.Optional[TaskBlockYamlDataSchema] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
complete_on_download: typing.Optional[bool] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
terminate_criterion: typing.Optional[str] = None
complete_verification: typing.Optional[bool] = None
include_action_history_in_verification: 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
class ForLoopBlockYamlLoopBlocksItem_ForLoop(UniversalBaseModel):
block_type: typing.Literal["for_loop"] = "for_loop"
label: str
continue_on_failure: typing.Optional[bool] = None
loop_blocks: typing.List["ForLoopBlockYamlLoopBlocksItem"]
loop_over_parameter_key: typing.Optional[str] = None
loop_variable_reference: typing.Optional[str] = None
complete_if_empty: 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
from .for_loop_block_yaml import ForLoopBlockYaml # noqa: E402
class ForLoopBlockYamlLoopBlocksItem_Code(UniversalBaseModel):
block_type: typing.Literal["code"] = "code"
label: str
continue_on_failure: typing.Optional[bool] = None
code: str
parameter_keys: typing.Optional[typing.List[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 ForLoopBlockYamlLoopBlocksItem_TextPrompt(UniversalBaseModel):
block_type: typing.Literal["text_prompt"] = "text_prompt"
label: str
continue_on_failure: typing.Optional[bool] = None
llm_key: typing.Optional[str] = None
prompt: str
parameter_keys: typing.Optional[typing.List[str]] = None
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
else:
class Config:
frozen = True
smart_union = True
extra = pydantic.Extra.allow
class ForLoopBlockYamlLoopBlocksItem_DownloadToS3(UniversalBaseModel):
block_type: typing.Literal["download_to_s3"] = "download_to_s3"
label: str
continue_on_failure: typing.Optional[bool] = None
url: str
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 ForLoopBlockYamlLoopBlocksItem_UploadToS3(UniversalBaseModel):
block_type: typing.Literal["upload_to_s3"] = "upload_to_s3"
label: str
continue_on_failure: typing.Optional[bool] = None
path: 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 ForLoopBlockYamlLoopBlocksItem_FileUpload(UniversalBaseModel):
block_type: typing.Literal["file_upload"] = "file_upload"
label: str
continue_on_failure: 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
path: 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 ForLoopBlockYamlLoopBlocksItem_SendEmail(UniversalBaseModel):
block_type: typing.Literal["send_email"] = "send_email"
label: str
continue_on_failure: typing.Optional[bool] = None
smtp_host_secret_parameter_key: str
smtp_port_secret_parameter_key: str
smtp_username_secret_parameter_key: str
smtp_password_secret_parameter_key: str
sender: str
recipients: typing.List[str]
subject: str
body: str
file_attachments: typing.Optional[typing.List[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 ForLoopBlockYamlLoopBlocksItem_FileUrlParser(UniversalBaseModel):
block_type: typing.Literal["file_url_parser"] = "file_url_parser"
label: str
continue_on_failure: typing.Optional[bool] = None
file_url: str
file_type: FileType = "csv"
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 ForLoopBlockYamlLoopBlocksItem_Validation(UniversalBaseModel):
block_type: typing.Literal["validation"] = "validation"
label: str
continue_on_failure: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
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
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 ForLoopBlockYamlLoopBlocksItem_Action(UniversalBaseModel):
block_type: typing.Literal["action"] = "action"
label: str
continue_on_failure: typing.Optional[bool] = None
url: typing.Optional[str] = None
title: typing.Optional[str] = None
navigation_goal: typing.Optional[str] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
complete_on_download: typing.Optional[bool] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: 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
class ForLoopBlockYamlLoopBlocksItem_Navigation(UniversalBaseModel):
block_type: typing.Literal["navigation"] = "navigation"
label: str
continue_on_failure: typing.Optional[bool] = None
navigation_goal: str
url: typing.Optional[str] = None
title: typing.Optional[str] = None
engine: typing.Optional[RunEngine] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
complete_on_download: typing.Optional[bool] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
terminate_criterion: typing.Optional[str] = None
complete_verification: typing.Optional[bool] = None
include_action_history_in_verification: 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
class ForLoopBlockYamlLoopBlocksItem_Extraction(UniversalBaseModel):
block_type: typing.Literal["extraction"] = "extraction"
label: str
continue_on_failure: typing.Optional[bool] = None
data_extraction_goal: str
url: typing.Optional[str] = None
title: typing.Optional[str] = None
data_schema: typing.Optional[ExtractionBlockYamlDataSchema] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
cache_actions: 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
class ForLoopBlockYamlLoopBlocksItem_Login(UniversalBaseModel):
block_type: typing.Literal["login"] = "login"
label: str
continue_on_failure: typing.Optional[bool] = None
url: typing.Optional[str] = None
title: typing.Optional[str] = None
navigation_goal: typing.Optional[str] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
terminate_criterion: typing.Optional[str] = None
complete_verification: 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
class ForLoopBlockYamlLoopBlocksItem_Wait(UniversalBaseModel):
block_type: typing.Literal["wait"] = "wait"
label: str
continue_on_failure: typing.Optional[bool] = None
wait_sec: 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
class ForLoopBlockYamlLoopBlocksItem_FileDownload(UniversalBaseModel):
block_type: typing.Literal["file_download"] = "file_download"
label: str
continue_on_failure: typing.Optional[bool] = None
navigation_goal: str
url: typing.Optional[str] = None
title: typing.Optional[str] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: 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
class ForLoopBlockYamlLoopBlocksItem_GotoUrl(UniversalBaseModel):
block_type: typing.Literal["goto_url"] = "goto_url"
label: str
continue_on_failure: typing.Optional[bool] = None
url: str
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 ForLoopBlockYamlLoopBlocksItem_PdfParser(UniversalBaseModel):
block_type: typing.Literal["pdf_parser"] = "pdf_parser"
label: str
continue_on_failure: typing.Optional[bool] = None
file_url: str
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
else:
class Config:
frozen = True
smart_union = True
extra = pydantic.Extra.allow
class ForLoopBlockYamlLoopBlocksItem_TaskV2(UniversalBaseModel):
block_type: typing.Literal["task_v2"] = "task_v2"
label: str
continue_on_failure: typing.Optional[bool] = None
prompt: str
url: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
max_iterations: typing.Optional[int] = None
max_steps: 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
ForLoopBlockYamlLoopBlocksItem = typing.Union[
ForLoopBlockYamlLoopBlocksItem_Task,
ForLoopBlockYamlLoopBlocksItem_ForLoop,
ForLoopBlockYamlLoopBlocksItem_Code,
ForLoopBlockYamlLoopBlocksItem_TextPrompt,
ForLoopBlockYamlLoopBlocksItem_DownloadToS3,
ForLoopBlockYamlLoopBlocksItem_UploadToS3,
ForLoopBlockYamlLoopBlocksItem_FileUpload,
ForLoopBlockYamlLoopBlocksItem_SendEmail,
ForLoopBlockYamlLoopBlocksItem_FileUrlParser,
ForLoopBlockYamlLoopBlocksItem_Validation,
ForLoopBlockYamlLoopBlocksItem_Action,
ForLoopBlockYamlLoopBlocksItem_Navigation,
ForLoopBlockYamlLoopBlocksItem_Extraction,
ForLoopBlockYamlLoopBlocksItem_Login,
ForLoopBlockYamlLoopBlocksItem_Wait,
ForLoopBlockYamlLoopBlocksItem_FileDownload,
ForLoopBlockYamlLoopBlocksItem_GotoUrl,
ForLoopBlockYamlLoopBlocksItem_PdfParser,
ForLoopBlockYamlLoopBlocksItem_TaskV2,
]
update_forward_refs(ForLoopBlockYamlLoopBlocksItem_ForLoop)

View File

@@ -0,0 +1,33 @@
# 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 LoginBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
url: typing.Optional[str] = None
title: typing.Optional[str] = None
navigation_goal: typing.Optional[str] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
terminate_criterion: typing.Optional[str] = None
complete_verification: 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

View File

@@ -0,0 +1,38 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from .run_engine import RunEngine
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class NavigationBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
navigation_goal: str
url: typing.Optional[str] = None
title: typing.Optional[str] = None
engine: typing.Optional[RunEngine] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
complete_on_download: typing.Optional[bool] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
terminate_criterion: typing.Optional[str] = None
complete_verification: typing.Optional[bool] = None
include_action_history_in_verification: 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

View File

@@ -0,0 +1,20 @@
# 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 OutputParameterYaml(UniversalBaseModel):
key: str
description: typing.Optional[str] = None
if IS_PYDANTIC_V2:
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
else:
class Config:
frozen = True
smart_union = True
extra = pydantic.Extra.allow

View File

@@ -0,0 +1,22 @@
# 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 PdfParserBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
file_url: str
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
else:
class Config:
frozen = True
smart_union = True
extra = pydantic.Extra.allow

View File

@@ -0,0 +1,29 @@
# 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 SendEmailBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
smtp_host_secret_parameter_key: str
smtp_port_secret_parameter_key: str
smtp_username_secret_parameter_key: str
smtp_password_secret_parameter_key: str
sender: str
recipients: typing.List[str]
subject: str
body: str
file_attachments: typing.Optional[typing.List[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

View File

@@ -0,0 +1,39 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from .task_block_yaml_data_schema import TaskBlockYamlDataSchema
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class TaskBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
url: typing.Optional[str] = None
title: typing.Optional[str] = None
navigation_goal: typing.Optional[str] = None
data_extraction_goal: typing.Optional[str] = None
data_schema: typing.Optional[TaskBlockYamlDataSchema] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
complete_on_download: typing.Optional[bool] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
terminate_criterion: typing.Optional[str] = None
complete_verification: typing.Optional[bool] = None
include_action_history_in_verification: 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

View File

@@ -0,0 +1,7 @@
# This file was auto-generated by Fern from our API Definition.
import typing
TaskBlockYamlDataSchema = typing.Union[
typing.Dict[str, typing.Optional[typing.Any]], typing.List[typing.Optional[typing.Any]]
]

View File

@@ -0,0 +1,26 @@
# 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 TaskV2BlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
prompt: str
url: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
max_iterations: typing.Optional[int] = None
max_steps: 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

View File

@@ -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 TextPromptBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
llm_key: typing.Optional[str] = None
prompt: str
parameter_keys: typing.Optional[typing.List[str]] = None
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
else:
class Config:
frozen = True
smart_union = True
extra = pydantic.Extra.allow

View File

@@ -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 UploadToS3BlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
path: 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

View File

@@ -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 UrlBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
url: str
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

View File

@@ -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 ValidationBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
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
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

View File

@@ -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 WaitBlockYaml(UniversalBaseModel):
label: str
continue_on_failure: typing.Optional[bool] = None
wait_sec: 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

View File

@@ -0,0 +1,32 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
from .for_loop_block_yaml import ForLoopBlockYaml
import typing
from .proxy_location import ProxyLocation
from .workflow_definition_yaml import WorkflowDefinitionYaml
from .workflow_status import WorkflowStatus
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class WorkflowCreateYamlRequest(UniversalBaseModel):
title: str
description: typing.Optional[str] = None
proxy_location: typing.Optional[ProxyLocation] = None
webhook_callback_url: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
persist_browser_session: typing.Optional[bool] = None
workflow_definition: WorkflowDefinitionYaml
is_saved_task: typing.Optional[bool] = None
status: typing.Optional[WorkflowStatus] = 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

View File

@@ -0,0 +1,23 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
from .for_loop_block_yaml import ForLoopBlockYaml
import typing
from .workflow_definition_yaml_parameters_item import WorkflowDefinitionYamlParametersItem
from .workflow_definition_yaml_blocks_item import WorkflowDefinitionYamlBlocksItem
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class WorkflowDefinitionYaml(UniversalBaseModel):
parameters: typing.List[WorkflowDefinitionYamlParametersItem]
blocks: typing.List[WorkflowDefinitionYamlBlocksItem]
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

View File

@@ -0,0 +1,449 @@
# This file was auto-generated by Fern from our API Definition.
from __future__ import annotations
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
from .extraction_block_yaml_data_schema import ExtractionBlockYamlDataSchema
from .file_storage_type import FileStorageType
import typing_extensions
from ..core.serialization import FieldMetadata
from .file_type import FileType
from .run_engine import RunEngine
from .task_block_yaml_data_schema import TaskBlockYamlDataSchema
from ..core.pydantic_utilities import update_forward_refs
class WorkflowDefinitionYamlBlocksItem_Action(UniversalBaseModel):
block_type: typing.Literal["action"] = "action"
label: str
continue_on_failure: typing.Optional[bool] = None
url: typing.Optional[str] = None
title: typing.Optional[str] = None
navigation_goal: typing.Optional[str] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
complete_on_download: typing.Optional[bool] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: 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
class WorkflowDefinitionYamlBlocksItem_Code(UniversalBaseModel):
block_type: typing.Literal["code"] = "code"
label: str
continue_on_failure: typing.Optional[bool] = None
code: str
parameter_keys: typing.Optional[typing.List[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 WorkflowDefinitionYamlBlocksItem_DownloadToS3(UniversalBaseModel):
block_type: typing.Literal["download_to_s3"] = "download_to_s3"
label: str
continue_on_failure: typing.Optional[bool] = None
url: str
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 WorkflowDefinitionYamlBlocksItem_Extraction(UniversalBaseModel):
block_type: typing.Literal["extraction"] = "extraction"
label: str
continue_on_failure: typing.Optional[bool] = None
data_extraction_goal: str
url: typing.Optional[str] = None
title: typing.Optional[str] = None
data_schema: typing.Optional[ExtractionBlockYamlDataSchema] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
cache_actions: 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
class WorkflowDefinitionYamlBlocksItem_FileDownload(UniversalBaseModel):
block_type: typing.Literal["file_download"] = "file_download"
label: str
continue_on_failure: typing.Optional[bool] = None
navigation_goal: str
url: typing.Optional[str] = None
title: typing.Optional[str] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: 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
class WorkflowDefinitionYamlBlocksItem_FileUpload(UniversalBaseModel):
block_type: typing.Literal["file_upload"] = "file_upload"
label: str
continue_on_failure: 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
path: 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 WorkflowDefinitionYamlBlocksItem_FileUrlParser(UniversalBaseModel):
block_type: typing.Literal["file_url_parser"] = "file_url_parser"
label: str
continue_on_failure: typing.Optional[bool] = None
file_url: str
file_type: FileType = "csv"
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 WorkflowDefinitionYamlBlocksItem_ForLoop(UniversalBaseModel):
block_type: typing.Literal["for_loop"] = "for_loop"
label: str
continue_on_failure: typing.Optional[bool] = None
loop_blocks: typing.List["ForLoopBlockYamlLoopBlocksItem"]
loop_over_parameter_key: typing.Optional[str] = None
loop_variable_reference: typing.Optional[str] = None
complete_if_empty: 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
from .for_loop_block_yaml import ForLoopBlockYaml # noqa: E402
from .for_loop_block_yaml_loop_blocks_item import ForLoopBlockYamlLoopBlocksItem # noqa: E402
class WorkflowDefinitionYamlBlocksItem_GotoUrl(UniversalBaseModel):
block_type: typing.Literal["goto_url"] = "goto_url"
label: str
continue_on_failure: typing.Optional[bool] = None
url: str
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 WorkflowDefinitionYamlBlocksItem_Login(UniversalBaseModel):
block_type: typing.Literal["login"] = "login"
label: str
continue_on_failure: typing.Optional[bool] = None
url: typing.Optional[str] = None
title: typing.Optional[str] = None
navigation_goal: typing.Optional[str] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
terminate_criterion: typing.Optional[str] = None
complete_verification: 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
class WorkflowDefinitionYamlBlocksItem_Navigation(UniversalBaseModel):
block_type: typing.Literal["navigation"] = "navigation"
label: str
continue_on_failure: typing.Optional[bool] = None
navigation_goal: str
url: typing.Optional[str] = None
title: typing.Optional[str] = None
engine: typing.Optional[RunEngine] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
complete_on_download: typing.Optional[bool] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
terminate_criterion: typing.Optional[str] = None
complete_verification: typing.Optional[bool] = None
include_action_history_in_verification: 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
class WorkflowDefinitionYamlBlocksItem_PdfParser(UniversalBaseModel):
block_type: typing.Literal["pdf_parser"] = "pdf_parser"
label: str
continue_on_failure: typing.Optional[bool] = None
file_url: str
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
else:
class Config:
frozen = True
smart_union = True
extra = pydantic.Extra.allow
class WorkflowDefinitionYamlBlocksItem_SendEmail(UniversalBaseModel):
block_type: typing.Literal["send_email"] = "send_email"
label: str
continue_on_failure: typing.Optional[bool] = None
smtp_host_secret_parameter_key: str
smtp_port_secret_parameter_key: str
smtp_username_secret_parameter_key: str
smtp_password_secret_parameter_key: str
sender: str
recipients: typing.List[str]
subject: str
body: str
file_attachments: typing.Optional[typing.List[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 WorkflowDefinitionYamlBlocksItem_Task(UniversalBaseModel):
block_type: typing.Literal["task"] = "task"
label: str
continue_on_failure: typing.Optional[bool] = None
url: typing.Optional[str] = None
title: typing.Optional[str] = None
navigation_goal: typing.Optional[str] = None
data_extraction_goal: typing.Optional[str] = None
data_schema: typing.Optional[TaskBlockYamlDataSchema] = None
error_code_mapping: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_retries: typing.Optional[int] = None
max_steps_per_run: typing.Optional[int] = None
parameter_keys: typing.Optional[typing.List[str]] = None
complete_on_download: typing.Optional[bool] = None
download_suffix: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
cache_actions: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
terminate_criterion: typing.Optional[str] = None
complete_verification: typing.Optional[bool] = None
include_action_history_in_verification: 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
class WorkflowDefinitionYamlBlocksItem_TaskV2(UniversalBaseModel):
block_type: typing.Literal["task_v2"] = "task_v2"
label: str
continue_on_failure: typing.Optional[bool] = None
prompt: str
url: typing.Optional[str] = None
totp_verification_url: typing.Optional[str] = None
totp_identifier: typing.Optional[str] = None
max_iterations: typing.Optional[int] = None
max_steps: 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
class WorkflowDefinitionYamlBlocksItem_TextPrompt(UniversalBaseModel):
block_type: typing.Literal["text_prompt"] = "text_prompt"
label: str
continue_on_failure: typing.Optional[bool] = None
llm_key: typing.Optional[str] = None
prompt: str
parameter_keys: typing.Optional[typing.List[str]] = None
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
else:
class Config:
frozen = True
smart_union = True
extra = pydantic.Extra.allow
class WorkflowDefinitionYamlBlocksItem_UploadToS3(UniversalBaseModel):
block_type: typing.Literal["upload_to_s3"] = "upload_to_s3"
label: str
continue_on_failure: typing.Optional[bool] = None
path: 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 WorkflowDefinitionYamlBlocksItem_Validation(UniversalBaseModel):
block_type: typing.Literal["validation"] = "validation"
label: str
continue_on_failure: typing.Optional[bool] = None
complete_criterion: typing.Optional[str] = None
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
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 WorkflowDefinitionYamlBlocksItem_Wait(UniversalBaseModel):
block_type: typing.Literal["wait"] = "wait"
label: str
continue_on_failure: typing.Optional[bool] = None
wait_sec: 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
WorkflowDefinitionYamlBlocksItem = typing.Union[
WorkflowDefinitionYamlBlocksItem_Action,
WorkflowDefinitionYamlBlocksItem_Code,
WorkflowDefinitionYamlBlocksItem_DownloadToS3,
WorkflowDefinitionYamlBlocksItem_Extraction,
WorkflowDefinitionYamlBlocksItem_FileDownload,
WorkflowDefinitionYamlBlocksItem_FileUpload,
WorkflowDefinitionYamlBlocksItem_FileUrlParser,
WorkflowDefinitionYamlBlocksItem_ForLoop,
WorkflowDefinitionYamlBlocksItem_GotoUrl,
WorkflowDefinitionYamlBlocksItem_Login,
WorkflowDefinitionYamlBlocksItem_Navigation,
WorkflowDefinitionYamlBlocksItem_PdfParser,
WorkflowDefinitionYamlBlocksItem_SendEmail,
WorkflowDefinitionYamlBlocksItem_Task,
WorkflowDefinitionYamlBlocksItem_TaskV2,
WorkflowDefinitionYamlBlocksItem_TextPrompt,
WorkflowDefinitionYamlBlocksItem_UploadToS3,
WorkflowDefinitionYamlBlocksItem_Validation,
WorkflowDefinitionYamlBlocksItem_Wait,
]
update_forward_refs(WorkflowDefinitionYamlBlocksItem_ForLoop)

View File

@@ -0,0 +1,163 @@
# This file was auto-generated by Fern from our API Definition.
from __future__ import annotations
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
from .workflow_parameter_type import WorkflowParameterType
from .workflow_parameter_yaml_default_value import WorkflowParameterYamlDefaultValue
class WorkflowDefinitionYamlParametersItem_AwsSecret(UniversalBaseModel):
parameter_type: typing.Literal["aws_secret"] = "aws_secret"
key: str
description: typing.Optional[str] = None
aws_key: str
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
description: typing.Optional[str] = None
bitwarden_client_id_aws_secret_key: str
bitwarden_client_secret_aws_secret_key: str
bitwarden_master_password_aws_secret_key: str
bitwarden_collection_id: str
bitwarden_item_id: str
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_BitwardenLoginCredential(UniversalBaseModel):
parameter_type: typing.Literal["bitwarden_login_credential"] = "bitwarden_login_credential"
key: str
description: typing.Optional[str] = None
bitwarden_client_id_aws_secret_key: str
bitwarden_client_secret_aws_secret_key: str
bitwarden_master_password_aws_secret_key: str
url_parameter_key: typing.Optional[str] = None
bitwarden_collection_id: typing.Optional[str] = None
bitwarden_item_id: 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_BitwardenSensitiveInformation(UniversalBaseModel):
parameter_type: typing.Literal["bitwarden_sensitive_information"] = "bitwarden_sensitive_information"
key: str
description: typing.Optional[str] = None
bitwarden_client_id_aws_secret_key: str
bitwarden_client_secret_aws_secret_key: str
bitwarden_master_password_aws_secret_key: str
bitwarden_collection_id: str
bitwarden_identity_key: str
bitwarden_identity_fields: typing.List[str]
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_Context(UniversalBaseModel):
parameter_type: typing.Literal["context"] = "context"
key: str
description: typing.Optional[str] = None
source_parameter_key: str
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_Credential(UniversalBaseModel):
parameter_type: typing.Literal["credential"] = "credential"
key: str
description: typing.Optional[str] = None
credential_id: str
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_Output(UniversalBaseModel):
parameter_type: typing.Literal["output"] = "output"
key: str
description: typing.Optional[str] = None
if IS_PYDANTIC_V2:
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
else:
class Config:
frozen = True
smart_union = True
extra = pydantic.Extra.allow
class WorkflowDefinitionYamlParametersItem_Workflow(UniversalBaseModel):
parameter_type: typing.Literal["workflow"] = "workflow"
key: str
description: typing.Optional[str] = None
workflow_parameter_type: WorkflowParameterType
default_value: typing.Optional[WorkflowParameterYamlDefaultValue] = 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
WorkflowDefinitionYamlParametersItem = typing.Union[
WorkflowDefinitionYamlParametersItem_AwsSecret,
WorkflowDefinitionYamlParametersItem_BitwardenCreditCardData,
WorkflowDefinitionYamlParametersItem_BitwardenLoginCredential,
WorkflowDefinitionYamlParametersItem_BitwardenSensitiveInformation,
WorkflowDefinitionYamlParametersItem_Context,
WorkflowDefinitionYamlParametersItem_Credential,
WorkflowDefinitionYamlParametersItem_Output,
WorkflowDefinitionYamlParametersItem_Workflow,
]

View File

@@ -0,0 +1,24 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from .workflow_parameter_type import WorkflowParameterType
from .workflow_parameter_yaml_default_value import WorkflowParameterYamlDefaultValue
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class WorkflowParameterYaml(UniversalBaseModel):
key: str
description: typing.Optional[str] = None
workflow_parameter_type: WorkflowParameterType
default_value: typing.Optional[WorkflowParameterYamlDefaultValue] = 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

View File

@@ -0,0 +1,7 @@
# This file was auto-generated by Fern from our API Definition.
import typing
WorkflowParameterYamlDefaultValue = typing.Union[
str, int, float, bool, typing.Dict[str, typing.Optional[typing.Any]], typing.List[typing.Optional[typing.Any]]
]

View File

@@ -0,0 +1,29 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
from .for_loop_block_yaml import ForLoopBlockYaml
import typing
from .workflow_create_yaml_request import WorkflowCreateYamlRequest
import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2
class WorkflowRequest(UniversalBaseModel):
json_definition: typing.Optional[WorkflowCreateYamlRequest] = pydantic.Field(default=None)
"""
Workflow definition in JSON format
"""
yaml_definition: typing.Optional[str] = pydantic.Field(default=None)
"""
Workflow definition in YAML format
"""
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

View File

@@ -1,9 +1,11 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.client_wrapper import SyncClientWrapper
import typing
from ..core.client_wrapper import SyncClientWrapper
from ..types.workflow_create_yaml_request import WorkflowCreateYamlRequest
from ..core.request_options import RequestOptions
from ..types.workflow import Workflow
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.pydantic_utilities import parse_obj_as
from ..errors.unprocessable_entity_error import UnprocessableEntityError
from json.decoder import JSONDecodeError
@@ -11,17 +13,32 @@ from ..core.api_error import ApiError
from ..core.jsonable_encoder import jsonable_encoder
from ..core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
class WorkflowsClient:
def __init__(self, *, client_wrapper: SyncClientWrapper):
self._client_wrapper = client_wrapper
def create_workflow(self, *, request_options: typing.Optional[RequestOptions] = None) -> Workflow:
def create_workflow(
self,
*,
json_definition: typing.Optional[WorkflowCreateYamlRequest] = OMIT,
yaml_definition: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Workflow:
"""
Create a new workflow
Create a new workflow definition
Parameters
----------
json_definition : typing.Optional[WorkflowCreateYamlRequest]
Workflow definition in JSON format
yaml_definition : typing.Optional[str]
Workflow definition in YAML format
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -43,7 +60,92 @@ class WorkflowsClient:
_response = self._client_wrapper.httpx_client.request(
"v1/workflows",
method="POST",
json={
"json_definition": convert_and_respect_annotation_metadata(
object_=json_definition, annotation=WorkflowCreateYamlRequest, direction="write"
),
"yaml_definition": yaml_definition,
},
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
return typing.cast(
Workflow,
parse_obj_as(
type_=Workflow, # 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 update_workflow(
self,
workflow_id: str,
*,
json_definition: typing.Optional[WorkflowCreateYamlRequest] = OMIT,
yaml_definition: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Workflow:
"""
Update a workflow definition
Parameters
----------
workflow_id : str
The ID of the workflow to update. Workflow ID starts with `wpid_`.
json_definition : typing.Optional[WorkflowCreateYamlRequest]
Workflow definition in JSON format
yaml_definition : typing.Optional[str]
Workflow definition in YAML format
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
Workflow
Successfully updated workflow
Examples
--------
from skyvern import Skyvern
client = Skyvern(
api_key="YOUR_API_KEY",
authorization="YOUR_AUTHORIZATION",
)
client.workflows.update_workflow(
workflow_id="wpid_123",
)
"""
_response = self._client_wrapper.httpx_client.request(
f"v1/workflows/{jsonable_encoder(workflow_id)}",
method="POST",
json={
"json_definition": convert_and_respect_annotation_metadata(
object_=json_definition, annotation=WorkflowCreateYamlRequest, direction="write"
),
"yaml_definition": yaml_definition,
},
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
@@ -134,12 +236,24 @@ class AsyncWorkflowsClient:
def __init__(self, *, client_wrapper: AsyncClientWrapper):
self._client_wrapper = client_wrapper
async def create_workflow(self, *, request_options: typing.Optional[RequestOptions] = None) -> Workflow:
async def create_workflow(
self,
*,
json_definition: typing.Optional[WorkflowCreateYamlRequest] = OMIT,
yaml_definition: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Workflow:
"""
Create a new workflow
Create a new workflow definition
Parameters
----------
json_definition : typing.Optional[WorkflowCreateYamlRequest]
Workflow definition in JSON format
yaml_definition : typing.Optional[str]
Workflow definition in YAML format
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -169,7 +283,100 @@ class AsyncWorkflowsClient:
_response = await self._client_wrapper.httpx_client.request(
"v1/workflows",
method="POST",
json={
"json_definition": convert_and_respect_annotation_metadata(
object_=json_definition, annotation=WorkflowCreateYamlRequest, direction="write"
),
"yaml_definition": yaml_definition,
},
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
return typing.cast(
Workflow,
parse_obj_as(
type_=Workflow, # 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 update_workflow(
self,
workflow_id: str,
*,
json_definition: typing.Optional[WorkflowCreateYamlRequest] = OMIT,
yaml_definition: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Workflow:
"""
Update a workflow definition
Parameters
----------
workflow_id : str
The ID of the workflow to update. Workflow ID starts with `wpid_`.
json_definition : typing.Optional[WorkflowCreateYamlRequest]
Workflow definition in JSON format
yaml_definition : typing.Optional[str]
Workflow definition in YAML format
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
Returns
-------
Workflow
Successfully updated workflow
Examples
--------
import asyncio
from skyvern import AsyncSkyvern
client = AsyncSkyvern(
api_key="YOUR_API_KEY",
authorization="YOUR_AUTHORIZATION",
)
async def main() -> None:
await client.workflows.update_workflow(
workflow_id="wpid_123",
)
asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"v1/workflows/{jsonable_encoder(workflow_id)}",
method="POST",
json={
"json_definition": convert_and_respect_annotation_metadata(
object_=json_definition, annotation=WorkflowCreateYamlRequest, direction="write"
),
"yaml_definition": yaml_definition,
},
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300: