{
"openapi": "3.1.0",
"info": {
"title": "Vibes RCS Business Messaging API",
"version": "0.0.0"
},
"tags": [
{
"name": "RCS Business Messaging"
}
],
"security": [
{
"OAuth2Auth": [
"https://rbm.vibes.com/rbm.agents"
]
}
],
"paths": {
"/{connect_customer_key}/capabilities/{msisdn}": {
"get": {
"tags": [
"RCS Business Messaging"
],
"operationId": "Get Mobile Device Capabilities",
"summary": "Check for RCS capabilities",
"description": "Get the Vibes RCS-related capabilities of a user device. ",
"responses": {
"200": {
"description": "The request has succeeded. A payload with the specific capabilities will be returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Capabilities"
}
}
}
},
"403": {
"description": "Forbidden agent. The `agentId` is either not valid, or it has not deployed on the provider."
},
"404": {
"description": "Target phone number does not support RBM. If your agent is not yet launched, note that this will be returned if the MDN is not a tester for the agent."
},
"422": {
"description": "Unprocessable entity. Specific data errors have occurred in the request. Additional details will be available in the content of the error.
Example - Invalid Phone Number. The phone number is not a valid mobile number, or is on a unsupported carrier."
},
"429": {
"description": "Quota exceeded. You've either exceeded the number of calls allowed, or a downstream server is busy. Please try your request again later."
}
},
"parameters": [
{
"in": "path",
"name": "connect_customer_key",
"description": "Your unique customer key.",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "msisdn",
"description": "Target device's phone number in E.164 format.",
"required": true,
"schema": {
"type": "string"
},
"example": "+16125551234"
},
{
"in": "query",
"name": "agentId",
"description": "Alphanumeric string identifying your agent. To get your agentId, speak to your Vibes business rep.",
"required": true,
"schema": {
"type": "string"
},
"explode": false
},
{
"in": "query",
"name": "carrierCode",
"description": "Optional carrier code to target a specific carrier for the capabilities lookup.",
"required": false,
"schema": {
"type": "string"
}
}
]
}
},
"/{connect_customer_key}/agentMessages/{msisdn}": {
"post": {
"tags": [
"RCS Business Messaging"
],
"operationId": "Send Agent Message",
"summary": "Send an RCS message",
"description": "Sends a message from an RBM agent to a mobile device. The message can contain text, rich card, and suggestions. The message can also be revoked between the time that it is sent and the time that it is delivered.
See some example RCS message payloads here.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentMessage"
}
}
}
},
"responses": {
"200": {
"description": "The message has been queued for delivery. A webhook will be sent to the agent when the message is delivered to the mobile device.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentMessage"
}
}
}
},
"403": {
"description": "Forbidden agent. The `agentId` is either not valid, or it has not deployed on the provider."
},
"422": {
"description": "Unprocessable entity. Specific data errors have occurred in the request. Additional details will be available in the content of the error.
Example - Invalid Phone Number. The phone number is not a valid mobile number, or is on a unsupported carrier."
},
"429": {
"description": "Quota exceeded. You've either exceeded the number of calls allowed, or a downstream server is busy. Please try your request again later."
}
},
"parameters": [
{
"in": "path",
"name": "connect_customer_key",
"description": "Your unique customer key.",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "msisdn",
"description": "Target device's phone number in E.164 format.",
"required": true,
"schema": {
"type": "string"
},
"example": "+15555555555"
},
{
"in": "query",
"name": "agentId",
"description": "Alphanumeric string identifying your agent. To get your agentId, speak to your Vibes business rep.",
"required": true,
"schema": {
"type": "string"
},
"explode": false
},
{
"in": "query",
"name": "messageId",
"description": "An alphanumeric 36-character UUID identifying the message. You can set this to whatever UUID you like, but if it is left blank, it will be filled in by the system.",
"schema": {
"type": "string"
},
"explode": false
}
]
}
},
"/{connect_customer_key}/agentEvents/{msisdn}": {
"post": {
"tags": [
"RCS Business Messaging"
],
"operationId": "Send Agent Event",
"summary": "Send an RCS event",
"description": "Sends an event from a Vibes customer RBM agent to a user.
Agent events include read receipts or \"typing\" notifications. If Vibes RBM can't reach the user, the Vibes RBM platform returns `404 NOT_FOUND`. Unlike agent messages, agent events cannot be revoked after sending.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentEvent"
}
}
}
},
"responses": {
"200": {
"description": "The request has succeeded.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentEvent"
}
}
}
},
"403": {
"description": "Forbidden agent. The `agentId` is either not valid, or it has not deployed on the provider."
},
"422": {
"description": "Unprocessable entity. Specific data errors have occurred in the request. Additional details will be available in the content of the error.
Example - Invalid Phone Number. The phone number is not a valid mobile number, or is on a unsupported carrier."
},
"429": {
"description": "Quota exceeded. You've either exceeded the number of calls allowed, or a downstream server is busy. Please try your request again later."
}
},
"parameters": [
{
"in": "path",
"name": "connect_customer_key",
"description": "Your unique customer key.",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "msisdn",
"description": "Target device's phone number in E.164 format.",
"required": true,
"schema": {
"type": "string"
},
"example": "+15555555555"
},
{
"in": "query",
"name": "agentId",
"description": "Alphanumeric string identifying your agent. To get your agentId, speak to your Vibes business rep.",
"required": true,
"schema": {
"type": "string"
},
"explode": false
},
{
"in": "query",
"name": "eventId",
"description": "An alphanumeric string identifying the event. You can set this to whatever you like, but if it is left blank, it will be filled in by the system.",
"schema": {
"type": "string"
},
"explode": false
}
]
}
},
"/{connect_customer_key}/agentMessages/{msisdn}/{messageId}": {
"delete": {
"tags": [
"RCS Business Messaging"
],
"operationId": "Revoke Agent Message",
"summary": "Revoke an RCS message",
"description": "Revoke a message that has been sent to a mobile device, if the message has not already been delivered. ",
"responses": {
"200": {
"description": "The request was successful. Note that this does not mean the message has been revoked. A webhook will be sent to the agent if the message was revoked."
},
"403": {
"description": "Forbidden agent. The `agentId` is either not valid, or it has not deployed on the provider."
},
"422": {
"description": "Unprocessable entity. Specific data errors have occurred in the request. Additional details will be available in the content of the error.
Example - Invalid Phone Number. The phone number is not a valid mobile number, or is on a unsupported carrier."
},
"429": {
"description": "Quota exceeded. You've either exceeded the number of calls allowed, or a downstream server is busy. Please try your request again later."
}
},
"parameters": [
{
"in": "path",
"name": "connect_customer_key",
"description": "Your unique customer key.",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "msisdn",
"description": "Target device's phone number in E.164 format.",
"required": true,
"schema": {
"type": "string"
},
"example": "+15555555555"
},
{
"in": "path",
"name": "messageId",
"description": "The alphanumeric 36-character UUID identifying the message.",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "agentId",
"description": "Alphanumeric string identifying your agent. To get your agentId, speak to your Vibes business rep.",
"required": true,
"schema": {
"type": "string"
},
"explode": false
}
]
}
},
"/{connect_customer_key}/testers/{msisdn}": {
"post": {
"tags": [
"RCS Business Messaging"
],
"operationId": "Invite Agent Tester",
"summary": "Invite an agent tester",
"description": "Invite a mobile device to become a tester of an agent. The device must have RCS capabilities to become a tester. When a phone number is a registered tester, they are able to receive RCS messages from an agent, even if that agent is not yet launched.",
"responses": {
"200": {
"description": "The request has succeeded.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Tester"
}
}
}
},
"403": {
"description": "Forbidden agent. The `agentId` is either not valid, or it has not deployed on the provider."
},
"422": {
"description": "Unprocessable entity. Specific data errors have occurred in the request. Additional details will be available in the content of the error.
Example - Invalid Phone Number. The phone number is not a valid mobile number, or is on a unsupported carrier."
},
"429": {
"description": "Client error"
}
},
"parameters": [
{
"in": "path",
"name": "connect_customer_key",
"description": "Your unique customer key.",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "msisdn",
"description": "Phone number in E.164 format of device you are inviting to be an agent tester.",
"required": true,
"schema": {
"type": "string"
},
"example": "+16125551234"
},
{
"in": "query",
"name": "agentId",
"description": "Alphanumeric string identifying your agent. To get your agentId, speak to your Vibes business rep.",
"required": true,
"schema": {
"type": "string"
},
"explode": false
}
]
},
"get": {
"tags": [
"RCS Business Messaging"
],
"summary": "Get the invite status of a tester device",
"operationId": "getTester",
"parameters": [
{
"name": "connect_customer_key",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "msisdn",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "agentId",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Returned invite status of a tester device.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Tester"
}
}
}
},
"400": {
"description": "Bad request. Note that connect_customer_key, msisdn, and agentId are all required."
},
"401": {
"description": "Authentication error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
},
"403": {
"description": "Authorization error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
}
}
},
"delete": {
"tags": [
"RCS Business Messaging"
],
"summary": "Delete a tester device",
"operationId": "deleteTester",
"parameters": [
{
"name": "connect_customer_key",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "msisdn",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "agentId",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Deleted a tester device.",
"content": {
"application/json": {
"schema": {
"type": "string",
"description": "Empty object.",
"example": {}
}
}
}
},
"400": {
"description": "Bad request. Note that connect_customer_key, msisdn, and agentId are all required."
},
"401": {
"description": "Authentication error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
},
"403": {
"description": "Authorization error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
}
}
}
},
"/{connect_customer_key}/testers": {
"get": {
"tags": [
"RCS Business Messaging"
],
"summary": "List the invite statuses of tester devices",
"operationId": "listTesters",
"parameters": [
{
"name": "connect_customer_key",
"description": "Your unique customer key.",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "agentId",
"description": "Alphanumeric string identifying your agent. To get your agentId, speak to your Vibes business rep.",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Returned invite statuses of tester devices for an agent.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Tester"
}
}
}
}
},
"400": {
"description": "Bad request. Note that connect_customer_key, msisdn, and agentId are all required."
},
"401": {
"description": "Authentication error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
},
"403": {
"description": "Authorization error.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AgentContentMessage": {
"type": "object",
"description": "The content of the agent message.",
"properties": {
"text": {
"type": "string",
"description": "The body text of your message."
},
"contentInfo": {
"description": "Information about a file, including the URL of the file and the URL of the file\u2019s thumbnail. The Vibes RBM platform serves content from a cache, but an agent can force the Vibes RBM platform to fetch a new version of the content and refresh the cache.",
"$ref": "#/components/schemas/ContentInfo"
},
"suggestions": {
"type": "array",
"description": "Provide end users with suggested actions or responses.",
"items": {
"$ref": "#/components/schemas/Suggestion"
},
"maxItems": 11
},
"uploadedRbmFile": {
"$ref": "#/components/schemas/UploadedRbmFile",
"description": "A file that was uploaded to the RCS Business Messaging platform."
},
"richCard": {
"$ref": "#/components/schemas/RichCard"
}
}
},
"AgentEvent": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Do not set this field. It will be populated by the API when the operation returns."
},
"eventType": {
"$ref": "#/components/schemas/AgentEventType"
},
"messageId": {
"type": "string",
"description": "If you are sending a read receipt event, the alphanumeric identifier of the message the read receipt is associated with."
},
"sendTime": {
"type": "string",
"description": "Do not set this field. It will be populated by the API when the operation returns."
}
},
"required": [
"eventType"
]
},
"AgentEventType": {
"type": "string",
"enum": [
"TYPE_UNSPECIFIED",
"IS_TYPING",
"READ"
]
},
"AgentMessage": {
"type": "object",
"required": [
"contentMessage"
],
"properties": {
"name": {
"type": "string",
"description": "Do not set this field. It will be populated by the API when the operation returns.",
"readOnly": true
},
"sendTime": {
"type": "string",
"description": "Do not set this field. It will be populated by the API when the operation returns.",
"readOnly": true
},
"contentMessage": {
"$ref": "#/components/schemas/AgentContentMessage",
"description": "The content of the agent message."
},
"messageTrafficType": {
"$ref": "#/components/schemas/MessageTrafficType",
"description": "Optional. The message traffic type.",
"default": "MESSAGE_TRAFFIC_TYPE_UNSPECIFIED"
},
"richMessageClassification": {
"$ref": "#/components/schemas/RichMessageClassification",
"readOnly": true
},
"totalPayloadSizeBytes": {
"type": "string",
"format": "int64",
"description": "Output only. The total payload size of the message in bytes.",
"readOnly": true
},
"carrier": {
"type": "string",
"description": "Output only. The carrier information that the user's phone number belongs to, according to Google RCS backends.",
"readOnly": true
},
"expireTime": {
"type": "string",
"description": "Optional. Timestamp in UTC when this message will be considered expired.",
"example": "2024-09-03T15:01:23.000Z"
},
"ttl": {
"type": "string",
"description": "Optional. Time in seconds the message will live before it is automatically revoked.",
"example": "3.5"
}
}
},
"ApiError": {
"type": "object",
"properties": {
"error": {
"type": "string"
}
}
},
"Capabilities": {
"type": "object",
"required": [
"features"
],
"properties": {
"carrier": {
"type": "string",
"description": "Output only. The carrier information that the user's phone number belongs to, according to Google RCS backends."
},
"features": {
"type": "array",
"description": "List of Vibes RBM features that this device supports.",
"items": {
"$ref": "#/components/schemas/Feature"
}
}
}
},
"CardContent": {
"type": "object",
"description": "Each rich card must have at least one of title, description, or media.",
"properties": {
"title": {
"type": "string",
"maxLength": 200,
"description": "Title on the rich card."
},
"description": {
"type": "string",
"maxLength": 500,
"description": "Description text on the rich card."
},
"media": {
"$ref": "#/components/schemas/Media"
},
"suggestions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Suggestion"
},
"maxItems": 10
}
}
},
"CardOrientation": {
"type": "string",
"enum": [
"CARD_ORIENTATION_UNSPECIFIED",
"HORIZONTAL",
"VERTICAL"
]
},
"CarouselCard": {
"type": "object",
"description": "A carousel of rich cards.",
"properties": {
"cardWidth": {
"$ref": "#/components/schemas/CardWidth",
"description": "The width of the cards in the carousel."
},
"cardContents": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CardContent"
},
"maxItems": 10
}
}
},
"ContentInfo": {
"type": "object",
"properties": {
"fileUrl": {
"type": "string",
"description": "Publicly reachable URL of the file. The Vibes RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL. Recommended maximum file size of 100 MB."
},
"thumbnailUrl": {
"type": "string",
"description": "For image, audio and video files only. Publicly reachable URL of the thumbnail. Maximum size of 100 kB. If you don't provide a thumbnail URL, the Vibes RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button. Recommended maximum file size of 100 kB."
},
"forceRefresh": {
"type": "boolean",
"description": "Default is false. If true, the Vibes RBM platform fetches the file and thumbnail from the specified URLs, even if the platform has cached copies of the file (and/or of the thumbnail)."
}
}
},
"CreateCalendarEventAction": {
"type": "object",
"properties": {
"startTime": {
"type": "string",
"description": "Required. Event start time."
},
"endTime": {
"type": "string",
"description": "Required. Event end time."
},
"title": {
"type": "string",
"maxLength": 100,
"description": "Required. Event title."
},
"description": {
"type": "string",
"maxLength": 500,
"description": "Optional. Event description."
}
}
},
"DialAction": {
"type": "object",
"properties": {
"phoneNumber": {
"type": "string",
"description": "Required. Phone number to dial, in E.164 format.",
"example": "+15555555555"
}
}
},
"Feature": {
"type": "string",
"enum": [
"FEATURE_UNSPECIFIED",
"RICHCARD_STANDALONE",
"RICHCARD_CAROUSEL",
"ACTION_CREATE_CALENDAR_EVENT",
"ACTION_DIAL",
"ACTION_OPEN_URL",
"ACTION_SHARE_LOCATION",
"ACTION_VIEW_LOCATION"
]
},
"LatLng": {
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
}
},
"Media": {
"type": "object",
"properties": {
"height": {
"$ref": "#/components/schemas/MediaHeight",
"description": "The height of the media. Applies only to standalone and carousel cards with vertical orientation."
},
"contentInfo": {
"$ref": "#/components/schemas/ContentInfo",
"description": "Information about a file, including the URL of the file and the URL of the file's thumbnail."
},
"uploadedRbmFile": {
"$ref": "#/components/schemas/UploadedRbmFile",
"description": "A file that was uploaded to the RCS Business Messaging platform."
}
}
},
"MediaHeight": {
"type": "string",
"enum": [
"HEIGHT_UNSPECIFIED",
"SHORT",
"MEDIUM",
"TALL"
]
},
"OpenUrlAction": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"description": "Required."
},
"application": {
"description": "What app the URL will open in - browser or integrated webview window.",
"$ref": "#/components/schemas/OpenUrlApplication"
},
"webviewViewMode": {
"description": "If URL is opened in integrated webview, specify view mode. Default is full view.",
"$ref": "#/components/schemas/WebviewViewMode"
},
"description": {
"type": "string"
}
}
},
"OpenUrlApplication": {
"type": "string",
"description": "What app the URL will open in - browser or integrated webview window.",
"enum": [
"OPEN_URL_APPLICATION_UNSPECIFIED",
"WEBVIEW",
"BROWSER"
]
},
"RichCard": {
"type": "object",
"properties": {
"carouselCard": {
"description": "A carousel of rich cards.",
"$ref": "#/components/schemas/CarouselCard"
},
"standaloneCard": {
"description": "A single rich card.",
"$ref": "#/components/schemas/StandaloneCard"
}
}
},
"ShareLocationAction": {
"type": "object"
},
"StandaloneCard": {
"type": "object",
"properties": {
"cardOrientation": {
"description": "Orientation of the card.",
"$ref": "#/components/schemas/CardOrientation"
},
"thumbnailImageAlignment": {
"description": "Alignment of image preview for standalone cards with horizontal layout.",
"$ref": "#/components/schemas/ThumbnailImageAlignment"
},
"cardContent": {
"$ref": "#/components/schemas/CardContent"
}
}
},
"SuggestedAction": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 25,
"description": "Required. Text label of suggested action."
},
"postbackData": {
"type": "string",
"maxLength": 2048,
"description": "Required. Base64-encoded payload that will be sent to the agent in the user event that results when the user taps the suggested action. Maximum 2048 characters."
},
"fallbackUrl": {
"type": "string",
"maxLength": 2048,
"description": "Optional. URL that will open in a new window if a mobile device doesn't support a suggested action."
},
"dialAction": {
"description": "Opens the device's default phone app with the specified phone number filled in.",
"$ref": "#/components/schemas/DialAction"
},
"viewLocationAction": {
"description": "Opens the device's default map app and selects the specified location or searches around the device's location given an agent-specified query.",
"$ref": "#/components/schemas/ViewLocationAction"
},
"createCalendarEventAction": {
"description": "Opens the device's default calendar app and creates a new calendar event prefilled with the event data.",
"$ref": "#/components/schemas/CreateCalendarEventAction"
},
"openUrlAction": {
"description": "Opens the specified URL.",
"$ref": "#/components/schemas/OpenUrlAction"
},
"shareLocationAction": {
"description": "Shares the device's location with the agent.",
"$ref": "#/components/schemas/ShareLocationAction"
}
}
},
"SuggestedReply": {
"type": "object",
"title": "A suggested reply, which users can tap to send the text reply back to the agent.",
"properties": {
"text": {
"type": "string",
"description": "Required. Text of the suggested reply.",
"maxLength": 25
},
"postbackData": {
"type": "string",
"description": "Required. The base64-encoded payload that the agent receives in a user event when the user taps the suggested reply. Maximum"
}
}
},
"Suggestion": {
"type": "object",
"title": "Add a suggested reply or action",
"properties": {
"reply": {
"title": "Suggested reply",
"$ref": "#/components/schemas/SuggestedReply"
},
"action": {
"title": "Suggested action",
"$ref": "#/components/schemas/SuggestedAction"
}
}
},
"Tester": {
"type": "object",
"properties": {
"agentId": {
"type": "string",
"description": "The ID of an agent."
},
"inviteStatus": {
"allOf": [
{
"$ref": "#/components/schemas/TesterInviteStatus"
}
],
"description": "Output only. The status of the invitation. Returned by the platform.",
"readOnly": true
},
"name": {
"type": "string",
"description": "Output only. The unique identifier of the tester.",
"readOnly": true
},
"phoneNumber": {
"type": "string",
"description": "The phone number of the tester in E.164 format."
}
},
"required": [
"phoneNumber"
]
},
"TesterInviteStatus": {
"type": "string",
"enum": [
"INVITE_STATUS_UNSPECIFIED",
"PENDING",
"ACCEPTED",
"DECLINED"
]
},
"ThumbnailImageAlignment": {
"type": "string",
"description": "Alignment of image preview for standalone cards with horizontal layout.",
"enum": [
"THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED",
"LEFT",
"RIGHT"
]
},
"ViewLocationAction": {
"type": "object",
"description": "Opens the device's default map app and selects the specified location or searches around the device's location given an agent-specified query.",
"properties": {
"label": {
"type": "string",
"description": "Optional. Text label of the location opened."
},
"latLong": {
"description": "Required.",
"$ref": "#/components/schemas/LatLng"
},
"query": {
"type": "string",
"description": "Optional, only supported on Android Messages clients. Rather than specify a lat_long, a query string. For default map apps that support search functionality, tapping this suggested action results in a location search centered around the user's current location.
If the query is sufficiently specific, it select any location in the world. For instance, setting the query string to \"Growing Tree Bank\" will show all Growing Tree Bank locations in the device's vicinity. Setting the query string to \"1600 Amphitheater Parkway, Mountain View, CA 94043\" will select that specific address, regardless of the user's location."
}
}
},
"WebviewViewMode": {
"type": "string",
"description": "If URL is opened in integrated webview, specify view mode. Default is full view.",
"enum": [
"WEBVIEW_VIEW_MODE_UNSPECIFIED",
"FULL",
"HALF",
"TALL"
]
},
"CardWidth": {
"type": "string",
"enum": [
"CARD_WIDTH_UNSPECIFIED",
"SMALL",
"MEDIUM"
]
},
"MessageTrafficType": {
"type": "string",
"enum": [
"MESSAGE_TRAFFIC_TYPE_UNSPECIFIED",
"AUTHENTICATION",
"TRANSACTION",
"PROMOTION",
"SERVICEREQUEST",
"ACKNOWLEDGEMENT"
]
},
"RichMessageClassificationType": {
"type": "string",
"enum": [
"RICH_MESSAGE_CLASSIFICATION_TYPE_UNSPECIFIED",
"RICH_MESSAGE",
"RICH_MEDIA_MESSAGE",
"SUGGESTED_ACTION_CLICK"
]
},
"RichMessageClassification": {
"type": "object",
"description": "Output only. Classifies the message according to the US billing model.",
"properties": {
"classificationType": {
"$ref": "#/components/schemas/RichMessageClassificationType",
"description": "Specifies the message's classification for billing purposes under the US billing model."
},
"segmentCount": {
"type": "integer",
"format": "int32",
"description": "The number of 160-byte segments for the message's text, always rounded up. Calculated from the total UTF-8 byte length of the text content only; data from suggested replies or actions is excluded."
}
}
},
"UploadedRbmFile": {
"type": "object",
"description": "A file that has been uploaded to the RCS Business Messaging platform.",
"properties": {
"fileName": {
"type": "string",
"description": "The name of the file, as provided by the RBM platform when the file is uploaded.",
"readOnly": true
},
"thumbnailName": {
"type": "string",
"description": "The name of the thumbnail associated with the file, as provided by the RBM platform when the file is uploaded.",
"readOnly": true
}
}
},
"UserFile": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "The category the file belongs to.",
"enum": [
"FILE_CATEGORY_UNSPECIFIED",
"IMAGE",
"VIDEO",
"AUDIO"
]
},
"thumbnail": {
"type": "object",
"properties": {
"mimeType": {
"type": "string",
"description": "MIME type of the file."
},
"fileSizeBytes": {
"type": "integer",
"description": "Size of file (in bytes)."
},
"fileUri": {
"type": "string",
"description": "URI of the file."
}
}
},
"payload": {
"type": "object",
"properties": {
"mimeType": {
"type": "string",
"description": "MIME type of the file."
},
"fileSizeBytes": {
"type": "integer",
"description": "Size of file (in bytes)."
},
"fileUri": {
"type": "string",
"description": "URI of the file."
}
}
}
}
},
"SuggestionResponse": {
"type": "object",
"properties": {
"postbackData": {
"type": "string",
"description": "The postback data specified by the agent when the agent sent the suggestion to the user."
},
"text": {
"type": "string",
"description": "The user-visible text of the suggestion that the user tapped."
},
"type": {
"type": "string",
"description": "The type of suggestion which was responded to.",
"enum": [
"UNKNOWN",
"ACTION",
"REPLY"
]
}
}
}
},
"securitySchemes": {
"OAuth2Auth": {
"type": "oauth2",
"flows": {
"clientCredentials": {
"tokenUrl": "https://vibes-rbm-prd.auth.us-west-2.amazoncognito.com/oauth2/token",
"scopes": {
"https://rbm.vibes.com/rbm.agents": ""
}
}
}
}
}
},
"servers": [
{
"url": "https://rbm.us.vibes.com/connectCustomers",
"description": "Regional endpoint"
}
],
"x-readme": {
"explorer-enabled": true,
"proxy-enabled": true
}
}