# Upsert order-order restriction set

Create or update an order-order restriction set. A unique ID is required to identify the order-order restriction set.
Calling this endpoint with an existing ID will update the order-order restriction set.

Endpoint: PUT /settings/order-order-restriction-sets/{id}
Version: v1.23.0
Security: clientCredentials

## Path parameters:

  - `id` (string, required)
    The unique identifier of an entity

## Header parameters:

  - `If-Match` (string)
    Weak Etag used for optimistic locking.

## Request fields (application/json):

  - `id` (string)
    Example: cb1fb12c-0abc-413c-a69d-63c62566685f

  - `name` (string, required)
    The name of the order-order restriction set
    Example: Ambient goods not with chilled goods

  - `restrictions` (array, required)
    List of order-order restrictions in this set

  - `restrictions.order_label_1` (string)
    First order label (DEPRECATED — use restriction.subject.label)
    Example: ambient

  - `restrictions.type` (string)
    Type of restriction
    Enum: "NOT_TOGETHER_IN_VEHICLE_WITH", "NOT_LOADED_OR_UNLOADED_WHILE_VEHICLE_CONTAINS", "NOT_AFTER", "NOT_IMMEDIATELY_AFTER", "NOT_BEFORE", "NOT_LOADED_WHILE_VEHICLE_CONTAINS", "NOT_UNLOADED_WHILE_VEHICLE_CONTAINS"

  - `restrictions.order_label_2` (string)
    Second order label (DEPRECATED — use restriction.target.label)
    Example: chilled

  - `restrictions.vehicle_label` (any)
    Vehicle label (DEPRECATED — use conditions.vehicles)
    Example: cooler truck

  - `restrictions.restriction` (object)

  - `restrictions.restriction.subject` (object, required)

  - `restrictions.restriction.subject.label` (string, required)
    Example: frozen

  - `restrictions.restriction.subject.operator` (string, required)
    Enum: "INCLUDING", "EXCLUDING"

  - `restrictions.conditions` (object)

  - `restrictions.conditions.vehicles` (object, required)

  - `restrictions.conditions.vehicles.label` (string)
    Example: cooler truck

  - `restrictions.conditions.vehicles.operator` (string, required)
    Enum: "ALL", "INCLUDING", "EXCLUDING"

## Response 400 fields (application/problem+json):

  - `type` (string, required)
    An absolute URI that identifies the problem type.  When dereferenced,
it SHOULD provide human-readable documentation for the problem type
(e.g., using HTML).
    Example: https://developer.conundra.eu/developer-portal/problem/#constraint-violation

  - `title` (string, required)
    A short, summary of the problem type. Written in english and readable
for engineers (usually not suited for non technical stakeholders and
not localized)
    Example: Bad Request

  - `status` (integer, required)
    The HTTP status code generated by the origin server for this occurrence
of the problem.
    Example: 400

  - `detail` (string, required)
    A human readable explanation specific to this occurrence of the
problem.
    Example: Bad request. See violations for more details.

  - `violations` (array)

  - `violations.field` (string)
    A reference to the field in the request that triggered this violation.
    Example: limit

  - `violations.message` (string, required)
    A message explaining the violation in the referenced field.
    Example: Limit must be strictly positive.

## Response 412 fields (application/problem+json):

  - `type` (string, required)
    An absolute URI that identifies the problem type.  When dereferenced,
it SHOULD provide human-readable documentation for the problem type
(e.g., using HTML).
    Example: https://developer.conundra.eu/developer-portal/problem/#constraint-violation

  - `title` (string, required)
    A short, summary of the problem type. Written in english and readable
for engineers (usually not suited for non technical stakeholders and
not localized)
    Example: Bad Request

  - `status` (integer, required)
    The HTTP status code generated by the origin server for this occurrence
of the problem.
    Example: 400

  - `detail` (string, required)
    A human readable explanation specific to this occurrence of the
problem.
    Example: Bad request. See violations for more details.

  - `violations` (array)

  - `violations.field` (string)
    A reference to the field in the request that triggered this violation.
    Example: limit

  - `violations.message` (string, required)
    A message explaining the violation in the referenced field.
    Example: Limit must be strictly positive.

