Spaces:
Build error
Build error
Validify-testbot-1
/
botbuilder-python
/libraries
/botbuilder-schema
/botbuilder
/schema
/_models_py3.py
| # Copyright (c) Microsoft Corporation. All rights reserved. | |
| # Licensed under the MIT License. | |
| from typing import List | |
| from botbuilder.schema._connector_client_enums import ActivityTypes | |
| from datetime import datetime | |
| from enum import Enum | |
| from msrest.serialization import Model | |
| from msrest.exceptions import HttpOperationError | |
| class ActivityEventNames(str, Enum): | |
| continue_conversation = "ContinueConversation" | |
| create_conversation = "CreateConversation" | |
| class ConversationReference(Model): | |
| """An object relating to a particular point in a conversation. | |
| :param activity_id: (Optional) ID of the activity to refer to | |
| :type activity_id: str | |
| :param user: (Optional) User participating in this conversation | |
| :type user: ~botframework.connector.models.ChannelAccount | |
| :param bot: Bot participating in this conversation | |
| :type bot: ~botframework.connector.models.ChannelAccount | |
| :param conversation: Conversation reference | |
| :type conversation: ~botframework.connector.models.ConversationAccount | |
| :param channel_id: Channel ID | |
| :type channel_id: str | |
| :param locale: A locale name for the contents of the text field. | |
| The locale name is a combination of an ISO 639 two- or three-letter | |
| culture code associated with a language and an ISO 3166 two-letter | |
| subculture code associated with a country or region. | |
| The locale name can also correspond to a valid BCP-47 language tag. | |
| :type locale: str | |
| :param service_url: Service endpoint where operations concerning the | |
| referenced conversation may be performed | |
| :type service_url: str | |
| """ | |
| _attribute_map = { | |
| "activity_id": {"key": "activityId", "type": "str"}, | |
| "user": {"key": "user", "type": "ChannelAccount"}, | |
| "bot": {"key": "bot", "type": "ChannelAccount"}, | |
| "conversation": {"key": "conversation", "type": "ConversationAccount"}, | |
| "channel_id": {"key": "channelId", "type": "str"}, | |
| "locale": {"key": "locale", "type": "str"}, | |
| "service_url": {"key": "serviceUrl", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| activity_id: str = None, | |
| user=None, | |
| bot=None, | |
| conversation=None, | |
| channel_id: str = None, | |
| locale: str = None, | |
| service_url: str = None, | |
| **kwargs | |
| ) -> None: | |
| super(ConversationReference, self).__init__(**kwargs) | |
| self.activity_id = activity_id | |
| self.user = user | |
| self.bot = bot | |
| self.conversation = conversation | |
| self.channel_id = channel_id | |
| self.locale = locale | |
| self.service_url = service_url | |
| class Mention(Model): | |
| """Mention information (entity type: "mention"). | |
| :param mentioned: The mentioned user | |
| :type mentioned: ~botframework.connector.models.ChannelAccount | |
| :param text: Sub Text which represents the mention (can be null or empty) | |
| :type text: str | |
| :param type: Type of this entity (RFC 3987 IRI) | |
| :type type: str | |
| """ | |
| _attribute_map = { | |
| "mentioned": {"key": "mentioned", "type": "ChannelAccount"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "type": {"key": "type", "type": "str"}, | |
| } | |
| def __init__( | |
| self, *, mentioned=None, text: str = None, type: str = None, **kwargs | |
| ) -> None: | |
| super(Mention, self).__init__(**kwargs) | |
| self.mentioned = mentioned | |
| self.text = text | |
| self.type = type | |
| class ResourceResponse(Model): | |
| """A response containing a resource ID. | |
| :param id: Id of the resource | |
| :type id: str | |
| """ | |
| _attribute_map = {"id": {"key": "id", "type": "str"}} | |
| def __init__(self, *, id: str = None, **kwargs) -> None: | |
| super(ResourceResponse, self).__init__(**kwargs) | |
| self.id = id | |
| class Activity(Model): | |
| """An Activity is the basic communication type for the Bot Framework 3.0 | |
| protocol. | |
| :param type: Contains the activity type. Possible values include: | |
| 'message', 'contactRelationUpdate', 'conversationUpdate', 'typing', | |
| 'endOfConversation', 'event', 'invoke', 'deleteUserData', 'messageUpdate', | |
| 'messageDelete', 'installationUpdate', 'messageReaction', 'suggestion', | |
| 'trace', 'handoff' | |
| :type type: str or ~botframework.connector.models.ActivityTypes | |
| :param id: Contains an ID that uniquely identifies the activity on the | |
| channel. | |
| :type id: str | |
| :param timestamp: Contains the date and time that the message was sent, in | |
| UTC, expressed in ISO-8601 format. | |
| :type timestamp: datetime | |
| :param local_timestamp: Contains the local date and time of the message | |
| expressed in ISO-8601 format. | |
| For example, 2016-09-23T13:07:49.4714686-07:00. | |
| :type local_timestamp: datetime | |
| :param local_timezone: Contains the name of the local timezone of the message, | |
| expressed in IANA Time Zone database format. | |
| For example, America/Los_Angeles. | |
| :type local_timezone: str | |
| :param service_url: Contains the URL that specifies the channel's service | |
| endpoint. Set by the channel. | |
| :type service_url: str | |
| :param channel_id: Contains an ID that uniquely identifies the channel. | |
| Set by the channel. | |
| :type channel_id: str | |
| :param from_property: Identifies the sender of the message. | |
| :type from_property: ~botframework.connector.models.ChannelAccount | |
| :param conversation: Identifies the conversation to which the activity | |
| belongs. | |
| :type conversation: ~botframework.connector.models.ConversationAccount | |
| :param recipient: Identifies the recipient of the message. | |
| :type recipient: ~botframework.connector.models.ChannelAccount | |
| :param text_format: Format of text fields Default:markdown. Possible | |
| values include: 'markdown', 'plain', 'xml' | |
| :type text_format: str or ~botframework.connector.models.TextFormatTypes | |
| :param attachment_layout: The layout hint for multiple attachments. | |
| Default: list. Possible values include: 'list', 'carousel' | |
| :type attachment_layout: str or | |
| ~botframework.connector.models.AttachmentLayoutTypes | |
| :param members_added: The collection of members added to the conversation. | |
| :type members_added: list[~botframework.connector.models.ChannelAccount] | |
| :param members_removed: The collection of members removed from the | |
| conversation. | |
| :type members_removed: list[~botframework.connector.models.ChannelAccount] | |
| :param reactions_added: The collection of reactions added to the | |
| conversation. | |
| :type reactions_added: | |
| list[~botframework.connector.models.MessageReaction] | |
| :param reactions_removed: The collection of reactions removed from the | |
| conversation. | |
| :type reactions_removed: | |
| list[~botframework.connector.models.MessageReaction] | |
| :param topic_name: The updated topic name of the conversation. | |
| :type topic_name: str | |
| :param history_disclosed: Indicates whether the prior history of the | |
| channel is disclosed. | |
| :type history_disclosed: bool | |
| :param locale: A locale name for the contents of the text field. | |
| The locale name is a combination of an ISO 639 two- or three-letter | |
| culture code associated with a language | |
| and an ISO 3166 two-letter subculture code associated with a country or | |
| region. | |
| The locale name can also correspond to a valid BCP-47 language tag. | |
| :type locale: str | |
| :param text: The text content of the message. | |
| :type text: str | |
| :param speak: The text to speak. | |
| :type speak: str | |
| :param input_hint: Indicates whether your bot is accepting, | |
| expecting, or ignoring user input after the message is delivered to the | |
| client. Possible values include: 'acceptingInput', 'ignoringInput', | |
| 'expectingInput' | |
| :type input_hint: str or ~botframework.connector.models.InputHints | |
| :param summary: The text to display if the channel cannot render cards. | |
| :type summary: str | |
| :param suggested_actions: The suggested actions for the activity. | |
| :type suggested_actions: ~botframework.connector.models.SuggestedActions | |
| :param attachments: Attachments | |
| :type attachments: list[~botframework.connector.models.Attachment] | |
| :param entities: Represents the entities that were mentioned in the | |
| message. | |
| :type entities: list[~botframework.connector.models.Entity] | |
| :param channel_data: Contains channel-specific content. | |
| :type channel_data: object | |
| :param action: Indicates whether the recipient of a contactRelationUpdate | |
| was added or removed from the sender's contact list. | |
| :type action: str | |
| :param reply_to_id: Contains the ID of the message to which this message | |
| is a reply. | |
| :type reply_to_id: str | |
| :param label: A descriptive label for the activity. | |
| :type label: str | |
| :param value_type: The type of the activity's value object. | |
| :type value_type: str | |
| :param value: A value that is associated with the activity. | |
| :type value: object | |
| :param name: The name of the operation associated with an invoke or event | |
| activity. | |
| :type name: str | |
| :param relates_to: A reference to another conversation or activity. | |
| :type relates_to: ~botframework.connector.models.ConversationReference | |
| :param code: The a code for endOfConversation activities that indicates | |
| why the conversation ended. Possible values include: 'unknown', | |
| 'completedSuccessfully', 'userCancelled', 'botTimedOut', | |
| 'botIssuedInvalidMessage', 'channelFailed' | |
| :type code: str or ~botframework.connector.models.EndOfConversationCodes | |
| :param expiration: The time at which the activity should be considered to | |
| be "expired" and should not be presented to the recipient. | |
| :type expiration: datetime | |
| :param importance: The importance of the activity. Possible values | |
| include: 'low', 'normal', 'high' | |
| :type importance: str or ~botframework.connector.models.ActivityImportance | |
| :param delivery_mode: A delivery hint to signal to the recipient alternate | |
| delivery paths for the activity. | |
| The default delivery mode is "default". Possible values include: 'normal', | |
| 'notification', 'expectReplies', 'ephemeral' | |
| :type delivery_mode: str or ~botframework.connector.models.DeliveryModes | |
| :param listen_for: List of phrases and references that speech and language | |
| priming systems should listen for | |
| :type listen_for: list[str] | |
| :param text_highlights: The collection of text fragments to highlight when | |
| the activity contains a ReplyToId value. | |
| :type text_highlights: list[~botframework.connector.models.TextHighlight] | |
| :param semantic_action: An optional programmatic action accompanying this | |
| request | |
| :type semantic_action: ~botframework.connector.models.SemanticAction | |
| :param caller_id: A string containing an IRI identifying the caller of a | |
| bot. This field is not intended to be transmitted over the wire, but is | |
| instead populated by bots and clients based on cryptographically | |
| verifiable data that asserts the identity of the callers (e.g. tokens). | |
| :type caller_id: str | |
| """ | |
| _attribute_map = { | |
| "type": {"key": "type", "type": "str"}, | |
| "id": {"key": "id", "type": "str"}, | |
| "timestamp": {"key": "timestamp", "type": "iso-8601"}, | |
| "local_timestamp": {"key": "localTimestamp", "type": "iso-8601"}, | |
| "local_timezone": {"key": "localTimezone", "type": "str"}, | |
| "service_url": {"key": "serviceUrl", "type": "str"}, | |
| "channel_id": {"key": "channelId", "type": "str"}, | |
| "from_property": {"key": "from", "type": "ChannelAccount"}, | |
| "conversation": {"key": "conversation", "type": "ConversationAccount"}, | |
| "recipient": {"key": "recipient", "type": "ChannelAccount"}, | |
| "text_format": {"key": "textFormat", "type": "str"}, | |
| "attachment_layout": {"key": "attachmentLayout", "type": "str"}, | |
| "members_added": {"key": "membersAdded", "type": "[ChannelAccount]"}, | |
| "members_removed": {"key": "membersRemoved", "type": "[ChannelAccount]"}, | |
| "reactions_added": {"key": "reactionsAdded", "type": "[MessageReaction]"}, | |
| "reactions_removed": {"key": "reactionsRemoved", "type": "[MessageReaction]"}, | |
| "topic_name": {"key": "topicName", "type": "str"}, | |
| "history_disclosed": {"key": "historyDisclosed", "type": "bool"}, | |
| "locale": {"key": "locale", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "speak": {"key": "speak", "type": "str"}, | |
| "input_hint": {"key": "inputHint", "type": "str"}, | |
| "summary": {"key": "summary", "type": "str"}, | |
| "suggested_actions": {"key": "suggestedActions", "type": "SuggestedActions"}, | |
| "attachments": {"key": "attachments", "type": "[Attachment]"}, | |
| "entities": {"key": "entities", "type": "[Entity]"}, | |
| "channel_data": {"key": "channelData", "type": "object"}, | |
| "action": {"key": "action", "type": "str"}, | |
| "reply_to_id": {"key": "replyToId", "type": "str"}, | |
| "label": {"key": "label", "type": "str"}, | |
| "value_type": {"key": "valueType", "type": "str"}, | |
| "value": {"key": "value", "type": "object"}, | |
| "name": {"key": "name", "type": "str"}, | |
| "relates_to": {"key": "relatesTo", "type": "ConversationReference"}, | |
| "code": {"key": "code", "type": "str"}, | |
| "expiration": {"key": "expiration", "type": "iso-8601"}, | |
| "importance": {"key": "importance", "type": "str"}, | |
| "delivery_mode": {"key": "deliveryMode", "type": "str"}, | |
| "listen_for": {"key": "listenFor", "type": "[str]"}, | |
| "text_highlights": {"key": "textHighlights", "type": "[TextHighlight]"}, | |
| "semantic_action": {"key": "semanticAction", "type": "SemanticAction"}, | |
| "caller_id": {"key": "callerId", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| type=None, | |
| id: str = None, | |
| timestamp=None, | |
| local_timestamp=None, | |
| local_timezone: str = None, | |
| service_url: str = None, | |
| channel_id: str = None, | |
| from_property=None, | |
| conversation=None, | |
| recipient=None, | |
| text_format=None, | |
| attachment_layout=None, | |
| members_added=None, | |
| members_removed=None, | |
| reactions_added=None, | |
| reactions_removed=None, | |
| topic_name: str = None, | |
| history_disclosed: bool = None, | |
| locale: str = None, | |
| text: str = None, | |
| speak: str = None, | |
| input_hint=None, | |
| summary: str = None, | |
| suggested_actions=None, | |
| attachments=None, | |
| entities=None, | |
| channel_data=None, | |
| action: str = None, | |
| reply_to_id: str = None, | |
| label: str = None, | |
| value_type: str = None, | |
| value=None, | |
| name: str = None, | |
| relates_to=None, | |
| code=None, | |
| expiration=None, | |
| importance=None, | |
| delivery_mode=None, | |
| listen_for=None, | |
| text_highlights=None, | |
| semantic_action=None, | |
| caller_id: str = None, | |
| **kwargs | |
| ) -> None: | |
| super(Activity, self).__init__(**kwargs) | |
| self.type = type | |
| self.id = id | |
| self.timestamp = timestamp | |
| self.local_timestamp = local_timestamp | |
| self.local_timezone = local_timezone | |
| self.service_url = service_url | |
| self.channel_id = channel_id | |
| self.from_property = from_property | |
| self.conversation = conversation | |
| self.recipient = recipient | |
| self.text_format = text_format | |
| self.attachment_layout = attachment_layout | |
| self.members_added = members_added | |
| self.members_removed = members_removed | |
| self.reactions_added = reactions_added | |
| self.reactions_removed = reactions_removed | |
| self.topic_name = topic_name | |
| self.history_disclosed = history_disclosed | |
| self.locale = locale | |
| self.text = text | |
| self.speak = speak | |
| self.input_hint = input_hint | |
| self.summary = summary | |
| self.suggested_actions = suggested_actions | |
| self.attachments = attachments | |
| self.entities = entities | |
| self.channel_data = channel_data | |
| self.action = action | |
| self.reply_to_id = reply_to_id | |
| self.label = label | |
| self.value_type = value_type | |
| self.value = value | |
| self.name = name | |
| self.relates_to = relates_to | |
| self.code = code | |
| self.expiration = expiration | |
| self.importance = importance | |
| self.delivery_mode = delivery_mode | |
| self.listen_for = listen_for | |
| self.text_highlights = text_highlights | |
| self.semantic_action = semantic_action | |
| self.caller_id = caller_id | |
| def apply_conversation_reference( | |
| self, reference: ConversationReference, is_incoming: bool = False | |
| ): | |
| """ | |
| Updates this activity with the delivery information from an existing ConversationReference | |
| :param reference: The existing conversation reference. | |
| :param is_incoming: Optional, True to treat the activity as an | |
| incoming activity, where the bot is the recipient; otherwise, False. | |
| Default is False, and the activity will show the bot as the sender. | |
| :returns: his activity, updated with the delivery information. | |
| .. remarks:: | |
| Call GetConversationReference on an incoming | |
| activity to get a conversation reference that you can then use to update an | |
| outgoing activity with the correct delivery information. | |
| """ | |
| self.channel_id = reference.channel_id | |
| self.service_url = reference.service_url | |
| self.conversation = reference.conversation | |
| if reference.locale is not None: | |
| self.locale = reference.locale | |
| if is_incoming: | |
| self.from_property = reference.user | |
| self.recipient = reference.bot | |
| if reference.activity_id is not None: | |
| self.id = reference.activity_id | |
| else: | |
| self.from_property = reference.bot | |
| self.recipient = reference.user | |
| if reference.activity_id is not None: | |
| self.reply_to_id = reference.activity_id | |
| return self | |
| def as_contact_relation_update_activity(self): | |
| """ | |
| Returns this activity as a ContactRelationUpdateActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as a message activity; or None. | |
| """ | |
| return ( | |
| self if self.__is_activity(ActivityTypes.contact_relation_update) else None | |
| ) | |
| def as_conversation_update_activity(self): | |
| """ | |
| Returns this activity as a ConversationUpdateActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as a conversation update activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.conversation_update) else None | |
| def as_end_of_conversation_activity(self): | |
| """ | |
| Returns this activity as an EndOfConversationActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as an end of conversation activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.end_of_conversation) else None | |
| def as_event_activity(self): | |
| """ | |
| Returns this activity as an EventActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as an event activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.event) else None | |
| def as_handoff_activity(self): | |
| """ | |
| Returns this activity as a HandoffActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as a handoff activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.handoff) else None | |
| def as_installation_update_activity(self): | |
| """ | |
| Returns this activity as an InstallationUpdateActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as an installation update activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.installation_update) else None | |
| def as_invoke_activity(self): | |
| """ | |
| Returns this activity as an InvokeActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as an invoke activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.invoke) else None | |
| def as_message_activity(self): | |
| """ | |
| Returns this activity as a MessageActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as a message activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.message) else None | |
| def as_message_delete_activity(self): | |
| """ | |
| Returns this activity as a MessageDeleteActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as a message delete request; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.message_delete) else None | |
| def as_message_reaction_activity(self): | |
| """ | |
| Returns this activity as a MessageReactionActivity object; | |
| or None, if this is not that type of activity. | |
| :return: This activity as a message reaction activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.message_reaction) else None | |
| def as_message_update_activity(self): | |
| """ | |
| Returns this activity as an MessageUpdateActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as a message update request; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.message_update) else None | |
| def as_suggestion_activity(self): | |
| """ | |
| Returns this activity as a SuggestionActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as a suggestion activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.suggestion) else None | |
| def as_trace_activity(self): | |
| """ | |
| Returns this activity as a TraceActivity object; | |
| or None, if this is not that type of activity. | |
| :returns: This activity as a trace activity; or None. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.trace) else None | |
| def as_typing_activity(self): | |
| """ | |
| Returns this activity as a TypingActivity object; | |
| or null, if this is not that type of activity. | |
| :returns: This activity as a typing activity; or null. | |
| """ | |
| return self if self.__is_activity(ActivityTypes.typing) else None | |
| def create_contact_relation_update_activity(): | |
| """ | |
| Creates an instance of the :class:`Activity` class as aContactRelationUpdateActivity object. | |
| :returns: The new contact relation update activity. | |
| """ | |
| return Activity(type=ActivityTypes.contact_relation_update) | |
| def create_conversation_update_activity(): | |
| """ | |
| Creates an instance of the :class:`Activity` class as a ConversationUpdateActivity object. | |
| :returns: The new conversation update activity. | |
| """ | |
| return Activity(type=ActivityTypes.conversation_update) | |
| def create_end_of_conversation_activity(): | |
| """ | |
| Creates an instance of the :class:`Activity` class as an EndOfConversationActivity object. | |
| :returns: The new end of conversation activity. | |
| """ | |
| return Activity(type=ActivityTypes.end_of_conversation) | |
| def create_event_activity(): | |
| """ | |
| Creates an instance of the :class:`Activity` class as an EventActivity object. | |
| :returns: The new event activity. | |
| """ | |
| return Activity(type=ActivityTypes.event) | |
| def create_handoff_activity(): | |
| """ | |
| Creates an instance of the :class:`Activity` class as a HandoffActivity object. | |
| :returns: The new handoff activity. | |
| """ | |
| return Activity(type=ActivityTypes.handoff) | |
| def create_invoke_activity(): | |
| """ | |
| Creates an instance of the :class:`Activity` class as an InvokeActivity object. | |
| :returns: The new invoke activity. | |
| """ | |
| return Activity(type=ActivityTypes.invoke) | |
| def create_message_activity(): | |
| """ | |
| Creates an instance of the :class:`Activity` class as a MessageActivity object. | |
| :returns: The new message activity. | |
| """ | |
| return Activity(type=ActivityTypes.message) | |
| def create_reply(self, text: str = None, locale: str = None): | |
| """ | |
| Creates a new message activity as a response to this activity. | |
| :param text: The text of the reply. | |
| :param locale: The language code for the text. | |
| :returns: The new message activity. | |
| .. remarks:: | |
| The new activity sets up routing information based on this activity. | |
| """ | |
| return Activity( | |
| type=ActivityTypes.message, | |
| timestamp=datetime.utcnow(), | |
| from_property=ChannelAccount( | |
| id=self.recipient.id if self.recipient else None, | |
| name=self.recipient.name if self.recipient else None, | |
| ), | |
| recipient=ChannelAccount( | |
| id=self.from_property.id if self.from_property else None, | |
| name=self.from_property.name if self.from_property else None, | |
| ), | |
| reply_to_id=self.id, | |
| service_url=self.service_url, | |
| channel_id=self.channel_id, | |
| conversation=ConversationAccount( | |
| is_group=self.conversation.is_group, | |
| id=self.conversation.id, | |
| name=self.conversation.name, | |
| ), | |
| text=text if text else "", | |
| locale=locale if locale else self.locale, | |
| attachments=[], | |
| entities=[], | |
| ) | |
| def create_trace( | |
| self, name: str, value: object = None, value_type: str = None, label: str = None | |
| ): | |
| """ | |
| Creates a new trace activity based on this activity. | |
| :param name: The name of the trace operation to create. | |
| :param value: Optional, the content for this trace operation. | |
| :param value_type: Optional, identifier for the format of the value | |
| Default is the name of type of the value. | |
| :param label: Optional, a descriptive label for this trace operation. | |
| :returns: The new trace activity. | |
| """ | |
| if not value_type and value: | |
| value_type = type(value) | |
| return Activity( | |
| type=ActivityTypes.trace, | |
| timestamp=datetime.utcnow(), | |
| from_property=ChannelAccount( | |
| id=self.recipient.id if self.recipient else None, | |
| name=self.recipient.name if self.recipient else None, | |
| ), | |
| recipient=ChannelAccount( | |
| id=self.from_property.id if self.from_property else None, | |
| name=self.from_property.name if self.from_property else None, | |
| ), | |
| reply_to_id=self.id, | |
| service_url=self.service_url, | |
| channel_id=self.channel_id, | |
| conversation=ConversationAccount( | |
| is_group=self.conversation.is_group, | |
| id=self.conversation.id, | |
| name=self.conversation.name, | |
| ), | |
| name=name, | |
| label=label, | |
| value_type=value_type, | |
| value=value, | |
| ).as_trace_activity() | |
| def create_trace_activity( | |
| name: str, value: object = None, value_type: str = None, label: str = None | |
| ): | |
| """ | |
| Creates an instance of the :class:`Activity` class as a TraceActivity object. | |
| :param name: The name of the trace operation to create. | |
| :param value: Optional, the content for this trace operation. | |
| :param value_type: Optional, identifier for the format of the value. | |
| Default is the name of type of the value. | |
| :param label: Optional, a descriptive label for this trace operation. | |
| :returns: The new trace activity. | |
| """ | |
| if not value_type and value: | |
| value_type = type(value) | |
| return Activity( | |
| type=ActivityTypes.trace, | |
| name=name, | |
| label=label, | |
| value_type=value_type, | |
| value=value, | |
| ) | |
| def create_typing_activity(): | |
| """ | |
| Creates an instance of the :class:`Activity` class as a TypingActivity object. | |
| :returns: The new typing activity. | |
| """ | |
| return Activity(type=ActivityTypes.typing) | |
| def get_conversation_reference(self): | |
| """ | |
| Creates a ConversationReference based on this activity. | |
| :returns: A conversation reference for the conversation that contains this activity. | |
| """ | |
| return ConversationReference( | |
| activity_id=self.id, | |
| user=self.from_property, | |
| bot=self.recipient, | |
| conversation=self.conversation, | |
| channel_id=self.channel_id, | |
| locale=self.locale, | |
| service_url=self.service_url, | |
| ) | |
| def get_mentions(self) -> List[Mention]: | |
| """ | |
| Resolves the mentions from the entities of this activity. | |
| :returns: The array of mentions; or an empty array, if none are found. | |
| .. remarks:: | |
| This method is defined on the :class:`Activity` class, but is only intended | |
| for use with a message activity, where the activity Activity.Type is set to | |
| ActivityTypes.Message. | |
| """ | |
| _list = self.entities | |
| return [x for x in _list if str(x.type).lower() == "mention"] | |
| def get_reply_conversation_reference( | |
| self, reply: ResourceResponse | |
| ) -> ConversationReference: | |
| """ | |
| Create a ConversationReference based on this Activity's Conversation info | |
| and the ResourceResponse from sending an activity. | |
| :param reply: ResourceResponse returned from send_activity. | |
| :return: A ConversationReference that can be stored and used later to delete or update the activity. | |
| """ | |
| reference = self.get_conversation_reference() | |
| reference.activity_id = reply.id | |
| return reference | |
| def has_content(self) -> bool: | |
| """ | |
| Indicates whether this activity has content. | |
| :returns: True, if this activity has any content to send; otherwise, false. | |
| .. remarks:: | |
| This method is defined on the :class:`Activity` class, but is only intended | |
| for use with a message activity, where the activity Activity.Type is set to | |
| ActivityTypes.Message. | |
| """ | |
| if self.text and self.text.strip(): | |
| return True | |
| if self.summary and self.summary.strip(): | |
| return True | |
| if self.attachments and len(self.attachments) > 0: | |
| return True | |
| if self.channel_data: | |
| return True | |
| return False | |
| def is_from_streaming_connection(self) -> bool: | |
| """ | |
| Determine if the Activity was sent via an Http/Https connection or Streaming | |
| This can be determined by looking at the service_url property: | |
| (1) All channels that send messages via http/https are not streaming | |
| (2) Channels that send messages via streaming have a ServiceUrl that does not begin with http/https. | |
| :returns: True if the Activity originated from a streaming connection. | |
| """ | |
| if self.service_url: | |
| return not self.service_url.lower().startswith("http") | |
| return False | |
| def __is_activity(self, activity_type: str) -> bool: | |
| """ | |
| Indicates whether this activity is of a specified activity type. | |
| :param activity_type: The activity type to check for. | |
| :return: True if this activity is of the specified activity type; otherwise, False. | |
| """ | |
| if self.type is None: | |
| return False | |
| type_attribute = str(self.type).lower() | |
| activity_type = str(activity_type).lower() | |
| result = type_attribute.startswith(activity_type) | |
| if result: | |
| result = len(type_attribute) == len(activity_type) | |
| if not result: | |
| result = ( | |
| len(type_attribute) > len(activity_type) | |
| and type_attribute[len(activity_type)] == "/" | |
| ) | |
| return result | |
| class AnimationCard(Model): | |
| """An animation card (Ex: gif or short video clip). | |
| :param title: Title of this card | |
| :type title: str | |
| :param subtitle: Subtitle of this card | |
| :type subtitle: str | |
| :param text: Text of this card | |
| :type text: str | |
| :param image: Thumbnail placeholder | |
| :type image: ~botframework.connector.models.ThumbnailUrl | |
| :param media: Media URLs for this card. When this field contains more than | |
| one URL, each URL is an alternative format of the same content. | |
| :type media: list[~botframework.connector.models.MediaUrl] | |
| :param buttons: Actions on this card | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| :param shareable: This content may be shared with others (default:true) | |
| :type shareable: bool | |
| :param autoloop: Should the client loop playback at end of content | |
| (default:true) | |
| :type autoloop: bool | |
| :param autostart: Should the client automatically start playback of media | |
| in this card (default:true) | |
| :type autostart: bool | |
| :param aspect: Aspect ratio of thumbnail/media placeholder. Allowed values | |
| are "16:9" and "4:3" | |
| :type aspect: str | |
| :param duration: Describes the length of the media content without | |
| requiring a receiver to open the content. Formatted as an ISO 8601 | |
| Duration field. | |
| :type duration: str | |
| :param value: Supplementary parameter for this card | |
| :type value: object | |
| """ | |
| _attribute_map = { | |
| "title": {"key": "title", "type": "str"}, | |
| "subtitle": {"key": "subtitle", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "image": {"key": "image", "type": "ThumbnailUrl"}, | |
| "media": {"key": "media", "type": "[MediaUrl]"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| "shareable": {"key": "shareable", "type": "bool"}, | |
| "autoloop": {"key": "autoloop", "type": "bool"}, | |
| "autostart": {"key": "autostart", "type": "bool"}, | |
| "aspect": {"key": "aspect", "type": "str"}, | |
| "duration": {"key": "duration", "type": "str"}, | |
| "value": {"key": "value", "type": "object"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| title: str = None, | |
| subtitle: str = None, | |
| text: str = None, | |
| image=None, | |
| media=None, | |
| buttons=None, | |
| shareable: bool = None, | |
| autoloop: bool = None, | |
| autostart: bool = None, | |
| aspect: str = None, | |
| duration: str = None, | |
| value=None, | |
| **kwargs | |
| ) -> None: | |
| super(AnimationCard, self).__init__(**kwargs) | |
| self.title = title | |
| self.subtitle = subtitle | |
| self.text = text | |
| self.image = image | |
| self.media = media | |
| self.buttons = buttons | |
| self.shareable = shareable | |
| self.autoloop = autoloop | |
| self.autostart = autostart | |
| self.aspect = aspect | |
| self.duration = duration | |
| self.value = value | |
| class Attachment(Model): | |
| """An attachment within an activity. | |
| :param content_type: mimetype/Contenttype for the file | |
| :type content_type: str | |
| :param content_url: Content Url | |
| :type content_url: str | |
| :param content: Embedded content | |
| :type content: object | |
| :param name: (OPTIONAL) The name of the attachment | |
| :type name: str | |
| :param thumbnail_url: (OPTIONAL) Thumbnail associated with attachment | |
| :type thumbnail_url: str | |
| """ | |
| _attribute_map = { | |
| "content_type": {"key": "contentType", "type": "str"}, | |
| "content_url": {"key": "contentUrl", "type": "str"}, | |
| "content": {"key": "content", "type": "object"}, | |
| "name": {"key": "name", "type": "str"}, | |
| "thumbnail_url": {"key": "thumbnailUrl", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| content_type: str = None, | |
| content_url: str = None, | |
| content=None, | |
| name: str = None, | |
| thumbnail_url: str = None, | |
| **kwargs | |
| ) -> None: | |
| super(Attachment, self).__init__(**kwargs) | |
| self.content_type = content_type | |
| self.content_url = content_url | |
| self.content = content | |
| self.name = name | |
| self.thumbnail_url = thumbnail_url | |
| class AttachmentData(Model): | |
| """Attachment data. | |
| :param type: Content-Type of the attachment | |
| :type type: str | |
| :param name: Name of the attachment | |
| :type name: str | |
| :param original_base64: Attachment content | |
| :type original_base64: bytearray | |
| :param thumbnail_base64: Attachment thumbnail | |
| :type thumbnail_base64: bytearray | |
| """ | |
| _attribute_map = { | |
| "type": {"key": "type", "type": "str"}, | |
| "name": {"key": "name", "type": "str"}, | |
| "original_base64": {"key": "originalBase64", "type": "bytearray"}, | |
| "thumbnail_base64": {"key": "thumbnailBase64", "type": "bytearray"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| type: str = None, | |
| name: str = None, | |
| original_base64: bytearray = None, | |
| thumbnail_base64: bytearray = None, | |
| **kwargs | |
| ) -> None: | |
| super(AttachmentData, self).__init__(**kwargs) | |
| self.type = type | |
| self.name = name | |
| self.original_base64 = original_base64 | |
| self.thumbnail_base64 = thumbnail_base64 | |
| class AttachmentInfo(Model): | |
| """Metadata for an attachment. | |
| :param name: Name of the attachment | |
| :type name: str | |
| :param type: ContentType of the attachment | |
| :type type: str | |
| :param views: attachment views | |
| :type views: list[~botframework.connector.models.AttachmentView] | |
| """ | |
| _attribute_map = { | |
| "name": {"key": "name", "type": "str"}, | |
| "type": {"key": "type", "type": "str"}, | |
| "views": {"key": "views", "type": "[AttachmentView]"}, | |
| } | |
| def __init__( | |
| self, *, name: str = None, type: str = None, views=None, **kwargs | |
| ) -> None: | |
| super(AttachmentInfo, self).__init__(**kwargs) | |
| self.name = name | |
| self.type = type | |
| self.views = views | |
| class AttachmentView(Model): | |
| """Attachment View name and size. | |
| :param view_id: Id of the attachment | |
| :type view_id: str | |
| :param size: Size of the attachment | |
| :type size: int | |
| """ | |
| _attribute_map = { | |
| "view_id": {"key": "viewId", "type": "str"}, | |
| "size": {"key": "size", "type": "int"}, | |
| } | |
| def __init__(self, *, view_id: str = None, size: int = None, **kwargs) -> None: | |
| super(AttachmentView, self).__init__(**kwargs) | |
| self.view_id = view_id | |
| self.size = size | |
| class AudioCard(Model): | |
| """Audio card. | |
| :param title: Title of this card | |
| :type title: str | |
| :param subtitle: Subtitle of this card | |
| :type subtitle: str | |
| :param text: Text of this card | |
| :type text: str | |
| :param image: Thumbnail placeholder | |
| :type image: ~botframework.connector.models.ThumbnailUrl | |
| :param media: Media URLs for this card. When this field contains more than | |
| one URL, each URL is an alternative format of the same content. | |
| :type media: list[~botframework.connector.models.MediaUrl] | |
| :param buttons: Actions on this card | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| :param shareable: This content may be shared with others (default:true) | |
| :type shareable: bool | |
| :param autoloop: Should the client loop playback at end of content | |
| (default:true) | |
| :type autoloop: bool | |
| :param autostart: Should the client automatically start playback of media | |
| in this card (default:true) | |
| :type autostart: bool | |
| :param aspect: Aspect ratio of thumbnail/media placeholder. Allowed values | |
| are "16:9" and "4:3" | |
| :type aspect: str | |
| :param duration: Describes the length of the media content without | |
| requiring a receiver to open the content. Formatted as an ISO 8601 | |
| Duration field. | |
| :type duration: str | |
| :param value: Supplementary parameter for this card | |
| :type value: object | |
| """ | |
| _attribute_map = { | |
| "title": {"key": "title", "type": "str"}, | |
| "subtitle": {"key": "subtitle", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "image": {"key": "image", "type": "ThumbnailUrl"}, | |
| "media": {"key": "media", "type": "[MediaUrl]"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| "shareable": {"key": "shareable", "type": "bool"}, | |
| "autoloop": {"key": "autoloop", "type": "bool"}, | |
| "autostart": {"key": "autostart", "type": "bool"}, | |
| "aspect": {"key": "aspect", "type": "str"}, | |
| "duration": {"key": "duration", "type": "str"}, | |
| "value": {"key": "value", "type": "object"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| title: str = None, | |
| subtitle: str = None, | |
| text: str = None, | |
| image=None, | |
| media=None, | |
| buttons=None, | |
| shareable: bool = None, | |
| autoloop: bool = None, | |
| autostart: bool = None, | |
| aspect: str = None, | |
| duration: str = None, | |
| value=None, | |
| **kwargs | |
| ) -> None: | |
| super(AudioCard, self).__init__(**kwargs) | |
| self.title = title | |
| self.subtitle = subtitle | |
| self.text = text | |
| self.image = image | |
| self.media = media | |
| self.buttons = buttons | |
| self.shareable = shareable | |
| self.autoloop = autoloop | |
| self.autostart = autostart | |
| self.aspect = aspect | |
| self.duration = duration | |
| self.value = value | |
| class BasicCard(Model): | |
| """A basic card. | |
| :param title: Title of the card | |
| :type title: str | |
| :param subtitle: Subtitle of the card | |
| :type subtitle: str | |
| :param text: Text for the card | |
| :type text: str | |
| :param images: Array of images for the card | |
| :type images: list[~botframework.connector.models.CardImage] | |
| :param buttons: Set of actions applicable to the current card | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| :param tap: This action will be activated when user taps on the card | |
| itself | |
| :type tap: ~botframework.connector.models.CardAction | |
| """ | |
| _attribute_map = { | |
| "title": {"key": "title", "type": "str"}, | |
| "subtitle": {"key": "subtitle", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "images": {"key": "images", "type": "[CardImage]"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| "tap": {"key": "tap", "type": "CardAction"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| title: str = None, | |
| subtitle: str = None, | |
| text: str = None, | |
| images=None, | |
| buttons=None, | |
| tap=None, | |
| **kwargs | |
| ) -> None: | |
| super(BasicCard, self).__init__(**kwargs) | |
| self.title = title | |
| self.subtitle = subtitle | |
| self.text = text | |
| self.images = images | |
| self.buttons = buttons | |
| self.tap = tap | |
| class CardAction(Model): | |
| """A clickable action. | |
| :param type: The type of action implemented by this button. Possible | |
| values include: 'openUrl', 'imBack', 'postBack', 'playAudio', 'playVideo', | |
| 'showImage', 'downloadFile', 'signin', 'call', 'messageBack' | |
| :type type: str or ~botframework.connector.models.ActionTypes | |
| :param title: Text description which appears on the button | |
| :type title: str | |
| :param image: Image URL which will appear on the button, next to text | |
| label | |
| :type image: str | |
| :param text: Text for this action | |
| :type text: str | |
| :param display_text: (Optional) text to display in the chat feed if the | |
| button is clicked | |
| :type display_text: str | |
| :param value: Supplementary parameter for action. Content of this property | |
| depends on the ActionType | |
| :type value: object | |
| :param channel_data: Channel-specific data associated with this action | |
| :type channel_data: object | |
| :param image_alt_text: Alternate image text to be used in place of the `image` field | |
| :type image_alt_text: str | |
| """ | |
| _attribute_map = { | |
| "type": {"key": "type", "type": "str"}, | |
| "title": {"key": "title", "type": "str"}, | |
| "image": {"key": "image", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "display_text": {"key": "displayText", "type": "str"}, | |
| "value": {"key": "value", "type": "object"}, | |
| "channel_data": {"key": "channelData", "type": "object"}, | |
| "image_alt_text": {"key": "imageAltText", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| type=None, | |
| title: str = None, | |
| image: str = None, | |
| text: str = None, | |
| display_text: str = None, | |
| value=None, | |
| channel_data=None, | |
| image_alt_text: str = None, | |
| **kwargs | |
| ) -> None: | |
| super(CardAction, self).__init__(**kwargs) | |
| self.type = type | |
| self.title = title | |
| self.image = image | |
| self.text = text | |
| self.display_text = display_text | |
| self.value = value | |
| self.channel_data = channel_data | |
| self.image_alt_text = image_alt_text | |
| class CardImage(Model): | |
| """An image on a card. | |
| :param url: URL thumbnail image for major content property | |
| :type url: str | |
| :param alt: Image description intended for screen readers | |
| :type alt: str | |
| :param tap: Action assigned to specific Attachment | |
| :type tap: ~botframework.connector.models.CardAction | |
| """ | |
| _attribute_map = { | |
| "url": {"key": "url", "type": "str"}, | |
| "alt": {"key": "alt", "type": "str"}, | |
| "tap": {"key": "tap", "type": "CardAction"}, | |
| } | |
| def __init__(self, *, url: str = None, alt: str = None, tap=None, **kwargs) -> None: | |
| super(CardImage, self).__init__(**kwargs) | |
| self.url = url | |
| self.alt = alt | |
| self.tap = tap | |
| class ChannelAccount(Model): | |
| """Channel account information needed to route a message. | |
| :param id: Channel id for the user or bot on this channel (Example: | |
| joe@smith.com, or @joesmith or 123456) | |
| :type id: str | |
| :param name: Display friendly name | |
| :type name: str | |
| :param aad_object_id: This account's object ID within Azure Active | |
| Directory (AAD) | |
| :type aad_object_id: str | |
| :param role: Role of the entity behind the account (Example: User, Bot, | |
| etc.). Possible values include: 'user', 'bot' | |
| :type role: str or ~botframework.connector.models.RoleTypes | |
| """ | |
| _attribute_map = { | |
| "id": {"key": "id", "type": "str"}, | |
| "name": {"key": "name", "type": "str"}, | |
| "aad_object_id": {"key": "aadObjectId", "type": "str"}, | |
| "role": {"key": "role", "type": "str"}, | |
| "properties": {"key": "properties", "type": "object"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| id: str = None, | |
| name: str = None, | |
| aad_object_id: str = None, | |
| role=None, | |
| properties=None, | |
| **kwargs | |
| ) -> None: | |
| super(ChannelAccount, self).__init__(**kwargs) | |
| self.id = id | |
| self.name = name | |
| self.aad_object_id = aad_object_id | |
| self.role = role | |
| self.properties = properties | |
| class ConversationAccount(Model): | |
| """Conversation account represents the identity of the conversation within a channel. | |
| :param is_group: Indicates whether the conversation contains more than two | |
| participants at the time the activity was generated | |
| :type is_group: bool | |
| :param conversation_type: Indicates the type of the conversation in | |
| channels that distinguish between conversation types | |
| :type conversation_type: str | |
| :param id: Channel id for the user or bot on this channel (Example: | |
| joe@smith.com, or @joesmith or 123456) | |
| :type id: str | |
| :param name: Display friendly name | |
| :type name: str | |
| :param aad_object_id: This account's object ID within Azure Active | |
| Directory (AAD) | |
| :type aad_object_id: str | |
| :param role: Role of the entity behind the account (Example: User, Bot, Skill | |
| etc.). Possible values include: 'user', 'bot', 'skill' | |
| :type role: str or ~botframework.connector.models.RoleTypes | |
| :param tenant_id: This conversation's tenant ID | |
| :type tenant_id: str | |
| :param properties: This conversation's properties | |
| :type properties: object | |
| """ | |
| _attribute_map = { | |
| "is_group": {"key": "isGroup", "type": "bool"}, | |
| "conversation_type": {"key": "conversationType", "type": "str"}, | |
| "id": {"key": "id", "type": "str"}, | |
| "name": {"key": "name", "type": "str"}, | |
| "aad_object_id": {"key": "aadObjectId", "type": "str"}, | |
| "role": {"key": "role", "type": "str"}, | |
| "tenant_id": {"key": "tenantID", "type": "str"}, | |
| "properties": {"key": "properties", "type": "object"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| is_group: bool = None, | |
| conversation_type: str = None, | |
| id: str = None, | |
| name: str = None, | |
| aad_object_id: str = None, | |
| role=None, | |
| tenant_id=None, | |
| properties=None, | |
| **kwargs | |
| ) -> None: | |
| super(ConversationAccount, self).__init__(**kwargs) | |
| self.is_group = is_group | |
| self.conversation_type = conversation_type | |
| self.id = id | |
| self.name = name | |
| self.aad_object_id = aad_object_id | |
| self.role = role | |
| self.tenant_id = tenant_id | |
| self.properties = properties | |
| class ConversationMembers(Model): | |
| """Conversation and its members. | |
| :param id: Conversation ID | |
| :type id: str | |
| :param members: List of members in this conversation | |
| :type members: list[~botframework.connector.models.ChannelAccount] | |
| """ | |
| _attribute_map = { | |
| "id": {"key": "id", "type": "str"}, | |
| "members": {"key": "members", "type": "[ChannelAccount]"}, | |
| } | |
| def __init__(self, *, id: str = None, members=None, **kwargs) -> None: | |
| super(ConversationMembers, self).__init__(**kwargs) | |
| self.id = id | |
| self.members = members | |
| class ConversationParameters(Model): | |
| """Parameters for creating a new conversation. | |
| :param is_group: IsGroup | |
| :type is_group: bool | |
| :param bot: The bot address for this conversation | |
| :type bot: ~botframework.connector.models.ChannelAccount | |
| :param members: Members to add to the conversation | |
| :type members: list[~botframework.connector.models.ChannelAccount] | |
| :param topic_name: (Optional) Topic of the conversation (if supported by | |
| the channel) | |
| :type topic_name: str | |
| :param activity: (Optional) When creating a new conversation, use this | |
| activity as the initial message to the conversation | |
| :type activity: ~botframework.connector.models.Activity | |
| :param channel_data: Channel specific payload for creating the | |
| conversation | |
| :type channel_data: object | |
| :param tenant_id: (Optional) The tenant ID in which the conversation should be created | |
| :type tenant_id: str | |
| """ | |
| _attribute_map = { | |
| "is_group": {"key": "isGroup", "type": "bool"}, | |
| "bot": {"key": "bot", "type": "ChannelAccount"}, | |
| "members": {"key": "members", "type": "[ChannelAccount]"}, | |
| "topic_name": {"key": "topicName", "type": "str"}, | |
| "activity": {"key": "activity", "type": "Activity"}, | |
| "channel_data": {"key": "channelData", "type": "object"}, | |
| "tenant_id": {"key": "tenantID", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| is_group: bool = None, | |
| bot=None, | |
| members=None, | |
| topic_name: str = None, | |
| activity=None, | |
| channel_data=None, | |
| tenant_id=None, | |
| **kwargs | |
| ) -> None: | |
| super(ConversationParameters, self).__init__(**kwargs) | |
| self.is_group = is_group | |
| self.bot = bot | |
| self.members = members | |
| self.topic_name = topic_name | |
| self.activity = activity | |
| self.channel_data = channel_data | |
| self.tenant_id = tenant_id | |
| class ConversationResourceResponse(Model): | |
| """A response containing a resource. | |
| :param activity_id: ID of the Activity (if sent) | |
| :type activity_id: str | |
| :param service_url: Service endpoint where operations concerning the | |
| conversation may be performed | |
| :type service_url: str | |
| :param id: Id of the resource | |
| :type id: str | |
| """ | |
| _attribute_map = { | |
| "activity_id": {"key": "activityId", "type": "str"}, | |
| "service_url": {"key": "serviceUrl", "type": "str"}, | |
| "id": {"key": "id", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| activity_id: str = None, | |
| service_url: str = None, | |
| id: str = None, | |
| **kwargs | |
| ) -> None: | |
| super(ConversationResourceResponse, self).__init__(**kwargs) | |
| self.activity_id = activity_id | |
| self.service_url = service_url | |
| self.id = id | |
| class ConversationsResult(Model): | |
| """Conversations result. | |
| :param continuation_token: Paging token | |
| :type continuation_token: str | |
| :param conversations: List of conversations | |
| :type conversations: | |
| list[~botframework.connector.models.ConversationMembers] | |
| """ | |
| _attribute_map = { | |
| "continuation_token": {"key": "continuationToken", "type": "str"}, | |
| "conversations": {"key": "conversations", "type": "[ConversationMembers]"}, | |
| } | |
| def __init__( | |
| self, *, continuation_token: str = None, conversations=None, **kwargs | |
| ) -> None: | |
| super(ConversationsResult, self).__init__(**kwargs) | |
| self.continuation_token = continuation_token | |
| self.conversations = conversations | |
| class ExpectedReplies(Model): | |
| """ExpectedReplies. | |
| :param activities: A collection of Activities that conforms to the | |
| ExpectedReplies schema. | |
| :type activities: list[~botframework.connector.models.Activity] | |
| """ | |
| _attribute_map = {"activities": {"key": "activities", "type": "[Activity]"}} | |
| def __init__(self, *, activities=None, **kwargs) -> None: | |
| super(ExpectedReplies, self).__init__(**kwargs) | |
| self.activities = activities | |
| class Entity(Model): | |
| """Metadata object pertaining to an activity. | |
| :param type: Type of this entity (RFC 3987 IRI) | |
| :type type: str | |
| """ | |
| _attribute_map = {"type": {"key": "type", "type": "str"}} | |
| def __init__(self, *, type: str = None, **kwargs) -> None: | |
| super(Entity, self).__init__(**kwargs) | |
| self.type = type | |
| class Error(Model): | |
| """Object representing error information. | |
| :param code: Error code | |
| :type code: str | |
| :param message: Error message | |
| :type message: str | |
| :param inner_http_error: Error from inner http call | |
| :type inner_http_error: ~botframework.connector.models.InnerHttpError | |
| """ | |
| _attribute_map = { | |
| "code": {"key": "code", "type": "str"}, | |
| "message": {"key": "message", "type": "str"}, | |
| "inner_http_error": {"key": "innerHttpError", "type": "InnerHttpError"}, | |
| } | |
| def __init__( | |
| self, *, code: str = None, message: str = None, inner_http_error=None, **kwargs | |
| ) -> None: | |
| super(Error, self).__init__(**kwargs) | |
| self.code = code | |
| self.message = message | |
| self.inner_http_error = inner_http_error | |
| class ErrorResponse(Model): | |
| """An HTTP API response. | |
| :param error: Error message | |
| :type error: ~botframework.connector.models.Error | |
| """ | |
| _attribute_map = {"error": {"key": "error", "type": "Error"}} | |
| def __init__(self, *, error=None, **kwargs) -> None: | |
| super(ErrorResponse, self).__init__(**kwargs) | |
| self.error = error | |
| class ErrorResponseException(HttpOperationError): | |
| """Server responsed with exception of type: 'ErrorResponse'. | |
| :param deserialize: A deserializer | |
| :param response: Server response to be deserialized. | |
| """ | |
| def __init__(self, deserialize, response, *args): | |
| super(ErrorResponseException, self).__init__( | |
| deserialize, response, "ErrorResponse", *args | |
| ) | |
| class Fact(Model): | |
| """Set of key-value pairs. Advantage of this section is that key and value | |
| properties will be | |
| rendered with default style information with some delimiter between them. | |
| So there is no need for developer to specify style information. | |
| :param key: The key for this Fact | |
| :type key: str | |
| :param value: The value for this Fact | |
| :type value: str | |
| """ | |
| _attribute_map = { | |
| "key": {"key": "key", "type": "str"}, | |
| "value": {"key": "value", "type": "str"}, | |
| } | |
| def __init__(self, *, key: str = None, value: str = None, **kwargs) -> None: | |
| super(Fact, self).__init__(**kwargs) | |
| self.key = key | |
| self.value = value | |
| class GeoCoordinates(Model): | |
| """GeoCoordinates (entity type: "https://schema.org/GeoCoordinates"). | |
| :param elevation: Elevation of the location [WGS | |
| 84](https://en.wikipedia.org/wiki/World_Geodetic_System) | |
| :type elevation: float | |
| :param latitude: Latitude of the location [WGS | |
| 84](https://en.wikipedia.org/wiki/World_Geodetic_System) | |
| :type latitude: float | |
| :param longitude: Longitude of the location [WGS | |
| 84](https://en.wikipedia.org/wiki/World_Geodetic_System) | |
| :type longitude: float | |
| :param type: The type of the thing | |
| :type type: str | |
| :param name: The name of the thing | |
| :type name: str | |
| """ | |
| _attribute_map = { | |
| "elevation": {"key": "elevation", "type": "float"}, | |
| "latitude": {"key": "latitude", "type": "float"}, | |
| "longitude": {"key": "longitude", "type": "float"}, | |
| "type": {"key": "type", "type": "str"}, | |
| "name": {"key": "name", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| elevation: float = None, | |
| latitude: float = None, | |
| longitude: float = None, | |
| type: str = None, | |
| name: str = None, | |
| **kwargs | |
| ) -> None: | |
| super(GeoCoordinates, self).__init__(**kwargs) | |
| self.elevation = elevation | |
| self.latitude = latitude | |
| self.longitude = longitude | |
| self.type = type | |
| self.name = name | |
| class HeroCard(Model): | |
| """A Hero card (card with a single, large image). | |
| :param title: Title of the card | |
| :type title: str | |
| :param subtitle: Subtitle of the card | |
| :type subtitle: str | |
| :param text: Text for the card | |
| :type text: str | |
| :param images: Array of images for the card | |
| :type images: list[~botframework.connector.models.CardImage] | |
| :param buttons: Set of actions applicable to the current card | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| :param tap: This action will be activated when user taps on the card | |
| itself | |
| :type tap: ~botframework.connector.models.CardAction | |
| """ | |
| _attribute_map = { | |
| "title": {"key": "title", "type": "str"}, | |
| "subtitle": {"key": "subtitle", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "images": {"key": "images", "type": "[CardImage]"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| "tap": {"key": "tap", "type": "CardAction"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| title: str = None, | |
| subtitle: str = None, | |
| text: str = None, | |
| images=None, | |
| buttons=None, | |
| tap=None, | |
| **kwargs | |
| ) -> None: | |
| super(HeroCard, self).__init__(**kwargs) | |
| self.title = title | |
| self.subtitle = subtitle | |
| self.text = text | |
| self.images = images | |
| self.buttons = buttons | |
| self.tap = tap | |
| class InnerHttpError(Model): | |
| """Object representing inner http error. | |
| :param status_code: HttpStatusCode from failed request | |
| :type status_code: int | |
| :param body: Body from failed request | |
| :type body: object | |
| """ | |
| _attribute_map = { | |
| "status_code": {"key": "statusCode", "type": "int"}, | |
| "body": {"key": "body", "type": "object"}, | |
| } | |
| def __init__(self, *, status_code: int = None, body=None, **kwargs) -> None: | |
| super(InnerHttpError, self).__init__(**kwargs) | |
| self.status_code = status_code | |
| self.body = body | |
| class InvokeResponse(Model): | |
| """ | |
| Tuple class containing an HTTP Status Code and a JSON serializable | |
| object. The HTTP Status code is, in the invoke activity scenario, what will | |
| be set in the resulting POST. The Body of the resulting POST will be | |
| JSON serialized content. | |
| The body content is defined by the producer. The caller must know what | |
| the content is and deserialize as needed. | |
| """ | |
| _attribute_map = { | |
| "status": {"key": "status", "type": "int"}, | |
| "body": {"key": "body", "type": "object"}, | |
| } | |
| def __init__(self, *, status: int = None, body: object = None, **kwargs): | |
| """ | |
| Gets or sets the HTTP status and/or body code for the response | |
| :param status: The HTTP status code. | |
| :param body: The JSON serializable body content for the response. This object | |
| must be serializable by the core Python json routines. The caller is responsible | |
| for serializing more complex/nested objects into native classes (lists and | |
| dictionaries of strings are acceptable). | |
| """ | |
| super().__init__(**kwargs) | |
| self.status = status | |
| self.body = body | |
| def is_successful_status_code(self) -> bool: | |
| """ | |
| Gets a value indicating whether the invoke response was successful. | |
| :return: A value that indicates if the HTTP response was successful. true if status is in | |
| the Successful range (200-299); otherwise false. | |
| """ | |
| return 200 <= self.status <= 299 | |
| class MediaCard(Model): | |
| """Media card. | |
| :param title: Title of this card | |
| :type title: str | |
| :param subtitle: Subtitle of this card | |
| :type subtitle: str | |
| :param text: Text of this card | |
| :type text: str | |
| :param image: Thumbnail placeholder | |
| :type image: ~botframework.connector.models.ThumbnailUrl | |
| :param media: Media URLs for this card. When this field contains more than | |
| one URL, each URL is an alternative format of the same content. | |
| :type media: list[~botframework.connector.models.MediaUrl] | |
| :param buttons: Actions on this card | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| :param shareable: This content may be shared with others (default:true) | |
| :type shareable: bool | |
| :param autoloop: Should the client loop playback at end of content | |
| (default:true) | |
| :type autoloop: bool | |
| :param autostart: Should the client automatically start playback of media | |
| in this card (default:true) | |
| :type autostart: bool | |
| :param aspect: Aspect ratio of thumbnail/media placeholder. Allowed values | |
| are "16:9" and "4:3" | |
| :type aspect: str | |
| :param duration: Describes the length of the media content without | |
| requiring a receiver to open the content. Formatted as an ISO 8601 | |
| Duration field. | |
| :type duration: str | |
| :param value: Supplementary parameter for this card | |
| :type value: object | |
| """ | |
| _attribute_map = { | |
| "title": {"key": "title", "type": "str"}, | |
| "subtitle": {"key": "subtitle", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "image": {"key": "image", "type": "ThumbnailUrl"}, | |
| "media": {"key": "media", "type": "[MediaUrl]"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| "shareable": {"key": "shareable", "type": "bool"}, | |
| "autoloop": {"key": "autoloop", "type": "bool"}, | |
| "autostart": {"key": "autostart", "type": "bool"}, | |
| "aspect": {"key": "aspect", "type": "str"}, | |
| "duration": {"key": "duration", "type": "str"}, | |
| "value": {"key": "value", "type": "object"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| title: str = None, | |
| subtitle: str = None, | |
| text: str = None, | |
| image=None, | |
| media=None, | |
| buttons=None, | |
| shareable: bool = None, | |
| autoloop: bool = None, | |
| autostart: bool = None, | |
| aspect: str = None, | |
| duration: str = None, | |
| value=None, | |
| **kwargs | |
| ) -> None: | |
| super(MediaCard, self).__init__(**kwargs) | |
| self.title = title | |
| self.subtitle = subtitle | |
| self.text = text | |
| self.image = image | |
| self.media = media | |
| self.buttons = buttons | |
| self.shareable = shareable | |
| self.autoloop = autoloop | |
| self.autostart = autostart | |
| self.aspect = aspect | |
| self.duration = duration | |
| self.value = value | |
| class MediaEventValue(Model): | |
| """Supplementary parameter for media events. | |
| :param card_value: Callback parameter specified in the Value field of the | |
| MediaCard that originated this event | |
| :type card_value: object | |
| """ | |
| _attribute_map = {"card_value": {"key": "cardValue", "type": "object"}} | |
| def __init__(self, *, card_value=None, **kwargs) -> None: | |
| super(MediaEventValue, self).__init__(**kwargs) | |
| self.card_value = card_value | |
| class MediaUrl(Model): | |
| """Media URL. | |
| :param url: Url for the media | |
| :type url: str | |
| :param profile: Optional profile hint to the client to differentiate | |
| multiple MediaUrl objects from each other | |
| :type profile: str | |
| """ | |
| _attribute_map = { | |
| "url": {"key": "url", "type": "str"}, | |
| "profile": {"key": "profile", "type": "str"}, | |
| } | |
| def __init__(self, *, url: str = None, profile: str = None, **kwargs) -> None: | |
| super(MediaUrl, self).__init__(**kwargs) | |
| self.url = url | |
| self.profile = profile | |
| class MessageReaction(Model): | |
| """Message reaction object. | |
| :param type: Message reaction type. Possible values include: 'like', | |
| 'plusOne' | |
| :type type: str or ~botframework.connector.models.MessageReactionTypes | |
| """ | |
| _attribute_map = {"type": {"key": "type", "type": "str"}} | |
| def __init__(self, *, type=None, **kwargs) -> None: | |
| super(MessageReaction, self).__init__(**kwargs) | |
| self.type = type | |
| class OAuthCard(Model): | |
| """A card representing a request to perform a sign in via OAuth. | |
| :param text: Text for signin request | |
| :type text: str | |
| :param connection_name: The name of the registered connection | |
| :type connection_name: str | |
| :param buttons: Action to use to perform signin | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| """ | |
| _attribute_map = { | |
| "text": {"key": "text", "type": "str"}, | |
| "connection_name": {"key": "connectionName", "type": "str"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| "token_exchange_resource": {"key": "tokenExchangeResource", "type": "object"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| text: str = None, | |
| connection_name: str = None, | |
| buttons=None, | |
| token_exchange_resource=None, | |
| **kwargs | |
| ) -> None: | |
| super(OAuthCard, self).__init__(**kwargs) | |
| self.text = text | |
| self.connection_name = connection_name | |
| self.buttons = buttons | |
| self.token_exchange_resource = token_exchange_resource | |
| class PagedMembersResult(Model): | |
| """Page of members. | |
| :param continuation_token: Paging token | |
| :type continuation_token: str | |
| :param members: The Channel Accounts. | |
| :type members: list[~botframework.connector.models.ChannelAccount] | |
| """ | |
| _attribute_map = { | |
| "continuation_token": {"key": "continuationToken", "type": "str"}, | |
| "members": {"key": "members", "type": "[ChannelAccount]"}, | |
| } | |
| def __init__( | |
| self, *, continuation_token: str = None, members=None, **kwargs | |
| ) -> None: | |
| super(PagedMembersResult, self).__init__(**kwargs) | |
| self.continuation_token = continuation_token | |
| self.members = members | |
| class Place(Model): | |
| """Place (entity type: "https://schema.org/Place"). | |
| :param address: Address of the place (may be `string` or complex object of | |
| type `PostalAddress`) | |
| :type address: object | |
| :param geo: Geo coordinates of the place (may be complex object of type | |
| `GeoCoordinates` or `GeoShape`) | |
| :type geo: object | |
| :param has_map: Map to the place (may be `string` (URL) or complex object | |
| of type `Map`) | |
| :type has_map: object | |
| :param type: The type of the thing | |
| :type type: str | |
| :param name: The name of the thing | |
| :type name: str | |
| """ | |
| _attribute_map = { | |
| "address": {"key": "address", "type": "object"}, | |
| "geo": {"key": "geo", "type": "object"}, | |
| "has_map": {"key": "hasMap", "type": "object"}, | |
| "type": {"key": "type", "type": "str"}, | |
| "name": {"key": "name", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| address=None, | |
| geo=None, | |
| has_map=None, | |
| type: str = None, | |
| name: str = None, | |
| **kwargs | |
| ) -> None: | |
| super(Place, self).__init__(**kwargs) | |
| self.address = address | |
| self.geo = geo | |
| self.has_map = has_map | |
| self.type = type | |
| self.name = name | |
| class ReceiptCard(Model): | |
| """A receipt card. | |
| :param title: Title of the card | |
| :type title: str | |
| :param facts: Array of Fact objects | |
| :type facts: list[~botframework.connector.models.Fact] | |
| :param items: Array of Receipt Items | |
| :type items: list[~botframework.connector.models.ReceiptItem] | |
| :param tap: This action will be activated when user taps on the card | |
| :type tap: ~botframework.connector.models.CardAction | |
| :param total: Total amount of money paid (or to be paid) | |
| :type total: str | |
| :param tax: Total amount of tax paid (or to be paid) | |
| :type tax: str | |
| :param vat: Total amount of VAT paid (or to be paid) | |
| :type vat: str | |
| :param buttons: Set of actions applicable to the current card | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| """ | |
| _attribute_map = { | |
| "title": {"key": "title", "type": "str"}, | |
| "facts": {"key": "facts", "type": "[Fact]"}, | |
| "items": {"key": "items", "type": "[ReceiptItem]"}, | |
| "tap": {"key": "tap", "type": "CardAction"}, | |
| "total": {"key": "total", "type": "str"}, | |
| "tax": {"key": "tax", "type": "str"}, | |
| "vat": {"key": "vat", "type": "str"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| title: str = None, | |
| facts=None, | |
| items=None, | |
| tap=None, | |
| total: str = None, | |
| tax: str = None, | |
| vat: str = None, | |
| buttons=None, | |
| **kwargs | |
| ) -> None: | |
| super(ReceiptCard, self).__init__(**kwargs) | |
| self.title = title | |
| self.facts = facts | |
| self.items = items | |
| self.tap = tap | |
| self.total = total | |
| self.tax = tax | |
| self.vat = vat | |
| self.buttons = buttons | |
| class ReceiptItem(Model): | |
| """An item on a receipt card. | |
| :param title: Title of the Card | |
| :type title: str | |
| :param subtitle: Subtitle appears just below Title field, differs from | |
| Title in font styling only | |
| :type subtitle: str | |
| :param text: Text field appears just below subtitle, differs from Subtitle | |
| in font styling only | |
| :type text: str | |
| :param image: Image | |
| :type image: ~botframework.connector.models.CardImage | |
| :param price: Amount with currency | |
| :type price: str | |
| :param quantity: Number of items of given kind | |
| :type quantity: str | |
| :param tap: This action will be activated when user taps on the Item | |
| bubble. | |
| :type tap: ~botframework.connector.models.CardAction | |
| """ | |
| _attribute_map = { | |
| "title": {"key": "title", "type": "str"}, | |
| "subtitle": {"key": "subtitle", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "image": {"key": "image", "type": "CardImage"}, | |
| "price": {"key": "price", "type": "str"}, | |
| "quantity": {"key": "quantity", "type": "str"}, | |
| "tap": {"key": "tap", "type": "CardAction"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| title: str = None, | |
| subtitle: str = None, | |
| text: str = None, | |
| image=None, | |
| price: str = None, | |
| quantity: str = None, | |
| tap=None, | |
| **kwargs | |
| ) -> None: | |
| super(ReceiptItem, self).__init__(**kwargs) | |
| self.title = title | |
| self.subtitle = subtitle | |
| self.text = text | |
| self.image = image | |
| self.price = price | |
| self.quantity = quantity | |
| self.tap = tap | |
| class SemanticAction(Model): | |
| """Represents a reference to a programmatic action. | |
| :param id: ID of this action | |
| :type id: str | |
| :param entities: Entities associated with this action | |
| :type entities: dict[str, ~botframework.connector.models.Entity] | |
| :param state: State of this action. Allowed values: `start`, `continue`, `done` | |
| :type state: str or ~botframework.connector.models.SemanticActionStates | |
| """ | |
| _attribute_map = { | |
| "id": {"key": "id", "type": "str"}, | |
| "entities": {"key": "entities", "type": "{Entity}"}, | |
| "state": {"key": "state", "type": "str"}, | |
| } | |
| def __init__(self, *, id: str = None, entities=None, state=None, **kwargs) -> None: | |
| super(SemanticAction, self).__init__(**kwargs) | |
| self.id = id | |
| self.entities = entities | |
| self.state = state | |
| class SigninCard(Model): | |
| """A card representing a request to sign in. | |
| :param text: Text for signin request | |
| :type text: str | |
| :param buttons: Action to use to perform signin | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| """ | |
| _attribute_map = { | |
| "text": {"key": "text", "type": "str"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| } | |
| def __init__(self, *, text: str = None, buttons=None, **kwargs) -> None: | |
| super(SigninCard, self).__init__(**kwargs) | |
| self.text = text | |
| self.buttons = buttons | |
| class SuggestedActions(Model): | |
| """SuggestedActions that can be performed. | |
| :param to: Ids of the recipients that the actions should be shown to. | |
| These Ids are relative to the channelId and a subset of all recipients of | |
| the activity | |
| :type to: list[str] | |
| :param actions: Actions that can be shown to the user | |
| :type actions: list[~botframework.connector.models.CardAction] | |
| """ | |
| _attribute_map = { | |
| "to": {"key": "to", "type": "[str]"}, | |
| "actions": {"key": "actions", "type": "[CardAction]"}, | |
| } | |
| def __init__(self, *, to=None, actions=None, **kwargs) -> None: | |
| super(SuggestedActions, self).__init__(**kwargs) | |
| self.to = to | |
| self.actions = actions | |
| class TextHighlight(Model): | |
| """Refers to a substring of content within another field. | |
| :param text: Defines the snippet of text to highlight | |
| :type text: str | |
| :param occurrence: Occurrence of the text field within the referenced | |
| text, if multiple exist. | |
| :type occurrence: int | |
| """ | |
| _attribute_map = { | |
| "text": {"key": "text", "type": "str"}, | |
| "occurrence": {"key": "occurrence", "type": "int"}, | |
| } | |
| def __init__(self, *, text: str = None, occurrence: int = None, **kwargs) -> None: | |
| super(TextHighlight, self).__init__(**kwargs) | |
| self.text = text | |
| self.occurrence = occurrence | |
| class Thing(Model): | |
| """Thing (entity type: "https://schema.org/Thing"). | |
| :param type: The type of the thing | |
| :type type: str | |
| :param name: The name of the thing | |
| :type name: str | |
| """ | |
| _attribute_map = { | |
| "type": {"key": "type", "type": "str"}, | |
| "name": {"key": "name", "type": "str"}, | |
| } | |
| def __init__(self, *, type: str = None, name: str = None, **kwargs) -> None: | |
| super(Thing, self).__init__(**kwargs) | |
| self.type = type | |
| self.name = name | |
| class ThumbnailCard(Model): | |
| """A thumbnail card (card with a single, small thumbnail image). | |
| :param title: Title of the card | |
| :type title: str | |
| :param subtitle: Subtitle of the card | |
| :type subtitle: str | |
| :param text: Text for the card | |
| :type text: str | |
| :param images: Array of images for the card | |
| :type images: list[~botframework.connector.models.CardImage] | |
| :param buttons: Set of actions applicable to the current card | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| :param tap: This action will be activated when user taps on the card | |
| itself | |
| :type tap: ~botframework.connector.models.CardAction | |
| """ | |
| _attribute_map = { | |
| "title": {"key": "title", "type": "str"}, | |
| "subtitle": {"key": "subtitle", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "images": {"key": "images", "type": "[CardImage]"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| "tap": {"key": "tap", "type": "CardAction"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| title: str = None, | |
| subtitle: str = None, | |
| text: str = None, | |
| images=None, | |
| buttons=None, | |
| tap=None, | |
| **kwargs | |
| ) -> None: | |
| super(ThumbnailCard, self).__init__(**kwargs) | |
| self.title = title | |
| self.subtitle = subtitle | |
| self.text = text | |
| self.images = images | |
| self.buttons = buttons | |
| self.tap = tap | |
| class ThumbnailUrl(Model): | |
| """Thumbnail URL. | |
| :param url: URL pointing to the thumbnail to use for media content | |
| :type url: str | |
| :param alt: HTML alt text to include on this thumbnail image | |
| :type alt: str | |
| """ | |
| _attribute_map = { | |
| "url": {"key": "url", "type": "str"}, | |
| "alt": {"key": "alt", "type": "str"}, | |
| } | |
| def __init__(self, *, url: str = None, alt: str = None, **kwargs) -> None: | |
| super(ThumbnailUrl, self).__init__(**kwargs) | |
| self.url = url | |
| self.alt = alt | |
| class TokenExchangeInvokeRequest(Model): | |
| """TokenExchangeInvokeRequest. | |
| :param id: The id from the OAuthCard. | |
| :type id: str | |
| :param connection_name: The connection name. | |
| :type connection_name: str | |
| :param token: The user token that can be exchanged. | |
| :type token: str | |
| :param properties: Extension data for overflow of properties. | |
| :type properties: dict[str, object] | |
| """ | |
| _attribute_map = { | |
| "id": {"key": "id", "type": "str"}, | |
| "connection_name": {"key": "connectionName", "type": "str"}, | |
| "token": {"key": "token", "type": "str"}, | |
| "properties": {"key": "properties", "type": "{object}"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| id: str = None, | |
| connection_name: str = None, | |
| token: str = None, | |
| properties=None, | |
| **kwargs | |
| ) -> None: | |
| super(TokenExchangeInvokeRequest, self).__init__(**kwargs) | |
| self.id = id | |
| self.connection_name = connection_name | |
| self.token = token | |
| self.properties = properties | |
| class TokenExchangeInvokeResponse(Model): | |
| """TokenExchangeInvokeResponse. | |
| :param id: The id from the OAuthCard. | |
| :type id: str | |
| :param connection_name: The connection name. | |
| :type connection_name: str | |
| :param failure_detail: The details of why the token exchange failed. | |
| :type failure_detail: str | |
| :param properties: Extension data for overflow of properties. | |
| :type properties: dict[str, object] | |
| """ | |
| _attribute_map = { | |
| "id": {"key": "id", "type": "str"}, | |
| "connection_name": {"key": "connectionName", "type": "str"}, | |
| "failure_detail": {"key": "failureDetail", "type": "str"}, | |
| "properties": {"key": "properties", "type": "{object}"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| id: str = None, | |
| connection_name: str = None, | |
| failure_detail: str = None, | |
| properties=None, | |
| **kwargs | |
| ) -> None: | |
| super(TokenExchangeInvokeResponse, self).__init__(**kwargs) | |
| self.id = id | |
| self.connection_name = connection_name | |
| self.failure_detail = failure_detail | |
| self.properties = properties | |
| class TokenExchangeState(Model): | |
| """TokenExchangeState | |
| :param connection_name: The connection name that was used. | |
| :type connection_name: str | |
| :param conversation: Gets or sets a reference to the conversation. | |
| :type conversation: ~botframework.connector.models.ConversationReference | |
| :param relates_to: Gets or sets a reference to a related parent conversation for this token exchange. | |
| :type relates_to: ~botframework.connector.models.ConversationReference | |
| :param bot_ur: The URL of the bot messaging endpoint. | |
| :type bot_ur: str | |
| :param ms_app_id: The bot's registered application ID. | |
| :type ms_app_id: str | |
| """ | |
| _attribute_map = { | |
| "connection_name": {"key": "connectionName", "type": "str"}, | |
| "conversation": {"key": "conversation", "type": "ConversationReference"}, | |
| "relates_to": {"key": "relatesTo", "type": "ConversationReference"}, | |
| "bot_url": {"key": "connectionName", "type": "str"}, | |
| "ms_app_id": {"key": "msAppId", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| connection_name: str = None, | |
| conversation=None, | |
| relates_to=None, | |
| bot_url: str = None, | |
| ms_app_id: str = None, | |
| **kwargs | |
| ) -> None: | |
| super(TokenExchangeState, self).__init__(**kwargs) | |
| self.connection_name = connection_name | |
| self.conversation = conversation | |
| self.relates_to = relates_to | |
| self.bot_url = bot_url | |
| self.ms_app_id = ms_app_id | |
| class TokenRequest(Model): | |
| """A request to receive a user token. | |
| :param provider: The provider to request a user token from | |
| :type provider: str | |
| :param settings: A collection of settings for the specific provider for | |
| this request | |
| :type settings: dict[str, object] | |
| """ | |
| _attribute_map = { | |
| "provider": {"key": "provider", "type": "str"}, | |
| "settings": {"key": "settings", "type": "{object}"}, | |
| } | |
| def __init__(self, *, provider: str = None, settings=None, **kwargs) -> None: | |
| super(TokenRequest, self).__init__(**kwargs) | |
| self.provider = provider | |
| self.settings = settings | |
| class TokenResponse(Model): | |
| """A response that includes a user token. | |
| :param connection_name: The connection name | |
| :type connection_name: str | |
| :param token: The user token | |
| :type token: str | |
| :param expiration: Expiration for the token, in ISO 8601 format (e.g. | |
| "2007-04-05T14:30Z") | |
| :type expiration: str | |
| :param channel_id: The channelId of the TokenResponse | |
| :type channel_id: str | |
| """ | |
| _attribute_map = { | |
| "connection_name": {"key": "connectionName", "type": "str"}, | |
| "token": {"key": "token", "type": "str"}, | |
| "expiration": {"key": "expiration", "type": "str"}, | |
| "channel_id": {"key": "channelId", "type": "str"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| connection_name: str = None, | |
| token: str = None, | |
| expiration: str = None, | |
| channel_id: str = None, | |
| **kwargs | |
| ) -> None: | |
| super(TokenResponse, self).__init__(**kwargs) | |
| self.connection_name = connection_name | |
| self.token = token | |
| self.expiration = expiration | |
| self.channel_id = channel_id | |
| class Transcript(Model): | |
| """Transcript. | |
| :param activities: A collection of Activities that conforms to the | |
| Transcript schema. | |
| :type activities: list[~botframework.connector.models.Activity] | |
| """ | |
| _attribute_map = {"activities": {"key": "activities", "type": "[Activity]"}} | |
| def __init__(self, *, activities=None, **kwargs) -> None: | |
| super(Transcript, self).__init__(**kwargs) | |
| self.activities = activities | |
| class VideoCard(Model): | |
| """Video card. | |
| :param title: Title of this card | |
| :type title: str | |
| :param subtitle: Subtitle of this card | |
| :type subtitle: str | |
| :param text: Text of this card | |
| :type text: str | |
| :param image: Thumbnail placeholder | |
| :type image: ~botframework.connector.models.ThumbnailUrl | |
| :param media: Media URLs for this card. When this field contains more than | |
| one URL, each URL is an alternative format of the same content. | |
| :type media: list[~botframework.connector.models.MediaUrl] | |
| :param buttons: Actions on this card | |
| :type buttons: list[~botframework.connector.models.CardAction] | |
| :param shareable: This content may be shared with others (default:true) | |
| :type shareable: bool | |
| :param autoloop: Should the client loop playback at end of content | |
| (default:true) | |
| :type autoloop: bool | |
| :param autostart: Should the client automatically start playback of media | |
| in this card (default:true) | |
| :type autostart: bool | |
| :param aspect: Aspect ratio of thumbnail/media placeholder. Allowed values | |
| are "16:9" and "4:3" | |
| :type aspect: str | |
| :param duration: Describes the length of the media content without | |
| requiring a receiver to open the content. Formatted as an ISO 8601 | |
| Duration field. | |
| :type duration: str | |
| :param value: Supplementary parameter for this card | |
| :type value: object | |
| """ | |
| _attribute_map = { | |
| "title": {"key": "title", "type": "str"}, | |
| "subtitle": {"key": "subtitle", "type": "str"}, | |
| "text": {"key": "text", "type": "str"}, | |
| "image": {"key": "image", "type": "ThumbnailUrl"}, | |
| "media": {"key": "media", "type": "[MediaUrl]"}, | |
| "buttons": {"key": "buttons", "type": "[CardAction]"}, | |
| "shareable": {"key": "shareable", "type": "bool"}, | |
| "autoloop": {"key": "autoloop", "type": "bool"}, | |
| "autostart": {"key": "autostart", "type": "bool"}, | |
| "aspect": {"key": "aspect", "type": "str"}, | |
| "duration": {"key": "duration", "type": "str"}, | |
| "value": {"key": "value", "type": "object"}, | |
| } | |
| def __init__( | |
| self, | |
| *, | |
| title: str = None, | |
| subtitle: str = None, | |
| text: str = None, | |
| image=None, | |
| media=None, | |
| buttons=None, | |
| shareable: bool = None, | |
| autoloop: bool = None, | |
| autostart: bool = None, | |
| aspect: str = None, | |
| duration: str = None, | |
| value=None, | |
| **kwargs | |
| ) -> None: | |
| super(VideoCard, self).__init__(**kwargs) | |
| self.title = title | |
| self.subtitle = subtitle | |
| self.text = text | |
| self.image = image | |
| self.media = media | |
| self.buttons = buttons | |
| self.shareable = shareable | |
| self.autoloop = autoloop | |
| self.autostart = autostart | |
| self.aspect = aspect | |
| self.duration = duration | |
| self.value = value | |
| class AdaptiveCardInvokeAction(Model): | |
| """AdaptiveCardInvokeAction. | |
| Defines the structure that arrives in the Activity.Value.Action for Invoke activity with | |
| name of 'adaptiveCard/action'. | |
| :param type: The Type of this Adaptive Card Invoke Action. | |
| :type type: str | |
| :param id: The Id of this Adaptive Card Invoke Action. | |
| :type id: str | |
| :param verb: The Verb of this Adaptive Card Invoke Action. | |
| :type verb: str | |
| :param data: The data of this Adaptive Card Invoke Action. | |
| :type data: dict[str, object] | |
| """ | |
| _attribute_map = { | |
| "type": {"key": "type", "type": "str"}, | |
| "id": {"key": "id", "type": "str"}, | |
| "verb": {"key": "verb", "type": "str"}, | |
| "data": {"key": "data", "type": "{object}"}, | |
| } | |
| def __init__( | |
| self, *, type: str = None, id: str = None, verb: str = None, data=None, **kwargs | |
| ) -> None: | |
| super(AdaptiveCardInvokeAction, self).__init__(**kwargs) | |
| self.type = type | |
| self.id = id | |
| self.verb = verb | |
| self.data = data | |
| class AdaptiveCardInvokeResponse(Model): | |
| """AdaptiveCardInvokeResponse. | |
| Defines the structure that is returned as the result of an Invoke activity with Name of 'adaptiveCard/action'. | |
| :param status_code: The Card Action Response StatusCode. | |
| :type status_code: int | |
| :param type: The type of this Card Action Response. | |
| :type type: str | |
| :param value: The JSON response object. | |
| :type value: dict[str, object] | |
| """ | |
| _attribute_map = { | |
| "status_code": {"key": "statusCode", "type": "int"}, | |
| "type": {"key": "type", "type": "str"}, | |
| "value": {"key": "value", "type": "{object}"}, | |
| } | |
| def __init__( | |
| self, *, status_code: int = None, type: str = None, value=None, **kwargs | |
| ) -> None: | |
| super(AdaptiveCardInvokeResponse, self).__init__(**kwargs) | |
| self.status_code = status_code | |
| self.type = type | |
| self.value = value | |
| class AdaptiveCardInvokeValue(Model): | |
| """AdaptiveCardInvokeResponse. | |
| Defines the structure that arrives in the Activity.Value for Invoke activity with Name of 'adaptiveCard/action'. | |
| :param action: The action of this adaptive card invoke action value. | |
| :type action: :class:`botframework.schema.models.AdaptiveCardInvokeAction` | |
| :param authentication: The TokenExchangeInvokeRequest for this adaptive card invoke action value. | |
| :type authentication: :class:`botframework.schema.models.TokenExchangeInvokeRequest` | |
| :param state: The 'state' or magic code for an OAuth flow. | |
| :type state: str | |
| """ | |
| _attribute_map = { | |
| "action": {"key": "action", "type": "{object}"}, | |
| "authentication": {"key": "authentication", "type": "{object}"}, | |
| "state": {"key": "state", "type": "str"}, | |
| } | |
| def __init__( | |
| self, *, action=None, authentication=None, state: str = None, **kwargs | |
| ) -> None: | |
| super(AdaptiveCardInvokeValue, self).__init__(**kwargs) | |
| self.action = action | |
| self.authentication = authentication | |
| self.state = state | |