# ReplaceWorkflowSpec

Schema: #/components/schemas/ReplaceWorkflowSpec

Method: SCHEMA
Version: 1.0.0
Security: bearer, appkey

## Schema fields:

  - `id` (string, required)
    The id of the specification. The id should be of the form
'{authority}:{spec-type}:{id}', where '{authority}' is the owning
authority of the specification, '{spec-type}' is one of 'data-types',
'computation-specs' or 'workflow-specs'.
    Example: slb:data-types:custom-specification

  - `name` (string, required)
    The name of the specification.
    Example: A custom data-type

  - `version` (integer, required)
    The version of the specification definition.
    Example: 1

  - `archived` (boolean)
    Whether this specification has been marked as archived.
    Example: false

  - `description` (string, required)
    The description of the specification.
    Example: A specification

  - `computationSpecs` (array, required)
    The computation specifications which make up the workflow specification. These computation specifications must have already been previously created. The order of the computation specifications is maintained in the created/updated workflow specification.
    Example: [{"id":"ix","version":1},{"id":"peep","version":1}]

  - `computationSpecs.id` (string, required)
    The specification ID.
    Example: 01DV2RPKYS5NYBAR6TNMJ8TNT8

  - `computationSpecs.version` (integer, required)
    The version of the specification of the given ID.
    Example: 1

  - `edges` (array)
    A list of edges which describe all the links in the workflow specification. The edges describe the flow of data from one  computation specifications output data-type to another computation specifications input data-type. The computation specifications referred to in the edges must have been previously created and be defined in the computationSpecIds property.
    Example: [{"fromAddressType":"DataTypeOutput","fromComputationIndex":0,"fromDataTypeIndex":0,"toComputationIndex":1,"toDataTypeIndex":0}]

  - `edges.fromAddressType` (string)
    Whether the address refers to a data-type input or data-type output  (defaults to output).
    Enum: "DataTypeInput", "DataTypeOutput"

  - `edges.fromComputationIndex` (integer)
    The zero based index of the computation specification which generates the data-type in the workflow specification.
    Example: 1

  - `edges.fromDataTypeIndex` (integer)
    The zero based index of the data-type as listed as an output data-type in computation specification referred to in the 'fromComputationIndex' above.
    Example: 0

  - `edges.toComputationIndex` (integer)
    The zero based index of the computation specification which consumes the data-type in the workflow specification.
    Example: 1

  - `edges.toDataTypeIndex` (integer)
    The zero based index of the data-type as listed as an input data-type in the computation specification referred to in the 'toComputationIndex' above.
    Example: 0

  - `annotations` (array)
    Example: [{"address":{"type":"DataTypeInput","computationIndex":0,"dataTypeIndex":0},"key":"name","value":"Decline Curves","createdBy":"user@slb.com"}]

  - `annotations.address` (object)
    An address used to describe the location of a Spec within a WorkflowSpec. Used to enrich the spec model with additional attributes such as specifying the location of a data container or providing annotations.
    Example: {"type":"DataTypeInput","computationIndex":0,"dataTypeIndex":0}

  - `annotations.address.type` (string, required)
    Whether the address refers to a data-type input, a data-type output or a computation specification.
    Enum: "Invalid", "Computation", "DataTypeInput", "DataTypeOutput", "Workflow"

  - `annotations.address.computationIndex` (integer)
    The zero based index of the Computation Spec.
    Example: 0

  - `annotations.address.dataTypeIndex` (integer)
    The zero based index of a data-type with respect to a computation specification. Inputs and outputs are treated as separate ordered lists.
    Example: 1

  - `annotations.key` (string)
    Free form content with relevant information for the given address.
    Example: name

  - `annotations.value` (string)
    Free form content with relevant information for the given address.
    Example: Decline Curves

  - `annotations.createdBy` (string)
    The user who created this annotation.
    Example: user@slb.com

