class ImmutableAcknowledgement implements Acknowledgement {

    public static <T extends EntityIdWithType> ImmutableAcknowledgement<T> of(final AcknowledgementLabel label,
            final T entityId,
            final HttpStatusCode statusCode,
            final DittoHeaders dittoHeaders,
            @Nullable final JsonValue payload) {

        return new ImmutableAcknowledgement<>(label, entityId, statusCode, dittoHeaders, payload);
    }

    private  ImmutableAcknowledgement(final AcknowledgementLabel label,
            final T entityId,
            final HttpStatusCode statusCode,
            final DittoHeaders dittoHeaders,
            @Nullable final JsonValue payload);

}