class ModifyThingResponse extends AbstractCommandResponse<ModifyThingResponse> implements ThingModifyCommandResponse<ModifyThingResponse> {

    public static ModifyThingResponse created(final Thing thing, final DittoHeaders dittoHeaders) {
        final ThingId thingId = thing.getEntityId().orElseThrow(() -> new NullPointerException("Thing has no ID!"));
        return new ModifyThingResponse(thingId, HttpStatusCode.CREATED, thing, dittoHeaders);
    }

    private  ModifyThingResponse(final ThingId thingId,
            final HttpStatusCode statusCode,
            @Nullable final Thing thingCreated,
            final DittoHeaders dittoHeaders);

}