update login interface to support wait_for_completion (#3018)

This commit is contained in:
Shuchang Zheng
2025-07-22 08:25:06 -07:00
committed by GitHub
parent 2dbab09425
commit 41b33d723d
14 changed files with 447 additions and 815 deletions

View File

@@ -22,7 +22,6 @@ from .types import (
BitwardenCreditCardDataParameterYaml,
BitwardenLoginCredentialParameter,
BitwardenLoginCredentialParameterYaml,
BitwardenLoginRequest,
BitwardenSensitiveInformationParameter,
BitwardenSensitiveInformationParameterYaml,
BrowserSessionResponse,
@@ -56,7 +55,7 @@ from .types import (
CredentialParameterYaml,
CredentialResponse,
CredentialResponseCredential,
CredentialType,
CredentialTypeOutput,
CreditCardCredentialResponse,
DownloadToS3Block,
DownloadToS3BlockYaml,
@@ -181,10 +180,6 @@ from .types import (
LoginBlockParametersItem_Output,
LoginBlockParametersItem_Workflow,
LoginBlockYaml,
LoginRequestBody,
LoginRequestBody_1Password,
LoginRequestBody_Bitwarden,
LoginRequestBody_Skyvern,
NavigationBlock,
NavigationBlockDataSchema,
NavigationBlockParametersItem,
@@ -202,7 +197,6 @@ from .types import (
NonEmptyPasswordCredential,
OnePasswordCredentialParameter,
OnePasswordCredentialParameterYaml,
OnePasswordLoginRequest,
OutputParameter,
OutputParameterYaml,
PasswordCredentialResponse,
@@ -213,7 +207,8 @@ from .types import (
RunStatus,
SendEmailBlock,
SendEmailBlockYaml,
SkyvernLoginRequest,
SkyvernForgeSdkSchemasCredentialsCredentialType,
SkyvernSchemasRunBlocksCredentialType,
TaskBlock,
TaskBlockDataSchema,
TaskBlockParametersItem,
@@ -395,7 +390,6 @@ __all__ = [
"BitwardenCreditCardDataParameterYaml",
"BitwardenLoginCredentialParameter",
"BitwardenLoginCredentialParameterYaml",
"BitwardenLoginRequest",
"BitwardenSensitiveInformationParameter",
"BitwardenSensitiveInformationParameterYaml",
"BrowserSessionResponse",
@@ -429,7 +423,7 @@ __all__ = [
"CredentialParameterYaml",
"CredentialResponse",
"CredentialResponseCredential",
"CredentialType",
"CredentialTypeOutput",
"CreditCardCredentialResponse",
"DownloadToS3Block",
"DownloadToS3BlockYaml",
@@ -555,10 +549,6 @@ __all__ = [
"LoginBlockParametersItem_Output",
"LoginBlockParametersItem_Workflow",
"LoginBlockYaml",
"LoginRequestBody",
"LoginRequestBody_1Password",
"LoginRequestBody_Bitwarden",
"LoginRequestBody_Skyvern",
"NavigationBlock",
"NavigationBlockDataSchema",
"NavigationBlockParametersItem",
@@ -577,7 +567,6 @@ __all__ = [
"NotFoundError",
"OnePasswordCredentialParameter",
"OnePasswordCredentialParameterYaml",
"OnePasswordLoginRequest",
"OutputParameter",
"OutputParameterYaml",
"PasswordCredentialResponse",
@@ -590,7 +579,8 @@ __all__ = [
"SendEmailBlockYaml",
"Skyvern",
"SkyvernEnvironment",
"SkyvernLoginRequest",
"SkyvernForgeSdkSchemasCredentialsCredentialType",
"SkyvernSchemasRunBlocksCredentialType",
"TaskBlock",
"TaskBlockDataSchema",
"TaskBlockParametersItem",

View File

@@ -28,9 +28,9 @@ from .errors.forbidden_error import ForbiddenError
import datetime as dt
from .types.totp_code import TotpCode
from .types.credential_response import CredentialResponse
from .types.credential_type import CredentialType
from .types.skyvern_forge_sdk_schemas_credentials_credential_type import SkyvernForgeSdkSchemasCredentialsCredentialType
from .types.create_credential_request_credential import CreateCredentialRequestCredential
from .types.login_request_body import LoginRequestBody
from .types.skyvern_schemas_run_blocks_credential_type import SkyvernSchemasRunBlocksCredentialType
from .core.client_wrapper import AsyncClientWrapper
# this is used as the default value for optional parameters
@@ -1544,7 +1544,7 @@ class Skyvern:
self,
*,
name: str,
credential_type: CredentialType,
credential_type: SkyvernForgeSdkSchemasCredentialsCredentialType,
credential: CreateCredentialRequestCredential,
request_options: typing.Optional[RequestOptions] = None,
) -> CredentialResponse:
@@ -1556,7 +1556,7 @@ class Skyvern:
name : str
Name of the credential
credential_type : CredentialType
credential_type : SkyvernForgeSdkSchemasCredentialsCredentialType
Type of credential to create
credential : CreateCredentialRequestCredential
@@ -1740,14 +1740,74 @@ class Skyvern:
raise ApiError(status_code=_response.status_code, body=_response_json)
def login(
self, *, request: LoginRequestBody, request_options: typing.Optional[RequestOptions] = None
self,
*,
credential_type: SkyvernSchemasRunBlocksCredentialType,
url: typing.Optional[str] = OMIT,
prompt: typing.Optional[str] = OMIT,
webhook_url: typing.Optional[str] = OMIT,
proxy_location: typing.Optional[ProxyLocation] = OMIT,
totp_identifier: typing.Optional[str] = OMIT,
totp_url: typing.Optional[str] = OMIT,
browser_session_id: typing.Optional[str] = OMIT,
extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
max_screenshot_scrolling_times: typing.Optional[int] = OMIT,
credential_id: typing.Optional[str] = OMIT,
bitwarden_collection_id: typing.Optional[str] = OMIT,
bitwarden_item_id: typing.Optional[str] = OMIT,
onepassword_vault_id: typing.Optional[str] = OMIT,
onepassword_item_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> WorkflowRunResponse:
"""
Log in to a website using either credential stored in Skyvern, Bitwarden or 1Password
Parameters
----------
request : LoginRequestBody
credential_type : SkyvernSchemasRunBlocksCredentialType
Where to get the credential from
url : typing.Optional[str]
Website url
prompt : typing.Optional[str]
Login instructions. Skyvern has default prompt/instruction for login if this field is not provided.
webhook_url : typing.Optional[str]
Webhook URL to send login status updates
proxy_location : typing.Optional[ProxyLocation]
Proxy location to use
totp_identifier : typing.Optional[str]
Identifier for TOTP (Time-based One-Time Password) if required
totp_url : typing.Optional[str]
TOTP URL to fetch one-time passwords
browser_session_id : typing.Optional[str]
ID of the browser session to use, which is prefixed by `pbs_` e.g. `pbs_123456`
extra_http_headers : typing.Optional[typing.Dict[str, typing.Optional[str]]]
Additional HTTP headers to include in requests
max_screenshot_scrolling_times : typing.Optional[int]
Maximum number of times to scroll for screenshots
credential_id : typing.Optional[str]
ID of the Skyvern credential to use for login.
bitwarden_collection_id : typing.Optional[str]
Bitwarden collection ID. You can find it in the Bitwarden collection URL. e.g. `https://vault.bitwarden.com/vaults/collection_id/items`
bitwarden_item_id : typing.Optional[str]
Bitwarden item ID
onepassword_vault_id : typing.Optional[str]
1Password vault ID
onepassword_item_id : typing.Optional[str]
1Password item ID
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1759,24 +1819,39 @@ class Skyvern:
Examples
--------
from skyvern import LoginRequestBody_Skyvern, Skyvern
from skyvern import Skyvern
client = Skyvern(
api_key="YOUR_API_KEY",
x_api_key="YOUR_X_API_KEY",
)
client.login(
request=LoginRequestBody_Skyvern(
credential_id="credential_id",
),
credential_type="skyvern",
)
"""
_response = self._client_wrapper.httpx_client.request(
"v1/run/tasks/login",
method="POST",
json=convert_and_respect_annotation_metadata(
object_=request, annotation=LoginRequestBody, direction="write"
),
json={
"credential_type": credential_type,
"url": url,
"prompt": prompt,
"webhook_url": webhook_url,
"proxy_location": proxy_location,
"totp_identifier": totp_identifier,
"totp_url": totp_url,
"browser_session_id": browser_session_id,
"extra_http_headers": extra_http_headers,
"max_screenshot_scrolling_times": max_screenshot_scrolling_times,
"credential_id": credential_id,
"bitwarden_collection_id": bitwarden_collection_id,
"bitwarden_item_id": bitwarden_item_id,
"onepassword_vault_id": onepassword_vault_id,
"onepassword_item_id": onepassword_item_id,
},
headers={
"content-type": "application/json",
},
request_options=request_options,
omit=OMIT,
)
@@ -3450,7 +3525,7 @@ class AsyncSkyvern:
self,
*,
name: str,
credential_type: CredentialType,
credential_type: SkyvernForgeSdkSchemasCredentialsCredentialType,
credential: CreateCredentialRequestCredential,
request_options: typing.Optional[RequestOptions] = None,
) -> CredentialResponse:
@@ -3462,7 +3537,7 @@ class AsyncSkyvern:
name : str
Name of the credential
credential_type : CredentialType
credential_type : SkyvernForgeSdkSchemasCredentialsCredentialType
Type of credential to create
credential : CreateCredentialRequestCredential
@@ -3672,14 +3747,74 @@ class AsyncSkyvern:
raise ApiError(status_code=_response.status_code, body=_response_json)
async def login(
self, *, request: LoginRequestBody, request_options: typing.Optional[RequestOptions] = None
self,
*,
credential_type: SkyvernSchemasRunBlocksCredentialType,
url: typing.Optional[str] = OMIT,
prompt: typing.Optional[str] = OMIT,
webhook_url: typing.Optional[str] = OMIT,
proxy_location: typing.Optional[ProxyLocation] = OMIT,
totp_identifier: typing.Optional[str] = OMIT,
totp_url: typing.Optional[str] = OMIT,
browser_session_id: typing.Optional[str] = OMIT,
extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
max_screenshot_scrolling_times: typing.Optional[int] = OMIT,
credential_id: typing.Optional[str] = OMIT,
bitwarden_collection_id: typing.Optional[str] = OMIT,
bitwarden_item_id: typing.Optional[str] = OMIT,
onepassword_vault_id: typing.Optional[str] = OMIT,
onepassword_item_id: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> WorkflowRunResponse:
"""
Log in to a website using either credential stored in Skyvern, Bitwarden or 1Password
Parameters
----------
request : LoginRequestBody
credential_type : SkyvernSchemasRunBlocksCredentialType
Where to get the credential from
url : typing.Optional[str]
Website url
prompt : typing.Optional[str]
Login instructions. Skyvern has default prompt/instruction for login if this field is not provided.
webhook_url : typing.Optional[str]
Webhook URL to send login status updates
proxy_location : typing.Optional[ProxyLocation]
Proxy location to use
totp_identifier : typing.Optional[str]
Identifier for TOTP (Time-based One-Time Password) if required
totp_url : typing.Optional[str]
TOTP URL to fetch one-time passwords
browser_session_id : typing.Optional[str]
ID of the browser session to use, which is prefixed by `pbs_` e.g. `pbs_123456`
extra_http_headers : typing.Optional[typing.Dict[str, typing.Optional[str]]]
Additional HTTP headers to include in requests
max_screenshot_scrolling_times : typing.Optional[int]
Maximum number of times to scroll for screenshots
credential_id : typing.Optional[str]
ID of the Skyvern credential to use for login.
bitwarden_collection_id : typing.Optional[str]
Bitwarden collection ID. You can find it in the Bitwarden collection URL. e.g. `https://vault.bitwarden.com/vaults/collection_id/items`
bitwarden_item_id : typing.Optional[str]
Bitwarden item ID
onepassword_vault_id : typing.Optional[str]
1Password vault ID
onepassword_item_id : typing.Optional[str]
1Password item ID
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -3693,7 +3828,7 @@ class AsyncSkyvern:
--------
import asyncio
from skyvern import AsyncSkyvern, LoginRequestBody_Skyvern
from skyvern import AsyncSkyvern
client = AsyncSkyvern(
api_key="YOUR_API_KEY",
@@ -3703,9 +3838,7 @@ class AsyncSkyvern:
async def main() -> None:
await client.login(
request=LoginRequestBody_Skyvern(
credential_id="credential_id",
),
credential_type="skyvern",
)
@@ -3714,9 +3847,26 @@ class AsyncSkyvern:
_response = await self._client_wrapper.httpx_client.request(
"v1/run/tasks/login",
method="POST",
json=convert_and_respect_annotation_metadata(
object_=request, annotation=LoginRequestBody, direction="write"
),
json={
"credential_type": credential_type,
"url": url,
"prompt": prompt,
"webhook_url": webhook_url,
"proxy_location": proxy_location,
"totp_identifier": totp_identifier,
"totp_url": totp_url,
"browser_session_id": browser_session_id,
"extra_http_headers": extra_http_headers,
"max_screenshot_scrolling_times": max_screenshot_scrolling_times,
"credential_id": credential_id,
"bitwarden_collection_id": bitwarden_collection_id,
"bitwarden_item_id": bitwarden_item_id,
"onepassword_vault_id": onepassword_vault_id,
"onepassword_item_id": onepassword_item_id,
},
headers={
"content-type": "application/json",
},
request_options=request_options,
omit=OMIT,
)

View File

@@ -23,7 +23,6 @@ from .bitwarden_credit_card_data_parameter import BitwardenCreditCardDataParamet
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_login_request import BitwardenLoginRequest
from .bitwarden_sensitive_information_parameter import BitwardenSensitiveInformationParameter
from .bitwarden_sensitive_information_parameter_yaml import BitwardenSensitiveInformationParameterYaml
from .browser_session_response import BrowserSessionResponse
@@ -61,7 +60,7 @@ 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 .credential_type_output import CredentialTypeOutput
from .credit_card_credential_response import CreditCardCredentialResponse
from .download_to_s3block import DownloadToS3Block
from .download_to_s3block_yaml import DownloadToS3BlockYaml
@@ -202,12 +201,6 @@ from .login_block_parameters_item import (
LoginBlockParametersItem_Workflow,
)
from .login_block_yaml import LoginBlockYaml
from .login_request_body import (
LoginRequestBody,
LoginRequestBody_1Password,
LoginRequestBody_Bitwarden,
LoginRequestBody_Skyvern,
)
from .navigation_block import NavigationBlock
from .navigation_block_data_schema import NavigationBlockDataSchema
from .navigation_block_parameters_item import (
@@ -227,7 +220,6 @@ from .non_empty_credit_card_credential import NonEmptyCreditCardCredential
from .non_empty_password_credential import NonEmptyPasswordCredential
from .one_password_credential_parameter import OnePasswordCredentialParameter
from .one_password_credential_parameter_yaml import OnePasswordCredentialParameterYaml
from .one_password_login_request import OnePasswordLoginRequest
from .output_parameter import OutputParameter
from .output_parameter_yaml import OutputParameterYaml
from .password_credential_response import PasswordCredentialResponse
@@ -238,7 +230,8 @@ from .run_engine import RunEngine
from .run_status import RunStatus
from .send_email_block import SendEmailBlock
from .send_email_block_yaml import SendEmailBlockYaml
from .skyvern_login_request import SkyvernLoginRequest
from .skyvern_forge_sdk_schemas_credentials_credential_type import SkyvernForgeSdkSchemasCredentialsCredentialType
from .skyvern_schemas_run_blocks_credential_type import SkyvernSchemasRunBlocksCredentialType
from .task_block import TaskBlock
from .task_block_data_schema import TaskBlockDataSchema
from .task_block_parameters_item import (
@@ -431,7 +424,6 @@ __all__ = [
"BitwardenCreditCardDataParameterYaml",
"BitwardenLoginCredentialParameter",
"BitwardenLoginCredentialParameterYaml",
"BitwardenLoginRequest",
"BitwardenSensitiveInformationParameter",
"BitwardenSensitiveInformationParameterYaml",
"BrowserSessionResponse",
@@ -465,7 +457,7 @@ __all__ = [
"CredentialParameterYaml",
"CredentialResponse",
"CredentialResponseCredential",
"CredentialType",
"CredentialTypeOutput",
"CreditCardCredentialResponse",
"DownloadToS3Block",
"DownloadToS3BlockYaml",
@@ -590,10 +582,6 @@ __all__ = [
"LoginBlockParametersItem_Output",
"LoginBlockParametersItem_Workflow",
"LoginBlockYaml",
"LoginRequestBody",
"LoginRequestBody_1Password",
"LoginRequestBody_Bitwarden",
"LoginRequestBody_Skyvern",
"NavigationBlock",
"NavigationBlockDataSchema",
"NavigationBlockParametersItem",
@@ -611,7 +599,6 @@ __all__ = [
"NonEmptyPasswordCredential",
"OnePasswordCredentialParameter",
"OnePasswordCredentialParameterYaml",
"OnePasswordLoginRequest",
"OutputParameter",
"OutputParameterYaml",
"PasswordCredentialResponse",
@@ -622,7 +609,8 @@ __all__ = [
"RunStatus",
"SendEmailBlock",
"SendEmailBlockYaml",
"SkyvernLoginRequest",
"SkyvernForgeSdkSchemasCredentialsCredentialType",
"SkyvernSchemasRunBlocksCredentialType",
"TaskBlock",
"TaskBlockDataSchema",
"TaskBlockParametersItem",

View File

@@ -1,77 +0,0 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
import typing
import pydantic
from .proxy_location import ProxyLocation
from ..core.pydantic_utilities import IS_PYDANTIC_V2
class BitwardenLoginRequest(UniversalBaseModel):
"""
Login with password saved in Bitwarden
"""
url: typing.Optional[str] = pydantic.Field(default=None)
"""
Website url
"""
prompt: typing.Optional[str] = pydantic.Field(default=None)
"""
Login instructions. Skyvern has default prompt/instruction for login if this field is not provided.
"""
webhook_url: typing.Optional[str] = pydantic.Field(default=None)
"""
Webhook URL to send login status updates
"""
proxy_location: typing.Optional[ProxyLocation] = pydantic.Field(default=None)
"""
Proxy location to use
"""
totp_identifier: typing.Optional[str] = pydantic.Field(default=None)
"""
Identifier for TOTP (Time-based One-Time Password) if required
"""
totp_url: typing.Optional[str] = pydantic.Field(default=None)
"""
TOTP URL to fetch one-time passwords
"""
browser_session_id: typing.Optional[str] = pydantic.Field(default=None)
"""
ID of the browser session to use, which is prefixed by `pbs_` e.g. `pbs_123456`
"""
extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = pydantic.Field(default=None)
"""
Additional HTTP headers to include in requests
"""
max_screenshot_scrolling_times: typing.Optional[int] = pydantic.Field(default=None)
"""
Maximum number of times to scroll for screenshots
"""
bitwarden_collection_id: typing.Optional[str] = pydantic.Field(default=None)
"""
Bitwarden collection ID
"""
bitwarden_item_id: typing.Optional[str] = pydantic.Field(default=None)
"""
Bitwarden item ID
"""
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

@@ -3,7 +3,7 @@
from ..core.pydantic_utilities import UniversalBaseModel
import pydantic
from .credential_response_credential import CredentialResponseCredential
from .credential_type import CredentialType
from .credential_type_output import CredentialTypeOutput
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import typing
@@ -23,7 +23,7 @@ class CredentialResponse(UniversalBaseModel):
The credential data
"""
credential_type: CredentialType = pydantic.Field()
credential_type: CredentialTypeOutput = pydantic.Field()
"""
Type of the credential
"""

View File

@@ -1,5 +0,0 @@
# This file was auto-generated by Fern from our API Definition.
import typing
CredentialType = typing.Union[typing.Literal["password", "credit_card"], typing.Any]

View File

@@ -0,0 +1,5 @@
# This file was auto-generated by Fern from our API Definition.
import typing
CredentialTypeOutput = typing.Union[typing.Literal["password", "credit_card"], typing.Any]

View File

@@ -1,82 +0,0 @@
# This file was auto-generated by Fern from our API Definition.
from __future__ import annotations
from ..core.pydantic_utilities import UniversalBaseModel
import typing
from .proxy_location import ProxyLocation
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class LoginRequestBody_Skyvern(UniversalBaseModel):
credential_type: typing.Literal["skyvern"] = "skyvern"
url: typing.Optional[str] = None
prompt: typing.Optional[str] = None
webhook_url: typing.Optional[str] = None
proxy_location: typing.Optional[ProxyLocation] = None
totp_identifier: typing.Optional[str] = None
totp_url: typing.Optional[str] = None
browser_session_id: typing.Optional[str] = None
extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_screenshot_scrolling_times: typing.Optional[int] = 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 LoginRequestBody_Bitwarden(UniversalBaseModel):
credential_type: typing.Literal["bitwarden"] = "bitwarden"
url: typing.Optional[str] = None
prompt: typing.Optional[str] = None
webhook_url: typing.Optional[str] = None
proxy_location: typing.Optional[ProxyLocation] = None
totp_identifier: typing.Optional[str] = None
totp_url: typing.Optional[str] = None
browser_session_id: typing.Optional[str] = None
extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_screenshot_scrolling_times: typing.Optional[int] = 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 LoginRequestBody_1Password(UniversalBaseModel):
credential_type: typing.Literal["1password"] = "1password"
url: typing.Optional[str] = None
prompt: typing.Optional[str] = None
webhook_url: typing.Optional[str] = None
proxy_location: typing.Optional[ProxyLocation] = None
totp_identifier: typing.Optional[str] = None
totp_url: typing.Optional[str] = None
browser_session_id: typing.Optional[str] = None
extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = None
max_screenshot_scrolling_times: typing.Optional[int] = None
onepassword_vault_id: str
onepassword_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
LoginRequestBody = typing.Union[LoginRequestBody_Skyvern, LoginRequestBody_Bitwarden, LoginRequestBody_1Password]

View File

@@ -1,77 +0,0 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
import typing
import pydantic
from .proxy_location import ProxyLocation
from ..core.pydantic_utilities import IS_PYDANTIC_V2
class OnePasswordLoginRequest(UniversalBaseModel):
"""
Login with password saved in 1Password
"""
url: typing.Optional[str] = pydantic.Field(default=None)
"""
Website url
"""
prompt: typing.Optional[str] = pydantic.Field(default=None)
"""
Login instructions. Skyvern has default prompt/instruction for login if this field is not provided.
"""
webhook_url: typing.Optional[str] = pydantic.Field(default=None)
"""
Webhook URL to send login status updates
"""
proxy_location: typing.Optional[ProxyLocation] = pydantic.Field(default=None)
"""
Proxy location to use
"""
totp_identifier: typing.Optional[str] = pydantic.Field(default=None)
"""
Identifier for TOTP (Time-based One-Time Password) if required
"""
totp_url: typing.Optional[str] = pydantic.Field(default=None)
"""
TOTP URL to fetch one-time passwords
"""
browser_session_id: typing.Optional[str] = pydantic.Field(default=None)
"""
ID of the browser session to use, which is prefixed by `pbs_` e.g. `pbs_123456`
"""
extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = pydantic.Field(default=None)
"""
Additional HTTP headers to include in requests
"""
max_screenshot_scrolling_times: typing.Optional[int] = pydantic.Field(default=None)
"""
Maximum number of times to scroll for screenshots
"""
onepassword_vault_id: str = pydantic.Field()
"""
1Password vault ID.
"""
onepassword_item_id: str = pydantic.Field()
"""
1Password item ID.
"""
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,5 @@
# This file was auto-generated by Fern from our API Definition.
import typing
SkyvernForgeSdkSchemasCredentialsCredentialType = typing.Union[typing.Literal["password", "credit_card"], typing.Any]

View File

@@ -1,72 +0,0 @@
# This file was auto-generated by Fern from our API Definition.
from ..core.pydantic_utilities import UniversalBaseModel
import typing
import pydantic
from .proxy_location import ProxyLocation
from ..core.pydantic_utilities import IS_PYDANTIC_V2
class SkyvernLoginRequest(UniversalBaseModel):
"""
Login with password saved in Skyvern
"""
url: typing.Optional[str] = pydantic.Field(default=None)
"""
Website url
"""
prompt: typing.Optional[str] = pydantic.Field(default=None)
"""
Login instructions. Skyvern has default prompt/instruction for login if this field is not provided.
"""
webhook_url: typing.Optional[str] = pydantic.Field(default=None)
"""
Webhook URL to send login status updates
"""
proxy_location: typing.Optional[ProxyLocation] = pydantic.Field(default=None)
"""
Proxy location to use
"""
totp_identifier: typing.Optional[str] = pydantic.Field(default=None)
"""
Identifier for TOTP (Time-based One-Time Password) if required
"""
totp_url: typing.Optional[str] = pydantic.Field(default=None)
"""
TOTP URL to fetch one-time passwords
"""
browser_session_id: typing.Optional[str] = pydantic.Field(default=None)
"""
ID of the browser session to use, which is prefixed by `pbs_` e.g. `pbs_123456`
"""
extra_http_headers: typing.Optional[typing.Dict[str, typing.Optional[str]]] = pydantic.Field(default=None)
"""
Additional HTTP headers to include in requests
"""
max_screenshot_scrolling_times: typing.Optional[int] = pydantic.Field(default=None)
"""
Maximum number of times to scroll for screenshots
"""
credential_id: str = pydantic.Field()
"""
ID of the Skyvern credential to use for login.
"""
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,5 @@
# This file was auto-generated by Fern from our API Definition.
import typing
SkyvernSchemasRunBlocksCredentialType = typing.Union[typing.Literal["skyvern", "bitwarden", "1password"], typing.Any]