# Evaluation

The Evaluation API is responsible for evaluation workflows in FDPlan. The
key features of the API include:

* The ability to create custom evaluation workflows.
* The ability to drive custom evaluation workflows and computations.

The key API concepts include:

* **workflow-specs**: A workflow-spec is a workflow specification defining
  all the computation specifications which form the workflow. A workflow
  specification also defines the edges which connect computations together
  in a graph. These edges connect an output from one computation
  specification to the input of another.
  A number of default 'system' workflow specifications are provided to the
  user. Details of these 'system' workflow specifications can be discovered
  by using the API to get all workflow specifications.

* **computation-specs**: A computation-spec is a computation specification
  which defines all the input and output data-types for the computation.
  A number of default 'system' computation specifications are provided to
  the user.  Details of these 'system' computation specifications can be
  discovered by using the API to get all computation specifications.

* **data-types**: A data-type is a specification for a data representation
  which is required as one of a computation-spec's inputs or produced as
  one of a computation-spec's outputs.
  A number of default 'system' data-types are provided to the user. Details
  of these 'system' data-types can be discovered by using the API to get all
  data-types.

* **computation**: A computation is an instance of a computation-spec for a
  running workflow. It encapsulates the state of the computation
  (i.e. running, succeeded), input/output data containers which have been
  associated with the computation and any errors which have occurred during
  the running of the computation. The input and output data containers
  associated with the computation can be accessed through the containers API
  operations.

* **container**: A container is a resource which holds all the data for a
  given data-type definition.

* **schema**: A schema is a formal description of a data-type. It defines
  the structure of the data-type against which data can be validated.
  A number of default schemas for 'system' data-types are provided for the
  user.
  Currently only JSON schemas are supported, for more information see
  [JSON Schema](https://json-schema.org/).
  Schemas defined in the OSDU schema service may be used to describe
  evaluation data-types by using their unique identifiers in schema
  references, e.g. osdu:wks:wellbore:1.0.0.

Below is the list of Client IDs for FDPlan Services.
```plain {% title="Client ID" %}
prod-nam-services-fdplan.slbservice.com
prod-eu-services-fdplan.slbservice.com
prod-au-services-fdplan.slbservice.com
prod-id-services-fdplan.slbservice.com
production-services-fdplan.slbservice.com
```


Version: 1.0.0

## Servers

```
https://api.delfi.slb.com/fdplan/evaluation/v1
```

## Security

### bearer

Type: apiKey
In: header
Name: Authorization

### appkey

Type: apiKey
In: header
Name: appkey

## Download OpenAPI description

 - [Evaluation](https://developer.slb.com/_bundle/solutions/fdplan/apis/FDPlan-Evaluation.yaml)

## WorkflowSpecs

 - [GET /workflow-specs](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/workflowspecs/getworkflowspecs.md): Get all workflow specifications. The parameter 'IncludePreviousVersions' may be used to return either the most recent versions of the workflow specifications or all possible versions of each workflow
 - [POST /workflow-specs](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/workflowspecs/postworkflowspec.md): Create workflow specification. The create request must contain all the computation specifications which are to make up the workflow specification. These computation specifications must have previously
 - [GET /workflow-specs/{workflowSpecId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/workflowspecs/getworkflowspec.md): Get a workflow specification.
 - [PUT /workflow-specs/{workflowSpecId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/workflowspecs/putworkflowspec.md): Create or update workflow specification. The request must contain all the computation specifications which are to make up the workflow specification. These computation specifications must have previou
 - [PATCH /workflow-specs/{workflowSpecId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/workflowspecs/patchworkflowspec.md): Update a workflow specification. It is only possible to update the "name", "description", "archived", "computationSpecs", "edges" and "annotations" fields of the workflow specification.
 - [PUT /workflow-specs/{workflowSpecId}/computation-config](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/workflowspecs/putcomputationconfig.md): Create or update configuration properties for a computation. The paramaters workflowSpecId and computationIndex will be used to uniquely identify the configuration to be created or updated. **Note**:
## ComputationSpecs

 - [GET /computation-specs](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/computationspecs/getcomputationspecs.md): Get all computation specifications. The parameter 'IncludePreviousVersions' may be used to return either the most recent versions of the computation specifications or all possible versions of each com
 - [POST /computation-specs](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/computationspecs/postcomputationspec.md): Create a computation specification. The create request must contain all the input and output data-type IDs which are used to define the computation specification. These data-types must have previously
 - [GET /computation-specs/{computationSpecId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/computationspecs/getcomputationspec.md): Get computation specification.
 - [PUT /computation-specs/{computationSpecId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/computationspecs/putcomputationspec.md): Create or update a computation specification. The request must contain all the input and output data-type IDs which are used to define the computation specification. These data-types must have previou
 - [PATCH /computation-specs/{computationSpecId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/computationspecs/patchcomputationspec.md): Update computation specification. It is only possible to update the "name", "description", "archived", "inputDataTypeIds", "outputDataTypeIds" and "annotations" fields of the computation specification
## DataTypes

 - [GET /data-types](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/datatypes/getdatatypes.md): Get all data-types. The parameter 'IncludePreviousVersions' may be used to return either the most recent versions of the data-types or all possible versions of each data-type.
 - [POST /data-types](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/datatypes/postdatatype.md): Create data-type. The create request must contain all the file types which are to be associated with the data-type. For example, if the data-type was to allow the use of JSON documents then the reques
 - [GET /data-types/{dataTypeId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/datatypes/getdatatype.md): Get a data-type.
 - [PUT /data-types/{dataTypeId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/datatypes/putdatatype.md): Create or update data-type. The request must contain all the file types which are to be associated with the data-type. For example, if the data-type was to allow the use of JSON documents then the req
 - [PATCH /data-types/{dataTypeId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/datatypes/patchdatatype.md): Update a data-type. It is only possible to update the "name", "description", "archived", and "fileSpecs" fields of the data-type.
## Computations

 - [GET /computations/{computationId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/computations/getcomputation.md): Get a computation given the computation ID. The computation contains the state of the computation (i.e. running, succeeded), input/output data containers which has been associated with the computation
 - [POST /computations/{computationId}/status](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/computations/postcomputationstatus.md): Set status of computation given the computation ID.
## Containers

 - [GET /containers/{containerId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/containers/getcontainer.md): Get container given the container ID. The container ID associated with a given computation can be accessed through the computations API operations.
 - [POST /containers/{containerId}/files](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/containers/postcontainerfile.md): Upload file associated with a container.
 - [GET /containers/{containerId}/files/{fileName}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/containers/getcontainerfile.md): Get a file associated with a container. The MIME type will be set according to the data-type.
 - [GET /containers/{containerId}/files/{fileName}/download-url](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/containers/getdownloadsignedurl.md): Generate a signed url which can be used for downloading a specified file.
 - [GET /containers/{containerId}/files/{fileName}/upload-url](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/containers/getuploadsignedurl.md): Generate a signed url which can be used for uploading a specified file.
## Schemas

 - [GET /schemas/{schemaId}](https://developer.slb.com/solutions/fdplan/apis/fdplan-evaluation/schemas/getschema.md): Get a schema given its schema ID.
