3
3
# Licensed under the MIT License. See License.txt in the project root for
4
4
# license information.
5
5
# --------------------------------------------------------------------------
6
+ from datetime import datetime
6
7
from typing import List , Optional , Union , TYPE_CHECKING
7
8
from typing_extensions import Literal
8
9
from ._generated .models import (
16
17
Choice as ChoiceInternal ,
17
18
ChannelAffinity as ChannelAffinityInternal ,
18
19
MediaStreamingSubscription as MediaStreamingSubscriptionInternal ,
19
- TranscriptionSubscription as TranscriptionSubscriptionInternal
20
+ TranscriptionSubscription as TranscriptionSubscriptionInternal ,
21
+ RecordingStorageInfo ,
22
+ Error
20
23
)
21
24
from ._shared .models import (
22
25
CommunicationIdentifier ,
25
28
)
26
29
from ._generated .models ._enums import PlaySourceType
27
30
from ._generated .models ._enums import RecordingStorageKind
31
+ from ._generated .models ._enums import CallSessionEndReason
28
32
from ._utils import (
29
33
deserialize_phone_identifier ,
30
34
deserialize_identifier ,
55
59
RemoveParticipantResponse as RemoveParticipantResultRest ,
56
60
TransferCallResponse as TransferParticipantResultRest ,
57
61
RecordingStateResponse as RecordingStateResultRest ,
62
+ RecordingResultResponse as RecordingResultRest ,
58
63
MuteParticipantsResult as MuteParticipantsResultRest ,
59
64
SendDtmfTonesResult as SendDtmfTonesResultRest ,
60
65
CancelAddParticipantResponse as CancelAddParticipantResultRest ,
@@ -713,7 +718,6 @@ def _from_generated(cls, call_connection_properties_generated: "CallConnectionPr
713
718
else None ,
714
719
)
715
720
716
-
717
721
class RecordingProperties :
718
722
"""Detailed recording properties of the call.
719
723
@@ -740,6 +744,80 @@ def _from_generated(cls, recording_state_result: "RecordingStateResultRest"):
740
744
recording_id = recording_state_result .recording_id , recording_state = recording_state_result .recording_state
741
745
)
742
746
747
+ class RecordingResult :
748
+ """Recording result data.
749
+ Variables are only populated by the server, and will be ignored when sending a request.
750
+ :ivar recording_id:
751
+ :vartype recording_id: str
752
+ :ivar recording_storage_info: Container for chunks.
753
+ :vartype recording_storage_info:
754
+ ~azure.communication.callautomation.models.RecordingStorageInfo
755
+ :ivar errors:
756
+ :vartype errors: list[~azure.communication.callautomation.models.Error]
757
+ :ivar recording_start_time:
758
+ :vartype recording_start_time: ~datetime.datetime
759
+ :ivar recording_duration_ms:
760
+ :vartype recording_duration_ms: int
761
+ :ivar session_end_reason: Known values are: "sessionStillOngoing", "callEnded",
762
+ "initiatorLeft", "handedOverOrTransferred", "maximumSessionTimeReached", "callStartTimeout",
763
+ "mediaTimeout", "audioStreamFailure", "allInstancesBusy", "teamsTokenConversionFailed",
764
+ "reportCallStateFailed", "reportCallStateFailedAndSessionMustBeDiscarded",
765
+ "couldNotRejoinCall", "invalidBotData", "couldNotStart",
766
+ "appHostedMediaFailureOutcomeWithError", "appHostedMediaFailureOutcomeGracefully",
767
+ "handedOverDueToMediaTimeout", "handedOverDueToAudioStreamFailure",
768
+ "speechRecognitionSessionNonRetriableError",
769
+ "speechRecognitionSessionRetriableErrorMaxRetryCountReached",
770
+ "handedOverDueToChunkCreationFailure", "chunkCreationFailed",
771
+ "handedOverDueToProcessingTimeout", "processingTimeout", and "transcriptObjectCreationFailed".
772
+ :vartype session_end_reason: str or
773
+ ~azure.communication.callautomation.models.CallSessionEndReason
774
+ :ivar recording_expiration_time:
775
+ :vartype recording_expiration_time: ~datetime.datetime
776
+ """
777
+
778
+ recording_id : Optional [str ]
779
+ """Id of this recording operation."""
780
+ recording_storage_info : Optional [RecordingStorageInfo ]
781
+ """recording storage info."""
782
+ errors : Optional [List [Error ]]
783
+ """Error."""
784
+ session_end_reason : Optional [Union [str , 'CallSessionEndReason' ]]
785
+ """session end reason."""
786
+ recording_start_time : Optional [datetime ]
787
+ """recording start time."""
788
+ recording_duration_ms : Optional [int ]
789
+ """recording duration ms."""
790
+ recording_expiration_time : Optional [datetime ]
791
+ """recording expiration time."""
792
+
793
+ def __init__ (
794
+ self , * , recording_id : Optional [str ] = None ,
795
+ recording_storage_info : Optional [RecordingStorageInfo ] = None ,
796
+ session_end_reason : Optional [Union [str , 'CallSessionEndReason' ]] = None ,
797
+ recording_start_time : Optional [datetime ] = None ,
798
+ recording_duration_ms : Optional [int ] = None ,
799
+ recording_expiration_time : Optional [datetime ] = None ,
800
+ errors : Optional [List [Error ]]
801
+ ):
802
+ self .recording_id = recording_id
803
+ self .recording_storage_info = recording_storage_info
804
+ self .session_end_reason = session_end_reason
805
+ self .recording_start_time = recording_start_time
806
+ self .recording_duration_ms = recording_duration_ms
807
+ self .recording_expiration_time = recording_expiration_time
808
+ self .errors = errors
809
+
810
+ @classmethod
811
+ def _from_generated (cls , recording_result : "RecordingResultRest" ):
812
+ return cls (
813
+ recording_id = recording_result .recording_id ,
814
+ recording_storage_info = recording_result .recording_storage_info ,
815
+ session_end_reason = recording_result .session_end_reason ,
816
+ recording_start_time = recording_result .recording_start_time ,
817
+ recording_duration_ms = recording_result .recording_duration_ms ,
818
+ recording_expiration_time = recording_result .recording_expiration_time ,
819
+ errors = recording_result .errors
820
+ )
743
821
744
822
class CallParticipant :
745
823
"""Details of an Azure Communication Service call participant.
0 commit comments