# publish cement program

publish cement program

Endpoint: POST /v1/ingress/data-sources/{dataSource}/cement-programs
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

## Request body:

  - `application/json, text/json, application/*+json` (unknown)
    cement program 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 this cement program designed for.

  - `drill_plan_section_id` (string)
    If this cement is dedicate for one drill plan section, record the section id for better mapping behavior

  - `section_name` (string)
    Section name, hit for mapping

  - `shoe_depth` (number)
    Section shoe depth, hint for mapping

  - `string_type` (string, required)
    Casing, Liner, Tieback

  - `is_multiple_stage` (boolean)
    Set true if the cement program is for multi-stage design

  - `stage_sequence` (integer)
    Required if is_multiple_stage set to true

  - `labels` (array)
    some label for the cement program

  - `fluids` (array)

  - `fluids.fluid_id` (integer)

  - `fluids.fluid_name` (string)

  - `fluids.fluid_type` (string)
    Enum: "Slurry", "Spacer", "Wash", "Mud"

  - `fluids.density` (number)

  - `fluids.use_dfp` (boolean)

  - `fluids.hb_parameters_index` (integer)

  - `fluids.hb_parameters` (array)

  - `fluids.hb_parameters.temperature` (number)

  - `fluids.hb_parameters.consistency` (number)

  - `fluids.hb_parameters.power_index` (number)

  - `fluids.hb_parameters.yield_stress` (number)

  - `placement_section` (object)

  - `placement_section.placement_design` (object)

  - `placement_section.placement_design.annulus_placements` (array)

  - `placement_section.placement_design.annulus_placements.fluid_id` (integer)

  - `placement_section.placement_design.annulus_placements.annular_length` (number)

  - `placement_section.placement_design.shoe_track_length` (number)

  - `placement_section.placement_design.top_of_cement` (number)

  - `placement_section.pumping_schedule` (object)

  - `placement_section.pumping_schedule.pumping_stages` (array)

  - `placement_section.pumping_schedule.pumping_stages.fluid_id` (integer)

  - `placement_section.pumping_schedule.pumping_stages.pumping_stage_type` (string)
    Enum: "Fluid", "Pause", "Plug", "TopPlug"

  - `placement_section.pumping_schedule.pumping_stages.pump_rate` (number)

  - `placement_section.pumping_schedule.pumping_stages.duration` (number)

  - `placement_section.pumping_schedule.pumping_stages.volume_at_ambient` (number)

  - `merged_open_hole_and_excesses` (array)

  - `merged_open_hole_and_excesses.md` (number)

  - `merged_open_hole_and_excesses.mean_diameter` (number)

  - `merged_open_hole_and_excesses.excess` (number)

  - `merged_open_hole_and_excesses.excess_type` (string)
    Enum: "OpenHoleExcess", "AnnularExcess"

## Response 204:

  - `204` (unknown)
    No Content

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (text/plain):

  - `type` (string)

  - `title` (string)

  - `status` (integer)

  - `detail` (string)

  - `instance` (string)

  - `errors` (object)

