Odin's Spear
  • Welcome
  • What's New
  • Getting Started
    • Getting the Essentials
    • Create API Object
  • API Coverage
  • Docs
    • API Object
    • Standard Methods
      • Administrators
        • POST - Service Provider Admin
        • PUT - Service Provider Admin Policies
        • POST - Group Admin Polices Bulk
        • POST - Group Admin
      • Alternate Numbers
        • GET - User Alternate Numbers
      • Authentication
        • PUT - User Web Authentication Password
        • PUT - User Authentication Service
      • Auto Attendants
        • GET - Auto Attendants
        • POST - Auto Attendant
        • GET - Auto Attendant
        • GET - Auto Attendant User
        • POST - Auto Attendant Remove User
        • PUT - Auto Attendant
        • DELETE - Auto Attendant
        • GET - Auto Attendant Submenus
        • POST - Auto Attendant Submenu
        • GET - Auto Attendant Submenu Usage
        • PUT - Auto Attendant Submenu
        • PUT - Auto Attendant Status
        • DELETE - Auto Attendant Submenu
      • Call Centers
        • GET - Group Call Center
        • PUT - Group Call Center
        • GET - Group Call Centers
        • PUT - Group Call Center Agents
        • PUT - Group Call Center Agents Levels
        • GET - Group Call Center Bounced Calls
        • PUT - Group Call Center Bounced Call
        • PUT - Group Call Center DNIS Instance
        • GET - Group Call Center Forced Forwarding
        • PUT - Group Call Center Forced Forwarding
        • GET - Group Call Center Overflow
        • PUT - Group Call Center Overflow
        • GET - Group Call Center Stranded Calls
        • GET - Group Call Center Stranded Calls Unavailable
        • PUT - Group Call Center Status
        • PUT - Group Call Center Stranded Calls
        • PUT - Group Call Center Stranded Calls Unavailable
        • GET - User Call Center
        • PUT - User Call Center
        • PUT - User Call Center Agent Sign Out
        • PUT - User Call Center Agents Update
        • PUT - User Call Center Supervised Agents
      • Call Forwarding Always
        • GET - Bulk Call Forwarding Always
        • GET - User Call Forwarding Always
      • Call Forwarding Busy
        • GET - Bulk Call Forwarding Busy
        • GET - User Call Forwarding Busy
      • Call Forwarding No Answer
        • GET - Bulk User Call Forwarding No Answer
        • GET - User Call Forwarding No Answer
      • Call Forwarding Not Reachable
        • GET - Bulk User Call Forwarding Not Reachable
        • GET - User Call Forwarding Not Reachable
      • Call Forwarding Selective
        • GET - User Call Forwarding Selective
        • GET - User Call Forwarding Selective Criteria
        • GET - User Call Forwarding Selective Criterias
      • Call Pickup
        • GET - Call Pickup Group User
      • Call Processing Policies
        • PUT - User Call Processing Policy
      • Call Records
        • GET - User Stats
      • Devices
        • POST - Group Device
        • PUT - Group Devices
        • PUT - Group Device File
        • PUT - Group Device Tag
        • PUT - Group Device Type File
        • PUT - Group Device Tags Profile
        • PUT - Group Device Type Tag
        • PUT - Service Provider Device
        • PUT - Service Provider Device File
        • PUT - Service Provider Device Tag
        • PUT - Service Provider Device Type Tag
        • PUT - System Devices
        • PUT - System Device File
        • PUT - System Device Tag
      • DNs
        • GET - Group DNs
        • POST - Group DNs
        • DELETE - Group DNs
        • PUT - Group DNs Activate
        • POST - Group DNs Assign Bulk
        • GET - Group DN Details
        • GET - Group DN Search
        • POST - Group DNs Unassign Bulk
        • GET - Service Provider DNs
        • POST - Service Provider DNs
        • GET - Service Provider DN Search
        • DELETE - Service Provider DNs
        • GET - System DNs
        • GET - System DN Search
        • GET - System DN Summary
        • GET - System DN Utilisation
      • Do Not Disturb
        • GET - User Do Not Disturb
        • PUT - User Do Not Disturb
      • Emergency Zones
        • POST - Group Emergency Zones
        • PUT - Group Emergency Zones
      • Groups
        • GET - Group Information
        • GET - Service Provider Groups
      • Hunt Groups
        • GET - Group Hunt Groups
        • GET - Group Hunt Group
        • POST - Group Hunt Group
        • PUT - Group Hunt Group
        • DELETE - Group Hunt Group
        • GET - Group Hunt Groups Available Users
        • PUT - Group Hunt Groups Status
        • GET - Group Hunt Group User
        • PUT - Group Hunt Group Weighted Call Distribution
        • POST - Group Hunt Groups Remove User
      • Password Generate
        • GET - Password Generate
        • GET - Passwords Generate
        • GET - Passcode Generate
        • GET - Passcodes Generate
        • GET - SIP Password Generate
        • GET - SIP Passwords Generate
      • Registration
        • GET - User Registration
        • GET - Bulk User Registration
      • Reports
        • GET - User Report
      • Schedules
        • GET - Group Schedules
        • GET - Group Events
      • Service Providers
        • GET - Service Provider
        • GET - Service Providers
      • Services
        • GET - Group Services
        • GET - Group Services Assigned
        • GET - User-Services
        • PUT - User Services
        • GET - User Services Assigned
        • GET - User Service Settings
        • PUT - User Service Settings
      • Shared Call Appearance
        • POST - User Shared Call Appearance Endpoint
      • Trunk Groups
        • GET - Group Trunk Group
        • GET - Group Trunk Groups
        • GET - Group Trunk Groups Call Capacity
        • PUT - Group Trunk Groups Call Capacity
        • PUT - Group Trunk Group
        • POST - Group Trunk Group
        • GET - Service Provider Call Capacity Report
        • GET - Service Provider Trunk Group Call Capacity
        • PUT - Service Provider Trunk Group Call Capacity
      • User
        • GET - User By ID
        • GET - Users
        • POST - User
        • PUT - User
        • DELETE - User
        • PUT - User ID
        • PUT - Users Bulk
        • PUT - User Group ID Update
        • GET - User Login Info
        • GET - User Portal Passcode
        • PUT - User Portal Passcode
        • POST - User Reset
      • Voice Messaging
        • GET - Group Voice Messaging
        • GET - Group Voice Messaging Portal
        • GET - User Voice Messaging Advanced
        • GET - User Voice Messaging Bulk
        • GET - User Voice Messaging Greetings
        • GET - User Voice Messaging Message Details
        • GET - User Voice Messaging Message Download
        • GET - User Voice Messaging Messages
        • GET - User Voice Messaging User Distribution List
        • GET - User Voice Messaging User Distribution Lists
        • GET - User Voice Messaging Voice Portal
        • GET - User Voice Messaging
        • PUT - Group Voice Messaging
        • PUT - Group Voice Messaging Portal
        • PUT - User Voice Messaging Bulk
        • PUT - User Voice Messaging Greetings
        • PUT - User Voice Messaging Messages Read
        • PUT - User Voice Messaging Messages Unread
        • PUT - User Voice Messaging User Distribution List
        • PUT - User Voice Messaging Voice Portal
        • PUT - User Voice Messaging
        • DELETE - User Voice Messaging Messages
    • Advanced Features
      • Scripter
        • Find Alias
        • User Association
        • Group Audit
        • Move Numbers
        • Remove Numbers
        • Bulk Password Reset
        • Service Provider Trunking Capacity
        • Webex Builder
        • Locate Free Extension
        • User Registration
        • VM Auto Login
      • Reporter
        • Call Flow
          • Making Sense of The Call Flow
          • Graphviz
        • Group Users Call Statistics
        • User Registration Report
    • Utils
      • Config Manager
        • Template Configs
          • Auto Attendant
          • Call Center
          • Device
          • Group
          • Hunt Group
          • Service Provider
          • Trunk Group
          • User
      • Checkers
      • Constants
      • Formatters
      • Parsers
    • Logging
  • Powered By Odin's Spear
    • AA, CC, HG Audit
    • Bulk Build Group Admins
    • Bulk Build Service Provider Admins
    • Service Pack Audit
    • VM Bulk Passcode Set CSV
  • 14IP
    • Custom Logger
  • Development
  • Troubleshooting & FAQ
    • Frequently Asked Questions
    • Common Issues
      • Graphviz Troubleshooting
  • Change Log
  • Bugs and Issues
  • Contact
