Skip to main content

A Python TeamDynamix API wrapper

Project description

tdxapi

A Python TeamDynamix API wrapper

NOTE: tdxapi is under active development. While safe to use, parts of the API may change.

Dependencies

  • python 3.6+
  • requests
  • attrs
  • python-dateutil

Supported APIs

General

  • Accounts
  • Applications
  • Attachments
  • Attributes
  • Groups
  • Locations

Asset/Configuration Management

  • Asset Statuses
  • Assets (except bulk import)
  • Configuration Item Types
  • Configuration Items
  • Configuration Relationship Types
  • Product Models
  • Product Types
  • Vendors

Reporting

  • Reports

Roles

  • Functional Roles
  • Resource Pools
  • Security Roles

Tickets

  • Impacts
  • Priorities
  • Sources
  • Ticket Statuses
  • Ticket Tasks
  • Ticket Types
  • Tickets (except patch)
  • Urgencies

Installation

pip install tdxapi

Quickstart

Create a TdxClient object representing a connection to a TeamDynamix instance. Currently, only logging in via the administrative account is supported. You can connect to your sandbox with use_sandbox=True:

from tdxapi import TdxClient

tdx = TdxClient(
    "<Organization>",
    beid="<Organization BEID>",
    wskey="<Organization Web Services Key>"
)

Non-Application based APIs can be accessed directly from the TdxClient instance. For example, getting a list of all Accounts:

for account in tdx.accounts.all():
    print(account.name)

Application based APIs require an application object to be created by using the appropriate method and application id. For example to create an asset application:

app = tdx.asset_app(123)

Now we can perform asset related tasks, like retrieving an asset and updating its information:

kevins_pc = app.assets.get(123456)
kevins_pc.purchase_cost = 1000.00

app.assets.save(kevins_pc)

If an API supports adding new objects there will be a new() method to return a new object instance. Using new() will set the object's app_id, if applicable, and populate attributes with the applicable custom attributes based on object type:

new_asset = app.assets.new()

new_asset.name = "Kevin's Office Printer"
new_asset.serial_number = "123XYZ"
new_asset.status_id = 123               # In Use
new_asset.manufacturer_id = 456         # HP
new_asset.product_model_id = 789        # LaserJet Pro M118dw

app.assets.save(new_asset)

Alternatively, you can use keyword arguments when creating new objects:

new_asset = app.assets.new(
    name="kevins office printer",
    serial_number="123XYZ",
    status_id=123,
    manufacturer_id=456,
    product_model_id=789
)

app.assets.save(new_asset)

Custom attributes are stored in a list-like container with added functionality to make working with them easier. Updating attributes only requires the attribute id and the value:

kevins_pc = app.assets.get(123456)

kevins_pc.attributes.update(21212, datetime.now())      # date/time attribute
kevins_pc.attributes.update(31313, "PO# 1234567")       # text attribute
kevins_pc.attributes.update(41414, 11223)               # single choice attribute
kevins_pc.attributes.update(51515, [13579, 24680])      # multiple choice attribute

To search by attributes set the custom_attributes argument to a list of tuples containing attribute id and value:

# Find assets with a specific PO Number
assets = app.assets.search(attributes=[(31313, "PO# 1234567")])

That's it for now. Better documentation and more API support coming soon.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tdxapi-0.8.0.tar.gz (70.7 kB view details)

Uploaded Source

Built Distribution

tdxapi-0.8.0-py3-none-any.whl (122.4 kB view details)

Uploaded Python 3

File details

Details for the file tdxapi-0.8.0.tar.gz.

File metadata

  • Download URL: tdxapi-0.8.0.tar.gz
  • Upload date:
  • Size: 70.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.2 CPython/3.6.12 Linux/5.9.13-arch1-1

File hashes

Hashes for tdxapi-0.8.0.tar.gz
Algorithm Hash digest
SHA256 26b3191eacda76e103443ad1175bf8cf23d2fb6469ff89184cf2e0c2851012ec
MD5 d4660fffe9d017c7b541e22732a0afd2
BLAKE2b-256 8d23aa7eab22314d5a711317a3d6c0264b0e51d735e2946836d847cc4dca8912

See more details on using hashes here.

File details

Details for the file tdxapi-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: tdxapi-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 122.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.2 CPython/3.6.12 Linux/5.9.13-arch1-1

File hashes

Hashes for tdxapi-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1542d7fabdd8f79dadd959340a1beb8fd25767dfe36908eb832e28de86a45f0
MD5 8028975ceec5a172df29b1ea8d751296
BLAKE2b-256 ddbc99835fcb78fd905917029967316120c96cffe805d8393a2b16af13a24a0d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page