async function evaluateChangeNotificationCompliance()

in blogs/awsconfig-docdb/lib/functions/instances-homogeneous-rule/index.js [97:128]


async function evaluateChangeNotificationCompliance(configurationItem, dbClusterInstances) {
  if (dbClusterInstances.length === 1) {
    return 'COMPLIANT';
  }

  checkDefined(configurationItem, 'configurationItem');
  checkDefined(configurationItem.configuration, 'configurationItem.configuration');
  
  const newDBInstanceClass = configurationItem.configuration.pendingModifiedValues.dBInstanceClass;
  
  let sameDBInstanceClass = true;
  if (newDBInstanceClass) {
    for (let i = 0; i < dbClusterInstances.length; i++) {
      const dbInstance = dbClusterInstances[i];
  
      // skip instance being modified
      if(dbInstance.DBInstanceIdentifier === configurationItem.configuration.dBInstanceIdentifier) {
        continue;
      }
  
      if (newDBInstanceClass !== dbInstance.DBInstanceClass) {
        sameDBInstanceClass = false;
        break;
      }
    } 
  } else {
    // just check all db instance classes are equal
    sameDBInstanceClass = dbClusterInstances.every(i => i.DBInstanceClass === dbClusterInstances[0].DBInstanceClass);
  }

  return sameDBInstanceClass ? 'COMPLIANT' : 'NON_COMPLIANT';
}