Skip to main content

Python SDK for the Pingera monitoring platform API

Project description

Pingera SDK

A comprehensive Python SDK for the Pingera monitoring platform API, built using OpenAPI Generator for full type safety and complete API coverage.

Features

  • Complete API Coverage: Auto-generated from the official OpenAPI specification
  • Type Safety: Full type hints and Pydantic model validation
  • Easy Authentication: Support for Bearer tokens and API keys
  • Comprehensive: All Pingera API endpoints supported:
    • Status Pages Management
    • Status Pages (Components & Incidents)
    • Monitoring Checks
    • Heartbeats
    • Alerts
    • On-demand Checks
    • Unified Results

Installation

pip install pingera-sdk

Or install from source:

git clone https://github.com/pingera/pingera-sdk.git
cd pingera-sdk
pip install -e .

Quick Start

Authentication

Set your API token via environment variable:

export PINGERA_API_KEY="your_api_token"

Basic Usage

from pingera import ApiClient, Configuration
from pingera.api import ChecksApi, StatusPagesComponentsApi

# Configure the client
configuration = Configuration()
configuration.host = "https://api.pingera.ru"
configuration.api_key['apiKeyAuth'] = "your_api_token"

# Create API client
with ApiClient(configuration) as api_client:
    # Initialize API instances
    checks_api = ChecksApi(api_client)
    components_api = StatusPagesComponentsApi(api_client)
    
    # List status pages
    status_pages_api = StatusPagesApi(api_client)
    pages = status_pages_api.v1_pages_get()
    print(f"Found {len(pages.data)} status pages")
    
    # List monitoring checks
    checks = checks_api.v1_checks_get(page=1, page_size=10)
    print(f"Found {len(checks.checks)} checks")
    
    # List components for a status page
    components = components_api.v1_pages_page_id_components_get("your_page_id")
    print(f"Found {len(components.data)} components")

Available APIs

The SDK provides access to all Pingera API endpoints through these API classes:

from pingera.api import (
    StatusPagesApi,              # Manage status pages
    StatusPagesComponentsApi,    # Manage status page components
    StatusPagesIncidentsApi,     # Manage incidents and maintenance
    ChecksApi,                   # Manage monitoring checks
    AlertsApi,                   # Manage alerts and notifications
    HeartbeatsApi,               # Manage heartbeat monitoring
    OnDemandChecksApi,           # Execute checks on-demand
    ChecksUnifiedResultsApi      # Get unified check results
)

Working with Models

All API requests and responses use typed Pydantic models:

from pingera.models import (
    Component,
    IncidentCreate,
    IncidentUpdateCreate,
    ExecuteCustomCheckRequest
)

# Create a new component
new_component = Component(
    name="API Server",
    description="Main API endpoint",
    status="operational"
)

# Create an incident
new_incident = IncidentCreate(
    name="Database Connectivity Issues", 
    body="We are investigating connectivity issues",
    status="investigating",
    impact="major"
)

Examples

Check the examples/ directory for comprehensive usage examples:

Configuration

Environment Variables

Variable Description
PINGERA_API_KEY Your Pingera API token
PINGERA_PAGE_ID Default page ID for status page operations

Manual Configuration

from pingera import Configuration

configuration = Configuration()
configuration.host = "https://api.pingera.ru"

# API token authentication
configuration.api_key['apiKeyAuth'] = "your_api_token"

# Optional: configure timeouts, retries, etc.
configuration.timeout = 30

Error Handling

The SDK uses proper exception handling:

from pingera.exceptions import ApiException

try:
    checks = checks_api.v1_checks_get()
except ApiException as e:
    print(f"API Error [{e.status}]: {e.reason}")
    if e.body:
        print(f"Details: {e.body}")

Development

Regenerating the Client

If the Pingera API specification changes, you can regenerate the client:

# Install the OpenAPI generator
pip install openapi-generator-cli[jdk4py]

# Regenerate the client
python generate_client.py

Running Tests

pip install -e ".[dev]"
pytest

Running Examples

# Set your credentials
export PINGERA_API_KEY="your_api_token"
export PINGERA_PAGE_ID="your_page_id"

# Run examples
python examples/basic_usage.py
python examples/component_management.py
python examples/incident_management.py

API Documentation

For detailed API documentation, visit:

Contributing

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

License

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

Support

Links

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

pingera_sdk-1.0.10.tar.gz (160.1 kB view details)

Uploaded Source

Built Distribution

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

pingera_sdk-1.0.10-py3-none-any.whl (456.0 kB view details)

Uploaded Python 3

File details

Details for the file pingera_sdk-1.0.10.tar.gz.

File metadata

  • Download URL: pingera_sdk-1.0.10.tar.gz
  • Upload date:
  • Size: 160.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.11

File hashes

Hashes for pingera_sdk-1.0.10.tar.gz
Algorithm Hash digest
SHA256 9c6db75f0d73349c75f209edebf07c6b06938affe26041bc42f1aca4ba0e9c47
MD5 1d5edac4996fb26ee78ca860e0cc384d
BLAKE2b-256 f650178fa11551d8fc0dcb96997685eb17c540482e5c545d3e3e21d2e71c996f

See more details on using hashes here.

File details

Details for the file pingera_sdk-1.0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for pingera_sdk-1.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 02d73f6779adece31d059d2997a98bf744c1b6a2d0102052145a47b2e6d6db8a
MD5 add12b59821bdfc252dbc6568673740a
BLAKE2b-256 c354de5be5deff3621fc099abd5a850df1c225da96811cd9631101bfd248b2f8

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