diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 50e7d8f3..f9b98b8e 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -106,6 +106,7 @@ bandwidth/models/links_object.py
bandwidth/models/list_endpoints_response.py
bandwidth/models/list_message_direction_enum.py
bandwidth/models/list_message_item.py
+bandwidth/models/location_response.py
bandwidth/models/lookup_error_response.py
bandwidth/models/lookup_error_schema.py
bandwidth/models/lookup_error_schema_meta.py
@@ -158,7 +159,6 @@ bandwidth/models/rbm_action_type_enum.py
bandwidth/models/rbm_action_view_location.py
bandwidth/models/rbm_card_content.py
bandwidth/models/rbm_card_content_media.py
-bandwidth/models/rbm_location_response.py
bandwidth/models/rbm_media_height_enum.py
bandwidth/models/rbm_message_carousel_card.py
bandwidth/models/rbm_message_content_file.py
@@ -167,7 +167,6 @@ bandwidth/models/rbm_message_content_text.py
bandwidth/models/rbm_message_media.py
bandwidth/models/rbm_open_url_enum.py
bandwidth/models/rbm_standalone_card.py
-bandwidth/models/rbm_suggestion_response.py
bandwidth/models/rbm_web_view_enum.py
bandwidth/models/recording_available_callback.py
bandwidth/models/recording_complete_callback.py
@@ -184,6 +183,7 @@ bandwidth/models/status_callback.py
bandwidth/models/status_callback_message.py
bandwidth/models/status_callback_type_enum.py
bandwidth/models/stir_shaken.py
+bandwidth/models/suggestion_response.py
bandwidth/models/sync_lookup_request.py
bandwidth/models/telephone_number.py
bandwidth/models/tfv_basic_authentication.py
@@ -309,6 +309,7 @@ docs/LinksObject.md
docs/ListEndpointsResponse.md
docs/ListMessageDirectionEnum.md
docs/ListMessageItem.md
+docs/LocationResponse.md
docs/LookupErrorResponse.md
docs/LookupErrorSchema.md
docs/LookupErrorSchemaMeta.md
@@ -366,7 +367,6 @@ docs/RbmActionTypeEnum.md
docs/RbmActionViewLocation.md
docs/RbmCardContent.md
docs/RbmCardContentMedia.md
-docs/RbmLocationResponse.md
docs/RbmMediaHeightEnum.md
docs/RbmMessageCarouselCard.md
docs/RbmMessageContentFile.md
@@ -375,7 +375,6 @@ docs/RbmMessageContentText.md
docs/RbmMessageMedia.md
docs/RbmOpenUrlEnum.md
docs/RbmStandaloneCard.md
-docs/RbmSuggestionResponse.md
docs/RbmWebViewEnum.md
docs/RecordingAvailableCallback.md
docs/RecordingCompleteCallback.md
@@ -394,6 +393,7 @@ docs/StatusCallback.md
docs/StatusCallbackMessage.md
docs/StatusCallbackTypeEnum.md
docs/StirShaken.md
+docs/SuggestionResponse.md
docs/SyncLookupRequest.md
docs/TelephoneNumber.md
docs/TfvBasicAuthentication.md
diff --git a/README.md b/README.md
index b965734b..8ee40a89 100644
--- a/README.md
+++ b/README.md
@@ -248,6 +248,7 @@ Class | Method | HTTP request | Description
- [ListEndpointsResponse](docs/ListEndpointsResponse.md)
- [ListMessageDirectionEnum](docs/ListMessageDirectionEnum.md)
- [ListMessageItem](docs/ListMessageItem.md)
+ - [LocationResponse](docs/LocationResponse.md)
- [LookupErrorResponse](docs/LookupErrorResponse.md)
- [LookupErrorSchema](docs/LookupErrorSchema.md)
- [LookupErrorSchemaMeta](docs/LookupErrorSchemaMeta.md)
@@ -300,7 +301,6 @@ Class | Method | HTTP request | Description
- [RbmActionViewLocation](docs/RbmActionViewLocation.md)
- [RbmCardContent](docs/RbmCardContent.md)
- [RbmCardContentMedia](docs/RbmCardContentMedia.md)
- - [RbmLocationResponse](docs/RbmLocationResponse.md)
- [RbmMediaHeightEnum](docs/RbmMediaHeightEnum.md)
- [RbmMessageCarouselCard](docs/RbmMessageCarouselCard.md)
- [RbmMessageContentFile](docs/RbmMessageContentFile.md)
@@ -309,7 +309,6 @@ Class | Method | HTTP request | Description
- [RbmMessageMedia](docs/RbmMessageMedia.md)
- [RbmOpenUrlEnum](docs/RbmOpenUrlEnum.md)
- [RbmStandaloneCard](docs/RbmStandaloneCard.md)
- - [RbmSuggestionResponse](docs/RbmSuggestionResponse.md)
- [RbmWebViewEnum](docs/RbmWebViewEnum.md)
- [RecordingAvailableCallback](docs/RecordingAvailableCallback.md)
- [RecordingCompleteCallback](docs/RecordingCompleteCallback.md)
@@ -326,6 +325,7 @@ Class | Method | HTTP request | Description
- [StatusCallbackMessage](docs/StatusCallbackMessage.md)
- [StatusCallbackTypeEnum](docs/StatusCallbackTypeEnum.md)
- [StirShaken](docs/StirShaken.md)
+ - [SuggestionResponse](docs/SuggestionResponse.md)
- [SyncLookupRequest](docs/SyncLookupRequest.md)
- [TelephoneNumber](docs/TelephoneNumber.md)
- [TfvBasicAuthentication](docs/TfvBasicAuthentication.md)
diff --git a/bandwidth.yml b/bandwidth.yml
index 5e2bc9b3..92f7b763 100644
--- a/bandwidth.yml
+++ b/bandwidth.yml
@@ -2880,7 +2880,7 @@ components:
type: string
media:
$ref: '#/components/schemas/rbmMessageContentFile'
- rbmSuggestionResponse:
+ suggestionResponse:
type: object
properties:
text:
@@ -2889,7 +2889,12 @@ components:
example: Yes, I would like to proceed
postbackData:
$ref: '#/components/schemas/rbmActionPostbackData'
- rbmLocationResponse:
+ pairedMessageId:
+ type: string
+ nullable: true
+ description: Corresponding parent message ID (MT).
+ example: 1752697342534u24xerqdukke523x
+ locationResponse:
type: object
properties:
latitude:
@@ -2925,7 +2930,7 @@ components:
message-failed: '#/components/schemas/statusCallback'
message-read: '#/components/schemas/statusCallback'
message-received: '#/components/schemas/inboundCallback'
- request-location-response: '#/components/schemas/inboundCallback'
+ requested-location-response: '#/components/schemas/inboundCallback'
suggestion-response: '#/components/schemas/inboundCallback'
statusCallback:
type: object
@@ -3035,14 +3040,15 @@ components:
- `message-received` indicates an MO message from a Bandwidth user's
client to a Bandwidth number.
- - `request-location-response` indicates a response to a location request
- sent by the Bandwidth user's client after receiving an RBM message.
+ - `requested-location-response` indicates a response to a location
+ request sent by the Bandwidth user's client after receiving an RBM
+ message.
- `suggestion-response` indicates a response to a suggestion sent by the
Bandwidth user's client after receiving an RBM message.
enum:
- message-received
- - request-location-response
+ - requested-location-response
- suggestion-response
example: message-received
statusCallbackMessage:
@@ -3118,9 +3124,9 @@ components:
content:
$ref: '#/components/schemas/multiChannelMessageContent'
suggestionResponse:
- $ref: '#/components/schemas/rbmSuggestionResponse'
+ $ref: '#/components/schemas/suggestionResponse'
locationResponse:
- $ref: '#/components/schemas/rbmLocationResponse'
+ $ref: '#/components/schemas/locationResponse'
required:
- id
- owner
@@ -9154,7 +9160,7 @@ components:
tag: '{"myTag": "myTagValue"}'
updateEndpointBxmlRequestExample:
summary: Update Endpoint BXML Request Example
- value:
The payload type will be one of message-received,
suggestion-response, or
- location-request-response.
+ requested-location-response.
Note that suggestion-response and
- location-request-response callback types are
+ requested-location-response callback types are
pertinent only for RBM messages sent from the
/messages/multiChannel endpoint.
diff --git a/bandwidth/__init__.py b/bandwidth/__init__.py
index 13602e40..eef41ad5 100644
--- a/bandwidth/__init__.py
+++ b/bandwidth/__init__.py
@@ -126,6 +126,7 @@
"ListEndpointsResponse",
"ListMessageDirectionEnum",
"ListMessageItem",
+ "LocationResponse",
"LookupErrorResponse",
"LookupErrorSchema",
"LookupErrorSchemaMeta",
@@ -178,7 +179,6 @@
"RbmActionViewLocation",
"RbmCardContent",
"RbmCardContentMedia",
- "RbmLocationResponse",
"RbmMediaHeightEnum",
"RbmMessageCarouselCard",
"RbmMessageContentFile",
@@ -187,7 +187,6 @@
"RbmMessageMedia",
"RbmOpenUrlEnum",
"RbmStandaloneCard",
- "RbmSuggestionResponse",
"RbmWebViewEnum",
"RecordingAvailableCallback",
"RecordingCompleteCallback",
@@ -204,6 +203,7 @@
"StatusCallbackMessage",
"StatusCallbackTypeEnum",
"StirShaken",
+ "SuggestionResponse",
"SyncLookupRequest",
"TelephoneNumber",
"TfvBasicAuthentication",
@@ -352,6 +352,7 @@
from bandwidth.models.list_endpoints_response import ListEndpointsResponse as ListEndpointsResponse
from bandwidth.models.list_message_direction_enum import ListMessageDirectionEnum as ListMessageDirectionEnum
from bandwidth.models.list_message_item import ListMessageItem as ListMessageItem
+from bandwidth.models.location_response import LocationResponse as LocationResponse
from bandwidth.models.lookup_error_response import LookupErrorResponse as LookupErrorResponse
from bandwidth.models.lookup_error_schema import LookupErrorSchema as LookupErrorSchema
from bandwidth.models.lookup_error_schema_meta import LookupErrorSchemaMeta as LookupErrorSchemaMeta
@@ -404,7 +405,6 @@
from bandwidth.models.rbm_action_view_location import RbmActionViewLocation as RbmActionViewLocation
from bandwidth.models.rbm_card_content import RbmCardContent as RbmCardContent
from bandwidth.models.rbm_card_content_media import RbmCardContentMedia as RbmCardContentMedia
-from bandwidth.models.rbm_location_response import RbmLocationResponse as RbmLocationResponse
from bandwidth.models.rbm_media_height_enum import RbmMediaHeightEnum as RbmMediaHeightEnum
from bandwidth.models.rbm_message_carousel_card import RbmMessageCarouselCard as RbmMessageCarouselCard
from bandwidth.models.rbm_message_content_file import RbmMessageContentFile as RbmMessageContentFile
@@ -413,7 +413,6 @@
from bandwidth.models.rbm_message_media import RbmMessageMedia as RbmMessageMedia
from bandwidth.models.rbm_open_url_enum import RbmOpenUrlEnum as RbmOpenUrlEnum
from bandwidth.models.rbm_standalone_card import RbmStandaloneCard as RbmStandaloneCard
-from bandwidth.models.rbm_suggestion_response import RbmSuggestionResponse as RbmSuggestionResponse
from bandwidth.models.rbm_web_view_enum import RbmWebViewEnum as RbmWebViewEnum
from bandwidth.models.recording_available_callback import RecordingAvailableCallback as RecordingAvailableCallback
from bandwidth.models.recording_complete_callback import RecordingCompleteCallback as RecordingCompleteCallback
@@ -430,6 +429,7 @@
from bandwidth.models.status_callback_message import StatusCallbackMessage as StatusCallbackMessage
from bandwidth.models.status_callback_type_enum import StatusCallbackTypeEnum as StatusCallbackTypeEnum
from bandwidth.models.stir_shaken import StirShaken as StirShaken
+from bandwidth.models.suggestion_response import SuggestionResponse as SuggestionResponse
from bandwidth.models.sync_lookup_request import SyncLookupRequest as SyncLookupRequest
from bandwidth.models.telephone_number import TelephoneNumber as TelephoneNumber
from bandwidth.models.tfv_basic_authentication import TfvBasicAuthentication as TfvBasicAuthentication
diff --git a/bandwidth/models/__init__.py b/bandwidth/models/__init__.py
index 9e15825d..9d1722dd 100644
--- a/bandwidth/models/__init__.py
+++ b/bandwidth/models/__init__.py
@@ -100,6 +100,7 @@
from bandwidth.models.list_endpoints_response import ListEndpointsResponse
from bandwidth.models.list_message_direction_enum import ListMessageDirectionEnum
from bandwidth.models.list_message_item import ListMessageItem
+from bandwidth.models.location_response import LocationResponse
from bandwidth.models.lookup_error_response import LookupErrorResponse
from bandwidth.models.lookup_error_schema import LookupErrorSchema
from bandwidth.models.lookup_error_schema_meta import LookupErrorSchemaMeta
@@ -152,7 +153,6 @@
from bandwidth.models.rbm_action_view_location import RbmActionViewLocation
from bandwidth.models.rbm_card_content import RbmCardContent
from bandwidth.models.rbm_card_content_media import RbmCardContentMedia
-from bandwidth.models.rbm_location_response import RbmLocationResponse
from bandwidth.models.rbm_media_height_enum import RbmMediaHeightEnum
from bandwidth.models.rbm_message_carousel_card import RbmMessageCarouselCard
from bandwidth.models.rbm_message_content_file import RbmMessageContentFile
@@ -161,7 +161,6 @@
from bandwidth.models.rbm_message_media import RbmMessageMedia
from bandwidth.models.rbm_open_url_enum import RbmOpenUrlEnum
from bandwidth.models.rbm_standalone_card import RbmStandaloneCard
-from bandwidth.models.rbm_suggestion_response import RbmSuggestionResponse
from bandwidth.models.rbm_web_view_enum import RbmWebViewEnum
from bandwidth.models.recording_available_callback import RecordingAvailableCallback
from bandwidth.models.recording_complete_callback import RecordingCompleteCallback
@@ -178,6 +177,7 @@
from bandwidth.models.status_callback_message import StatusCallbackMessage
from bandwidth.models.status_callback_type_enum import StatusCallbackTypeEnum
from bandwidth.models.stir_shaken import StirShaken
+from bandwidth.models.suggestion_response import SuggestionResponse
from bandwidth.models.sync_lookup_request import SyncLookupRequest
from bandwidth.models.telephone_number import TelephoneNumber
from bandwidth.models.tfv_basic_authentication import TfvBasicAuthentication
diff --git a/bandwidth/models/callback.py b/bandwidth/models/callback.py
index 4fc0e9ec..1e5fc32a 100644
--- a/bandwidth/models/callback.py
+++ b/bandwidth/models/callback.py
@@ -53,7 +53,7 @@ class Callback(BaseModel):
'message-received': 'InboundCallback',
'message-sending': 'StatusCallback',
'message-sent': 'StatusCallback',
- 'request-location-response': 'InboundCallback',
+ 'requested-location-response': 'InboundCallback',
'suggestion-response': 'InboundCallback'
}
diff --git a/bandwidth/models/inbound_callback_message.py b/bandwidth/models/inbound_callback_message.py
index b42bcbc9..9c8ceb51 100644
--- a/bandwidth/models/inbound_callback_message.py
+++ b/bandwidth/models/inbound_callback_message.py
@@ -21,12 +21,12 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from bandwidth.models.location_response import LocationResponse
from bandwidth.models.message_direction_enum import MessageDirectionEnum
from bandwidth.models.multi_channel_message_channel_enum import MultiChannelMessageChannelEnum
from bandwidth.models.multi_channel_message_content import MultiChannelMessageContent
from bandwidth.models.priority_enum import PriorityEnum
-from bandwidth.models.rbm_location_response import RbmLocationResponse
-from bandwidth.models.rbm_suggestion_response import RbmSuggestionResponse
+from bandwidth.models.suggestion_response import SuggestionResponse
from typing import Optional, Set
from typing_extensions import Self
@@ -48,8 +48,8 @@ class InboundCallbackMessage(BaseModel):
priority: Optional[PriorityEnum] = None
channel: Optional[MultiChannelMessageChannelEnum] = None
content: Optional[MultiChannelMessageContent] = None
- suggestion_response: Optional[RbmSuggestionResponse] = Field(default=None, alias="suggestionResponse")
- location_response: Optional[RbmLocationResponse] = Field(default=None, alias="locationResponse")
+ suggestion_response: Optional[SuggestionResponse] = Field(default=None, alias="suggestionResponse")
+ location_response: Optional[LocationResponse] = Field(default=None, alias="locationResponse")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["id", "owner", "applicationId", "time", "segmentCount", "direction", "to", "from", "text", "tag", "media", "priority", "channel", "content", "suggestionResponse", "locationResponse"]
@@ -134,8 +134,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"priority": obj.get("priority"),
"channel": obj.get("channel"),
"content": MultiChannelMessageContent.from_dict(obj["content"]) if obj.get("content") is not None else None,
- "suggestionResponse": RbmSuggestionResponse.from_dict(obj["suggestionResponse"]) if obj.get("suggestionResponse") is not None else None,
- "locationResponse": RbmLocationResponse.from_dict(obj["locationResponse"]) if obj.get("locationResponse") is not None else None
+ "suggestionResponse": SuggestionResponse.from_dict(obj["suggestionResponse"]) if obj.get("suggestionResponse") is not None else None,
+ "locationResponse": LocationResponse.from_dict(obj["locationResponse"]) if obj.get("locationResponse") is not None else None
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/bandwidth/models/inbound_callback_type_enum.py b/bandwidth/models/inbound_callback_type_enum.py
index 69527df3..b2527e05 100644
--- a/bandwidth/models/inbound_callback_type_enum.py
+++ b/bandwidth/models/inbound_callback_type_enum.py
@@ -21,14 +21,14 @@
class InboundCallbackTypeEnum(str, Enum):
"""
- The possible inbound callback types originating from MO messages or multichannel message client responses: - `message-received` indicates an MO message from a Bandwidth user's client to a Bandwidth number. - `request-location-response` indicates a response to a location request sent by the Bandwidth user's client after receiving an RBM message. - `suggestion-response` indicates a response to a suggestion sent by the Bandwidth user's client after receiving an RBM message.
+ The possible inbound callback types originating from MO messages or multichannel message client responses: - `message-received` indicates an MO message from a Bandwidth user's client to a Bandwidth number. - `requested-location-response` indicates a response to a location request sent by the Bandwidth user's client after receiving an RBM message. - `suggestion-response` indicates a response to a suggestion sent by the Bandwidth user's client after receiving an RBM message.
"""
"""
allowed enum values
"""
MESSAGE_MINUS_RECEIVED = 'message-received'
- REQUEST_MINUS_LOCATION_MINUS_RESPONSE = 'request-location-response'
+ REQUESTED_MINUS_LOCATION_MINUS_RESPONSE = 'requested-location-response'
SUGGESTION_MINUS_RESPONSE = 'suggestion-response'
@classmethod
diff --git a/bandwidth/models/location_response.py b/bandwidth/models/location_response.py
new file mode 100644
index 00000000..8d50ca19
--- /dev/null
+++ b/bandwidth/models/location_response.py
@@ -0,0 +1,103 @@
+# coding: utf-8
+
+"""
+ Bandwidth
+
+ Bandwidth's Communication APIs
+
+ The version of the OpenAPI document: 1.0.0
+ Contact: letstalk@bandwidth.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class LocationResponse(BaseModel):
+ """
+ LocationResponse
+ """ # noqa: E501
+ latitude: Optional[StrictStr] = Field(default=None, description="The latitude of the client's location.")
+ longitude: Optional[StrictStr] = Field(default=None, description="The longitude of the client's location.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["latitude", "longitude"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of LocationResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of LocationResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "latitude": obj.get("latitude"),
+ "longitude": obj.get("longitude")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/bandwidth/models/suggestion_response.py b/bandwidth/models/suggestion_response.py
new file mode 100644
index 00000000..c52c454a
--- /dev/null
+++ b/bandwidth/models/suggestion_response.py
@@ -0,0 +1,111 @@
+# coding: utf-8
+
+"""
+ Bandwidth
+
+ Bandwidth's Communication APIs
+
+ The version of the OpenAPI document: 1.0.0
+ Contact: letstalk@bandwidth.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional, Union
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SuggestionResponse(BaseModel):
+ """
+ SuggestionResponse
+ """ # noqa: E501
+ text: Optional[StrictStr] = Field(default=None, description="The text associated with the suggestion response.")
+ postback_data: Optional[Union[Annotated[bytes, Field(strict=True, max_length=2048)], Annotated[str, Field(strict=True, max_length=2048)]]] = Field(default=None, description="Base64 payload the customer receives when the reply is clicked.", alias="postbackData")
+ paired_message_id: Optional[StrictStr] = Field(default=None, description="Corresponding parent message ID (MT).", alias="pairedMessageId")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["text", "postbackData", "pairedMessageId"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of SuggestionResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ # set to None if paired_message_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.paired_message_id is None and "paired_message_id" in self.model_fields_set:
+ _dict['pairedMessageId'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SuggestionResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "text": obj.get("text"),
+ "postbackData": obj.get("postbackData"),
+ "pairedMessageId": obj.get("pairedMessageId")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/docs/InboundCallbackMessage.md b/docs/InboundCallbackMessage.md
index 5a46c208..762514d9 100644
--- a/docs/InboundCallbackMessage.md
+++ b/docs/InboundCallbackMessage.md
@@ -19,8 +19,8 @@ Name | Type | Description | Notes
**priority** | [**PriorityEnum**](PriorityEnum.md) | | [optional]
**channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [optional]
**content** | [**MultiChannelMessageContent**](MultiChannelMessageContent.md) | | [optional]
-**suggestion_response** | [**RbmSuggestionResponse**](RbmSuggestionResponse.md) | | [optional]
-**location_response** | [**RbmLocationResponse**](RbmLocationResponse.md) | | [optional]
+**suggestion_response** | [**SuggestionResponse**](SuggestionResponse.md) | | [optional]
+**location_response** | [**LocationResponse**](LocationResponse.md) | | [optional]
## Example
diff --git a/docs/InboundCallbackTypeEnum.md b/docs/InboundCallbackTypeEnum.md
index f1259de4..1475f5f4 100644
--- a/docs/InboundCallbackTypeEnum.md
+++ b/docs/InboundCallbackTypeEnum.md
@@ -1,12 +1,12 @@
# InboundCallbackTypeEnum
-The possible inbound callback types originating from MO messages or multichannel message client responses: - `message-received` indicates an MO message from a Bandwidth user's client to a Bandwidth number. - `request-location-response` indicates a response to a location request sent by the Bandwidth user's client after receiving an RBM message. - `suggestion-response` indicates a response to a suggestion sent by the Bandwidth user's client after receiving an RBM message.
+The possible inbound callback types originating from MO messages or multichannel message client responses: - `message-received` indicates an MO message from a Bandwidth user's client to a Bandwidth number. - `requested-location-response` indicates a response to a location request sent by the Bandwidth user's client after receiving an RBM message. - `suggestion-response` indicates a response to a suggestion sent by the Bandwidth user's client after receiving an RBM message.
## Enum
* `MESSAGE_MINUS_RECEIVED` (value: `'message-received'`)
-* `REQUEST_MINUS_LOCATION_MINUS_RESPONSE` (value: `'request-location-response'`)
+* `REQUESTED_MINUS_LOCATION_MINUS_RESPONSE` (value: `'requested-location-response'`)
* `SUGGESTION_MINUS_RESPONSE` (value: `'suggestion-response'`)
diff --git a/docs/LocationResponse.md b/docs/LocationResponse.md
new file mode 100644
index 00000000..c1e681a0
--- /dev/null
+++ b/docs/LocationResponse.md
@@ -0,0 +1,30 @@
+# LocationResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**latitude** | **float** | The latitude of the client's location. | [optional]
+**longitude** | **float** | The longitude of the client's location. | [optional]
+
+## Example
+
+```python
+from bandwidth.models.location_response import LocationResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of LocationResponse from a JSON string
+location_response_instance = LocationResponse.from_json(json)
+# print the JSON string representation of the object
+print(LocationResponse.to_json())
+
+# convert the object into a dict
+location_response_dict = location_response_instance.to_dict()
+# create an instance of LocationResponse from a dict
+location_response_from_dict = LocationResponse.from_dict(location_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/SuggestionResponse.md b/docs/SuggestionResponse.md
new file mode 100644
index 00000000..9847a07a
--- /dev/null
+++ b/docs/SuggestionResponse.md
@@ -0,0 +1,31 @@
+# SuggestionResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**text** | **str** | The text associated with the suggestion response. | [optional]
+**postback_data** | **bytearray** | Base64 payload the customer receives when the reply is clicked. | [optional]
+**paired_message_id** | **str** | Corresponding parent message ID (MT). | [optional]
+
+## Example
+
+```python
+from bandwidth.models.suggestion_response import SuggestionResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of SuggestionResponse from a JSON string
+suggestion_response_instance = SuggestionResponse.from_json(json)
+# print the JSON string representation of the object
+print(SuggestionResponse.to_json())
+
+# convert the object into a dict
+suggestion_response_dict = suggestion_response_instance.to_dict()
+# create an instance of SuggestionResponse from a dict
+suggestion_response_from_dict = SuggestionResponse.from_dict(suggestion_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+