Skip to main content

Python client library for AWS DevOps Agent API using boto3

Project description

Community DevOps Agent API - boto3 Service Integration

Python Version License PyPI version

A Python client library that provides native boto3 integration for the AWS DevOps Agent API. This library registers community-devops-agent as a custom boto3 service, enabling familiar AWS SDK patterns for DevOps Agent operations.

๐Ÿš€ Quick Start

Basic Usage

import devopsagent_api  # Registers the service
import boto3

# Create a client using standard boto3 patterns
client = boto3.client('community-devops-agent', region_name='us-east-1')

# List tasks with filtering
response = client.list_tasks(
    agentSpaceId='your-agent-space-uuid',
    filter={'status': ['IN_PROGRESS', 'PENDING_START']}
)

for task in response['tasks']:
    print(f"Task: {task['title']} - Status: {task['status']}")

Using Configuration Module (Recommended)

import devopsagent_api  # Registers the service
from examples.config import get_config

# Get configuration with environment variable support
config = get_config()

# Create configured client
client = config.get_client()

# List tasks using configured settings
response = client.list_tasks(
    agentSpaceId=config.agent_space_id,
    filter={'status': ['IN_PROGRESS', 'PENDING_START']}
)

for task in response['tasks']:
    print(f"Task: {task['title']} - Status: {task['status']}")

๐Ÿ“ฆ Installation

From PyPI (Recommended)

pip install devopsagent-api

From Source

git clone https://github.com/stefansaftic/community-devops-agent.git
cd devopsagent-api
pip install -e .

Development Installation

pip install -e ".[dev]"

๐Ÿ”ง Requirements

  • Python 3.8+
  • AWS credentials configured (via AWS CLI, environment variables, or IAM roles)
  • Access to AWS DevOps Agent service

โš™๏ธ Configuration

Environment Variables

The library supports configuration through environment variables for flexible deployment:

Variable Description Default Required
AGENT_SPACE_ID Your DevOps Agent space UUID None Yes (for API calls)
AWS_REGION AWS region for API calls us-east-1 No
AWS_PROFILE AWS CLI profile to use Default profile No
USER_ID User ID for chat messages UUID 4be32b4a-9675-4dc0-97ff-7126ad28457c No
POLL_INTERVAL Polling interval in seconds 2 No
DEFAULT_LIMIT Default pagination limit 10 No
TIMEOUT_SECONDS Default timeout in seconds 60 No
MAX_CHECKS Maximum number of status checks 10 No

AWS Credentials Setup

Option 1: AWS CLI (Recommended)

aws configure
# Enter your AWS Access Key ID, Secret Access Key, and default region

Option 2: Environment Variables

export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
export AWS_REGION=us-east-1

Option 3: AWS Credentials File

# ~/.aws/credentials
[default]
aws_access_key_id = your-access-key
aws_secret_access_key = your-secret-key

# ~/.aws/config
[default]
region = us-east-1

Configuration Module

All examples use a centralized configuration module (examples/config.py) that provides:

  • Dynamic service discovery: Automatically detects available waiters, paginators, and operations
  • Environment variable support: All configuration values can be overridden via environment variables
  • Validation: Checks for required settings and service registration
  • Consistent defaults: Sensible defaults for all configuration options

Usage:

from examples.config import get_config

config = get_config()
config.print_configuration()  # Shows current settings

client = config.get_client()  # Creates configured boto3 client

๐Ÿ“š Documentation

๐ŸŽฏ Features

Native boto3 Integration

  • Standard boto3 client creation: boto3.client('community-devops-agent')
  • Automatic pagination with client.get_paginator()
  • Waiters for long-running operations: client.get_waiter()
  • Built-in retry logic and error handling

Complete API Coverage

  • Task Management: Create, list, get, and update tasks
  • Goal Management: Automated workflow management
  • Recommendation Engine: AI-generated improvement suggestions
  • Journal API: Execution history and investigation records
  • Topology API: GraphQL infrastructure discovery
  • Support Integration: AWS Support case management

