code: function newAudit (allowArgs, allowType) {
      // if audit is enabled/disabled in call this overrides global setting
      if (defined(allowArgs.audit)) {
          if (allowArgs.audit === false) {
              // create null audit instance
              this.audit = new ImmutableAccessControlNullAudit()
              // abort
              return
          }
      }
      // otherwise if audit is globally disabled then create null instance
      else if (this.auditEnabled === false) {
          // create null audit instance
          this.audit = new ImmutableAccessControlNullAudit()
          // abort
          return
      }
      // if there is an existing incomplete audit of allowModelScope do
      // not start new audit for sub-call to allowModel
      if (allowType === 'model' && defined(this.audit) && this.audit.allowType === 'modelScope' && !this.audit.complete) {
          return
      }
      // create new audit record
      this.audit = new ImmutableAccessControlAudit({
          accessControlId: this.getId(),
          allowArgs: allowArgs,
          allowType: allowType,
      })
  }
docs: @function newAudit
  
  create new audit record for allow request. audit is stored on global
  object so it will be overwritten with each new allow request unless
  saved.
  
  @param {object} allowArgs
  @param {string} allowType