UiPath Cloud client Python package that uses the requests library.
Important
This packages uses pydantic~=1.0!
From a script:
import uipathlib
url_base = "https://cloud.uipath.com/my_company/Production/orchestrator_/"
client_id = "ABX"
refresh_token = "ABD"
scope = "OR.Folders.Read OR.Jobs OR.Queues OR.Execution.Read OR.Robots.Read OR.Settings.Read"
fid = "1138055" # Folder ID (Organization ID)
uipath = uipathlib.UiPath(
url_base=url_base,
client_id=client_id,
refresh_token=refresh_token,
scope=scope
)# ASSETS
response = uipath.list_assets(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)# BUCKETS
response = uipath.list_buckets(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)response = uipath.create_bucket(
fid=fid,
name="Test 1",
guid="f7ea20e9-971b-4c23-9979-321178a68c46",
description="Test description 1"
)
if response.status_code == 201:
print("Bucket created successfully")bid = "69248" # bucked id example
response = uipath.delete_bucket(fid=fid, id=bid)
if response.status_code == 204:
print("Bucket deleted successfully")# UPLOAD
bid = "69243" # bucked id example
response = uipath.upload_bucket_file(
fid=fid,
id=bid,
localpath=r"C:\Users\admin\Desktop\my_bucket_demo.txt",
remotepath=r"my_bucket_demo.txt"
)
if response.status_code in [200, 201]:
print("File uploaded successfully")# DELETE
bid = "69243" # bucked id example
response = uipath.delete_bucket_file(
fid=fid,
id=bid,
filename=r"my_bucket_demo.txt"
)
if response.status_code == 204:
print("File deleted successfully")# CALENDARS
response = uipath.list_calendars(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)# ENVIRONMENTS (UNDER DEVELOPMENT)
response = uipath.list_environments(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)# JOBS
# Filter examples:
# - "State eq 'Running'"
# - "State eq 'Successful' and ReleaseName eq 'ReleaseNameOrProcessName'"
# - "ReleaseName eq 'ReleaseNameOrProcessName'"
response = uipath.list_jobs(
fid=fid,
filter="State eq 'Running'"
)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)process_key = "ead3e825-7817-426d-8b1d-3991e6eb2809" # example process key
robot_id = None # None for default robot, or specify robot ID
response = uipath.start_job(
fid=fid,
process_key=process_key,
robot_id=robot_id
)
if response.status_code == 201:
print(response.content)# MACHINES
response = uipath.list_machines(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
print(df)# PROCESSES
response = uipath.list_processes(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)# QUEUES
response = uipath.list_queues(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)response = uipath.list_queue_items(
fid=fid,
filter="QueueDefinitionId eq 317460"
)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)queue_item_id = 1125058579 # example queue item id
response = uipath.get_queue_item(
fid=fid,
id=queue_item_id
)
if response.status_code == 200:
df = pd.DataFrame([response.content])
display(df) # print(df)queue_name = "RPA_1201_..." # queue name example
response = uipath.add_queue_item(
fid=fid,
queue=queue_name,
data={"EmployeeId": "12345",
"RowId": "566829607423876",
"State": "Approved",
"RequestId": "LR00001",
"Language": "English"},
reference="12345",
priority="Normal"
)
if response.status_code == 201:
print(response.content)queue_name = "RPA_1201_..." # queue name example
queue_item_id = 913233204 # example queue item id
response = uipath.update_queue_item(
fid=fid,
queue=queue_name,
id=queue_item_id,
data={"EmployeeId": "54321",
"RowId": "566829607423876",
"State": "Approved",
"RequestId": "LR20001",
"Language": "English"}
)
if response.status_code == 200:
print("Queue item updated successfully")queue_item_id = 913233204 # example queue item id
response = uipath.delete_queue_item(
fid=fid,
id=queue_item_id
)
if response.status_code == 204:
print("Queue item deleted successfully")# RELEASES
response = uipath.list_releases(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)# ROBOTS
response = uipath.list_robots(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)response = uipath.list_robot_logs(
fid=fid,
filter="JobKey eq a111d111-b111-1f11-b11d-111adac1111d"
)
if response.status_code == 200:
df = pd.DataFrame(response.content)
print(df)# ROLES
response = uipath.list_roles()
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)# SCHEDULES
response = uipath.list_schedules(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)# SESSIONS
response = uipath.list_sessions(fid=fid)
if response.status_code == 200:
df = pd.DataFrame(response.content)
display(df) # print(df)# CLOSE
del(uipath)Install python and pip if you have not already.
Then run:
pip install pip --upgradeFor production:
pip install uipathlibThis will install the package and all of it's python dependencies.
If you want to install the project for development:
git clone https://github.com/aghuttun/uipathlib.git
cd uipathlib
pip install -e ".[dev]"The script's docstrings follow the numpydoc style.
BSD License (see license file)