code: public String buildGroupName(Boolean doValidation) {
          NameValidation.notEmpty(appName, "appName");
  
          if (doValidation) {
              validateNames(appName, stack, countries, devPhase, hardware, partners, revision, usedBy, redBlackSwap,
                      zoneVar);
              if (detail != null && !detail.isEmpty() && !NameValidation.checkDetail(detail)) {
                  throw new IllegalArgumentException("(Use alphanumeric characters only)");
              }
          }
  
          // Build the labeled variables for the end of the group name.
          String labeledVars = "";
          labeledVars += generateIfSpecified(NameConstants.COUNTRIES_KEY, countries);
          labeledVars += generateIfSpecified(NameConstants.DEV_PHASE_KEY, devPhase);
          labeledVars += generateIfSpecified(NameConstants.HARDWARE_KEY, hardware);
          labeledVars += generateIfSpecified(NameConstants.PARTNERS_KEY, partners);
          labeledVars += generateIfSpecified(NameConstants.REVISION_KEY, revision);
          labeledVars += generateIfSpecified(NameConstants.USED_BY_KEY, usedBy);
          labeledVars += generateIfSpecified(NameConstants.RED_BLACK_SWAP_KEY, redBlackSwap);
          labeledVars += generateIfSpecified(NameConstants.ZONE_KEY, zoneVar);
  
          String result = combineAppStackDetail(appName, stack, detail) + labeledVars;
  
          return result;
      }
docs: Construct and return the name of the auto scaling group.
  
  @param doValidation validate the supplied parameters before constructing the name
  @return auto scaling group name