Python API¶
botcity.maestro.sdk.BotMaestroSDK (BotMaestroSDKInterface)
¶
alert(self, task_id, title, message, alert_type)
¶
Register an alert message on the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task_id |
str |
The activity label |
required |
title |
str |
A title associated with the alert message |
required |
message |
str |
The alert message |
required |
alert_type |
AlertType |
The alert type to be used. See AlertType |
required |
Returns:
Type | Description |
---|---|
ServerMessage |
Server response message. See ServerMessage |
create_credential(self, label, key, value)
¶
Create credential
Parameters:
Name | Type | Description | Default |
---|---|---|---|
label |
str |
Credential set name |
required |
key |
str |
Key name within the credential set |
required |
value |
Credential value |
required |
create_datapool(self, pool)
¶
Create a new datapool on the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
pool |
The DataPool DataPool instance. |
required |
Returns:
Type | Description |
---|---|
DataPool |
DataPool instance. See [DataPool][ [DataPool][botcity.maestro.datapool.DataPool] instance. |
create_task(self, activity_label, parameters, test=False, priority=0, min_execution_date=None)
¶
Creates a task to be executed on the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
activity_label |
str |
The activity unique identified. |
required |
parameters |
Dict[str, object] |
Dictionary with parameters and values for this task. |
required |
test |
bool |
Whether or not the task is a test. |
False |
priority |
int |
(Optional[int], optional) An integer from 0 to 10 to refer to execution priority. |
0 |
min_execution_date |
Optional[datetime.datetime] |
Minimum execution date for the task. |
None |
Returns:
Type | Description |
---|---|
AutomationTask |
Automation Task. See AutomationTask |
delete_log(self, activity_label)
¶
Fetch log information.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
activity_label |
str |
The activity unique identifier. |
required |
Returns:
Type | Description |
---|---|
ServerMessage |
Log entry list. Each element in the list is a dictionary in which keys are Column names and values are the column value. |
error(self, task_id, exception, screenshot=None, attachments=None, tags=None)
¶
Create a new Error entry.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task_id |
int |
The task unique identifier. |
required |
exception |
Exception |
The exception object. |
required |
screenshot |
Optional[str] |
File path for a screenshot to be attached to the error. Defaults to None. |
None |
attachments |
Optional[List[str]] |
Additional files to be sent along with the error entry. Defaults to None. |
None |
tags |
Optional[Dict[str, str]] |
Dictionary with tags to be associated with the error entry. Defaults to None. |
None |
Exceptions:
Type | Description |
---|---|
ValueError |
If the request fails, a ValueError exception is raised. |
finish_task(self, task_id, status, message='')
¶
Finishes a given task.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task_id |
str |
The task unique identifier. |
required |
status |
AutomationTaskFinishStatus |
The condition in which the task must be finished. See AutomationTaskFinishStatus |
required |
message |
str |
A message to be associated with this action. |
'' |
Returns:
Type | Description |
---|---|
ServerMessage |
Server response message. See ServerMessage |
get_artifact(self, artifact_id)
¶
Retrieve an artifact from the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
artifact_id |
int |
The artifact unique identifier. |
required |
Returns:
Type | Description |
---|---|
Tuple[str, bytes] |
Tuple containing the artifact name and an array of bytes which are the binary content of the artifact. |
get_credential(self, label, key)
¶
Get value in key inside credentials
Parameters:
Name | Type | Description | Default |
---|---|---|---|
label |
str |
Credential set name |
required |
key |
str |
Key name within the credential set |
required |
Returns:
Type | Description |
---|---|
str |
Key value that was requested |
get_datapool(self, label)
¶
Get datapool on the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
label |
str |
Label DataPool. |
required |
Returns:
Type | Description |
---|---|
DataPool |
DataPool instance. See [DataPool][ [DataPool][botcity.maestro.datapool.DataPool] instance. |
get_log(self, activity_label, date='')
¶
Fetch log information.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
activity_label |
str |
The activity unique identifier. |
required |
date |
Optional[str] |
Initial date for log information in the format DD/MM/YYYY. If empty all information is retrieved. |
'' |
Returns:
Type | Description |
---|---|
List[Dict[str, object]] |
Log entry list. Each element in the list is a dictionary in which keys are Column names and values are the column value. |
get_task(self, task_id)
¶
Return details about a given task.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task_id |
str |
The task unique identifier. |
required |
Returns:
Type | Description |
---|---|
AutomationTask |
Automation Task. See AutomationTask |
interrupt_task(self, task_id)
¶
Request the interruption of a given task.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task_id |
str |
The task unique identifier. |
required |
Returns:
Type | Description |
---|---|
ServerMessage |
Server response message. See ServerMessage |
list_artifacts(self)
¶
List all artifacts available for the organization.
Returns:
Type | Description |
---|---|
List[botcity.maestro.model.Artifact] |
List of artifacts. See Artifact |
login(self, server=None, login=None, key=None)
¶
Obtain an access token with the configured BotMaestro portal.
Arguments are optional and can be used to configure or overwrite the object instantiation values.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
server |
Optional[str] |
The server IP or name |
None |
login |
Optional[str] |
The username provided via server configuration. Available under |
None |
key |
Optional[str] |
The access key provided via server configuration. Available under |
None |
message(self, email, users, subject, body, msg_type, group=None)
¶
Send an email message to the list of email and users given.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
email |
List[str] |
List of emails to receive the message. |
required |
users |
List[str] |
List of usernames registered on the BotMaestro portal to receive the message. |
required |
subject |
str |
The message subject. |
required |
body |
str |
The message body. |
required |
msg_type |
MessageType |
The message body type. See MessageType |
required |
group |
Optional[str] |
The message group information. |
None |
Returns:
Type | Description |
---|---|
ServerMessage |
Server response message. See ServerMessage |
new_log(self, activity_label, columns)
¶
Create a new log on the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
activity_label |
str |
The activity unique identifier. |
required |
columns |
List[botcity.maestro.model.Column] |
A list of Columns |
required |
Returns:
Type | Description |
---|---|
ServerMessage |
Server response message. See ServerMessage |
new_log_entry(self, activity_label, values)
¶
Creates a new log entry.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
activity_label |
str |
The activity unique identifier. |
required |
values |
Dict[str, object] |
Dictionary in which the key is the column label and value is the entry value. |
required |
Returns:
Type | Description |
---|---|
ServerMessage |
Server response message. See ServerMessage |
post_artifact(self, task_id, artifact_name, filepath)
¶
Upload a new artifact into the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task_id |
int |
The task unique identifier. |
required |
artifact_name |
str |
The name of the artifact to be displayed on the portal. |
required |
filepath |
str |
The file to be uploaded. |
required |
Returns:
Type | Description |
---|---|
ServerMessage |
Server response message. See ServerMessage |
restart_task(self, task_id)
¶
Restarts a given task.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task_id |
str |
The task unique identifier. |
required |
Returns:
Type | Description |
---|---|
ServerMessage |
Server response message. See ServerMessage |
botcity.maestro.model.AlertType (str, Enum)
¶
Type of alerts to be emitted.
Attributes:
Name | Type | Description |
---|---|---|
INFO |
str |
Information alert type |
WARN |
str |
Warning alert type |
ERROR |
str |
Error alert type |
botcity.maestro.model.MessageType (str, Enum)
¶
Type of message body.
Attributes:
Name | Type | Description |
---|---|---|
TEXT |
str |
Plain text message body |
HTML |
str |
HTML message body |
botcity.maestro.model.AutomationTaskState (str, Enum)
¶
State of a Task.
Attributes:
Name | Type | Description |
---|---|---|
START |
str |
The task was started. |
RUNNING |
str |
The task is running. |
FINISHED |
str |
The task is finished. |
CANCELED |
str |
The task was canceled. |
botcity.maestro.model.AutomationTaskFinishStatus (str, Enum)
¶
Finish status of a task.
Attributes:
Name | Type | Description |
---|---|---|
SUCCESS |
str |
The task finished successfully. |
FAILED |
str |
The task failed to finish. |
PARTIALLY_COMPLETED |
str |
The task completed part of the expected steps. |
botcity.maestro.model.ServerMessageType (str, Enum)
¶
The server message type.
Attributes:
Name | Type | Description |
---|---|---|
SUCCESS |
str |
Success message |
ERROR |
str |
Error message |
botcity.maestro.model.ServerMessage
dataclass
¶
Server response message.
Attributes:
Name | Type | Description |
---|---|---|
message |
str |
The response message sent by the BotMaestro portal. |
type |
ServerMessageType |
The message type. See ServerMessageType |
payload |
str |
from_json(payload)
staticmethod
¶
Instantiate a ServerMessage
object from a JSON payload
obtained from the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
payload |
str |
A JSON string containing message and type. |
required |
Returns:
Type | Description |
---|---|
ServerMessage |
Server response message instance. |
to_json(self)
¶
Returns:
Type | Description |
---|---|
str |
JSON string representation of this object. |
botcity.maestro.model.AutomationTask
dataclass
¶
Automation Task.
Attributes:
Name | Type | Description |
---|---|---|
id |
int |
The task unique identifier. |
state |
AutomationTaskState |
The task state. See AutomationTaskState. |
parameters |
Dict[str, object] |
Dictionary with parameters and values for this task. |
input_file |
Artifact |
The input file for this task. |
activity_id |
int |
Identifier of the automation. (Deprecated) |
activity_label |
str |
Automation label identifier. |
agent_id |
int |
Identifier of the agent which created the task. |
user_creation_id |
int |
Identifier of the user which created the task. |
user_creation_name |
str |
Name of the user which created the task. |
org_creation_id |
int |
Identifier of the organization which created the task. |
date_creation |
str |
Datetime information of when this task was created. |
date_last_modified |
str |
Datetime information of when this task was last modified. |
finish_status |
AutomationTaskFinishStatus |
The finish status of this task. See AutomationTaskFinishStatus. |
finish_message |
str |
The finish message of this task. |
test |
bool |
Whether or not this task was a test. |
interrupted |
bool |
Whether or not this task received an interrupt request. |
killed |
bool |
Whether or not this task received a termination request. |
machine_id |
str |
Identifier of the machine that performed the automation. |
from_json(payload)
staticmethod
¶
Instantiate a AutomationTask
object from a JSON payload
obtained from the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
payload |
str |
A JSON string containing the required metadata. |
required |
Returns:
Type | Description |
---|---|
AutomationTask |
Automation Task instance. |
is_interrupted(self)
¶
Whether or not this task received an interrupt request.
Returns:
Type | Description |
---|---|
bool |
Whether or not this task received an interrupt request. |
to_json(self)
¶
Returns:
Type | Description |
---|---|
str |
JSON string representation of this object. |
botcity.maestro.model.Artifact
dataclass
¶
Artifact.
Attributes:
Name | Type | Description |
---|---|---|
id |
int |
The task unique identifier. |
type |
str |
The type of artifact. |
task_id |
int |
The task unique identifier. |
name |
str |
Display name for artifact. |
filename |
str |
File name as provided during upload. |
storage_filename |
str |
Internal file name. |
storage_filepath |
str |
Internal absolute path to file. |
organization |
int |
The organization unique identifier. |
user |
Optional[int] |
The user unique identifier. |
date_creation |
str |
Datetime information of when this artifact was created. |
from_dict(data)
staticmethod
¶
Instantiate a Artifact
object from a dict payload obtained
from the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
Dict[str, Any] |
A dictionary containing the required metadata. |
required |
Returns:
Type | Description |
---|---|
Artifact |
Artifact instance. |
from_json(payload)
staticmethod
¶
Instantiate a Artifact
object from a JSON payload
obtained from the BotMaestro portal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
payload |
str |
A JSON string containing the required metadata. |
required |
Returns:
Type | Description |
---|---|
Artifact |
Artifact instance. |
to_json(self)
¶
Returns:
Type | Description |
---|---|
str |
JSON string representation of this object. |
botcity.maestro.model.Column
dataclass
¶
Representation of a Log column.
Attributes:
Name | Type | Description |
---|---|---|
name |
str |
The column display name. |
label |
str |
The column unique identifier. |
width |
int |
The suggested log column width when rendering it on the BotMaestro portal. |
botcity.maestro.model.BotExecution
dataclass
¶
Bot execution parameters.
Attributes:
Name | Type | Description |
---|---|---|
server |
str |
The BotMaestro server hostname or IP. |
task_id |
str |
The task unique identifier. |
token |
str |
The access token to be used when communicating with the BotMaestro server. |
parameters |
Dict[str, object] |
Dictionary with parameters and values for this task. |
botcity.maestro.datapool.datapool.DataPool
dataclass
¶
DataPool(label: str, default_automation: str, consumption_policy: str =
activate(self)
¶
Enables the DataPool in Maestro. Returns: None
create_entry(self, entry)
¶
Create an entry by DataPool
Parameters:
Name | Type | Description | Default |
---|---|---|---|
entry |
DataPoolEntry |
Instance of DataPoolEntry |
required |
Returns:
Type | Description |
---|---|
DataPoolEntry |
the entry that was created. |
deactivate(self)
¶
Disable DataPool in Maestro. Returns: None
from_json(payload, maestro)
staticmethod
¶
Instantiate class by payload to request maestro.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
payload |
bytes |
Response to maestro. |
required |
maestro |
BotMaestroSDKInterface |
Instance maestro class. |
required |
Returns:
Type | Description |
---|---|
DataPool |
Datapool instance. See [DataPool][ [DataPool][botcity.maestro.datapool.DataPool]. |
get_entry(self, entry_id)
¶
Fetch an entry from the DataPool by its ID.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
entry_id |
str |
The ID of the entry to fetch. |
required |
Returns:
Type | Description |
---|---|
DataPoolEntry |
The entry that was fetched. |
has_next(self)
¶
Checks if there are pending items in the DataPool.
Returns:
Type | Description |
---|---|
bool |
True if there are pending items, False otherwise. |
is_active(self)
¶
Check if the DataPool is active. Returns: bool
is_empty(self)
¶
Checks if the DataPool is empty.
Returns:
Type | Description |
---|---|
bool |
True if the DataPool is empty, False otherwise. |
next(self, task_id)
¶
Fetch the next pending entry.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task_id |
Optional[str] |
TaskId to be associated with this entry. |
required |
Returns:
Type | Description |
---|---|
DataPoolEntry or None |
The next pending entry, or None if there are no pending entries. |
summary(self)
¶
Get the DataPool counters. Returns: dict
to_dict(self)
¶
Get all properties class in dict.
Returns: dict
botcity.maestro.datapool.entry.DataPoolEntry
dataclass
¶
DataPoolEntry(priority: int = 0, values: dict =
get_value(self, key, default=None)
¶
Get value by key.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
key |
str |
Key to get value. |
required |
default |
Optional[str] |
Default value if key not exists. |
None |
Returns: str
json_to_update(self)
¶
Create Json by properties to update.
Returns: str
report_done(self)
¶
Report state DONE to DataPool Entry. Returns: None
report_error(self)
¶
Report state ERROR to DataPool Entry. Returns: None
save(self)
¶
Update Entry in DataPool.
Returns: dict
to_json(self)
¶
Get properties class in dict.
Returns: str
update_from_json(self, payload)
¶
Update properties by response endpoint Maestro.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
payload |
bytes |
Response to endpoint Maestro. |
required |
Returns: DataPoolEntry