Powered by GitBook
On this page
  • Initialization
  • Constructor
  • Attributes
  • Rate Limiting
  • Enabling or Disabling Rate Limiting
  • Enable Rate Limiting
  • Methods
  • 1. _authenticate
  • 2. refresh_authorisation
  • 3. get_auth_details
  • 4. update_api
  • Example Usage
  • Initializing the API:
  • Authenticating:
  • Updating API Configuration:
  • Notes

Was this helpful?

  1. Docs

API Object

The API class is the main interface for interacting with the Odin API. It provides authentication, session management, and access to various entities within the API.


Initialization

Constructor

API(base_url: str, username: str, password: str, rate_limit: bool = True)

Parameters:

  • base_url (str): The base URL of your Odin instance API.

  • username (str): The username used for authentication.

  • password (str): The password used for authentication.

  • rate_limit (bool): Enables (True) or disables (False) rate limiting to 5 calls per second. Defaults to True.


Attributes

  • base_url: The base URL of the API.

  • username: The username used for authentication.

  • rate_limit: Indicates if rate limiting is enabled.

  • authorised: Boolean indicating if the API is authenticated.

  • token: The token string returned from the Odin API upon successful authentication.


Rate Limiting

The API class includes built-in rate limiting functionality to ensure compliance with API usage policies and prevent overloading the server. By default, the rate limit is set to 5 calls per second.

