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:USITGLUE_BASE_URL: Custom base URL (overrides region)ITGLUE_TIMEOUT: Request timeout in seconds - default:30ITGLUE_MAX_RETRIES: Maximum retry attempts - default:3ITGLUE_ENABLE_CACHING: Enable response caching - default:trueITGLUE_CACHE_TTL: Cache TTL in seconds - default:300ITGLUE_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
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Run the test suite
- Submit a pull request
License
MIT License - see LICENSE file for details.
Support
- Documentation: https://py-itglue.readthedocs.io/
- Issues: https://github.com/your-org/py-itglue/issues
- ITGlue API Documentation: https://api.itglue.com/developer/
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.
Metadata
Release files for py-itglue 0.2.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| py_itglue-0.2.6.tar.gz | 86.6 kB | Without provenance | Details for py_itglue-0.2.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| py_itglue-0.2.6-py3-none-any.whl | Python 3 | none | any | Details for py_itglue-0.2.6-py3-none-any.whl |
Total release size: 144.8 kB
Release files / py_itglue-0.2.6.tar.gz
| Download URL | py_itglue-0.2.6.tar.gz |
|---|---|
| Size | 86.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
00159dba8f057570e82e95c2c4a77fb79563609c125ca7f4d91c2db82ae5b7c1
|
|
BLAKE2b-256 checksum How to use checksums |
bf15dbb07c226a1fb0c87f60a23f5256b10030fca42386010ad4b82bd7f95a06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / py_itglue-0.2.6-py3-none-any.whl
| Download URL | py_itglue-0.2.6-py3-none-any.whl |
|---|---|
| Size | 58.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eb08c9eb13fb82da439c6a2e7dfa65c5f7b24b2e96aefa9df5b65c739febfa67
|
|
BLAKE2b-256 checksum How to use checksums |
00068f47dfaf4c2a18a41a172701dcda80cbe76a66b8e674229492b617dd3d3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Security for py-itglue 0.2.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.