# EESy Message Service

The EESy message service implements the *messages* and
*responseMessages* resources of the EESy API. Workflows use the
channel service to create message channels. For each channel, the
channel service launches a message service instance that
implements the message queue and handles message objects.
Channels come in two flavor: Unidirectional and
Request/Response. Unidirectional channels either communicate
messages from the workflow to the engine, or from the engine to
the workflow. Most commonly, a unidirectional channel is utilized
for engine status reporting. Request/response-type channels send
request messages from the workflow to the engine. The engine
processes the request and delivers a response message as the
result of the computation. Response messages are matched to
request messages through the message name.
Alternatively, a
workflow may use annotations in their request
messages. Annotations are passed through from the request messages
to the response messages. As an example, a workflow may want to
send computational requests for a set of wells. It may use an
annotation to tag requests with the well name. Response messages
include a copy of the annotation, thereby identifying the well to
which each response applies.
Restricted Access !
Existing customer can request access via [Customer Support for Digital](https://customersupport.digital.slb.com/).
Automatic population of the API Key and S-Auth token is not supported in the "Try It" interface for this API.

```plain Client ID
service-eesy.slbservice.com
```

Version: 1.0

## Servers

```
https://api.delfi.slb.com/engines/v1
```

## Security

### Bearer

User or Service/App/Client Token from SAuth

Type: apiKey
In: header
Name: Authorization

### appkey

AppKey/ Consumer Key from your App on Developer Portal

Type: apiKey
In: header
Name: appkey

## Download OpenAPI description

 - [EESy Message Service](https://developer.slb.com/_bundle/solutions/engine-ecosystem/apis/eesy_message_service_openapi.yaml)

## Messages

 - [POST /sessions/{session}/channels/{channel}/{type}](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/messages/postmessage.md): Queues a new EESy message for an engine. The message is assigned a new id and added to the end of the queue. The final message should be empty and indicate end-of-stream. The end-of-stream mes
 - [PUT /sessions/{session}/channels/{channel}/{type}](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/messages/putmessages.md): Queues new EESy messages for an engine. The messages are assigned a new id and added to the end of the queue. The final message should be empty and indicate end-of-stream. The end-of-stream me
 - [GET /sessions/{session}/channels/{channel}/{type}](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/messages/listmessages.md): Obtains a list of messages. The list may be limited to undelivered messages or to specific message topics. Topics are implemented by means of standard label selectors. A label selector is a comma-sepa
 - [DELETE /sessions/{session}/channels/{channel}/{type}](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/messages/deletemessages.md): Deletes messages and implicitly acknowledges their receipt from a previous GET request. If two concurrently running workflow processes retrieve the same message, only the first will be able to success
 - [GET /sessions/{session}/channels/{channel}/{type}/{name}](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/messages/getmessage.md): Obtains a specific message by name.
 - [DELETE /sessions/{session}/channels/{channel}/{type}/{name}](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/messages/deletemessage.md): Deletes a message and implicitly acknowledges its receipt from a previous GET request. If two concurrently running workflow processes retrieve the same message, only the first will be able to successf
 - [GET /sessions/{session}/channels/{channel}/{type}/utilization](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/messages/getutilization.md): Obtains the channel utilization information.
## Schema Definitions

 - [EESy Message](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/schema-definitions/message.md): Schema: #/components/schemas/Message
 - [EESy Message List](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/schema-definitions/messagelist.md): Schema: #/components/schemas/MessageList
 - [EESy object metadata](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/schema-definitions/objectmetadata.md): Schema: #/components/schemas/ObjectMetadata
 - [EESy Request Status](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/schema-definitions/status.md): Schema: #/components/schemas/Status
 - [EESy Channel Queue Utilization](https://developer.slb.com/solutions/engine-ecosystem/apis/eesy_message_service_openapi/schema-definitions/utilization.md): Schema: #/components/schemas/Utilization
