#!/usr/bin/env python3 """ Example script demonstrating Sigma team management functionality """ import sys import os sys.path.append(os.path.dirname(os.path.dirname(__file__))) from sigma_api_client import SigmaAPIClient from team_management import TeamManager from config import ConfigManager def main(): """ Example: Demonstrate team management capabilities """ try: # Load configuration config_manager = ConfigManager() sigma_config = config_manager.get_sigma_config() # Initialize API client and manager api_client = SigmaAPIClient(sigma_config) team_manager = TeamManager(api_client) print("Sigma Team Management Examples") print("=" * 40) # Example 1: List all teams print("\n1. Listing all teams...") teams = team_manager.list_teams() print(f"Found {len(teams)} teams:") for team in teams[:5]: # Show first 5 teams print(f" - {team.get('name', 'Unknown')} (ID: {team.get('teamId', 'N/A')})") if len(teams) > 5: print(f" ... and {len(teams) - 5} more teams") # Example 2: Get team details print("\n2. Getting team details...") if teams: sample_team = teams[0] team_name = sample_team.get('name', 'Unknown') team_summary = team_manager.get_team_summary(team_name) if 'error' not in team_summary: print(f"Team: {team_name}") print(f"Members: {team_summary['member_count']}") if team_summary['members']: print("Sample members:") for member in team_summary['members'][:3]: print(f" - {member['email']} ({member['account_type']})") # Example 3: Demonstrate adding users (simulation) print("\n3. Adding users to team (example)...") example_emails = ["user1@company.com", "user2@company.com"] example_team = "Data Analytics Team" print(f"To add users to '{example_team}':") print(f"Users: {', '.join(example_emails)}") print("Command: python manage_team_members.py add \"Data Analytics Team\" \"user1@company.com,user2@company.com\"") # Example 4: Show team search print("\n4. Finding team by name...") search_name = "Data Labs" # Use a team that likely exists found_team = team_manager.get_team_by_name(search_name) if found_team: print(f"āœ… Found team: {found_team['name']} (ID: {found_team['teamId']})") else: print(f"āŒ Team '{search_name}' not found") # Example 5: Show validation print("\n5. User validation example...") example_user_emails = ["user@company.com", "invalid@company.com"] print("Example user validation process:") for email in example_user_emails: print(f" Checking {email}...") # In real usage, this would validate against actual users print(f" (This would check if {email} exists in Sigma)") print("\nāœ… Team management examples completed!") print("\nAvailable commands:") print(" python manage_team_members.py list") print(" python manage_team_members.py show \"Team Name\"") print(" python manage_team_members.py add \"Team Name\" \"email1@company.com,email2@company.com\"") print(" python manage_team_members.py remove \"Team Name\" \"email1@company.com\"") except Exception as e: print(f"Error: {e}") print("\nPlease ensure your configuration is set up correctly.") print("Run: python config.py") if __name__ == "__main__": main()