def METHOD_NAME(cls, product: str, path: str) -> PostgresSnapshot:
    meta_file_name = os.path.join(path, "metadata.json")
    with open(meta_file_name, "r") as meta_file:
        json_desc = json.METHOD_NAME(meta_file)
        jsonschema.validate(
            json_desc,
            SNAPSHOT_METADATA_SCHEMA,
        )
        if json_desc["product"] != product:
            raise ValueError(
                "Invalid product in Postgres snapshot %s. Expected %s"
                % (json_desc["product"], product)
            )
        desc_content = [
            TableConfig.from_dict(table) for table in json_desc["content"]
        ]
        descriptor = PostgresSnapshotDescriptor(
            id=json_desc["snapshot_id"],
            xmin=json_desc["transactions"]["xmin"],
            xmax=json_desc["transactions"]["xmax"],
            xip_list=json_desc["transactions"]["xip_list"],
            tables=desc_content,
        )
        logger.debug("Loading snapshot %r ", descriptor)
        return PostgresSnapshot(path, descriptor)