public JobDeploymentSession[] GetJobs()
        {
            if (this._jobs == null)
            {
                // resolved the token values
                var tokens = Tokens.Clone();

                // collect job common tokens
                var cp = Config?.CommonProcessor;
                var commonJobTokens = cp?.JobCommonTokens?.ToTokens();
                tokens.AddDictionary(commonJobTokens);

                // for each job, append job sepcific tokens and resolve them
                this._jobs = this.Config?
                             .GetJobs(tokens)?
                             .Select(job => new JobDeploymentSession(JobMetadata.GetJobName(job.Tokens), job.Tokens, this))?
                             .ToArray();
            }

            return(this._jobs);
        }