diff --git a/tech_docs/networking/meraki_api.md b/tech_docs/networking/meraki_api.md new file mode 100644 index 0000000..28fec04 --- /dev/null +++ b/tech_docs/networking/meraki_api.md @@ -0,0 +1,72 @@ +Here's a comprehensive list of all the topics Todd Simmons covers across the two transcripts you provided, categorized for clarity: + +**I. Cisco Meraki Specifics:** + +* **Meraki Dashboard Access & Configuration:** + * Accessing the Meraki dashboard. + * Enabling API access for an organization. + * Creating an API key. + * Understanding organization settings and IDs. + * Identifying network names and IDs within an organization. + * Viewing existing networks in the dashboard. + * Creating new networks via API (including required parameters like `orgId`, `name`, `productTypes`, `timeZone`, and optional `tags`, `notes`). + * Meraki product types (Appliance, Switch, Camera) and "combined networks." + * Meraki device data structure (e.g., `Lan IP` vs. `Wan ip1`/`Wan ip2`, `notes` section availability). + * Limitations of Meraki dashboard export (CSV, single tab, limited common data). + +**II. Python Programming & Libraries:** + +* **Core Python Concepts:** + * Variables and variable assignment. + * For loops for iterating through data. + * List manipulation (appending, unique values, list comprehension, popping, inserting). + * Dictionaries (printing using `p print`). + * String manipulation (joining list items with a delimiter). + * Conditional statements (`if/else`). + * Function calls (`.get()`, `.dashboard API()`, `.organizations.getOrganizationNetworks()`, `.createOrganizationNetwork()`, `.sheets.sort()`, `.join()`). + * Error handling/defaults (`n/a` for missing keys). +* **Python Libraries/Packages:** + * `os` (for environment variables). + * `pprint` (for pretty printing dictionaries/JSON). + * `meraki` (the official Cisco Meraki Python package). + * `requests` (mentioned as an alternative to `meraki` package). + * `decouple` (for secure configuration management, specifically `.env` files). + * `ic` (Ice Cream for debugging/printing, preferred over `print`). + * `pandas` (for data manipulation and Excel integration). + * `openpyxl` (engine used by pandas for Excel writing). +* **API Interaction & Best Practices:** + * Authenticating with API keys. + * Using environment variables for secure API key storage (`OS.environ.get()`). + * Suppressing API logging (`suppressed_logging=True`). + * Handling API rate limiting. + * Paginating API results (`total_pages='all'`). + * Converting API responses (JSON) to Python data structures. + +**III. Automation & Workflow:** + +* **Networking Automation:** The overarching theme of using Python to automate Meraki networking tasks. +* **Exporting Device Data:** + * Getting all devices within an organization via API. + * Writing API response data to JSON files. + * Processing raw JSON data to prepare for Excel export. +* **Excel Integration:** + * Creating Excel workbooks (`.xlsx` files). + * Creating multiple worksheets (tabs) within an Excel workbook based on network names. + * Dynamically generating Excel headers from device data keys. + * Writing data to specific sheets. + * Appending new data rows to existing sheets (`start_row=writer.sheets[sheet_name].max_row`). + * Overwriting vs. appending to an Excel file (`mode='w'` vs. `mode='a'`). + * Handling the existence of sheets (`if_sheet_exists='overlay'`). +* **Debugging & Troubleshooting:** + * Importance of API logs for debugging. + * Troubleshooting "invalid API key" issues (VS Code variable loading). + +**IV. General Advice & Personal Touches:** + +* **Community Engagement:** Special video request acknowledgment (Chris Krueger). +* **Encouragement:** "Hey nerds," "appreciate the likes, love the subscribes," "Happy New Year." +* **Personal Context:** Mention of moving to Memphis, wife's PA school. +* **GitHub:** Mention of linking code on GitHub. +* **Video Suggestions:** Encouraging viewers to suggest future video topics. + +This detailed breakdown highlights the breadth and depth of Todd Simmons's expertise in network automation with Meraki and Python. \ No newline at end of file