Source code for netbird.resources.identity_providers

"""
Identity providers resource handler for NetBird API.
"""

from typing import Any, Dict, List

from ..models.identity_provider import IdentityProviderCreate, IdentityProviderUpdate
from .base import BaseResource


[docs] class IdentityProvidersResource(BaseResource): """Handler for NetBird identity providers API endpoints."""
[docs] def list(self) -> List[Dict[str, Any]]: """List all identity providers. Returns: List of identity provider dictionaries """ data = self.client.get("identity-providers") return self._parse_list_response(data)
[docs] def create(self, provider_data: IdentityProviderCreate) -> Dict[str, Any]: """Create a new identity provider. Args: provider_data: Identity provider creation data Returns: Created identity provider dictionary """ data = self.client.post( "identity-providers", data=provider_data.model_dump(exclude_unset=True), ) return self._parse_response(data)
[docs] def get(self, provider_id: str) -> Dict[str, Any]: """Retrieve a specific identity provider. Args: provider_id: Unique identity provider identifier Returns: Identity provider dictionary """ data = self.client.get(f"identity-providers/{provider_id}") return self._parse_response(data)
[docs] def update( self, provider_id: str, provider_data: IdentityProviderUpdate ) -> Dict[str, Any]: """Update an identity provider. Args: provider_id: Unique identity provider identifier provider_data: Identity provider update data Returns: Updated identity provider dictionary """ data = self.client.put( f"identity-providers/{provider_id}", data=provider_data.model_dump(exclude_unset=True), ) return self._parse_response(data)
[docs] def delete(self, provider_id: str) -> None: """Delete an identity provider. Args: provider_id: Unique identity provider identifier """ self.client.delete(f"identity-providers/{provider_id}")