Previous
ML Training Client
The fleet management API allows you to manage your machine fleet with code instead of with the graphical interface of the Viam app. With it you can
Fleet management API methods are only available in the Python SDK.
The fleet management API supports the following methods:
Method Name | Description |
---|---|
GetUserIDByEmail | Get the ID of a user by email. |
CreateOrganization | Create an organization. |
ListOrganizations | List the organizations the user is an authorized user of. |
GetOrganizationsWithAccessToLocation | Get all organizations that have access to a location. |
ListOrganizationsByUser | List the organizations a user belongs to. |
GetOrganization | Retrieve the organization object for the requested organization containing the organization’s ID, name, public namespace, and more. |
GetOrganizationNamespaceAvailability | Check the availability of an organization namespace. |
UpdateOrganization | Updates organization details. |
DeleteOrganization | Delete an organization. |
ListOrganizationMembers | List the members and invites of the organization that you are currently authenticated to. |
CreateOrganizationInvite | Create an organization invite and send it by email. |
UpdateOrganizationInviteAuthorizations | Update (add or remove) the authorizations attached to an organization invite that has already been created. |
DeleteOrganizationMember | Remove a member from the organization you are currently authenticated to. |
DeleteOrganizationInvite | Delete a pending organization invite to the organization you are currently authenticated to. |
ResendOrganizationInvite | Resend a pending organization invite email. |
CreateLocation | Create and name a location under the organization you are currently authenticated to. |
GetLocation | Get a location by its location ID. |
UpdateLocation | Change the name of a parent location and/or assign it a new location. |
DeleteLocation | Delete a location. |
ListLocations | Get a list of all locations under the organization you are currently authenticated to. |
ShareLocation | Share a location with an organization. |
UnshareLocation | Stop sharing a location with an organization. |
LocationAuth | Get a location’s LocationAuth (location secret or secrets). |
CreateLocationSecret | Create a new location secret. |
DeleteLocationSecret | Delete a location secret. |
GetRobot | Get a machine by its ID. |
GetRobotAPIKeys | Gets the API keys for the machine. |
GetRobotParts | Get a list of all the parts under a specific machine. |
GetRobotPart | Get a specific machine part. |
GetRobotPartLogs | Get the logs associated with a specific machine part. |
TailRobotPartLogs | Get an asynchronous iterator that receives live machine part logs. |
GetRobotPartHistory | Get a list containing the history of a machine part. |
UpdateRobotPart | Change the name of and assign an optional new configuration to a machine part. |
NewRobotPart | Create a new machine part. |
DeleteRobotPart | Delete the specified machine part. |
MarkPartAsMain | Mark a machine part as the main part of a machine. |
MarkPartForRestart | Mark a specified machine part for restart. |
CreateRobotPartSecret | Create a machine part secret. |
DeleteRobotPartSecret | Delete a machine part secret. |
ListRobots | Get a list of all machines in a specified location. |
NewRobot | Create a new machine. |
UpdateRobot | Change the name of an existing machine. |
DeleteRobot | Delete a specified machine. |
ListFragments | Get a list of fragments in the organization you are currently authenticated to. |
ListMachineFragments | Get a list of top level and nested fragments for a machine, as well as additionally specified fragment IDs. |
GetFragment | Get a fragment by ID. |
CreateFragment | Create a new private fragment. |
UpdateFragment | Update a fragment name and its config and/or visibility. |
DeleteFragment | Delete a fragment. |
GetFragmentHistory | Get fragment history. |
AddRole | Add a role under the organization you are currently authenticated to. |
RemoveRole | Remove a role under the organization you are currently authenticated to. |
ChangeRole | Changes an existing role to a new role. |
ListAuthorizations | List all authorizations (owners and operators) of a specific resource (or resources) within the organization you are currently authenticated to. |
CheckPermissions | Check if the organization, location, or robot your ViamClient is authenticated to is permitted to perform some action or set of actions on the resource you pass to the method. |
GetRegistryItem | Get registry item by ID. |
CreateRegistryItem | Create a registry item. |
UpdateRegistryItem | Update a registry item. |
ListRegistryItems | List the registry items in an organization. |
DeleteRegistryItem | Delete a registry item. |
CreateModule | Create a module under the organization you are currently authenticated to. |
UpdateModule | Update the documentation URL, description, models, entrypoint, and/or the visibility of a module. |
UploadModuleFile | Upload a module file. |
GetModule | Get a module by its ID. |
ListModules | List the modules under the organization you are currently authenticated to. |
CreateKey | Create a new API key. |
DeleteKey | Delete an API key. |
RotateKey | Rotate an API key. |
ListKeys | List all keys for the organization that you are currently authenticated to. |
CreateKeyFromExistingKeyAuthorizations | Create a new API key with an existing key’s authorizations. |
To use the Viam fleet management API, you first need to instantiate a ViamClient
and then instantiate an AppClient
.
See the following example for reference.
You can create an API key on your settings page.
import asyncio
from viam.rpc.dial import DialOptions, Credentials
from viam.app.viam_client import ViamClient
async def connect() -> ViamClient:
dial_options = DialOptions(
credentials=Credentials(
type="api-key",
# Replace "<API-KEY>" (including brackets) with your API key
payload='<API-KEY>',
),
# Replace "<API-KEY-ID>" (including brackets) with your API key
# ID
auth_entity='<API-KEY-ID>'
)
return await ViamClient.create_from_dial_options(dial_options)
async def main():
# Make a ViamClient
viam_client = await connect()
# Instantiate an AppClient called "cloud"
# to run fleet management API methods on
cloud = viam_client.app_client
viam_client.close()
if __name__ == '__main__':
asyncio.run(main())
Once you have instantiated an AppClient
, you can run the following API methods against the AppClient
object (named fleet
in the examples).
Get the ID of a user by email.
Parameters:
email
(str) (required): The email of the user.Returns:
Example:
id = await cloud.get_user_id_by_email("youremail@email.com")
For more information, see the Python SDK Docs.
Parameters:
email
(string) (required): The email address of the user.Returns:
For more information, see the TypeScript SDK Docs.
Create an organization.
Parameters:
name
(str) (required): The name of the organization.Returns:
Example:
organization = await cloud.create_organization("name")
For more information, see the Python SDK Docs.
Parameters:
name
(string) (required): The name of the new organization.Returns:
For more information, see the TypeScript SDK Docs.
List the organizations the user is an authorized user of.
Parameters:
Returns:
Example:
org_list = await cloud.list_organizations()
For more information, see the Python SDK Docs.
Parameters:
Returns:
For more information, see the TypeScript SDK Docs.
Get all organizations that have access to a location.
Parameters:
location_id
(str) (required): The ID of the location.Returns:
Example:
org_list = await cloud.get_organizations_with_access_to_location("location-id")
For more information, see the Python SDK Docs.
Parameters:
locationId
(string) (required): The ID of the location to query.Returns:
For more information, see the TypeScript SDK Docs.
List the organizations a user belongs to.
Parameters:
user_id
(str) (required): The ID of the user. You can retrieve this with the get_user_id_by_email() method.Returns:
Example:
org_list = await cloud.list_organizations_by_user("<YOUR-USER-ID>")
For more information, see the Python SDK Docs.
Parameters:
userId
(string) (required): The ID of the user to query.Returns:
For more information, see the TypeScript SDK Docs.
Retrieve the organization object for the requested organization containing the organization’s ID, name, public namespace, and more.
Parameters:
org_id
(str) (required): The ID of the organization to query. You can retrieve this from the organization settings page.Returns:
Raises:
Example:
org = await cloud.get_organization("<YOUR-ORG-ID>")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization.Returns:
For more information, see the TypeScript SDK Docs.
Check the availability of an organization namespace.
Parameters:
public_namespace
(str) (required): Organization namespace to check. Namespaces can only contain lowercase alphanumeric and dash characters.Returns:
Raises:
Example:
available = await cloud.get_organization_namespace_availability(
public_namespace="my-cool-organization")
For more information, see the Python SDK Docs.
Parameters:
namespace
(string) (required): The namespace to query for availability.Returns:
For more information, see the TypeScript SDK Docs.
Updates organization details.
Parameters:
org_id
(str) (required): The ID of the organization to update.name
(str) (optional): If provided, updates the org’s name.public_namespace
(str) (optional): If provided, sets the org’s namespace if it hasn’t already been set.region
(str) (optional): If provided, updates the org’s region.cid
(str) (optional): If provided, update’s the org’s CRM ID.Returns:
Raises:
Example:
organization = await cloud.update_organization(
org_id="<YOUR-ORG-ID>",
name="Artoo's Org",
public_namespace="artoo"
)
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The id of the organization to update.name
(string) (optional): Optional name to update the organization with.publicNamespace
(string) (optional): Optional namespace to update the organization with.region
(string) (optional): Optional region to update the organization with.cid
(string) (optional): Optional CRM ID to update the organization with.Returns:
For more information, see the TypeScript SDK Docs.
Delete an organization.
Parameters:
org_id
(str) (required): The ID of the organization. You can obtain your organization ID from the Viam app’s organization settings page.Returns:
Example:
await cloud.delete_organization("<YOUR-ORG-ID>")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The id of the organization to delete.Returns:
For more information, see the TypeScript SDK Docs.
List the members and invites of the organization that you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the organization to list members of. You can obtain your organization ID from the Viam app’s organization settings page.Returns:
Example:
member_list, invite_list = await cloud.list_organization_members("<YOUR-ORG-ID>")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The id of the organization to query.Returns:
For more information, see the TypeScript SDK Docs.
Create an organization invite and send it by email.
Parameters:
org_id
(str) (required): The ID of the organization to create an invite for. You can obtain your organization ID from the Viam app’s organization settings page.email
(str) (required): The email address to send the invite to.authorizations
(List[viam.proto.app.Authorization]) (optional): Specifications of the authorizations to include in the invite. If not provided, full owner permissions will be granted.send_email_invite
(bool) (required): Whether or not an email should be sent to the recipient of an invite. The user must accept the email to be added to the associated authorizations. When set to false, the user automatically receives the associated authorization on the next login of the user with the associated email address.Returns:
Raises:
Example:
await cloud.create_organization_invite("<YOUR-ORG-ID>", "youremail@email.com")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The id of the organization to create the invite for.email
(string) (required): The email address of the user to generate an invite for.authorizations
(Authorization) (required): The authorizations to associate with the new invite.sendEmailInvite
(boolean) (optional): Bool of whether to send an email invite (true) or
automatically add a user. Defaults to true.Returns:
For more information, see the TypeScript SDK Docs.
Update (add or remove) the authorizations attached to an organization invite that has already been created. If an invitation has only one authorization and you want to remove it, delete the invitation instead of using this method.
Parameters:
org_id
(str) (required): The ID of the organization that the invite is for. You can obtain your organization ID from the Viam app’s organization settings page.email
(str) (required): Email of the user the invite was sent to.add_authorizations
(List[viam.proto.app.Authorization]) (optional): Optional list of authorizations to add to the invite.remove_authorizations
(List[viam.proto.app.Authorization]) (optional): Optional list of authorizations to remove from the invite.Returns:
Raises:
Example:
from viam.proto.app import Authorization
auth = Authorization(
authorization_type="role",
authorization_id="location_owner",
resource_type="location", # "robot", "location", or "organization"
resource_id="012456lni0", # machine id, location id or org id
identity_id="",
organization_id="<YOUR-ORG-ID>",
identity_type=""
)
update_invite = await cloud.update_organization_invite_authorizations(
org_id="<YOUR-ORG-ID>",
email="notarealemail@viam.com",
add_authorizations=[auth]
)
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The id of the organization.email
(string) (required): The email address associated with the invite.addAuthsList
(Authorization) (required): List of authorizations to add to the invite.removeAuthsList
(Authorization) (required): List of authorizations to remove from the invite.Returns:
For more information, see the TypeScript SDK Docs.
Remove a member from the organization you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the org to remove the user from. You can obtain your organization ID from the Viam app’s organization settings page.user_id
(str) (required): The ID of the user to remove.Returns:
Example:
member_list, invite_list = await cloud.list_organization_members(org_id="<YOUR-ORG-ID>")
first_user_id = member_list[0].user_id
await cloud.delete_organization_member(org_id="org_id", user_id=first_user_id)
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization.userId
(string) (required): The ID of the user.Returns:
For more information, see the TypeScript SDK Docs.
Delete a pending organization invite to the organization you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the organization that the invite to delete was for. You can obtain your organization ID from the Viam app’s organization settings page.email
(str) (required): The email address the pending invite was sent to.Returns:
Raises:
Example:
await cloud.delete_organization_invite("<YOUR-ORG-ID>", "youremail@email.com")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization.email
(string) (required): The email associated with the invite to delete.Returns:
For more information, see the TypeScript SDK Docs.
Resend a pending organization invite email.
Parameters:
org_id
(str) (required): The ID of the organization that the invite to resend was for. You can obtain your organization ID from the Viam app’s organization settings page.email
(str) (required): The email address associated with the invite.Returns:
Raises:
Example:
org_invite = await cloud.resend_organization_invite("<YOUR-ORG-ID>", "youremail@email.com")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization.email
(string) (required): The email associated with the invite to resend.Returns:
For more information, see the TypeScript SDK Docs.
Create and name a location under the organization you are currently authenticated to. Optionally, put the new location under a specified parent location.
Parameters:
org_id
(str) (required): The ID of the organization to create the location under. You can obtain your organization ID from the Viam app’s organization settings page.name
(str) (required): Name of the location.parent_location_id
(str) (optional): Optional parent location to put the location under. Defaults to a root-level location if no location ID is provided.Returns:
Raises:
Example:
my_new_location = await cloud.create_location(org_id="<YOUR-ORG-ID>", name="Robotville", parent_location_id="111ab12345")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to create the location
under.name
(string) (required): The name of the location to create.parentLocationId
(string) (optional): Optional name of a parent location to create the
new location under.Returns:
For more information, see the TypeScript SDK Docs.
Get a location by its location ID.
Parameters:
location_id
(str) (optional): ID of the location to get. Defaults to the location ID provided at AppClient instantiation.Returns:
Raises:
Example:
location = await cloud.get_location(location_id="123ab12345")
For more information, see the Python SDK Docs.
Parameters:
locId
(string) (required): The ID of the location to query.Returns:
For more information, see the TypeScript SDK Docs.
Change the name of a parent location and/or assign it a new location.
Parameters:
location_id
(str) (required): ID of the location to update. Must be specified.name
(str) (optional): Optional new name to be updated on the location. Defaults to the empty string “” (that is, the name doesn’t change).parent_location_id
(str) (optional): Optional ID of new parent location to move the location under. Defaults to the empty string “” (that is, no new parent location is assigned).Returns:
Raises:
Example:
# The following line takes the location with ID "abc12abcde" and moves it to be a
# sub-location of the location with ID "xyz34xxxxx"
my_updated_location = await cloud.update_location(
location_id="abc12abcde",
name="",
parent_location_id="xyz34xxxxx",
)
# The following line changes the name of the location without changing its parent location
my_updated_location = await cloud.update_location(
location_id="abc12abcde",
name="Land Before Robots"
)
# The following line moves the location back up to be a top level location without changing its name
my_updated_location = await cloud.update_location(
location_id="abc12abcde",
name="",
parent_location_id=""
)
For more information, see the Python SDK Docs.
Parameters:
locId
(string) (required): The ID of the location to update.name
(string) (optional): Optional string to update the location’s name to.parentLocId
(string) (optional): Optional string to update the location’s parent location
to.region
(string) (optional): Optional string to update the location’s region to.Returns:
For more information, see the TypeScript SDK Docs.
Delete a location.
Parameters:
location_id
(str) (required): ID of the location to delete. Must be specified.Returns:
Raises:
Example:
await cloud.delete_location(location_id="abc12abcde")
For more information, see the Python SDK Docs.
Parameters:
locId
(string) (required): The ID of the location to delete.Returns:
For more information, see the TypeScript SDK Docs.
Get a list of all locations under the organization you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the org to list locations for. You can obtain your organization ID from the Viam app’s organization settings page.Returns:
Example:
locations = await cloud.list_locations("<YOUR-ORG-ID>")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to query.Returns:
For more information, see the TypeScript SDK Docs.
Share a location with an organization.
Parameters:
organization_id
(str) (required): The ID of the organization.location_id
(str) (required): The ID of the location.Returns:
Example:
await cloud.share_location("<YOUR-ORG-ID>", "<YOUR-LOCATION-ID>")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to share with.locId
(string) (required): The ID of the location to share.Returns:
For more information, see the TypeScript SDK Docs.
Stop sharing a location with an organization.
Parameters:
organization_id
(str) (required): The ID of the organization.location_id
(str) (required): The ID of the location.Returns:
Example:
await cloud.unshare_location("<YOUR-ORG-ID>", "<YOUR-LOCATION-ID>")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to unshare with.locId
(string) (required): The ID of the location to unshare.Returns:
For more information, see the TypeScript SDK Docs.
Get a location’s LocationAuth
(location secret or secrets).
Parameters:
location_id
(str) (optional): ID of the location to retrieve LocationAuth from. Defaults to the location ID provided at AppClient instantiation.Returns:
Raises:
Example:
loc_auth = await cloud.location_auth(location_id="123xy12345")
For more information, see the Python SDK Docs.
Parameters:
locId
(string) (required): The ID of the location to retrieve LocationAuth from.Returns:
LocationAuth
for the requested location.For more information, see the TypeScript SDK Docs.
Create a new location secret.
Parameters:
location_id
(str) (optional): ID of the location to generate a new secret for. Defaults to the location ID provided at AppClient instantiation.Returns:
Raises:
Example:
new_loc_auth = await cloud.create_location_secret(location_id="123xy12345")
For more information, see the Python SDK Docs.
Parameters:
locId
(string) (required): The ID of the location to create a LocationAuth for.Returns:
LocationAuth
.For more information, see the TypeScript SDK Docs.
Delete a location secret.
Parameters:
secret_id
(str) (required): ID of the secret to delete.location_id
(str) (optional): ID of the location to delete secret from. Defaults to the location ID provided at AppClient instantiation.Returns:
Raises:
Example:
await cloud.delete_location_secret(
secret_id="abcd123-456-7890ab-cxyz98-989898xyzxyz",
location_id="123xy12345"
)
For more information, see the Python SDK Docs.
Parameters:
locId
(string) (required): The ID of the location to delete the LocationAuth from.secretId
(string) (required): The ID of the location secret to delete.Returns:
For more information, see the TypeScript SDK Docs.
Get a machine by its ID.
Parameters:
robot_id
(str) (required): ID of the machine to get. You can copy this value from the URL of the machine’s page.Returns:
Raises:
Example:
machine = await cloud.get_robot(robot_id="1a123456-x1yz-0ab0-a12xyzabc")
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the robot.Returns:
For more information, see the TypeScript SDK Docs.
Gets the API keys for the machine.
Parameters:
robot_id
(str) (required): The ID of the machine.Returns:
Example:
api_keys = await cloud.get_robot_api_keys(robot_id="robot-id")
For more information, see the Python SDK Docs.
Parameters:
robotId
(string) (required): The ID of the robot to get API keys for.Returns:
For more information, see the TypeScript SDK Docs.
Get a list of all the parts under a specific machine.
Parameters:
robot_id
(str) (required): ID of the machine to get parts from.Returns:
Raises:
Example:
list_of_parts = await cloud.get_robot_parts(
robot_id="1a123456-x1yz-0ab0-a12xyzabc"
)
For more information, see the Python SDK Docs.
Parameters:
robotId
(string) (required): The ID of the robot to query.Returns:
RobotPart
objects associated with the robot.For more information, see the TypeScript SDK Docs.
Get a specific machine part.
Parameters:
robot_part_id
(str) (required): ID of the machine part to get. You can retrieve this value by navigating to the machine’s page, clicking on the part status dropdown, and clicking the copy icon next to Part ID.dest
(str) (optional): Optional filepath to write the machine part’s config file in JSON format to.indent
(int) (required): Size (in number of spaces) of indent when writing config to dest. Defaults to 4.Returns:
Raises:
Example:
my_robot_part = await cloud.get_robot_part(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22"
)
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the requested robot part.Returns:
For more information, see the TypeScript SDK Docs.
Get the logs associated with a specific machine part.
Parameters:
robot_part_id
(str) (required): ID of the machine part to get logs from.filter
(str) (optional): Only include logs with messages that contain the string filter. Defaults to empty string “” (that is, no filter).dest
(str) (optional): Optional filepath to write the log entries to.log_levels
(List[str]) (required): List of log levels for which entries should be returned. Defaults to empty list, which returns all logs.num_log_entries
(int) (required): Number of log entries to return. Passing 0 returns all logs. Defaults to 100. All logs or the first num_log_entries logs will be returned, whichever comes first.Returns:
Raises:
Example:
part_logs = await cloud.get_robot_part_logs(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22",
num_log_entries=20
)
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the requested robot part.filter
(string) (optional): Optional string to filter logs on.levels
(string) (optional): Optional array of log levels to return. Defaults to returning
all log levels.pageToken
(string) (optional): Optional string indicating which page of logs to query.
Defaults to the most recent.Returns:
For more information, see the TypeScript SDK Docs.
Get an asynchronous iterator that receives live machine part logs.
Parameters:
robot_part_id
(str) (required): ID of the machine part to retrieve logs from.errors_only
(bool) (required): Boolean specifying whether or not to only include error logs. Defaults to True.filter
(str) (optional): Only include logs with messages that contain the string filter. Defaults to empty string “” (that is, no filter).Returns:
Example:
logs_stream = await cloud.tail_robot_part_logs(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22"
)
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the requested robot part.queue
(LogEntry) (required): A queue to put the log entries into.filter
(string) (optional): Optional string to filter logs on.errorsOnly
(boolean) (optional): Optional bool to indicate whether or not only error-level
logs should be returned. Defaults to true.Returns:
For more information, see the TypeScript SDK Docs.
Get a list containing the history of a machine part.
Parameters:
robot_part_id
(str) (required): ID of the machine part to retrieve history from.Returns:
Raises:
Example:
part_history = await cloud.get_robot_part_history(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22"
)
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the requested robot part.Returns:
For more information, see the TypeScript SDK Docs.
Change the name of and assign an optional new configuration to a machine part.
Parameters:
robot_part_id
(str) (required): ID of the robot part to update.name
(str) (required): New name to be updated on the robot part.robot_config
(Mapping[str, Any]) (optional): Optional new config represented as a dictionary to be updated on the machine part. The machine part’s config will remain as is (no change) if one isn’t passed.Returns:
Raises:
Example:
my_machine_part = await cloud.update_robot_part(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22"
)
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the requested robot part.name
(string) (required): The new name of the robot part.robotConfig
(Struct) (required): The new config for the robot part.Returns:
For more information, see the TypeScript SDK Docs.
Create a new machine part.
Parameters:
robot_id
(str) (required): ID of the machine to create a new part for. See Find machine ID for instructions on retrieving this value.part_name
(str) (required): Name of the new part.Returns:
Raises:
Example:
new_part_id = await cloud.new_robot_part(
robot_id="1a123456-x1yz-0ab0-a12xyzabc", part_name="myNewSubPart"
)
For more information, see the Python SDK Docs.
Parameters:
robotId
(string) (required): The ID of the robot to create a part for.partName
(string) (required): The name for the new robot part.Returns:
For more information, see the TypeScript SDK Docs.
Delete the specified machine part.
Parameters:
robot_part_id
(str) (required): ID of the machine part to delete. See Find part ID for instructions on retrieving this value.Returns:
Raises:
Example:
await cloud.delete_robot_part(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22"
)
For more information, see the Python SDK Docs.
Parameters:
partId
(string) (required): The ID of the part to delete.Returns:
For more information, see the TypeScript SDK Docs.
Mark a machine part as the main part of a machine.
Parameters:
robot_part_id
(str) (required): ID of the machine part to mark as main.Returns:
Raises:
Example:
await cloud.mark_part_as_main(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22")
For more information, see the Python SDK Docs.
Parameters:
partId
(string) (required): The ID of the part to mark as main.Returns:
For more information, see the TypeScript SDK Docs.
Mark a specified machine part for restart.
Parameters:
robot_part_id
(str) (required): ID of the machine part to mark for restart.Returns:
Raises:
Example:
await cloud.mark_part_for_restart(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22")
For more information, see the Python SDK Docs.
Parameters:
partId
(string) (required): The ID of the part to mark for restart.Returns:
For more information, see the TypeScript SDK Docs.
Create a machine part secret.
Parameters:
robot_part_id
(str) (required): ID of the machine part to create a secret for.Returns:
Raises:
Example:
part_with_new_secret = await cloud.create_robot_part_secret(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22")
For more information, see the Python SDK Docs.
Parameters:
partId
(string) (required): The ID of the part to create a secret for.Returns:
For more information, see the TypeScript SDK Docs.
Delete a machine part secret.
Parameters:
robot_part_id
(str) (required): ID of the machine part to delete the secret from.secret_id
(str) (required): ID of the secret to delete.Returns:
Raises:
Example:
await cloud.delete_robot_part_secret(
robot_part_id="abc12345-1a23-1234-ab12-a22a22a2aa22",
secret_id="123xyz12-abcd-4321-12ab-12xy1xyz12xy")
For more information, see the Python SDK Docs.
Parameters:
partId
(string) (required): The ID of the part to delete a secret from.secretId
(string) (required): The ID of the secret to delete.Returns:
For more information, see the TypeScript SDK Docs.
Get a list of all machines in a specified location.
Parameters:
location_id
(str) (optional): ID of the location to retrieve the machines from. Defaults to the location ID provided at AppClient instantiation.Returns:
Raises:
Example:
list_of_machines = await cloud.list_robots(location_id="123ab12345")
For more information, see the Python SDK Docs.
Parameters:
locId
(string) (required): The ID of the location to list robots for.Returns:
For more information, see the TypeScript SDK Docs.
Create a new machine.
Parameters:
name
(str) (required): Name of the new machine.location_id
(str) (optional): ID of the location under which to create the machine. Defaults to the current authorized location.Returns:
Raises:
Example:
new_machine_id = await cloud.new_robot(name="beepboop", location_id="my-location-id")
For more information, see the Python SDK Docs.
Parameters:
locId
(string) (required): The ID of the location to create the robot in.name
(string) (required): The name of the new robot.Returns:
For more information, see the TypeScript SDK Docs.
Change the name of an existing machine.
Parameters:
robot_id
(str) (required): ID of the machine to update. See Find machine ID for instructions on retrieving this value.name
(str) (required): New name to be updated on the machine.location_id
(str) (optional): ID of the location under which the machine exists. Defaults to the location ID provided at AppClient instantiation.Returns:
Raises:
Example:
updated_robot = await cloud.update_robot(
robot_id="1a123456-x1yz-0ab0-a12xyzabc",
name="Orange-Robot",
location_id="23ab12345"
)
For more information, see the Python SDK Docs.
Parameters:
robotId
(string) (required): The ID of the robot to update.locId
(string) (required): The ID of the location to move the robot to.name
(string) (required): The name to update the robot to.Returns:
For more information, see the TypeScript SDK Docs.
Delete a specified machine.
Parameters:
robot_id
(str) (required): ID of the machine to delete. See Find machine ID for instructions on retrieving this value.Returns:
Raises:
Example:
await cloud.delete_robot(robot_id="1a123456-x1yz-0ab0-a12xyzabc")
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the robot to delete.Returns:
For more information, see the TypeScript SDK Docs.
Get a list of fragments in the organization you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the organization to list fragments for. You can obtain your organization ID from the Viam app’s organization settings page.show_public
(bool) (required): Optional boolean specifying whether or not to only show public fragments. If True, only public fragments will return. If False, only private fragments will return. Defaults to True. Deprecated since version 0.25.0: Use visibilities instead.visibilities
(List[Fragment]) (optional): List of FragmentVisibilities specifying which types of fragments to include in the results. If empty, by default only public fragments will be returned.Returns:
Example:
fragments_list = await cloud.list_fragments(org_id="org-id", visibilities=[])
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to list fragments for.publicOnly
(boolean) (optional): Optional, deprecated boolean. Use fragmentVisibilities
instead. If true then only public fragments will be listed. Defaults to
true.fragmentVisibility
(FragmentVisibility) (optional)Returns:
For more information, see the TypeScript SDK Docs.
Get a list of top level and nested fragments for a machine, as well as additionally specified fragment IDs.
Parameters:
machineId
(string) (required): The machine ID used to filter fragments defined in a
machine’s parts. Also returns any fragments nested within the fragments
defined in parts.additionalFragmentIds
(string) (optional): Additional fragment IDs to append to the
response. Useful when needing to view fragments that will be
provisionally added to the machine alongside existing fragments.Returns:
For more information, see the TypeScript SDK Docs.
Get a fragment by ID.
Parameters:
fragment_id
(str) (required): ID of the fragment to get.Returns:
Raises:
Example:
# Get a fragment and print its name and when it was created.
the_fragment = await cloud.get_fragment(
fragment_id="12a12ab1-1234-5678-abcd-abcd01234567")
print("Name: ", the_fragment.name, "\nCreated on: ", the_fragment.created_on)
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the fragment to look up.Returns:
For more information, see the TypeScript SDK Docs.
Create a new private fragment.
Parameters:
org_id
(str) (required): The ID of the organization to create the fragment within. You can obtain your organization ID from the Viam app’s organization settings page.name
(str) (required): Name of the fragment.config
(Mapping[str, Any]) (optional): Optional Dictionary representation of new config to assign to specified fragment. Can be assigned by updating the fragment.Returns:
Raises:
Example:
new_fragment = await cloud.create_fragment(org_id="org-id", name="cool_smart_machine_to_configure_several_of")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to create the fragment
under.name
(string) (required): The name of the new fragment.config
(Struct) (required): The new fragment’s config.Returns:
For more information, see the TypeScript SDK Docs.
Update a fragment name and its config and/or visibility.
Parameters:
fragment_id
(str) (required): ID of the fragment to update.name
(str) (required): New name to associate with the fragment.config
(Mapping[str, Any]) (optional): Optional Dictionary representation of new config to assign to specified fragment. Not passing this parameter will leave the fragment’s config unchanged.public
(bool) (optional): Boolean specifying whether the fragment is public. Not passing this parameter will leave the fragment’s visibility unchanged. A fragment is private by default when created. Deprecated since version 0.25.0: Use visibility instead.visibility
(Fragment) (optional): Optional FragmentVisibility list specifying who should be allowed to view the fragment. Not passing this parameter will leave the fragment’s visibility unchanged. A fragment is private by default when created.Returns:
Raises:
Example:
updated_fragment = await cloud.update_fragment(
fragment_id="12a12ab1-1234-5678-abcd-abcd01234567",
name="better_name")
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the fragment to update.name
(string) (required): The name to update the fragment to.config
(Struct) (required): The config to update the fragment to.makePublic
(boolean) (optional): Optional, deprecated boolean specifying whether the
fragment should be public or not. If not passed, the visibility will be
unchanged. Fragments are private by default when created.visibility
(FragmentVisibility) (optional): Optional FragmentVisibility specifying the updated
fragment visibility. If not passed, the visibility will be unchanged. If
visibility is not set and makePublic is set, makePublic takes effect. If
makePublic and visibility are set, they must not be conflicting. If
neither is set, the fragment visibility will remain unchanged.Returns:
For more information, see the TypeScript SDK Docs.
Delete a fragment.
Parameters:
fragment_id
(str) (required): ID of the fragment to delete.Returns:
Raises:
Example:
await cloud.delete_fragment(
fragment_id="12a12ab1-1234-5678-abcd-abcd01234567")
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the fragment to delete.Returns:
For more information, see the TypeScript SDK Docs.
Get fragment history.
Parameters:
id
(str) (required): ID of the fragment to fetch history for.page_token
(str | None) (optional): the page token for the fragment history collection.page_limit
(int) (optional): the number of fragment history documents to return in the result. The default page limit is 10.Returns:
Raises:
Example:
fragment_history = await cloud.get_fragment_history(
id = "12a12ab1-1234-5678-abcd-abcd01234567",
page_token = "pg-token",
page_limit = 10
)
For more information, see the Python SDK Docs.
Add a role under the organization you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the organization to create the role in. You can obtain your organization ID from the Viam app’s organization settings page.identity_id
(str) (required): ID of the entity the role belongs to (for example, a user ID).role
(Literal[‘owner’] | Literal[‘operator’]) (required): The role to add (either "owner"
or "operator"
).resource_type
(Literal[‘organization’] | Literal[’location’] | Literal[‘robot’]) (required): The type of the resource to add the role to (either "organization"
, "location"
, or "robot"
). Must match the type of the resource_id
’s resource.resource_id
(str) (required): ID of the resource the role applies to (the ID of either an organization, location, or machine.).Returns:
Raises:
Example:
await cloud.add_role(
org_id="<YOUR-ORG-ID>",
identity_id="abc01234-0123-4567-ab12-a11a00a2aa22",
role="owner",
resource_type="location",
resource_id="111ab12345"
)
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to create the role under.entityId
(string) (required): The ID of the entity the role belongs to (for example, a user ID).role
(string) (required): The role to add (“owner” or “operator”).resourceType
(string) (required): The type of resource to create the role for (“robot”,
“location”, or “organization”).resourceId
(string) (required): The ID of the resource the role is being created for.Returns:
For more information, see the TypeScript SDK Docs.
Remove a role under the organization you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the organization the role exists in. You can obtain your organization ID from the Viam app’s organization settings page.identity_id
(str) (required): ID of the entity the role belongs to (for example, a user ID).role
(Literal[‘owner’] | Literal[‘operator’]) (required): The role to remove.resource_type
(Literal[‘organization’] | Literal[’location’] | Literal[‘robot’]) (required): Type of the resource the role is being removed from. Must match resource_id.resource_id
(str) (required): ID of the resource the role applies to (that is, either an organization, location, or robot ID).Returns:
Raises:
Example:
await cloud.remove_role(
org_id="<YOUR-ORG-ID>",
identity_id="abc01234-0123-4567-ab12-a11a00a2aa22",
role="owner",
resource_type="location",
resource_id="111ab12345"
)
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to remove the role from.entityId
(string) (required): The ID of the entity the role belongs to (for example, a user ID).role
(string) (required): The role to remove (“owner” or “operator”).resourceType
(string) (required): The type of resource to remove the role from (“robot”,
“location”, or “organization”).resourceId
(string) (required): The ID of the resource the role is being removes from.Returns:
For more information, see the TypeScript SDK Docs.
Changes an existing role to a new role.
Parameters:
organization_id
(str) (required): ID of the organization.old_identity_id
(str) (required): ID of the entity the role belongs to (for example, a user ID).old_role
(Literal[‘owner’] | Literal[‘operator’]) (required): The role to be changed.old_resource_type
(Literal[‘organization’] | Literal[’location’] | Literal[‘robot’]) (required): Type of the resource the role is added to. Must match old_resource_id.old_resource_id
(str) (required): ID of the resource the role applies to (that is, either an organization, location, or robot ID).new_identity_id
(str) (required): New ID of the entity the role belongs to (for example, a user ID).new_role
(Literal[‘owner’] | Literal[‘operator’]) (required): The new role.new_resource_type
(Literal[‘organization’] | Literal[’location’] | Literal[‘robot’]) (required): Type of the resource to add role to. Must match new_resource_id.new_resource_id
(str) (required): New ID of the resource the role applies to (that is, either an organization, location, or robot ID).Returns:
Example:
await cloud.change_role(
organization_id="<YOUR-ORG-ID>",
old_identity_id="abc01234-0123-4567-ab12-a11a00a2aa22",
old_role="operator",
old_resource_type="location",
old_resource_id="111ab12345",
new_identity_id="abc01234-0123-4567-ab12-a11a00a2aa22",
new_role="owner",
new_resource_type="organization",
new_resource_id="abc12345"
)
For more information, see the Python SDK Docs.
Parameters:
oldAuthorization
(Authorization) (required)newAuthorization
(Authorization) (required)Returns:
For more information, see the TypeScript SDK Docs.
List all authorizations (owners and operators) of a specific resource (or resources) within the organization you are currently authenticated to. If no resource IDs are provided, all resource authorizations within the organizations are returned.
Parameters:
org_id
(str) (required): The ID of the organization to list authorizations for.resource_ids
(List[str]) (optional): IDs of the resources to retrieve authorizations from. If None, defaults to all resources.Returns:
Raises:
Example:
list_of_auths = await cloud.list_authorizations(
org_id="<YOUR-ORG-ID>",
resource_ids=["1a123456-x1yz-0ab0-a12xyzabc"])
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to list authorizations for.resourceIds
(string) (optional): Optional list of IDs of resources to list authorizations
for. If not provided, all resources will be included.Returns:
For more information, see the TypeScript SDK Docs.
Check if the organization, location, or robot your ViamClient
is authenticated to is permitted to perform some action or set of actions on the resource you pass to the method.
Parameters:
permissions
(List[viam.proto.app.AuthorizedPermissions]) (required): the permissions to validate (for example, “read_organization”, “control_robot”).Returns:
Raises:
Example:
from viam.proto.app import AuthorizedPermissions
# Check whether the entity you're currently authenticated to has permission to control and/or
# read logs from robots in the "organization-identifier123" org
permissions = [AuthorizedPermissions(resource_type="organization",
resource_id="<YOUR-ORG-ID>",
permissions=["control_robot",
"read_robot_logs"])]
filtered_permissions = await cloud.check_permissions(permissions)
Valid arguments for permissions are as follows:
For more information about managing permissions, see Role-Based Access Control.
For more information, see the Python SDK Docs.
Parameters:
permissions
(AuthorizedPermissions) (required): A list of permissions to check.Returns:
For more information, see the TypeScript SDK Docs.
Get registry item by ID.
Parameters:
item_id
(str) (required): The ID of the registry item. This is the namespace and name of the item in the form namespace:name. For example, Viam’s csi-cam-pi module’s item ID would be viam:csi-cam-pi. You can also use org-id:name. For example, abc01234-0123-4567-ab12-a11a00a2aa22:training-script.Returns:
Example:
item = await cloud.get_registry_item("item-id")
For more information, see the Python SDK Docs.
Parameters:
itemId
(string) (required): The ID of the item to get.Returns:
For more information, see the TypeScript SDK Docs.
Create a registry item.
Parameters:
organization_id
(str) (required): The organization to create the registry item under.name
(str) (required): The name of the registry item, which must be unique within your org.type
(viam.proto.app.packages.PackageType.ValueType) (required): The type of the item in the registry.Returns:
Example:
from viam.proto.app.packages import PackageType
await cloud.create_registry_item("<YOUR-ORG-ID>", "name", PackageType.PACKAGE_TYPE_ML_MODEL)
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to create the registry
item under.name
(string) (required): The name of the registry item.type
(PackageType) (required): The type of the item in the registry.Returns:
For more information, see the TypeScript SDK Docs.
Update a registry item.
Parameters:
item_id
(str) (required): The ID of the registry item, containing either the namespace and module name (for example, my-org:my-module) or organization ID and module name (org-id:my-module).type
(viam.proto.app.packages.PackageType.ValueType) (required): The type of the item in the registry.description
(str) (required): The description of the registry item.visibility
(viam.proto.app.Visibility.ValueType) (required): The visibility of the registry item.Returns:
Example:
from viam.proto.app.packages import PackageType
from viam.proto.app import Visibility
await cloud.update_registry_item(
"your-namespace:your-name",
PackageType.PACKAGE_TYPE_ML_TRAINING,
"description",
Visibility.VISIBILITY_PUBLIC
)
For more information, see the Python SDK Docs.
Parameters:
itemId
(string) (required): The ID of the registry item to update.type
(PackageType) (required): The PackageType to update the item to.description
(string) (required): A description of the item.visibility
(Visibility) (required): A visibility value to update to.Returns:
For more information, see the TypeScript SDK Docs.
List the registry items in an organization.
Parameters:
organization_id
(str) (required): The ID of the organization to return registry items for.types
(List[viam.proto.app.packages.PackageType.ValueType]) (required): The types of registry items.visibilities
(List[viam.proto.app.Visibility.ValueType]) (required): The visibilities of registry items.platforms
(List[str]) (required): The platforms of registry items.statuses
(List[viam.proto.app.RegistryItemStatus.ValueType]) (required): The types of the items in the registry.search_term
(str) (optional): The search term of the registry items.page_token
(str) (optional): The page token of the registry items.Returns:
Example:
from viam.proto.app.packages import PackageType
from viam.proto.app import Visibility, RegistryItemStatus
# List private, published ml training scripts in your organization
registry_items = await cloud.list_registry_items(
organization_id="<YOUR-ORG-ID>",
types=[PackageType.PACKAGE_TYPE_ML_TRAINING],
visibilities=[Visibility.VISIBILITY_PRIVATE],
platforms=[""],
statuses=[RegistryItemStatus.REGISTRY_ITEM_STATUS_PUBLISHED]
)
# List public, published linux modules in all organizations
registry_items = await cloud.list_registry_items(
organization_id="",
types=[PackageType.PACKAGE_TYPE_MODULE],
visibilities=[Visibility.VISIBILITY_PUBLIC],
platforms=["linux/any"],
statuses=[RegistryItemStatus.REGISTRY_ITEM_STATUS_PUBLISHED]
)
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to query registry items
for.types
(PackageType) (required): A list of types to query. If empty, will not filter on type.visibilities
(Visibility) (required): A list of visibilities to query for. If empty, will not
filter on visibility.platforms
(string) (required): A list of platforms to query for. If empty, will not
filter on platform.statuses
(RegistryItemStatus) (required): A list of statuses to query for. If empty, will not filter
on status.searchTerm
(string) (optional): Optional search term to filter on.pageToken
(string) (optional): Optional page token for results. If not provided, will
return all results.Returns:
For more information, see the TypeScript SDK Docs.
Delete a registry item.
Parameters:
item_id
(str) (required): The ID of the deleted registry item, containing either the namespace and module name (for example, my-org:my-module) or organization ID and module name (org-id:my-module).Returns:
Example:
await cloud.delete_registry_item("your-namespace:your-name")
For more information, see the Python SDK Docs.
Parameters:
itemId
(string) (required): The ID of the item to delete.Returns:
For more information, see the TypeScript SDK Docs.
Create a module under the organization you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the organization to create the module under. You can obtain your organization ID from the Viam app’s organization settings page.name
(str) (required): The name of the module. Must be unique within your organization.Returns:
Raises:
Example:
new_module = await cloud.create_module(org_id="org-id", name="cool_new_hoverboard_module")
print("Module ID:", new_module[0])
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to create the module under.name
(string) (required): The name of the module.Returns:
For more information, see the TypeScript SDK Docs.
Update the documentation URL, description, models, entrypoint, and/or the visibility of a module.
Parameters:
module_id
(str) (required): ID of the module being updated, containing either the namespace and module name (for example, my-org:my-module) or organization ID and module name (org-id:my-module).url
(str) (required): The url to reference for documentation and code (NOT the url of the module itself).description
(str) (required): A short description of the module that explains its purpose.models
(List[viam.proto.app.Model]) (optional): list of models that are available in the module.entrypoint
(str) (required): The executable to run to start the module program.public
(bool) (required): The visibility that should be set for the module. Defaults to False (private).Returns:
Raises:
Example:
from viam.proto.app import Model
model = Model(
api="rdk:component:base",
model="my-group:cool_new_hoverboard_module:wheeled"
)
url_of_my_module = await cloud.update_module(
module_id="my-group:cool_new_hoverboard_module",
url="https://docsformymodule.viam.com",
models=[model],
description="A base to support hoverboards.",
entrypoint="exec"
)
For more information, see the Python SDK Docs.
Parameters:
moduleId
(string) (required): The ID of the module to update.visibility
(Visibility) (required): The visibility to set for the module.url
(string) (required): The url to reference for documentation, code, etc.description
(string) (required): A short description of the module.models
(Model) (required): A list of models available in the module.entrypoint
(string) (required): The executable to run to start the module program.Returns:
For more information, see the TypeScript SDK Docs.
Upload a module file.
Parameters:
module_file_info
(viam.proto.app.ModuleFileInfo) (optional): Relevant metadata.file
(bytes) (required): Bytes of file to upload.Returns:
Example:
from viam.proto.app import ModuleFileInfo
module_file_info = ModuleFileInfo(
module_id = "sierra:cool_new_hoverboard_module",
version = "1.0.0",
platform = "darwin/arm64"
)
file_id = await cloud.upload_module_file(
module_file_info=module_file_info,
file=b"<file>"
)
For more information, see the Python SDK Docs.
Get a module by its ID.
Parameters:
module_id
(str) (required): ID of the module being retrieved, containing either the namespace and module name (for example, my-org:my-module) or organization ID and module name (org-id:my-module).Returns:
Raises:
Example:
the_module = await cloud.get_module(module_id="my-group:my-cool-modular-base")
For more information, see the Python SDK Docs.
Parameters:
moduleId
(string) (required): The ID of the module.Returns:
For more information, see the TypeScript SDK Docs.
List the modules under the organization you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the organization to list modules for. You can obtain your organization ID from the Viam app’s organization settings page.Returns:
Example:
modules_list = await cloud.list_modules("<YOUR-ORG-ID>")
For more information, see the Python SDK Docs.
Parameters:
organizationId
(string) (required): The ID of the organization to query.Returns:
For more information, see the TypeScript SDK Docs.
Create a new API key.
Parameters:
org_id
(str) (required): The ID of the organization to create the key for. You can obtain your organization ID from the Viam app’s organization settings page.authorizations
(List[APIKeyAuthorization]) (required): A list of authorizations to associate with the key.name
(str) (optional): A name for the key. If None, defaults to the current timestamp.Returns:
Raises:
Example:
from viam.app.app_client import APIKeyAuthorization
auth = APIKeyAuthorization(
role="owner",
resource_type="robot",
resource_id="your-machine-id123"
)
api_key, api_key_id = cloud.create_key(
org_id="<YOUR-ORG-ID>",
authorizations=[auth],
name="my_key"
)
For more information, see the Python SDK Docs.
Parameters:
authorizations
(Authorization) (required): The list of authorizations to provide for the API key.name
(string) (optional): An optional name for the key. If none is passed, defaults to
present timestamp.Returns:
For more information, see the TypeScript SDK Docs.
Delete an API key.
Parameters:
id
(str) (required): The ID of the API key.Returns:
Example:
await cloud.delete_key("key-id")
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the key to delete.Returns:
For more information, see the TypeScript SDK Docs.
Rotate an API key.
Parameters:
id
(str) (required): The ID of the key to be rotated.Returns:
Example:
id, key = await cloud.rotate_key("key-id")
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the key to rotate.Returns:
For more information, see the TypeScript SDK Docs.
List all keys for the organization that you are currently authenticated to.
Parameters:
org_id
(str) (required): The ID of the organization to list API keys for. You can obtain your organization ID from the Viam app’s organization settings page.Returns:
Example:
keys = await cloud.list_keys(org_id="<YOUR-ORG-ID>")
For more information, see the Python SDK Docs.
Parameters:
orgId
(string) (required): The ID of the organization to query.Returns:
For more information, see the TypeScript SDK Docs.
Create a new API key with an existing key’s authorizations.
Parameters:
id
(str) (required): the ID of the API key to duplication authorizations from.Returns:
Example:
api_key, api_key_id = await cloud.create_key_from_existing_key_authorizations(
id="INSERT YOUR API KEY ID")
For more information, see the Python SDK Docs.
Parameters:
id
(string) (required): The ID of the key to duplicate.Returns:
For more information, see the TypeScript SDK Docs.
To copy the ID of your machine part, select the part status dropdown to the right of your machine’s location and name on the top of its page and click the copy icon next to Part ID:
To copy the ID of your machine, click the … (Actions) button in the upper-right corner of your machine’s page, then click Copy machine ID:
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!