diff --git a/swagger/definitions/index.yml b/swagger/definitions/index.yml index 97d7d69ce..026b85249 100644 --- a/swagger/definitions/index.yml +++ b/swagger/definitions/index.yml @@ -76,6 +76,9 @@ account_create_update_payload: account_user_create_update_payload: $ref: ./request/account_user/create_update_payload.yml +platform_agent_bot_create_update_payload: + $ref: ./request/platform/agent_bot/create_update_payload.yml + agent_bot_create_update_payload: $ref: ./request/agent_bot/create_update_payload.yml @@ -88,6 +91,12 @@ canned_response_create_update_payload: custom_attribute_create_update_payload: $ref: ./request/custom_attribute/create_update_payload.yml +## Agent +agent_create_payload: + $ref: ./request/agent/create_payload.yml +agent_update_payload: + $ref: ./request/agent/update_payload.yml + ## Contact contact_create_payload: $ref: ./request/contact/create_payload.yml diff --git a/swagger/definitions/request/agent/create_payload.yml b/swagger/definitions/request/agent/create_payload.yml new file mode 100644 index 000000000..1daeae83a --- /dev/null +++ b/swagger/definitions/request/agent/create_payload.yml @@ -0,0 +1,28 @@ +type: object +required: + - name + - email + - role +properties: + name: + type: string + description: Full Name of the agent + example: 'John Doe' + email: + type: string + description: Email of the Agent + example: 'john.doe@acme.inc' + role: + type: string + enum: ['agent', 'administrator'] + description: Whether its administrator or agent + example: 'agent' + availability_status: + type: string + enum: ['available', 'busy', 'offline'] + description: The availability setting of the agent. + example: 'available' + auto_offline: + type: boolean + description: Whether the availability status of agent is configured to go offline automatically when away. + example: true diff --git a/swagger/definitions/request/agent/update_payload.yml b/swagger/definitions/request/agent/update_payload.yml new file mode 100644 index 000000000..e531b664c --- /dev/null +++ b/swagger/definitions/request/agent/update_payload.yml @@ -0,0 +1,18 @@ +type: object +required: + - role +properties: + role: + type: string + enum: ['agent', 'administrator'] + description: Whether its administrator or agent + example: 'agent' + availability: + type: string + enum: ['available', 'busy', 'offline'] + description: The availability setting of the agent. + example: 'available' + auto_offline: + type: boolean + description: Whether the availability status of agent is configured to go offline automatically when away. + example: true diff --git a/swagger/definitions/request/agent_bot/create_update_payload.yml b/swagger/definitions/request/agent_bot/create_update_payload.yml index e14c1ba7c..4a95b42bf 100644 --- a/swagger/definitions/request/agent_bot/create_update_payload.yml +++ b/swagger/definitions/request/agent_bot/create_update_payload.yml @@ -12,7 +12,19 @@ properties: type: string description: The webhook URL for the bot example: 'https://example.com/webhook' - account_id: + avatar: + type: string + format: binary + description: Send the form data with the avatar image binary or use the avatar_url + avatar_url: + type: string + description: The url to a jpeg, png file for the agent bot avatar + example: https://example.com/avatar.png + bot_type: type: integer - description: The account ID to associate the agent bot with - example: 1 + description: The type of the bot (0 for webhook) + example: 0 + bot_config: + type: object + description: The configuration for the bot + example: {} diff --git a/swagger/definitions/request/canned_response/create_update_payload.yml b/swagger/definitions/request/canned_response/create_update_payload.yml index ef6f7f74a..3673b4798 100644 --- a/swagger/definitions/request/canned_response/create_update_payload.yml +++ b/swagger/definitions/request/canned_response/create_update_payload.yml @@ -3,6 +3,8 @@ properties: content: type: string description: Message content for canned response + example: 'Hello, {{contact.name}}! Welcome to our service.' short_code: type: string description: Short Code for quick access of the canned response + example: 'welcome' diff --git a/swagger/definitions/request/contact/create_payload.yml b/swagger/definitions/request/contact/create_payload.yml index 5acbe5f94..ac32de92f 100644 --- a/swagger/definitions/request/contact/create_payload.yml +++ b/swagger/definitions/request/contact/create_payload.yml @@ -4,15 +4,24 @@ required: properties: inbox_id: type: number + description: ID of the inbox to which the contact belongs + example: 1 name: type: string description: name of the contact + example: Alice email: type: string description: email of the contact + example: alice@acme.inc + blocked: + type: boolean + description: whether the contact is blocked or not + example: false phone_number: type: string description: phone number of the contact + example: +123456789 avatar: type: string format: binary @@ -20,9 +29,16 @@ properties: avatar_url: type: string description: The url to a jpeg, png file for the contact avatar + example: https://example.com/avatar.png identifier: type: string description: A unique identifier for the contact in external system + example: '1234567890' + additional_attributes: + type: object + description: An object where you can store additional attributes for contact. example {"type":"customer", "age":30} + example: { 'type': 'customer', 'age': 30 } custom_attributes: type: object - description: An object where you can store custom attributes for contact. example {"type":"customer", "age":30} + description: An object where you can store custom attributes for contact. example {"type":"customer", "age":30}, this should have a valid custom attribute definition. + example: {} diff --git a/swagger/definitions/request/contact/update_payload.yml b/swagger/definitions/request/contact/update_payload.yml index cd37b98b0..e88353a1f 100644 --- a/swagger/definitions/request/contact/update_payload.yml +++ b/swagger/definitions/request/contact/update_payload.yml @@ -3,12 +3,19 @@ properties: name: type: string description: name of the contact + example: Alice email: type: string description: email of the contact + example: alice@acme.inc + blocked: + type: boolean + description: whether the contact is blocked or not + example: false phone_number: type: string description: phone number of the contact + example: +123456789 avatar: type: string format: binary @@ -16,9 +23,16 @@ properties: avatar_url: type: string description: The url to a jpeg, png file for the contact avatar + example: https://example.com/avatar.png identifier: type: string description: A unique identifier for the contact in external system + example: '1234567890' + additional_attributes: + type: object + description: An object where you can store additional attributes for contact. example {"type":"customer", "age":30} + example: { 'type': 'customer', 'age': 30 } custom_attributes: type: object - description: An object where you can store custom attributes for contact. example {"type":"customer", "age":30} + description: An object where you can store custom attributes for contact. example {"type":"customer", "age":30}, this should have a valid custom attribute definition. + example: {} diff --git a/swagger/definitions/request/custom_attribute/create_update_payload.yml b/swagger/definitions/request/custom_attribute/create_update_payload.yml index fd368f98c..3ee960559 100644 --- a/swagger/definitions/request/custom_attribute/create_update_payload.yml +++ b/swagger/definitions/request/custom_attribute/create_update_payload.yml @@ -3,20 +3,34 @@ properties: attribute_display_name: type: string description: Attribute display name + example: 'Custom Attribute' attribute_display_type: type: integer description: Attribute display type (text- 0, number- 1, currency- 2, percent- 3, link- 4, date- 5, list- 6, checkbox- 7) + example: 0 attribute_description: type: string description: Attribute description + example: 'This is a custom attribute' attribute_key: type: string description: Attribute unique key value + example: 'custom_attribute' attribute_values: type: array description: Attribute values items: type: string + example: ['value1', 'value2'] attribute_model: type: integer description: Attribute type(conversation_attribute- 0, contact_attribute- 1) + example: 0 + regex_pattern: + type: string + description: Regex pattern (Only applicable for type- text). The regex pattern is used to validate the attribute value(s). + example: '^[a-zA-Z0-9]+$' + regex_cue: + type: string + description: Regex cue message (Only applicable for type- text). The cue message is shown when the regex pattern is not matched. + example: 'Please enter a valid value' diff --git a/swagger/definitions/request/platform/agent_bot/create_update_payload.yml b/swagger/definitions/request/platform/agent_bot/create_update_payload.yml new file mode 100644 index 000000000..a258e28a6 --- /dev/null +++ b/swagger/definitions/request/platform/agent_bot/create_update_payload.yml @@ -0,0 +1,26 @@ +type: object +properties: + name: + type: string + description: The name of the agent bot + example: 'My Agent Bot' + description: + type: string + description: The description of the agent bot + example: 'This is a sample agent bot' + outgoing_url: + type: string + description: The webhook URL for the bot + example: 'https://example.com/webhook' + account_id: + type: integer + description: The account ID to associate the agent bot with + example: 1 + avatar: + type: string + format: binary + description: Send the form data with the avatar image binary or use the avatar_url + avatar_url: + type: string + description: The url to a jpeg, png file for the agent bot avatar + example: https://example.com/avatar.png diff --git a/swagger/definitions/request/public/contact/create_update_payload.yml b/swagger/definitions/request/public/contact/create_update_payload.yml index 951f795ac..19ad6c653 100644 --- a/swagger/definitions/request/public/contact/create_update_payload.yml +++ b/swagger/definitions/request/public/contact/create_update_payload.yml @@ -3,21 +3,28 @@ properties: identifier: type: string description: External identifier of the contact + example: '1234567890' identifier_hash: type: string description: Identifier hash prepared for HMAC authentication + example: 'e93275d4eba0e5679ad55f5360af00444e2a888df9b0afa3e8b691c3173725f9' email: type: string description: Email of the contact + example: alice@acme.inc name: type: string description: Name of the contact + example: Alice phone_number: type: string description: Phone number of the contact - avatar_url: + example: +123456789 + avatar: type: string - description: The url to a jpeg, png file for the user avatar + format: binary + description: Send the form data with the avatar image binary or use the avatar_url custom_attributes: type: object description: Custom attributes of the customer + example: {} diff --git a/swagger/paths/application/agents/create.yml b/swagger/paths/application/agents/create.yml index fa5442d02..51436381e 100644 --- a/swagger/paths/application/agents/create.yml +++ b/swagger/paths/application/agents/create.yml @@ -10,29 +10,7 @@ requestBody: content: application/json: schema: - type: object - required: - - name - - email - - role - properties: - name: - type: string - description: Full Name of the agent - email: - type: string - description: Email of the Agent - role: - type: string - enum: ['agent', 'administrator'] - description: Whether its administrator or agent - availability_status: - type: string - enum: ['available', 'busy', 'offline'] - description: The availability setting of the agent. - auto_offline: - type: boolean - description: Whether the availability status of agent is configured to go offline automatically when away. + $ref: '#/components/schemas/agent_create_payload' responses: '200': description: Success diff --git a/swagger/paths/application/agents/update.yml b/swagger/paths/application/agents/update.yml index 5819e87db..afb5579f3 100644 --- a/swagger/paths/application/agents/update.yml +++ b/swagger/paths/application/agents/update.yml @@ -17,21 +17,7 @@ requestBody: content: application/json: schema: - type: object - required: - - role - properties: - role: - type: string - enum: ['agent', 'administrator'] - description: Whether its administrator or agent - availability: - type: string - enum: ['available', 'busy', 'offline'] - description: The availability setting of the agent. - auto_offline: - type: boolean - description: Whether the availability status of agent is configured to go offline automatically when away. + $ref: '#/components/schemas/agent_update_payload' responses: 200: description: Success diff --git a/swagger/paths/application/canned_responses/update.yml b/swagger/paths/application/canned_responses/update.yml index 706b159fd..57315d5be 100644 --- a/swagger/paths/application/canned_responses/update.yml +++ b/swagger/paths/application/canned_responses/update.yml @@ -1,5 +1,5 @@ tags: - - Canned Response + - Canned Responses operationId: update-canned-response-in-account summary: Update Canned Response in Account description: Update a Canned Response in Account diff --git a/swagger/paths/application/contact_inboxes/create.yml b/swagger/paths/application/contact_inboxes/create.yml index dc39f3366..64ebeb21c 100644 --- a/swagger/paths/application/contact_inboxes/create.yml +++ b/swagger/paths/application/contact_inboxes/create.yml @@ -26,6 +26,7 @@ post: inbox_id: type: number description: The ID of the inbox + example: 1 source_id: type: string description: Contact Inbox Source Id diff --git a/swagger/paths/platform/agent_bots/create.yml b/swagger/paths/platform/agent_bots/create.yml index 4cb674f56..4f916d672 100644 --- a/swagger/paths/platform/agent_bots/create.yml +++ b/swagger/paths/platform/agent_bots/create.yml @@ -10,7 +10,7 @@ requestBody: content: application/json: schema: - $ref: '#/components/schemas/agent_bot_create_update_payload' + $ref: '#/components/schemas/platform_agent_bot_create_update_payload' responses: '200': description: Success diff --git a/swagger/paths/platform/agent_bots/update.yml b/swagger/paths/platform/agent_bots/update.yml index ebfd98ee7..7abc46ab8 100644 --- a/swagger/paths/platform/agent_bots/update.yml +++ b/swagger/paths/platform/agent_bots/update.yml @@ -10,7 +10,7 @@ requestBody: content: application/json: schema: - $ref: '#/components/schemas/agent_bot_create_update_payload' + $ref: '#/components/schemas/platform_agent_bot_create_update_payload' responses: '200': description: Success diff --git a/swagger/swagger.json b/swagger/swagger.json index 6f2079e8d..f1be4426f 100644 --- a/swagger/swagger.json +++ b/swagger/swagger.json @@ -415,7 +415,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/agent_bot_create_update_payload" + "$ref": "#/components/schemas/platform_agent_bot_create_update_payload" } } } @@ -516,7 +516,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/agent_bot_create_update_payload" + "$ref": "#/components/schemas/platform_agent_bot_create_update_payload" } } } @@ -1952,43 +1952,7 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "name", - "email", - "role" - ], - "properties": { - "name": { - "type": "string", - "description": "Full Name of the agent" - }, - "email": { - "type": "string", - "description": "Email of the Agent" - }, - "role": { - "type": "string", - "enum": [ - "agent", - "administrator" - ], - "description": "Whether its administrator or agent" - }, - "availability_status": { - "type": "string", - "enum": [ - "available", - "busy", - "offline" - ], - "description": "The availability setting of the agent." - }, - "auto_offline": { - "type": "boolean", - "description": "Whether the availability status of agent is configured to go offline automatically when away." - } - } + "$ref": "#/components/schemas/agent_create_payload" } } } @@ -2053,33 +2017,7 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "role" - ], - "properties": { - "role": { - "type": "string", - "enum": [ - "agent", - "administrator" - ], - "description": "Whether its administrator or agent" - }, - "availability": { - "type": "string", - "enum": [ - "available", - "busy", - "offline" - ], - "description": "The availability setting of the agent." - }, - "auto_offline": { - "type": "boolean", - "description": "Whether the availability status of agent is configured to go offline automatically when away." - } - } + "$ref": "#/components/schemas/agent_update_payload" } } } @@ -2272,7 +2210,7 @@ ], "patch": { "tags": [ - "Canned Response" + "Canned Responses" ], "operationId": "update-canned-response-in-account", "summary": "Update Canned Response in Account", @@ -8742,7 +8680,7 @@ } } }, - "agent_bot_create_update_payload": { + "platform_agent_bot_create_update_payload": { "type": "object", "properties": { "name": { @@ -8764,6 +8702,57 @@ "type": "integer", "description": "The account ID to associate the agent bot with", "example": 1 + }, + "avatar": { + "type": "string", + "format": "binary", + "description": "Send the form data with the avatar image binary or use the avatar_url" + }, + "avatar_url": { + "type": "string", + "description": "The url to a jpeg, png file for the agent bot avatar", + "example": "https://example.com/avatar.png" + } + } + }, + "agent_bot_create_update_payload": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the agent bot", + "example": "My Agent Bot" + }, + "description": { + "type": "string", + "description": "The description of the agent bot", + "example": "This is a sample agent bot" + }, + "outgoing_url": { + "type": "string", + "description": "The webhook URL for the bot", + "example": "https://example.com/webhook" + }, + "avatar": { + "type": "string", + "format": "binary", + "description": "Send the form data with the avatar image binary or use the avatar_url" + }, + "avatar_url": { + "type": "string", + "description": "The url to a jpeg, png file for the agent bot avatar", + "example": "https://example.com/avatar.png" + }, + "bot_type": { + "type": "integer", + "description": "The type of the bot (0 for webhook)", + "example": 0 + }, + "bot_config": { + "type": "object", + "description": "The configuration for the bot", + "example": { + } } } }, @@ -8803,11 +8792,13 @@ "properties": { "content": { "type": "string", - "description": "Message content for canned response" + "description": "Message content for canned response", + "example": "Hello, {{contact.name}}! Welcome to our service." }, "short_code": { "type": "string", - "description": "Short Code for quick access of the canned response" + "description": "Short Code for quick access of the canned response", + "example": "welcome" } } }, @@ -8816,30 +8807,125 @@ "properties": { "attribute_display_name": { "type": "string", - "description": "Attribute display name" + "description": "Attribute display name", + "example": "Custom Attribute" }, "attribute_display_type": { "type": "integer", - "description": "Attribute display type (text- 0, number- 1, currency- 2, percent- 3, link- 4, date- 5, list- 6, checkbox- 7)" + "description": "Attribute display type (text- 0, number- 1, currency- 2, percent- 3, link- 4, date- 5, list- 6, checkbox- 7)", + "example": 0 }, "attribute_description": { "type": "string", - "description": "Attribute description" + "description": "Attribute description", + "example": "This is a custom attribute" }, "attribute_key": { "type": "string", - "description": "Attribute unique key value" + "description": "Attribute unique key value", + "example": "custom_attribute" }, "attribute_values": { "type": "array", "description": "Attribute values", "items": { "type": "string" - } + }, + "example": [ + "value1", + "value2" + ] }, "attribute_model": { "type": "integer", - "description": "Attribute type(conversation_attribute- 0, contact_attribute- 1)" + "description": "Attribute type(conversation_attribute- 0, contact_attribute- 1)", + "example": 0 + }, + "regex_pattern": { + "type": "string", + "description": "Regex pattern (Only applicable for type- text). The regex pattern is used to validate the attribute value(s).", + "example": "^[a-zA-Z0-9]+$" + }, + "regex_cue": { + "type": "string", + "description": "Regex cue message (Only applicable for type- text). The cue message is shown when the regex pattern is not matched.", + "example": "Please enter a valid value" + } + } + }, + "agent_create_payload": { + "type": "object", + "required": [ + "name", + "email", + "role" + ], + "properties": { + "name": { + "type": "string", + "description": "Full Name of the agent", + "example": "John Doe" + }, + "email": { + "type": "string", + "description": "Email of the Agent", + "example": "john.doe@acme.inc" + }, + "role": { + "type": "string", + "enum": [ + "agent", + "administrator" + ], + "description": "Whether its administrator or agent", + "example": "agent" + }, + "availability_status": { + "type": "string", + "enum": [ + "available", + "busy", + "offline" + ], + "description": "The availability setting of the agent.", + "example": "available" + }, + "auto_offline": { + "type": "boolean", + "description": "Whether the availability status of agent is configured to go offline automatically when away.", + "example": true + } + } + }, + "agent_update_payload": { + "type": "object", + "required": [ + "role" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "agent", + "administrator" + ], + "description": "Whether its administrator or agent", + "example": "agent" + }, + "availability": { + "type": "string", + "enum": [ + "available", + "busy", + "offline" + ], + "description": "The availability setting of the agent.", + "example": "available" + }, + "auto_offline": { + "type": "boolean", + "description": "Whether the availability status of agent is configured to go offline automatically when away.", + "example": true } } }, @@ -8850,19 +8936,29 @@ ], "properties": { "inbox_id": { - "type": "number" + "type": "number", + "description": "ID of the inbox to which the contact belongs", + "example": 1 }, "name": { "type": "string", - "description": "name of the contact" + "description": "name of the contact", + "example": "Alice" }, "email": { "type": "string", - "description": "email of the contact" + "description": "email of the contact", + "example": "alice@acme.inc" + }, + "blocked": { + "type": "boolean", + "description": "whether the contact is blocked or not", + "example": false }, "phone_number": { "type": "string", - "description": "phone number of the contact" + "description": "phone number of the contact", + "example": 123456789 }, "avatar": { "type": "string", @@ -8871,15 +8967,27 @@ }, "avatar_url": { "type": "string", - "description": "The url to a jpeg, png file for the contact avatar" + "description": "The url to a jpeg, png file for the contact avatar", + "example": "https://example.com/avatar.png" }, "identifier": { "type": "string", - "description": "A unique identifier for the contact in external system" + "description": "A unique identifier for the contact in external system", + "example": "1234567890" + }, + "additional_attributes": { + "type": "object", + "description": "An object where you can store additional attributes for contact. example {\"type\":\"customer\", \"age\":30}", + "example": { + "type": "customer", + "age": 30 + } }, "custom_attributes": { "type": "object", - "description": "An object where you can store custom attributes for contact. example {\"type\":\"customer\", \"age\":30}" + "description": "An object where you can store custom attributes for contact. example {\"type\":\"customer\", \"age\":30}, this should have a valid custom attribute definition.", + "example": { + } } } }, @@ -8888,15 +8996,23 @@ "properties": { "name": { "type": "string", - "description": "name of the contact" + "description": "name of the contact", + "example": "Alice" }, "email": { "type": "string", - "description": "email of the contact" + "description": "email of the contact", + "example": "alice@acme.inc" + }, + "blocked": { + "type": "boolean", + "description": "whether the contact is blocked or not", + "example": false }, "phone_number": { "type": "string", - "description": "phone number of the contact" + "description": "phone number of the contact", + "example": 123456789 }, "avatar": { "type": "string", @@ -8905,15 +9021,27 @@ }, "avatar_url": { "type": "string", - "description": "The url to a jpeg, png file for the contact avatar" + "description": "The url to a jpeg, png file for the contact avatar", + "example": "https://example.com/avatar.png" }, "identifier": { "type": "string", - "description": "A unique identifier for the contact in external system" + "description": "A unique identifier for the contact in external system", + "example": "1234567890" + }, + "additional_attributes": { + "type": "object", + "description": "An object where you can store additional attributes for contact. example {\"type\":\"customer\", \"age\":30}", + "example": { + "type": "customer", + "age": 30 + } }, "custom_attributes": { "type": "object", - "description": "An object where you can store custom attributes for contact. example {\"type\":\"customer\", \"age\":30}" + "description": "An object where you can store custom attributes for contact. example {\"type\":\"customer\", \"age\":30}, this should have a valid custom attribute definition.", + "example": { + } } } }, @@ -9291,31 +9419,39 @@ "properties": { "identifier": { "type": "string", - "description": "External identifier of the contact" + "description": "External identifier of the contact", + "example": "1234567890" }, "identifier_hash": { "type": "string", - "description": "Identifier hash prepared for HMAC authentication" + "description": "Identifier hash prepared for HMAC authentication", + "example": "e93275d4eba0e5679ad55f5360af00444e2a888df9b0afa3e8b691c3173725f9" }, "email": { "type": "string", - "description": "Email of the contact" + "description": "Email of the contact", + "example": "alice@acme.inc" }, "name": { "type": "string", - "description": "Name of the contact" + "description": "Name of the contact", + "example": "Alice" }, "phone_number": { "type": "string", - "description": "Phone number of the contact" + "description": "Phone number of the contact", + "example": 123456789 }, - "avatar_url": { + "avatar": { "type": "string", - "description": "The url to a jpeg, png file for the user avatar" + "format": "binary", + "description": "Send the form data with the avatar image binary or use the avatar_url" }, "custom_attributes": { "type": "object", - "description": "Custom attributes of the customer" + "description": "Custom attributes of the customer", + "example": { + } } } },