# neurons-client

A Python client library for interacting with the Ivanti Neurons ITSM API. This client enables performing CRUD operations on business objects and managing relationships between them in the Neurons system.

## Features

- Full CRUD operations on business objects
- Relationship management between business objects
- Pagination support for large result sets
- Field filtering capability
- Type-safe API using Python type hints
- Specialized interfaces for specific business object types

## Installation

```bash
pip install neurons-client
```

## Quick Start

```python
from neurons_client import NeuronsClient
from neurons_client import EntityType, RelationshipType

# Initialize the client
client = NeuronsClient(
    base_url="https://your-neurons-instance",
    api_key="your-api-key"
)

# Get business objects
incidents = client.get_business_objects(EntityType.INCIDENT)

# Get a single business object
incident = client.get_single_business_object(EntityType.INCIDENT, "incident-id")

# Create a new business object
new_incident = client.add_business_object(EntityType.INCIDENT, {
    "Title": "New Incident",
    "Description": "Description of the incident"
})
```

## API Reference

The main class is `NeuronsClient` which handles all API communication. Here are the key methods:

- `get_business_objects()` - Retrieve multiple business objects with optional filtering
- `get_single_business_object()` - Get a specific business object by ID
- `get_related_business_objects()` - Get objects related to a specific business object
- `add_business_object()` - Create a new business object
- `update_business_object()` - Update an existing business object
- `delete_business_object()` - Delete a business object
- `add_business_object_relationship()` - Create a relationship between business objects
- `delete_business_object_relationship()` - Remove a relationship between business objects

## Requirements

- Python 3.9 or higher
- `requests` library

## License

This project is licensed under the MIT License. See the LICENSE.txt file for details.

## Authors

GÉANT (swd@geant.org)

## Contributing