from typing import Optional
from wxc_sdk.api_child import ApiChild
from wxc_sdk.base import ApiModel
__all__ = ['LocationEmergencyServicesApi', 'LocationEmergencyCallNotification', 'LocationCallNotificationOrganization']
[docs]
class LocationCallNotificationOrganization(ApiModel):
#: When true sends an email to the specified email address when a call is made from this location to emergency
#: services.
#: example: True
emergency_call_notification_enabled: Optional[bool] = None
#: Send an emergency call notification email for all locations.
#: example: True
allow_email_notification_all_location_enabled: Optional[bool] = None
#: When `emergencyCallNotificationEnabled` is true, the emergency notification email is sent to the specified email
#: address.
#: example: test@gmail.com
email_address: Optional[str] = None
[docs]
class LocationEmergencyCallNotification(ApiModel):
#: When true sends an email to the specified email address when a call is made from this location to emergency
#: services.
#: example: True
emergency_call_notification_enabled: Optional[bool] = None
#: When `emergencyCallNotificationEnabled` is true, the emergency notification email is sent to the specified email
#: address.
#: example: callback@gmail.com
email_address: Optional[str] = None
#: All locations at organization level
customer: Optional[LocationCallNotificationOrganization] = None
def update(self) -> dict:
"""
Date for update
:meta private:
"""
return self.model_dump(mode='json', by_alias=True, exclude_unset=True, exclude={'customer'})
[docs]
class LocationEmergencyServicesApi(ApiChild, base='telephony/config/locations'):
"""
Emergency Call Notifications can be enabled at the organization level, allowing specified email addresses to
receive email notifications when an emergency call is made. Once activated at the organization level, individual
locations can configure this setting to direct notifications to specific email addresses. To comply with U.S.
Public Law 115-127, also known as Kari’s Law, any call that's made from within your organization to emergency
services must generate an email notification.
Viewing these organization settings requires a full or read-only administrator auth token with a scope
of `spark-admin:telephony_config_read`. Modifying these organization settings requires a full administrator auth
token with a scope of `spark-admin:telephony_config_write`.
"""
[docs]
def read_emergency_call_notification(self, location_id: str,
org_id: str = None) -> LocationEmergencyCallNotification:
"""
Get a Location Emergency Call Notification
Get location emergency call notification.
Emergency Call Notifications can be enabled at the organization level, allowing specified email addresses to
receive email notifications when an emergency call is made. Once activated at the organization level,
individual locations can configure this setting to direct notifications to specific email addresses. To comply
with U.S. Public Law 115-127, also known as Kari’s Law, any call that's made from within your organization to
emergency services must generate an email notification.
To retrieve location call notifications requires a full, user or read-only administrator or location
administrator auth token with a scope of `spark-admin:telephony_config_read`.
:param location_id: Retrieve Emergency Call Notification attributes for this location.
:type location_id: str
:param org_id: Retrieve Emergency Call Notification attributes for the location in this organization.
:type org_id: str
:rtype: :class:`LocationEmergencyCallNotification`
"""
params = {}
if org_id is not None:
params['orgId'] = org_id
url = self.ep(f'{location_id}/emergencyCallNotification')
data = super().get(url, params=params)
r = LocationEmergencyCallNotification.model_validate(data)
return r
[docs]
def update_emergency_call_notification(self, location_id: str, setting: LocationEmergencyCallNotification,
org_id: str = None):
"""
Update a location emergency call notification.
Once settings enabled at the organization level, the configured email address will receive emergency call
notifications for all locations; for specific location customization, users can navigate to Management >
Locations, select the Calling tab, and update the Emergency Call Notification settings.
Emergency Call Notifications can be enabled at the organization level, allowing specified email addresses to
receive email notifications when an emergency call is made. Once activated at the organization level,
individual locations can configure this setting to direct notifications to specific email addresses. To comply
with U.S. Public Law 115-127, also known as Kari’s Law, any call that's made from within your organization to
emergency services must generate an email notification.
To update location call notification requires a full, user or location administrator auth token with a scope of
`spark-admin:telephony_config_write`.
:param location_id: Update Emergency Call Notification attributes for this location.
:type location_id: str
:param setting: new settings
:type setting: LocationEmergencyCallNotification
:param org_id: Update Emergency Call Notification attributes for a location in this organization.
:type org_id: str
:rtype: None
"""
params = org_id and {'orgId': org_id} or None
body = setting.update()
url = self.ep(f'{location_id}/emergencyCallNotification')
super().put(url, params=params, json=body)