API Library to help using Kenti API
Project description
Kentik API python library.
This is a python wrapper for kentik rest api.
For more information on how to interact with kentik resources using this library, see examples in examples/ folder.
Installation with pip
- Install the library using pip:
pip3 install kentik-api
- Check installation successful - no errors should be reported:
python3 -c "import kentik_api"
- Run an example (optional):
export KTAPI_AUTH_EMAIL=<your kentik api credentials email>
export KTAPI_AUTH_TOKEN=<your kentik api credentials token>
python3 examples/sites_example.py
Getting started
The example below illustrates how to create a new device using the library:
# library-specific imports
from kentik_api import (
KentikAPI,
Device,
DeviceSubtype,
CDNAttribute,
ID,
)
# initialize Kentik API client
api_client = KentikAPI("<API_EMAIL_STRING>", "<API_TOKEN_STRING>")
# prepare device object
device = Device.new_dns(
device_name="example-device-1",
device_subtype=DeviceSubtype.aws_subnet,
cdn_attr=CDNAttribute.yes,
device_sample_rate=100,
plan_id=ID(11466),
site_id=ID(8483),
device_bgp_flowspec=True,
)
# create the device
created = api_client.devices.create(device)
# print returned device's attributes
print(created.__dict__)
As you can see, one can create a device using KentikAPI.devices
interface.
Interfaces for manipulating all KentikAPI resources are available under KentikAPI
object.
The general approach is that every single KentikAPI resource is represented in the library by a public class, and all the types/enums/constants related to given resource are collected together with the resource class (in the same source file):
- CustomApplication
- CustomDimension
- DeviceLabel
- Device
- ManualMitigation
- Plan
- QueryObject
- QuerySQL
- SavedFilter
- Site
- Tag
- Tenant
- User
More examples
List of available examples:
- alerting_example.py - create Manual Mitigation
- applications_example.py - create/update/delete Custom Application
- bulk_user_create.py - create users from YAML file
- devices_example.py - create/update/get/delete/list Devices
- dimensions_example.py - create/update/get/delete/list Custom Dimensions, create/update/delete Populator
- labels_example.py - create/update/get/delete/list Device Labels
- my_kentik_portal_example.py - get/list Tenants, create/delete Tenant User
- plans_example.py - list plans
- queries_example.py - query for SQL/URL/data/chart
- saved_filters_example.py - create/update/get/delete/list Saved Filters
- sites_example.py - create/update/get/delete/list Sites
- tags_example.py - create/update/get/delete/list Tags
- users_example.py - create/update/get/delete/list Users
- error_handling_example.py - handling errors raised by the library
Open-source libraries
This software uses the following open-source libraries:
- dacite by Konrad Hałas - MIT License
- requests by Kenneth Reitz - Apache Software License (Apache 2.0)
- typing-extensions by Guido van Rossum, Jukka Lehtosalo, Lukasz Langa, Michael Lee - PSFL License
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
Hashes for kentik_api-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66212ab83a39ae25137031903215ed7e2200608ada6e1ef31600546aa18dec19 |
|
MD5 | 4dd8f21a9a194a7954a7c2eda260e384 |
|
BLAKE2b-256 | 30dbcceb18688b0953e98d8abe6b898a3361308d9fe5eca8a6630f02f1c81f9f |