diff --git a/docs/NTP.md b/docs/NTP.md
new file mode 100644
index 0000000..934b35e
--- /dev/null
+++ b/docs/NTP.md
@@ -0,0 +1,49 @@
+# NTP
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Configure NTP server
+
In order to configure NTP server information, the API, configNTP(), must be invoked with the server IPv4 as input parameters.
+```py
+node.configNTP(ip="128.123.123.123")
+```
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ ip |
+ "128.XXX.XXX.XXX" |
+ NTP server IPv4 value |
+
+
+
+
+Get/Show NTP server
+ Retrieves NTP servers details
+
+```py
+node.execute(['show ntp'])
+```
+Output
+
This is an example of the output of the above command:
+```py
+Not added yet.
+```
diff --git a/docs/ZTP.md b/docs/ZTP.md
new file mode 100644
index 0000000..6efcb8a
--- /dev/null
+++ b/docs/ZTP.md
@@ -0,0 +1,49 @@
+# ZTP
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Configure ZTP
+
In order to enable or disable ZTP, the API, configZTP(), must be invoked with dictionary input within the object, 'dt'.
+```py
+node.configZTP(dt = {"ztp_status":"enable | disable"})
+
+Get/Show ZTP server
+
Retrieves ZTP status
+
+```py
+node.execute(['show ztp status'])
+```
+Output
+
This is an example of the output of the above command:
+```py
+b'{{"ztp-status": "disabled"}}
+```
+
The below table lists and describes input and output attributes:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "ztp_status" |
+ "enable|disable" |
+ indicates whether ztp enable or disable on the system |
+
+
+
diff --git a/docs/boot.md b/docs/boot.md
new file mode 100644
index 0000000..8b78527
--- /dev/null
+++ b/docs/boot.md
@@ -0,0 +1,56 @@
+# Boot
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Get System Boot information
+
+ : Retrieves system boot information.
+
+```py
+node.execute(['show boot'])
+```
+Output
+
+```py
+b'{"BootInfo": {"Next": "OPBNOS-master.192-dirty-20230831.072719", "Available": "OPBNOS-master.192-dirty-20230831.072719", "Current": "OPBNOS-master.192-dirty-20230831.072719"}}'
+```
+
+ The below table has a list of attributes that pertain to this particular API:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "Next" |
+ "OPBNOS-master.192-dirty-20230831.072719" |
+ next boot device |
+
+
+ "Available" |
+ "OPBNOS-master.192-dirty-20230831.072719" |
+ available boot device |
+
+
+ "Current" |
+ "OPBNOS-master.192-dirty-20230831.072719" |
+ current boot device |
+
+
+
diff --git a/docs/clock.md b/docs/clock.md
new file mode 100644
index 0000000..87cbdb6
--- /dev/null
+++ b/docs/clock.md
@@ -0,0 +1,51 @@
+# System Clock
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Get/Show Clock Information
+
Retrieves system clock information
+
+```py
+node.execute(['show clock'])
+```
+Output
+
This is an example of the output of the above command:
+```py
+b'{"currentTime": "Sat 07 Oct 2023 01:12:59 AM UTC"}'
+```
+
+
The below table lists and describes input and output attributes:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "currentTime" |
+ "Sat 07 Oct 2023 01:12:59 AM UTC" |
+ indicates current server clock (time, date, day and timezone) |
+
+
+
+
+Note: Output of clock API
+ API will not produce any output unless the below status code in produced, indicating a server error.
+```py
+Status : 500 -> Response : b'500'
+```
diff --git a/docs/counters.md b/docs/counters.md
new file mode 100644
index 0000000..59cc9ce
--- /dev/null
+++ b/docs/counters.md
@@ -0,0 +1,78 @@
+# Counters
+
Shows and Configures performance counters
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Get/Show Interface Counters
+
+: Retrieves available performance counter
+
+```py
+node.execute(['show interface counters'])
+```
+Output
+```py
+b'{"Ethernet1_1": {"IF_IN_OCTETS": 0, "IF_IN_UCAST_PKTS": 0, "IF_IN_NON_UCAST_PKTS": 0, "IF_IN_DISCARDS": 0, "IF_IN_ERRORS": 0, "IF_OUT_OCTETS": 0, "IF_OUT_UCAST_PKTS": 0, "IF_OUT_NON_UCAST_PKTS": 0, "IF_OUT_DISCARDS": 0, "IF_OUT_ERRORS": 0, "IF_IN_MULTICAST_PKTS": 0, "IF_OUT_MULTICAST_PKTS": 0}, "Ethernet2_1":{...}...}
+```
+
+Clear Interface Counters
+In order to delete all interface counters, the API, configInterfacesCounters(), can be invoked with no paramters.
+```py
+node.configInterfacesCounters()
+```
+
+Get/Show Interface Counters - Ethernet specific
+: Retrieves Interface counter information as per the specified ethernet
+
+```py
+node.execute(['show interface counters '])
+```
+Output
+```py
+b'{"Ethernet1_1": {"IF_IN_OCTETS": 0, "IF_IN_UCAST_PKTS": 0, "IF_IN_NON_UCAST_PKTS": 0, "IF_IN_DISCARDS": 0, "IF_IN_ERRORS": 0, "IF_OUT_OCTETS": 0, "IF_OUT_UCAST_PKTS": 0, "IF_OUT_NON_UCAST_PKTS": 0, "IF_OUT_DISCARDS": 0, "IF_OUT_ERRORS": 0, "IF_IN_MULTICAST_PKTS": 0, "IF_OUT_MULTICAST_PKTS": 0}}
+```
+
+Clear Flow Counters
+In order to clear opb flow counters, the API, clearFlowCounters(), can be invoked with no paramters.
+```py
+node.clearFlowCounters(flow="flow1", r_id="1")
+```
+
The below table lists and describes input attributes:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "flow" |
+ "flow1" |
+ flow identification |
+
+
+ "r_id" |
+ int |
+ rule id number |
+
+
+
+
+Note: Output of clear APIs
+ APIs will not produce any output unless the below status code in produced, indicating a server error.
+```py
+Status : 500 -> Response : b'500'
+```
diff --git a/docs/cpuUtil.md b/docs/cpuUtil.md
new file mode 100644
index 0000000..aa01490
--- /dev/null
+++ b/docs/cpuUtil.md
@@ -0,0 +1,51 @@
+# CPU Utilization
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Get/Show CPU Utilization
+
Retrieves system CPU utilization
+
+```py
+node.execute(['show cpu util'])
+```
+Output
+
This is an example of the output of the above command:
+```py
+b'{"%CPU_Util": "14.249999999999998"}'
+```
+
+
The below table lists and describes input and output attributes:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "CPU_Util" |
+ float |
+ indicates average CPU usage |
+
+
+
+
+Note: Output of the API
+ API will not produce any output unless the below status code in produced, indicating a server error.
+```py
+Status : 500 -> Response : b'500'
+```
diff --git a/docs/flow.md b/docs/flow.md
new file mode 100644
index 0000000..dd799d3
--- /dev/null
+++ b/docs/flow.md
@@ -0,0 +1,291 @@
+# Flow
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Configure flow information
+
In order to configure port information, the API, configFlow(), must be invoked with appropriate parameters in dictionary format.
+```py
+node.configFlow(flow = "flow1")
+```
+
+
The API configFlow() requires only one parameter (flow alias) because the file SN2010 contains all the required request body parameters in order to configure device flow. The content of the JSON file is in the following format:
+```py
+ "flow1": {
+ "configFlow": {
+ "alias": "flow1",
+ "status": "enable",
+ "comment": "vlan traffic test",
+ "from": ["Ethernet16_1","Ethernet17_1"],
+ "to": ["port-channel1"]
+ }
+```
+
+
The below table has a list of attributes that pertain to this particular API:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "alias" |
+ "flow1" |
+ alias name for flow |
+
+
+ "status" |
+ "enable|disable" |
+ indicates device status |
+
+
+ "comment" |
+ "test" |
+ additional port channel/device related comments |
+
+
+ "from" |
+ ["EthernetX_X"] |
+ indicates device requesting flow authorization |
+
+
+ "to" |
+ ["EthernetY_Y"] |
+ indicates device that recieves/directs authorization |
+
+
+ "push-vlan" |
+ "vlan-id" |
+ pushing VLAN tags |
+
+
+ "pop-vlan" |
+ "enable|disable" |
+ popping/removing VLAN tags |
+
+
+
+
+Configure flow rule information
+In order to configure port information, the API, configFlow(), must be invoked with appropriate parameters in dictionary format.
+```py
+node.configFlowRules(flow = "flow1", r_id = "1")
+```
+
+
The API configFlowRules() requires two parameters (flow alias and rule id) because the file SN2010 contains all the required request body parameters in order to configure device flow. The content of the JSON file is in the following format:
+```py
+ "flow1": {
+ "configRules": {
+ "1": {
+ "rule_id": "1",
+ "action": "permit",
+ "vlan": "100",
+ "counters": "enable"
+ }
+ }
+ }
+
+```
+
+
The below table has a list of attributes that can be listed in the JSON file (in this case 'SN2010'):
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "alias" |
+ "flow1" |
+ alias name for flow |
+
+
+ "status" |
+ "enable|disable" |
+ indicates device status |
+
+
+ "comment" |
+ "test" |
+ additional flow channel/device related comments |
+
+
+ "vlan" |
+ int |
+ VLAN port number |
+
+
+ "ethertype" |
+ "0x8100" |
+ indicates protocol in Ethernet frame |
+
+
+ "src_ip" |
+ "1.1.1.1" |
+ source ip address |
+
+
+ "src_mask" |
+ "255.XXX.XXX.0" |
+ source masking ip |
+
+
+ "dst_ip" |
+ "2.2.2.2" |
+ destination ip address |
+
+
+ "dst_mask" |
+ "255.YYY.YYY.0" |
+ destination ip masking |
+
+
+ "dscp" |
+ "5" |
+ dscp code (network traffic) |
+
+
+ "ttl" |
+ "4" |
+ 'time to live' |
+
+
+ "protocol" |
+ "6" |
+ protocol code |
+
+
+ "src_l4port" |
+ "56" |
+ source port number |
+
+
+ "dst_l4port" |
+ "78" |
+ destination port code |
+
+
+ "tcpctl" |
+ "0xX" |
+ tcp control |
+
+
+ "tcpctl_mask" |
+ "0xff" |
+ tcp control filter mask |
+
+
+ "tosval" |
+ "3" |
+ |
+
+
+ "match_all" |
+ "disable|enable" |
+ indicates the status of |
+
+
+ "counters" |
+ "enable|disable" |
+ Indicates the status of device related performance counters |
+
+
+
+
+Get/Show Flow
+ Retrieves device flow information with an 'alias'
+
+```py
+node.execute(['show flow alias '])
+```
+Output
+ Note: Client will receive the below error messege if flow has not been configured.
+```py
+b'{"[ERROR]": "Flow not configured!"}'
+```
+
+
This will be the proper JSON output format if flow has been configured
+```py
+b'{"flow1|1": {"name": "flow1", "status": "enable", "to": ["Ethernet16_1"], "from": }}'
+```
+
+
The below table has a list of attributes that will appear as get flow output:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "name" |
+ "flow1" |
+ alias name for flow |
+
+
+ "status" |
+ "enable|disable" |
+ indicates device status |
+
+
+ "config_mgr" |
+ "Rest-API" |
+ name of configuration manager |
+
+
+ "to" |
+ ["EthernetX_X"] |
+ indicates device that recieves/directs authorization |
+
+
+ "from" |
+ ["EthernetY_Y"] |
+ indicates device requesting flow authorization |
+
+
+ "comment" |
+ "vlan traffic test" |
+ additional vlan/flow/device related comments |
+
+
+
+
+Delete Flow
+In order to delete flow, the API, configDelete(), must have one parameter specifing the targetted flow alias.
+```py
+node.configDelete(flow = "flow1")
+```
+Delete Flow Rule Override
+
This is a multifunctional API that deletes all present flow rules and configures a new flow rule based on user specified input.
+```py
+node.configDelete(flow = "flow1", r_id = 1)
+```
+
+Output
+
Note: Client will receive the below status codes for both deleting funtions to indicate a successful request.
+```py
+Status : 200 -> Response : b'200'
+```
+
The status code '500' indicates a server error.
+
diff --git a/docs/home.md b/docs/home.md
new file mode 100644
index 0000000..bf130bb
--- /dev/null
+++ b/docs/home.md
@@ -0,0 +1,5 @@
+# Overview
+
+## OPBNOS API
+
+Aviz OPBNOS API provides a Python-based SDK for communication with Aviz OPBNOS over HTTP transport. The Python API allows network administrators and developers to automate network configuration tasks and operational workflows on OPBNOS devices via a singular interface. Python scripts can be written with relative ease to interact with these network operating systems, enabling efficient and consistent network management. The customization aspect of Python allows network engineers and developer to create scripts and applications tailored to their specific network necessities. Rest API is utilized so network administrators can fetch real-time data and telemetry information as well as implement bulk configuration changes across multiple OPBNOS devices.
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..5c8e68f
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,8 @@
+Overview
+ONES APIs
+Aviz ONES is the industry's first multi-vendor platform which provides seamless network orchestration and monitoring capabilities. From storing the physical topology, device health, utilization and network events, it also provides network orchestration/automation for the data center fabric deployments. All this fleet-wide data is provided to the network administrators using standardized ONES APIs. ONES Provides a smooth transition for Network Admin for SONiC transition depending on the consumption model.
+
+ONES APIs supports following interfaces
+
+gNMI (Secured using certificates)
+REST API (Secured using user tokens)
diff --git a/docs/installation.md b/docs/installation.md
new file mode 100644
index 0000000..baafefc
--- /dev/null
+++ b/docs/installation.md
@@ -0,0 +1,19 @@
+# Installation
+
+###### Please take the steps below to install OPBNOS API.
+
+### Prerequisites
+- Python version 3.7+
+- pip version 21.2.4+
+- Download [opbnos-api-0.1.tar.gz](https://github.com/AvizNetworks/opbnos-api/blob/master/dist/opbnos-api-0.1.tar.gz)
+
+### Install package
+
+```py
+pip install opbnos-api-0.1.tar.gz
+```
+
+If above command does not work, try using pip3:
+```py
+pip3 install opbnos-api-0.1.tar.gz
+```
diff --git a/docs/memUtil.md b/docs/memUtil.md
new file mode 100644
index 0000000..202c3f2
--- /dev/null
+++ b/docs/memUtil.md
@@ -0,0 +1,51 @@
+# Memory Utilization
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Get/Show Memory Utilization
+
Retrieves system memory utilization
+
+```py
+node.execute(['show memory utilisation'])
+```
+Output
+
This is an example of the output of the above command:
+```py
+b'{"%MEM_Util": "13.5"}'
+```
+
+
The below table lists and describes input and output attributes:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "MEM_Util" |
+ float |
+ indicates memory usage |
+
+
+
+
+Note: Output of the API
+ API will not produce any output unless the below status code in produced, indicating a server error.
+```py
+Status : 500 -> Response : b'500'
+```
diff --git a/docs/opbinterface.md b/docs/opbinterface.md
new file mode 100644
index 0000000..d304ab1
--- /dev/null
+++ b/docs/opbinterface.md
@@ -0,0 +1,185 @@
+# OPB Interface
+
+**Import OPBNOS API**
+
+```py
+import opb_api as opbapi
+```
+
+**Initialize client**
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Configure OPB Interfaces
+
The API configInterfaceNPB() requires parameters that will serve as the request body.
+```py
+node.configInterfaceNPB(intf_name="Ethernet16_1", igr_vlan="1000")
+```
+
The below table is a list of attributes that can be considered by clients as parameters for the OPB interface API:
+
Nvidia
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "name" |
+ "Ethernet1_1" |
+ interface name |
+
+
+ "type" |
+ "network|tool" |
+ mode of exporting device functionality |
+
+
+ "comment" |
+ "test" |
+ comments regarding interface |
+
+
+ "mode" |
+ "vlan-aware|vlan-unaware" |
+ indicates if the device is VLAN aware/enforces VLAN tagging |
+
+
+ "hybrid" |
+ "enable|disable" |
+ indicates whether the device is hybrid |
+
+
+ "ingress-vlan" |
+ "100" |
+ adding VLAN tags to ingress packets per port |
+
+
+ "egress-tagging" |
+ "enable|disable" |
+ indicates whether the egress port is a tagged member of a VLAN |
+
+
+ "truncate-offset" |
+ "0(disable)|32-4088(multiples of 4)" |
+ truncates based on specified offset |
+
+
+
+
+ Broadcom
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "name" |
+ "Ethernet1_1" |
+ check device activity |
+
+
+ "ingress-vlan" |
+ "100" |
+ adding VLAN tags to ingress packets per port |
+
+
+ "egress-tagging" |
+ "enable|disable" |
+ indicates whether the egress port is a tagged member of a VLAN |
+
+
+
+
+
+Get/Show OPB Interface
+Retrieves device interface elements
+```py
+node.execute(['show interface npb '])
+```
+
+Output
+This is an example of the output of the above command.
+```py
+b'{"ingress-vlan": "10", "name": "Ethernet16_1", "intf_name": "Ethernet16_1"}'
+```
+
the below table contains a list of attributes that will be listed in output:
+
Nvidia
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "name" |
+ "Ethernet1_1" |
+ interface name |
+
+
+ "type" |
+ "network|tool" |
+ mode of exporting device functionality |
+
+
+ "comment" |
+ "test" |
+ comments regarding interface |
+
+
+ "mode" |
+ "vlan-aware" |
+ indicates if the device is VLAN aware/enforces VLAN tagging |
+
+
+ "ingress-vlan" |
+ "100" |
+ adding VLAN tags to ingress packets per port |
+
+
+ "egress-tagging" |
+ "enable|disable" |
+ indicates whether the egress port is a tagged member of a VLAN |
+
+
+ "truncate-offset" |
+ "0(disable)" |
+ truncates based on specified offset |
+
+
+
+
+ Broadcom
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "name" |
+ "Ethernet1_1" |
+ interface name |
+
+
+ "ingress-vlan" |
+ "100" |
+ adding VLAN tags to ingress packets per port |
+
+
+
diff --git a/docs/port.md b/docs/port.md
new file mode 100644
index 0000000..f03c4aa
--- /dev/null
+++ b/docs/port.md
@@ -0,0 +1,133 @@
+# Port
+
+**Import OPBNOS API**
+
+```py
+import opb_api as opbapi
+```
+
+**Initialize client**
+Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Configure Port Interfaces
+
+```py
+node.configAllInterfaces()
+```
+
+
The API configAllInterfaces() requires no parameters because the file SN2010 contains all the required parameters in order to configure device interfaces. The content of the JSON file is in the following format:
+```py
+ "configInterface": {
+ "Ethernet1_1": {
+ "admin_status": "up",
+ "speed": "10000"
+ }
+```
+
The below table has a list of attributes that pertain to this particular API:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "admin_status" |
+ "up/down" |
+ check device activity |
+
+
+ "speed" |
+ int |
+ device speed |
+
+
+ "mtu" |
+ int |
+ maximum transmission size of an interface |
+
+
+ "fec" |
+ "rs" |
+ forward error correction |
+
+
+
+
+
+Get/Show Port Interface
+Retrieves device interface elements that were previously configured.
+
+```py
+node.execute(['show interfaces summary '])
+```
+
+Output
+ This is an example of the output of the above command.
+```py
+b'{"Ethernet1_1": {"admin_status": "up", "speed": "10000"}}'
+```
+
The below table is a list of out attributes pertaining to the interface get request:
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "lanes" |
+ "int" |
+ device data lanes |
+
+
+ "alias" |
+ "tenGigE1" |
+ alias name for port interface |
+
+
+ "oper_status" |
+ "down/up" |
+ status the port is currently operating at |
+
+
+ "admin_status" |
+ "up/down" |
+ indicates configured state of the device |
+
+
+ "speed" |
+ int |
+ device speed |
+
+
+ "mtu" |
+ int |
+ maximum transmission size of an interface |
+
+
+ "description" |
+ "N/A" |
+ any specificity descriptions |
+
+
+ "autoneg" |
+ "N/A" |
+ used to determine the optimal speed and mode of connection for two connected devices |
+
+
+ "TRANSCEIVER" |
+ "Present" |
+ indicates whether a device transceiver is present |
+
+
+
diff --git a/docs/portchannel.md b/docs/portchannel.md
new file mode 100644
index 0000000..f6a8710
--- /dev/null
+++ b/docs/portchannel.md
@@ -0,0 +1,84 @@
+# Port Channel
+
+**Import OPBNOS API**
+
+```py
+import opb_api as opbapi
+```
+
+**Initialize client**
+Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Configure port information
+
In order to configure port information, the API, configportchannel(), must be invoked with appropriate parameters in dictionary format.
+```py
+node.configPortChannel(pch_id="1", port_list=["Ethernet1_1","Ethernet2_1"])
+```
+
+
The below table has a list of attributes that pertain to this particular API:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "add_member" |
+ ["Ethernet1_1", ["Ethernet2_2"], |
+ indicates the members within which the port channels are configured |
+
+
+ "description" |
+ "test" |
+ additional port channel description |
+
+
+
+
+Get Port information
+Retrieves server port details
+```py
+node.execute(['show port information'])
+```
+Output
+
The output is in JSON format.
+
Note: if port channel is not configured, the device will return the below error messege:
+```py
+b'{"[ERROR]": "PortChannel not configured!"}'
+```
+
This will be the proper JSON output if port channel information have been configured.
+```py
+b'{"1": {"ports": ["Ethernet1_1", "Ethernet2_1"]}}'
+```
+
+
The below table has a list of output attributes:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "ports" |
+ ["EthernetX_X", ["EthernetY_Y"], |
+ indicates port channels configured |
+
+
+ "comment" |
+ "test" |
+ additional port channel/device related comments |
+
+
+
diff --git a/docs/reboot.md b/docs/reboot.md
new file mode 100644
index 0000000..1d083d0
--- /dev/null
+++ b/docs/reboot.md
@@ -0,0 +1,28 @@
+# Reboot
+ Initiates Device Reboot
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Device Reboot
+
+ : The API, configReboot(), reboots the system by accepting dictionary request body input to indicate authorization.
+
+```py
+node.configReboot(dt={"reboot":"yes"})
+```
+Output
+ Note: Client will receive the below status codes for both deleting funtions to indicate a successful request.
+```py
+Status : 200 -> Response : b'200'
+```
+
The status code '500' indicates a server error.
diff --git a/docs/snmp.md b/docs/snmp.md
new file mode 100644
index 0000000..22ce659
--- /dev/null
+++ b/docs/snmp.md
@@ -0,0 +1,141 @@
+# SNMP
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Configure SNMP community
+
In order to configure SNMP community information, the API, configSNMPcomm(), must be invoked with appropriate parameters in dictionary format within the parameter 'dt'.
+```py
+node.configSNMPcomm(dt="{"community":"Aviz"}")
+```
+
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "community" |
+ "Aviz" |
+ community string that indicates specific access data |
+
+
+
+
+Get/Show SNMP Community
+ Retrieves SNMP community details
+
+```py
+node.execute(['show snmp-community'])
+```
+Output
+
This is an example of the output of the above command:
+```py
+b'{"public": {"TYPE": "RO"}}'
+```
+
+Configure SNMP trap
+
In order to configure SNMP trap information, the API, configSNMPtrap(), must be invoked with appropriate parameters in dictionary format within the parameter 'dt'.
+```py
+node.configSNMPtrap(dt="{"version":"2", "server_id":"1", "community":"public", "ip_address":"10.X.X.XX"}")
+```
+
'dt' parameters correlate to SNMP trap messeges sent by the network devices to the system.
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "version" |
+ int |
+ version number |
+
+
+ "server_id" |
+ int |
+ server id numbers |
+
+
+ "community" |
+ "public" |
+ SNMP community string to enable acessibility |
+
+
+ "ip_address" |
+ "10.X.X.XX" |
+ system ip address |
+
+
+
+
+Get/Show SNMP Trap
+ Retrieves SNMP trap details
+
+```py
+node.execute(['show snmp-trap'])
+```
+Output
+
This is an example of the output of the above command:
+```py
+b'{"1": {"DestPort": "161","v2TrapDest": "Null","DestIp": "10.4.4.11","vrf": "None","Community": "public"}}'
+```
+
Note: "1": the int value in the output indicates the server id:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "DestPort" |
+ int |
+ destination port |
+
+
+ "v2TrapDest" |
+ int/"Null" |
+ SNMPv2 trap destination |
+
+
+ "DestIp" |
+ "10.X.X.XX" |
+ destination IP |
+
+
+ "vrf" |
+ "None" |
+ indicates whether a specific VRF is associated with the trap host |
+
+
+ "Community" |
+ "public" |
+ updated configured SNMP community |
+
+
+
+
+
diff --git a/docs/syslog.md b/docs/syslog.md
new file mode 100644
index 0000000..b57acb3
--- /dev/null
+++ b/docs/syslog.md
@@ -0,0 +1,59 @@
+# Syslog information
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Get/Show Syslog Information
+
Retrieves syslogs from the system
+
+```py
+node.execute(['show syslog information'])
+```
+Output
+
This is an example of the output of the above command:
+```py
+b'{"1":{"time":"Oct 5 06:22:26.453866","severity":"INFO","component":"syncd#/broadcom_nagg_asic.py","msg":"[nagr]:Stat Poll-Table Handler Key map6 Data{'clear-all': 'false'}"}'
+```
+
The below table lists possible outputs:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "time" |
+ "Month Date time" |
+ timestamp |
+
+
+ "severity" |
+ int/"INFO" |
+ event severity rating |
+
+
+ "component" |
+ "" |
+ syslog messege components |
+
+
+ "msg" |
+ "" |
+ syslog messege ID |
+
+
+
diff --git a/docs/tacacs.md b/docs/tacacs.md
new file mode 100644
index 0000000..970bf2a
--- /dev/null
+++ b/docs/tacacs.md
@@ -0,0 +1,98 @@
+# TACACS
+
+**Import OPBNOS API**
+
+```py
+import opb_api as opbapi
+```
+
+**Initialize client**
+Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Configure TACACS Server
+
In order to configure TACACS server information, the API, configTACACS(), must be invoked with input parameter, 'dt'. 'dt' accepts all request body inputs in a dictionary format.
+```py
+node.configTACACS(dt = {"host": "10.4.4.11","timeout": 8,"priority": 1,"auth_type": "pap","passkey": "support"})
+```
+
The below table has a list of attributes that pertain to this particular API:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "host" |
+ "10.X.X.XX" |
+ host id |
+
+
+ "timeout" |
+ int |
+ indicates timeout value |
+
+
+ "priority" |
+ int |
+ indicates priority |
+
+
+ "auth_type" |
+ "pap" |
+ indicates authorization type (password authorization protocol) |
+
+
+ "passkey" |
+ "support" |
+ server user credential string |
+
+
+
+
+Configure TACACS Global Server
+In order to configure port information, the API, configTACACSglobal(), must be invoked with input parameter, 'dt'. 'dt' accepts all request body inputs in a dictionary format.
+```py
+node.configTACACS(dt = {"auth_type": "pap","timeout": 8,"passkey": "support"})
+```
+
The below table has a list of attributes that pertain to this particular API:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "auth_type" |
+ "pap" |
+ indicates authorization type (password authorization protocol) |
+
+
+ "timeout" |
+ int |
+ indicates timeout value |
+
+
+ "passkey" |
+ "support" |
+ server user credential string |
+
+
+
+
+Note: Output of APIs
+ APIs will not produce any output unless the below status code in produced, indicating a server error.
+```py
+Status : 500 -> Response : b'500'
+```
diff --git a/docs/timezone.md b/docs/timezone.md
new file mode 100644
index 0000000..2134e8d
--- /dev/null
+++ b/docs/timezone.md
@@ -0,0 +1,39 @@
+# Timezone
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+
Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Configure Timezone
+
In order to configure SNMP community information, the API, configSNMPcomm(), must be invoked with appropriate parameters in dictionary format within the parameter 'dt'.
+```py
+node.configTimezone(dt = {"timezone": "Asia/Kolkata"})
+```
+
+
The below table lists and describes input attributes:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "timezone" |
+ "Asia/Kolkata" |
+ indicates preferred timezone |
+
+
+
diff --git a/docs/uptime.md b/docs/uptime.md
new file mode 100644
index 0000000..c764ff9
--- /dev/null
+++ b/docs/uptime.md
@@ -0,0 +1,45 @@
+# System Uptime
+
+Import OPBNOS API
+
+```py
+import opb_api as opbapi
+```
+
+Initialize client
+Use the appropriate JSON file that corresponds to the targetted device name. This JSON file should contain request body parameters corresponding to any potential configuration/post requests.
+
+```py
+node = opbapi.connect_to('SN2010')
+```
+
+Get/Show System Uptime
+
Retrieves system uptime
+
+```py
+node.execute(['show uptime'])
+```
+Output
+
This is an example of the output of the above command:
+```py
+b'{"uptime": "01:05:51 up 26 days, 20:09, 2 users, load average: 0.54, 0.50, 0.51"}'
+```
+
+
The below table lists and describes input and output attributes:
+
+
+
+
+ Attribute |
+ Values |
+ Description |
+
+
+
+
+ "uptime" |
+ "01:05:51 up 26 days, 20:09, 2 users, load average: 0.54, 0.50, 0.51" |
+ indicates system uptime information |
+
+
+
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 0000000..1fd3ec2
--- /dev/null
+++ b/mkdocs.yml
@@ -0,0 +1,43 @@
+site_name: OPBNOS - PyAPI
+repo_url: https://github.com/AvizNetworks/opbnos-api
+theme:
+ name: readthedocs
+ favicon: _media/favicon.ico
+ features:
+ - content.action.edit
+ - content.code.copy
+ markdown_extensions:
+ - admonition
+ - pymdownx.details
+ - pymdownx.highlight:
+ anchor_linenums: true
+ - pymdownx.snippets
+ - pymdownx.superfences
+ - pymdownx.tabbed:
+ alternate_style: true
+ - pymdownx.extra:
+ markdown.extensions.tables
+nav:
+ - Overview: home.md
+ - Installation: installation.md
+ - OBPNOS APIs for OPB Devices Management:
+ - Interface:
+ - Port: port.md
+ - OPB Interface: opbinterface.md
+ - Port Channel: portchannel.md
+ - Flow: flow.md
+ - Counters: counters.md
+ - Syslog: syslog.md
+ - NTP: NTP.md
+ - ZTP: ZTP.md
+ - SNMP: snmp.md
+ - Time:
+ - Timezone: timezone.md
+ - Uptime: uptime.md
+ - Clock: clock.md
+ - Utilization:
+ - CPU Util: cpuUtil.md
+ - Memory Util: memUtil.md
+ - System:
+ - Boot Info: boot.md
+ - reboot: reboot.md