class SudoRetrievePolicyResponse extends AbstractCommandResponse<SudoRetrievePolicyResponse> implements SudoCommandResponse<SudoRetrievePolicyResponse> {

    public static SudoRetrievePolicyResponse of(final PolicyId policyId, final Policy policy,
            final DittoHeaders dittoHeaders) {
        return new SudoRetrievePolicyResponse(policyId, HttpStatusCode.OK, //
                checkNotNull(policy, "Policy") //
                        .toJson(dittoHeaders.getSchemaVersion().orElse(policy.getLatestSchemaVersion()),
                                FieldType.regularOrSpecial()),
                dittoHeaders);
    }

    private  SudoRetrievePolicyResponse(final PolicyId policyId,
            final HttpStatusCode statusCode,
            final JsonObject policy,
            final DittoHeaders dittoHeaders);

}