class ImmutablePolicy implements Policy {

    @Deprecated
    public static Policy of(@Nullable final String policyId,
            @Nullable final PolicyLifecycle lifecycle,
            @Nullable final PolicyRevision revision,
            @Nullable final Instant modified,
            @Nullable final Instant created,
            final Iterable<PolicyEntry> entries) {

        return of(PolicyId.of(policyId), lifecycle, revision, modified, created, entries);
    }

    private  ImmutablePolicy(@Nullable final PolicyId policyId,
            final Map<Label, PolicyEntry> theEntries,
            @Nullable final PolicyLifecycle lifecycle,
            @Nullable final PolicyRevision revision,
            @Nullable final Instant modified,
            @Nullable final Instant created);

}