Skip to content

Commit 5c77de2

Browse files
authored
Merge branch 'main' into copilot/fix-docfx-cross-reference-links
2 parents 2eab586 + 86e70b2 commit 5c77de2

3 files changed

Lines changed: 160 additions & 35 deletions

File tree

libraries/microsoft-agents-a365-notifications/microsoft_agents_a365/notifications/agent_notification.py

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,121 @@ async def handle_user_deleted(context, state, notification):
426426
"""
427427
return self.on_lifecycle_notification(AgentLifecycleEvent.USERDELETED, **kwargs)
428428

429+
def on_user_undeleted(
430+
self, **kwargs: Any
431+
) -> Callable[[AgentHandler], Callable[[TurnContext, TurnState], Awaitable[None]]]:
432+
"""Register a handler for user un-deletion lifecycle events.
433+
434+
This is a convenience decorator that registers a handler specifically for
435+
agentic user identity un-deletion events.
436+
437+
Args:
438+
**kwargs: Additional keyword arguments passed to the app's add_route method.
439+
440+
Returns:
441+
A decorator function that registers the handler with the application.
442+
443+
Example:
444+
```python
445+
@notifications.on_user_undeleted()
446+
async def handle_user_undeleted(context, state, notification):
447+
print("Agentic user identity un-deleted")
448+
```
449+
"""
450+
return self.on_lifecycle_notification(AgentLifecycleEvent.USERUNDELETED, **kwargs)
451+
452+
def on_user_updated(
453+
self, **kwargs: Any
454+
) -> Callable[[AgentHandler], Callable[[TurnContext, TurnState], Awaitable[None]]]:
455+
"""Register a handler for user updated lifecycle events.
456+
457+
This is a convenience decorator that registers a handler specifically for
458+
agentic user identity updated events.
459+
460+
Args:
461+
**kwargs: Additional keyword arguments passed to the app's add_route method.
462+
463+
Returns:
464+
A decorator function that registers the handler with the application.
465+
466+
Example:
467+
```python
468+
@notifications.on_user_updated()
469+
async def handle_user_updated(context, state, notification):
470+
print("Agentic user identity updated")
471+
```
472+
"""
473+
return self.on_lifecycle_notification(AgentLifecycleEvent.USERUPDATED, **kwargs)
474+
475+
def on_user_manager_updated(
476+
self, **kwargs: Any
477+
) -> Callable[[AgentHandler], Callable[[TurnContext, TurnState], Awaitable[None]]]:
478+
"""Register a handler for user manager updated lifecycle events.
479+
480+
This is a convenience decorator that registers a handler specifically for
481+
agentic user manager updated events.
482+
483+
Args:
484+
**kwargs: Additional keyword arguments passed to the app's add_route method.
485+
486+
Returns:
487+
A decorator function that registers the handler with the application.
488+
489+
Example:
490+
```python
491+
@notifications.on_user_manager_updated()
492+
async def handle_user_manager_updated(context, state, notification):
493+
print("Agentic user manager updated")
494+
```
495+
"""
496+
return self.on_lifecycle_notification(AgentLifecycleEvent.USERMANAGERUPDATED, **kwargs)
497+
498+
def on_user_enabled(
499+
self, **kwargs: Any
500+
) -> Callable[[AgentHandler], Callable[[TurnContext, TurnState], Awaitable[None]]]:
501+
"""Register a handler for user enabled lifecycle events.
502+
503+
This is a convenience decorator that registers a handler specifically for
504+
agentic user enabled events.
505+
506+
Args:
507+
**kwargs: Additional keyword arguments passed to the app's add_route method.
508+
509+
Returns:
510+
A decorator function that registers the handler with the application.
511+
512+
Example:
513+
```python
514+
@notifications.on_user_enabled()
515+
async def handle_user_enabled(context, state, notification):
516+
print("Agentic user enabled")
517+
```
518+
"""
519+
return self.on_lifecycle_notification(AgentLifecycleEvent.USERENABLED, **kwargs)
520+
521+
def on_user_disabled(
522+
self, **kwargs: Any
523+
) -> Callable[[AgentHandler], Callable[[TurnContext, TurnState], Awaitable[None]]]:
524+
"""Register a handler for user disabled lifecycle events.
525+
526+
This is a convenience decorator that registers a handler specifically for
527+
agentic user disabled events.
528+
529+
Args:
530+
**kwargs: Additional keyword arguments passed to the app's add_route method.
531+
532+
Returns:
533+
A decorator function that registers the handler with the application.
534+
535+
Example:
536+
```python
537+
@notifications.on_user_disabled()
538+
async def handle_user_disabled(context, state, notification):
539+
print("Agentic user disabled")
540+
```
541+
"""
542+
return self.on_lifecycle_notification(AgentLifecycleEvent.USERDISABLED, **kwargs)
543+
429544
@staticmethod
430545
def _normalize_subchannel(value: str | AgentSubChannel | None) -> str:
431546
"""Normalize a subchannel value to a lowercase string.

libraries/microsoft-agents-a365-notifications/microsoft_agents_a365/notifications/models/agent_lifecycle_event.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,18 @@ class AgentLifecycleEvent(str, Enum):
1515
USERWORKLOADONBOARDINGUPDATED: Event triggered when a user's workload
1616
onboarding status is updated.
1717
USERDELETED: Event triggered when an agentic user identity is deleted.
18+
USERUNDELETED: Event triggered when an agentic user identity is un-deleted.
19+
USERUPDATED: Event triggered when an agentic user identity is updated.
20+
USERMANAGERUPDATED: Event triggered when an agentic user's manager is updated.
21+
USERENABLED: Event triggered when an agentic user is enabled.
22+
USERDISABLED: Event triggered when an agentic user is disabled.
1823
"""
1924

2025
USERCREATED = "agenticuseridentitycreated"
2126
USERWORKLOADONBOARDINGUPDATED = "agenticuserworkloadonboardingupdated"
22-
USERDELETED = "agenticuseridentitydeleted"
27+
USERDELETED = "agenticuserdeleted"
28+
USERUNDELETED = "agenticuserundeleted"
29+
USERUPDATED = "agenticuseridentityupdated"
30+
USERMANAGERUPDATED = "agenticusermanagerupdated"
31+
USERENABLED = "agenticuserenabled"
32+
USERDISABLED = "agenticuserdisabled"

0 commit comments

Comments
 (0)