A client library for accessing CompassOne API
Project description
CompassOne API Client for Python
The CompassOne API Client provides a Python-based interface to interact with the CompassOne public API. It simplifies the process of making API requests and handling responses with comprehensive type safety and multiple execution modes.
Table of Contents
Python Version Compatibility
This client requires Python 3.7 or higher due to the use of:
- f-strings
- Type hints
- Modern exception handling
- Async/await syntax
- Other Python 3.7+ features
It is tested and supported on Python versions:
- 3.7
- 3.8
- 3.9
- 3.10
- 3.11
- 3.12
- 3.13
Installation
Install the CompassOne API client for Python with the desired version, e.g., 1.2.3
pip install compassone-sdk=1.2.3
Usage
Creating a Client
To use the CompassOne API client, you first need to create an authenticated client instance:
from compassone_sdk import AuthenticatedClient
COMPASS_ONE_API_URL="https://api.blackpointcyber.com"
COMPASS_ONE_API_TOKEN="your_api_token_here"
# Create an authenticated client instance with your API credentials
authenticated_client = AuthenticatedClient(base_url=COMPASS_ONE_API_URL, token=COMPASS_ONE_API_TOKEN)
Function Variants
The CompassOne API client provides multiple function variants for each API endpoint to accommodate different use cases:
Available Function Variants
Each API endpoint offers the following variants:
.sync_detailed(): Synchronous function that returns a detailed response object containing status code, headers, and parsed data.asyncio_detailed(): Asynchronous function that returns a detailed response object containing status code, headers, and parsed data
API Organization
The API functions are organized under the compassone_sdk.api package, grouped by resource categories:
- Account APIs:
compassone_sdk.api.account - Tenant APIs:
compassone_sdk.api.tenant - Contact Group APIs:
compassone_sdk.api.contact_group - Cloud MDR APIs:
compassone_sdk.api.cloud_mdr - Cloud MDR Cisco APIs:
compassone_sdk.api.cloud_mdr_cisco - Cloud MDR Google APIs:
compassone_sdk.api.cloud_mdr_google - Cloud MDR M365 APIs:
compassone_sdk.api.cloud_mdr_m365
Synchronous Usage Examples
Account API Examples
Here are examples of how to use the Account API endpoints synchronously:
from compassone_sdk.api.account import get_account_controller_list
from compassone_sdk.models.tev1_paginated_accounts_response_dto import TEV1PaginatedAccountsResponseDto
# Make a synchronous API call to get the list of accounts
# This returns a detailed response object with status code, headers, and parsed data
# The 'client' parameter should be the authenticated_client instance created above
response = get_account_controller_list.sync_detailed(client=authenticated_client)
# response.parsed contains the parsed response data as a TEV1PaginatedAccountsResponseDto object
# This includes a list of accounts with pagination information
result: TEV1PaginatedAccountsResponseDto = response.parsed
Synchronous Usage
Account API Examples
Here are examples of how to use the Account API endpoints synchronously:
from compassone_sdk.api.account import get_account_controller_list
# Make a synchronous API call to get the list of accounts
# This returns a detailed response object with status code, headers, and parsed data
# The 'client' parameter should be the authenticated_client instance created above
response = get_account_controller_list.sync_detailed(client=authenticated_client)
# response.parsed contains the parsed response data as a TEV1PaginatedAccountsResponseDto object
# This includes a list of accounts with pagination information
result: TEV1PaginatedAccountsResponseDto = response.parsed
Asynchronous Usage
Tenant API Examples
Here are examples of how to use the Tenant API endpoints asynchronously:
import asyncio
from compassone_sdk.api.tenant import get_tenant_controller_list
from compassone_sdk.models.tev1_paginated_tenants_response_dto import TEV1PaginatedTenantsResponseDto
# Make a synchronous API call to get the list of accounts
# This returns a detailed response object with status code, headers, and parsed data
# The 'client' parameter should be the authenticated_client instance created above
response = asyncio.run(get_tenant_controller_list.asyncio_detailed(client=authenticated_client, account_id="your_account_id_here"))
# response.parsed contains the parsed response data as a TEV1PaginatedAccountsResponseDto object
# This includes a list of accounts with pagination information
result: TEV1PaginatedTenantsResponseDto = response.parsed
Error Handling
All API methods in this SDK return a Response object, which contains the following attributes:
status_code: The HTTP status code of the response.content: The raw response content as bytes.headers: The response headers.parsed: The parsed response data (orNoneif parsing failed or the response was not successful).
You should always check the status_code and/or the parsed attribute to determine if the request was successful. For convenience
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file compassone_sdk-0.0.43.tar.gz.
File metadata
- Download URL: compassone_sdk-0.0.43.tar.gz
- Upload date:
- Size: 62.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.9.23 Linux/6.8.0-1029-aws
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46d933c016cf43ed003d3d1db84958719aefdf6d0901e31fe533ea14d3237994
|
|
| MD5 |
c0908a3de7846043b20afce988aa7856
|
|
| BLAKE2b-256 |
c7fed58362412e7fb011c1167a5c3e191aacfff7237b4ac5476d14ad32f46181
|
File details
Details for the file compassone_sdk-0.0.43-py3-none-any.whl.
File metadata
- Download URL: compassone_sdk-0.0.43-py3-none-any.whl
- Upload date:
- Size: 194.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.9.23 Linux/6.8.0-1029-aws
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb501d57611651f969781e7effca086af5f1407931fd54194ec18ae0b6172db6
|
|
| MD5 |
64d4183e1442b9ab709c7dff594f2f0a
|
|
| BLAKE2b-256 |
c989c955bf8075d4bd6a21969f09d2564ce2d70c5019813799b0d4d18c1ddb36
|