Type Safety & Validation

  • Full Pydantic model validation
  • Type hints throughout the codebase
  • IDE autocomplete support
  • Runtime data validation

๐Ÿ› ๏ธ Development

Setup Development Environment

# Clone the repository
git clone https://github.com/stefansaftic/community-devops-agent.git
cd devopsagent-api

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

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

# Run tests
pytest

# Run linting
black devopsagent_api/
flake8 devopsagent_api/
mypy devopsagent_api/

Project Structure

community-devops-agent/
โ”œโ”€โ”€ devopsagent_api/              # Main library package
โ”‚   โ”œโ”€โ”€ __init__.py               # Service registration & exports
โ”‚   โ”œโ”€โ”€ auth.py                   # Custom credential provider
โ”‚   โ”œโ”€โ”€ models.py                 # Pydantic data models
โ”‚   โ”œโ”€โ”€ exceptions.py             # Custom exception classes
โ”‚   โ”œโ”€โ”€ data/                     # boto3 service model data
โ”‚   โ”‚   โ””โ”€โ”€ community-devops-agent/
โ”‚   โ”‚       โ””โ”€โ”€ 2025-12-09/       # API version directory
โ”‚   โ”‚           โ”œโ”€โ”€ service-2.json
โ”‚   โ”‚           โ”œโ”€โ”€ paginators-1.json
โ”‚   โ”‚           โ”œโ”€โ”€ waiters-2.json
โ”‚   โ”‚           โ””โ”€โ”€ endpoint-rule-set-1.json
โ”‚   โ””โ”€โ”€ loaders/                  # Custom service loader
โ”œโ”€โ”€ examples/                     # Usage examples
โ”œโ”€โ”€ tests/                        # Test suite
โ”œโ”€โ”€ docs/                         # Sphinx documentation
โ”œโ”€โ”€ devopsagent_api.egg-info/      # Package metadata
โ”œโ”€โ”€ test_venv/                    # Test virtual environment
โ”œโ”€โ”€ LICENSE                       # Apache 2.0 license
โ”œโ”€โ”€ requirements.txt              # Python dependencies
โ”œโ”€โ”€ pyproject.toml                # Modern Python packaging
โ”œโ”€โ”€ setup.py                      # Traditional packaging
โ”œโ”€โ”€ README.md                     # This file
โ”œโ”€โ”€ publish.py                    # Publishing utilities
โ”œโ”€โ”€ .readthedocs.yaml             # ReadTheDocs configuration
โ””โ”€โ”€ .gitignore                    # Git ignore patterns

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature
  3. Make your changes and add tests
  4. Run the test suite: pytest
  5. Format code: black devopsagent_api/
  6. Check types: mypy devopsagent_api/
  7. Submit a pull request

๐Ÿ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

This library is built upon the AWS DevOps Agent API and integrates with the boto3 ecosystem to provide a seamless experience for AWS developers.

๐Ÿ“ž Support


Note: This is a community-built client library for the AWS DevOps Agent API. It is not an official AWS product.

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

devopsagent_api-1.0.1.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

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

devopsagent_api-1.0.1-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

Details for the file devopsagent_api-1.0.1.tar.gz.

File metadata

  • Download URL: devopsagent_api-1.0.1.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for devopsagent_api-1.0.1.tar.gz
Algorithm Hash digest
SHA256 efb279fde92204bd385bf91df94affdfb2eef6b4f0bfd6557434688800159d30
MD5 da89eda2e9b3b71acb4995e672f36665
BLAKE2b-256 3ce80bb62b0af5046c5a1cf07f2880c0614f2c53a3418456c7cc1770fbc5115d

See more details on using hashes here.

File details

Details for the file devopsagent_api-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for devopsagent_api-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a8e23ab9fcc5c40b3d1ea0f76f3984e025c9b6c0d678e02d3a9fa63f1b0864b7
MD5 3a7e52a12b8345467c7df207b28e50cc
BLAKE2b-256 d99fe32fe379556fdd474a3d6a85bc8cce2bdca82c4bade32a0f699b4945560e

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