# bcs-oi-api-sdk **Repository Path**: mirrors_CiscoDevNet/bcs-oi-api-sdk ## Basic Information - **Project Name**: bcs-oi-api-sdk - **Description**: Cisco Business Critical Services Operational Insights API SDK - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-03 - **Last Updated**: 2026-02-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Business Critical Services Operational Insights API SDK SDK for the Business Critical Services (BCS) Operations Insights (OI) API [![](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/CiscoDevNet/bcs-oi-api-sdk/blob/master/LICENSE.md) [![](https://img.shields.io/pypi/v/bcs-oi-api.svg)](https://pypi.python.org/pypi/bcs-oi-api) ## Example ```python from bcs_oi_api import BCSOIAPI from bcs_oi_api.models import Device, SecurityAdvisory, SecurityAdvisoryBulletin, SecurityAdvisoryOutcome bcs_oi_api = BCSOIAPI( client_id='client id', client_secret='client secret', region='us' ) # Getting a generator for all discovered devices devices = bcs_oi_api.get_output(model=Device) # Building a dictionary with as key the device_id and the value the Device object for lookups devices_dict = {device.device_id: device for device in devices} # Getting a generator for all the Security Advisories security_advisories = bcs_oi_api.get_output(model=SecurityAdvisory) # Getting a generator for all the Security Advisory Bulletins security_advisory_bulletins = bcs_oi_api.get_output(model=SecurityAdvisoryBulletin) # Building a dictionary with as key the id of the bulletin and as value the bulletin itself for lookups security_advisory_bulletins_dict = {bulletin.security_advisory_cold_id: bulletin for bulletin in security_advisory_bulletins} # Listing devices which are vulnerable to security advisories with a critical impact rating for advisory in security_advisories: if advisory.match_confidence == SecurityAdvisoryOutcome.VULNERABLE and \ security_advisory_bulletins_dict[advisory.security_advisory_cold_id].security_impact_rating == 'Critical': print( f"Device \"{devices_dict[advisory.device_id].device_name}\" is vulnerable to " f"\"{security_advisory_bulletins_dict[advisory.security_advisory_cold_id].bulletin_title}\"" ) ``` ## Filtering & Masking Example ```python # Filtering - Inventory Devices from bcs_oi_api import BCSOIAPI from bcs_oi_api.models import DeviceFilter, Device, UIRDetailsFilter, UIRDetails bcs_oi_api = BCSOIAPI( client_id='client id', client_secret='client secret', region='us' ) filter_params = { "productFamily": [ "Cisco ASR 9000 Series Aggregation Services Routers", "Cisco Catalyst 3850 Series Switches", "Cisco ASR 1000 Series Aggregation Services Routers", ], } filter_parameter = DeviceFilter.parse_obj(filter_params) inventory_devices = bcs_oi_api.get_output(model=Device, filter_=filter_parameter) for inventory_device in inventory_devices: print(inventory_device) # Masking - UIR Details filter_params = { "unidentifiedDeviceName": ["site2-asr-1"], "unidentifiedDeviceStatus": ["Recurring"], } fields = "unidentifiedDeviceName,unidentifiedDevicePlatform" filter_parameter = UIRDetailsFilter.parse_obj(filter_params) uir_details = bcs_oi_api.get_output(model=UIRDetails, filter_=filter_parameter, fields=fields) for uir_detail in uir_details: print(uir_detail) # In the uir_detail response, only specified fields would be accessible. print(f"Unidentified Device Name : {uir_detail.unidentified_device_name}") print(f"Unidentified Device Platform : {uir_detail.unidentified_device_platform}") ``` ## Installation Installing and upgrading is easy: ### Install via PIP ``` $ pip install bcs-oi-api ``` ### Upgrading to the latest Version ``` $ pip install bcs-oi-api --upgrade ``` ## Questions, Support & Discussion bcs-oi-api is a *community developed* and *community supported* project. Feedback, thoughts, questions, issues can be submitted using the issues page. ## Contribution bcs-oi-api is a *community developed* project. Code contributions are welcome via PRs! - [Business Cricital Services Operations Insights API](https://developer.cisco.com/docs/bcs-operational-insights) - [Issues](https://github.com/CiscoDevNet/bcs-oi-api-sdk/issues) *Copyright (c) 2018-2021 Cisco and/or its affiliates.*