Skip to main content

Comprehensive Python SDK for ITGlue API with AI agent capabilities

Project description

ITGlue Python SDK

A comprehensive Python SDK for the ITGlue API with AI agent capabilities.

Overview

The ITGlue Python SDK provides a complete interface to the ITGlue API, enabling developers to:

  • Manage organizations, configurations, passwords, and flexible assets
  • Perform bulk operations with built-in error handling
  • Implement real-time integrations with automatic rate limiting
  • Cache responses for improved performance
  • Build AI agents that can interact with ITGlue data

Features

  • Complete API Coverage: All ITGlue API endpoints supported
  • Built-in Pagination: Automatic handling of paginated responses
  • Rate Limiting: Intelligent throttling to respect API limits
  • Caching: Redis and memory-based caching for performance
  • Data Validation: Pydantic models for type safety
  • Bulk Operations: Efficient batch processing with progress tracking
  • Multi-Region Support: US, EU, and AU data centers
  • AI Agent Ready: High-level semantic operations for AI integration

Installation

# Install from PyPI (when available)
pip install py-itglue

# Install from source
git clone https://github.com/your-org/py-itglue.git
cd py-itglue
pip install -e .

Quick Start

import os
from itglue import ITGlueClient

# Set your API key
os.environ['ITGLUE_API_KEY'] = 'your-api-key-here'

# Create client
client = ITGlueClient.from_environment()

# List organizations
orgs = client.organizations.list()
print(f"Found {len(orgs)} organizations")

# Get specific organization
org = client.organizations.get(org_id=123)
print(f"Organization: {org.name}")

# Create a new configuration
config_data = {
    "name": "Web Server",
    "organization_id": 123,
    "configuration_type_id": 1,
    "configuration_status_id": 1
}
new_config = client.configurations.create(config_data)

# Work with flexible assets
flexible_assets = client.flexible_assets.list(per_page=10)
print(f"Found {len(flexible_assets)} flexible assets")

# Get flexible asset types
asset_types = client.flexible_asset_types.get_enabled_types()
for asset_type in asset_types:
    print(f"Type: {asset_type.name}")

# Create a flexible asset
asset = client.flexible_assets.create_flexible_asset(
    name="Production Database",
    flexible_asset_type_name="Databases",
    organization_id=123,
    traits={
        "server_name": "db-prod-01",
        "database_engine": "PostgreSQL",
        "version": "14.2"
    },
    tag_list=["production", "critical"]
)

Configuration

Environment Variables

  • ITGLUE_API_KEY: Your ITGlue API key (required)
  • ITGLUE_REGION: API region (US, EU, AU) - default: US
  • ITGLUE_BASE_URL: Custom base URL (overrides region)
  • ITGLUE_TIMEOUT: Request timeout in seconds - default: 30
  • ITGLUE_MAX_RETRIES: Maximum retry attempts - default: 3
  • ITGLUE_ENABLE_CACHING: Enable response caching - default: true
  • ITGLUE_CACHE_TTL: Cache TTL in seconds - default: 300
  • ITGLUE_LOG_LEVEL: Logging level - default: INFO

Programmatic Configuration

from itglue import ITGlueClient
from itglue.config import ITGlueConfig

config = ITGlueConfig(
    api_key="your-api-key",
    base_url="https://api.itglue.com",
    timeout=60,
    enable_caching=True,
    cache_ttl=600
)

client = ITGlueClient(config)

API Resources

Organizations

  • List, get, create, update, delete organizations
  • Bulk operations support

Configurations

  • Manage IT infrastructure configurations
  • Support for all configuration types and statuses

Passwords

  • Secure password management
  • Category-based organization

Flexible Assets

  • Custom data structures beyond standard ITGlue resources
  • Dynamic traits and field management
  • Tag-based organization and search
  • Status lifecycle management
  • Flexible asset type definitions with custom fields

Contacts

  • People and contact management
  • Integration with organizations

And More...

  • Locations, Documents, Attachments
  • Users, Groups, Logs
  • Manufacturers, Models, Platforms
  • Complete API coverage

Advanced Features

Bulk Operations

# Bulk create configurations
configs_data = [
    {"name": "Server 1", "organization_id": 123},
    {"name": "Server 2", "organization_id": 123},
    {"name": "Server 3", "organization_id": 123},
]

results = client.configurations.bulk_create(configs_data)
print(f"Created {results.successful_count} configurations")

Caching

# Enable Redis caching
config = ITGlueConfig(
    api_key="your-key",
    cache_type="redis",
    redis_url="redis://localhost:6379/0"
)

client = ITGlueClient(config)

AI Agent Integration

# High-level semantic operations
agent = client.get_ai_agent()

# Natural language queries
results = agent.find("all web servers in production")
summary = agent.summarize_infrastructure(org_id=123)
recommendations = agent.suggest_improvements(org_id=123)

Development

Setup Development Environment

# Clone repository
git clone https://github.com/your-org/py-itglue.git
cd py-itglue

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -e ".[dev]"

# Install pre-commit hooks
pre-commit install

Running Tests

# Run all tests
pytest

# Run with coverage
pytest --cov=itglue --cov-report=html

# Run specific test file
pytest tests/test_config.py

# Run basic functionality test
python tests/test_config.py

Code Quality

# Format code
black itglue tests

# Lint code
flake8 itglue tests

# Type checking
mypy itglue

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Run the test suite
  6. Submit a pull request

License

MIT License - see LICENSE file for details.

Support

Version History

See CHANGELOG.md for detailed version history.


Note: This SDK is not officially affiliated with ITGlue. It is a community-driven project to provide Python developers with a comprehensive interface to the ITGlue API.

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

py_itglue-0.2.6.tar.gz (86.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_itglue-0.2.6-py3-none-any.whl (58.2 kB view details)

Uploaded Python 3

File details

Details for the file py_itglue-0.2.6.tar.gz.

File metadata

  • Download URL: py_itglue-0.2.6.tar.gz
  • Upload date:
  • Size: 86.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for py_itglue-0.2.6.tar.gz
Algorithm Hash digest
SHA256 00159dba8f057570e82e95c2c4a77fb79563609c125ca7f4d91c2db82ae5b7c1
MD5 c5b560cdb9d418112a35f3bcded5eb40
BLAKE2b-256 bf15dbb07c226a1fb0c87f60a23f5256b10030fca42386010ad4b82bd7f95a06

See more details on using hashes here.

File details

Details for the file py_itglue-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: py_itglue-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 58.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for py_itglue-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 eb08c9eb13fb82da439c6a2e7dfa65c5f7b24b2e96aefa9df5b65c739febfa67
MD5 26f8921383b97cf0550dd11d008a2c60
BLAKE2b-256 00068f47dfaf4c2a18a41a172701dcda80cbe76a66b8e674229492b617dd3d3f

See more details on using hashes here.

Supported by

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