Skip to main content

A Python wrapper for the TeamDynamix WebApi

Project description

tdxapi

A Python wrapper for the TeamDynamix WebApi

Dependencies

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

Supported APIs

  • Accounts
  • Applications
  • Attachments
  • Attributes
  • Asset Statuses
  • Assets (except bulk import)
  • Configuration Item Types
  • Configuration Items
  • Configuration Relationship Types
  • Functional Roles
  • Product Models
  • Product Types
  • Reports
  • Resource Pools
  • Security Roles
  • Vendors

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.get_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(custom_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.2.0.tar.gz (49.1 kB view details)

Uploaded Source

Built Distribution

tdxapi-0.2.0-py3-none-any.whl (83.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tdxapi-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a2c42a09d50905079e123791c27fed64fb0226b635fddb0681e9f3639fa1a709
MD5 c23ff3862cd78654523c420bd358033c
BLAKE2b-256 047da9258c020eba8b883ba2b4f6d919ec9e89b438c73a56cb95e02724ce88e7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tdxapi-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 db9558e5a65fe34924ea8c60ac41a39976525fb6a58552d0da361f3d48e3431a
MD5 ef0aa0ce1012015bf557fe32cc4581ff
BLAKE2b-256 9b08561b2b37e8391e1f6d1e317359c06e12856bc0b5a41a89b2d0b499aa7e71

See more details on using hashes here.

Supported by

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