Enabling or Disabling Rate Limiting

The rate_limit functionality can be controlled through the rate_limit parameter when initializing the API class or by updating the configuration later.


Enable Rate Limiting

To enable rate limiting (default behavior):

from odins_spear import API

api = API(
    base_url="https://api.odin.com",
    username="my_user",
    password="my_pass",
    rate_limit=True  # Enable rate limiting
)

Methods

1. _authenticate

_authenticate() -> bool

Private method that authenticates the session with the provided username and password.

Raises:

  • OSApiAuthenticationFail: If authentication fails.

Returns:

  • bool: True if authentication is successful.


2. refresh_authorisation

refresh_authorisation() -> bool

Re-authenticates the session to refresh the API token.

Raises:

  • OSSessionRefreshFail: If re-authentication fails.

Returns:

  • bool: True if re-authentication is successful.


3. get_auth_details

get_auth_details() -> dict

Retrieves the current session details.

Raises:

  • OSFailedToLocateSession: If session details cannot be retrieved.

Returns:

  • dict: The session details.


4. update_api

update_api(
    base_url: str = None, 
    username: str = None, 
    password: str = None, 
    rate_limit: bool = None,
    logger: object = None
)

Updates the API instance with new configuration details.

Parameters:

  • base_url (str, optional): The new base URL.

  • username (str, optional): The new username.

  • password (str, optional): The new password.

  • rate_limit (bool, optional): The new rate limit setting.

  • rate_limit (object, optional): The new logger object.


Example Usage

Initializing the API:

from odins_spear import API

# create your own logger 

api = API(
    base_url="https://api.odin.com",
    username="my_user",
    password="my_pass",
    rate_limit=True,
    logger=logger
)

Authenticating:

if api.authenticate():
    print("Authentication successful!")

Updating API Configuration:

api.update_api(base_url="https://new.api.odin.com", username="new_user")

Notes

  • Ensure your credentials and API endpoint are correct before initializing the API object.

  • Use the provided methods to interact with various entities like users, call records, and administrators.

PreviousDocsNextStandard Methods

Last updated 2 months ago

Was this helpful?