If the provider is to be shared between 'file' and 'block' storage, validation should include rejection of properties inappropriate for the storage type, such as

    raise Puppet::Error, "Inappropriate property remote_host for storage type VMFS" if self[:remote_host] and (self[:type] == VMFS)