# publish formation top

publish formation top

Endpoint: POST /v1/ingress/data-sources/{dataSource}/formation-tops
Version: v1
Security: bearer, appkey, sauth_service_token

## Security:

  - `bearer` (unknown)
    http bearer JWT

  - `appkey` (unknown)
    apiKey in header appkey

  - `sauth_service_token` (unknown)
    oauth2

## Path parameters:

  - `dataSource` (string, required)
    data source name

## Header parameters:

  - `slb-partition-id` (string, required)
    The data partition id.

## Request body:

  - `application/json, text/json, application/*+json` (unknown)
    formation top data list

## Request fields (application/json):

  - `id` (string, required)

  - `name` (string, required)

  - `link` (string)
    URL of the source editor, drillplan will use this value let the user navigate to source and do the data modificaiton.

  - `timestamp` (string)
    object last modify time, drillplan will compare this value and the last modify time in drillplan, to decide if the source data is newer.

  - `comments` (string)

  - `wellbore_id` (string, required)
    Id of the wellore.

  - `reference_elevation` (number, required)
    Depth reference point's elevation 
The value is vertical distance between reference point and MSL.  
Positive when above MSL.  Negative when below.

  - `depth_type` (string, required)
    Enum: "TVD", "MD"

  - `formation_tops` (array, required)
    formation top elements

  - `formation_tops.depth_value` (number, required)
    depth value of formation top, can be md or tvd, depends on the depth_type

  - `formation_tops.name` (string, required)
    name of formation top

  - `formation_tops.depth_uncertainty_up` (number)
    upper depth uncertainty

  - `formation_tops.depth_uncertainty_down` (number)
    lower depth uncertainty

  - `formation_tops.rock_type` (string)
    rock type of formation

  - `formation_tops.hydrocarbon_bearing` (boolean)
    whether is hydrocarbon bearing

## Response 204:

  - `204` (unknown)
    Success

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (text/plain):

  - `type` (string)

  - `title` (string)

  - `status` (integer)

  - `detail` (string)

  - `instance` (string)

  - `errors` (object)

