Validação de objeto Joi: como validar valores com nomes de chave desconhecidos?

Eu tenho um objeto com nomes de chave que não posso saber - eles são criados pelo usuário. No entanto, eu sei quais valores eles (chaves) vão armazenar e eles (valores) serão cadeias ISO. Como validar esses valores? E,opcionalmente, como validar as chaves do objeto desconhecido, ou seja:

 key: Joi.string().min(2).max(25)

O que eu já tentei foi baseado nos documentos da API Joi:

Outros benefícios de usar Joi.object ([schema]) em vez de um objeto JS simples é> que você pode definir qualquer opção no objeto, comopermitindo chaves desconhecidas, por exemplo:

const schema = Joi.object({ arg: Joi.string().valid('firstname', 'lastname', 'title', 'company', 'jobtitle'), value: Joi.string(), }).pattern(/firstname|lastname/, Joi.string().min(2));

O que eu entendi do exemplo é quearg chave representaJoi.object()ékeyevalue representa évalue.

Meu exemplo:

campaign: Joi.object({
  arg: Joi.string().valid( 'unknown' ),
  value: Joi.date().iso(),
}).pattern( /unknown/, Joi.string().min(2).max(25) )

Minha entrada;

campaign: { g_ad_adwords: "2017-01-19T11:33:26.205Z" }

Meu erro:

"campaign" falha porque ["g_ad_adwords" não é permitido]

questionAnswers(1)

yourAnswerToTheQuestion