# Adds a new Constraint

Endpoint: PUT /api/v5/constraints
Version: v5.7
Security: BearerToken

## Request fields (application/json):

  - `id` (string)
    Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information
 can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not
 required to send it in the request. One can be generated for you by the server.
    Example: "89a7bb4d-8720-4db9-aef7-4c3309186c3e"

  - `name` (string)
    Name of the entity. For display purposes and search only.
    Example: "Example combined constraint"

  - `creationDate` (string)
    The creation date of this entity.

  - `lastModified` (string)
    The last modified date of this entity. If none is given the creation date is used instead.

  - `contextEvents` (array)
    The context events provides some optional information about the events that can provide additional information
 on the current state of this entity.

For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear
what caused this ETA to be updated, we can include some information about what caused this ETA update by including
an event as context. If your ETA update was caused by a location update, this event can be included as context. If
the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context.

  - `value` (any, required)

  - `enforceability` (string)
    The enforceability of the constraint. Indicates whether or not the constraint is a suggestion/preference or something that is mandatory to adhere to.
    Enum: "enforced", "preference"

  - `externalAttributes` (object)
    External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of
  the OTM fields otherwise. The externalAttributes member is meant for additional meta data and/or additional
  ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system.

 > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as
   it was intended.

## Response 200 fields (application/json):

  - `id` (string)
    Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information
 can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not
 required to send it in the request. One can be generated for you by the server.
    Example: "89a7bb4d-8720-4db9-aef7-4c3309186c3e"

  - `name` (string)
    Name of the entity. For display purposes and search only.
    Example: "Example combined constraint"

  - `creationDate` (string)
    The creation date of this entity.

  - `lastModified` (string)
    The last modified date of this entity. If none is given the creation date is used instead.

  - `contextEvents` (array)
    The context events provides some optional information about the events that can provide additional information
 on the current state of this entity.

For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear
what caused this ETA to be updated, we can include some information about what caused this ETA update by including
an event as context. If your ETA update was caused by a location update, this event can be included as context. If
the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context.

  - `value` (any, required)

  - `enforceability` (string)
    The enforceability of the constraint. Indicates whether or not the constraint is a suggestion/preference or something that is mandatory to adhere to.
    Enum: "enforced", "preference"

  - `externalAttributes` (object)
    External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of
  the OTM fields otherwise. The externalAttributes member is meant for additional meta data and/or additional
  ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system.

 > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as
   it was intended.


