public String generateConfigJson()

in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicConfigFileHelper.java [52:118]


    public String generateConfigJson(String caPath, String certPath, String keyPath, ThingArn coreThingArn, String iotHost, Region region, DeploymentArguments deploymentArguments, boolean functionsRunningAsRoot) {
        Map<String, Object> coreThingMap = new HashMap<>();
        Map<String, Object> runtimeMap = new HashMap<>();
        Map<String, Object> cgroupMap = new HashMap<>();
        Map<String, Object> cryptoMap = new HashMap<>();
        Map<String, Object> principalsMap = new HashMap<>();
        Map<String, Object> SecretsManagerMap = new HashMap<>();
        Map<String, Object> IoTCertificateMap = new HashMap<>();
        Map<String, Object> MQTTServerCertificate = new HashMap<>();
        Map<String, Object> PKCS11Map = new HashMap<>();

        coreThingMap.put(THING_ARN, coreThingArn.getArn());
        coreThingMap.put(IOT_HOST, iotHost);
        coreThingMap.put(GG_HOST, ggVariables.getGgHost(region));
        coreThingMap.put(GG_MQTT_PORT, deploymentArguments.mqttPort);

        if (deploymentArguments.noSystemD) {
            cgroupMap.put(USE_SYSTEMD, NO);
        } else {
            cgroupMap.put(USE_SYSTEMD, YES);
        }

        runtimeMap.put(CGROUP, cgroupMap);

        if (functionsRunningAsRoot) {
            runtimeMap.put(ALLOW_FUNCTIONS_TO_RUN_AS_ROOT, YES);
        }

        cryptoMap.put(PRINCIPALS, principalsMap);

        IoTCertificateMap.put(CERTIFICATE_PATH, CERTS_URI + certPath);

        principalsMap.put(SECRETS_MANAGER, SecretsManagerMap);
        principalsMap.put(IOT_CERTIFICATE, IoTCertificateMap);
        principalsMap.put(MQTT_SERVER_CERTIFICATE, MQTTServerCertificate);

        if (deploymentArguments.hsiParameters != null) {
            HsiParameters hsiParameters = deploymentArguments.hsiParameters;

            SecretsManagerMap.put(PRIVATE_KEY_PATH, hsiParameters.getPkcsPath());
            IoTCertificateMap.put(PRIVATE_KEY_PATH, hsiParameters.getPkcsPath());
            MQTTServerCertificate.put(PRIVATE_KEY_PATH, hsiParameters.getPkcsPath());

            PKCS11Map.put(P_11_PROVIDER, hsiParameters.getP11Provider());
            PKCS11Map.put(SLOT_LABEL, hsiParameters.getSlotLabel());
            PKCS11Map.put(SLOT_USER_PIN, hsiParameters.getSlotUserPin());
            hsiParameters.getOpenSSLEngine().ifPresent(openSslEngine -> PKCS11Map.put(OPENSSL_ENGINE, openSslEngine));

            cryptoMap.put(PKCS_11, PKCS11Map);
        } else {
            // Avoids "private key for MqttCertificate is not set" error/warning
            SecretsManagerMap.put(PRIVATE_KEY_PATH, CERTS_URI + keyPath);
            IoTCertificateMap.put(PRIVATE_KEY_PATH, CERTS_URI + keyPath);
            MQTTServerCertificate.put(PRIVATE_KEY_PATH, CERTS_URI + keyPath);
        }

        cryptoMap.put(CA_PATH, CERTS_URI + caPath);

        Map<String, Object> config = new HashMap<>();

        config.put(CORE_THING, coreThingMap);
        config.put(RUNTIME, runtimeMap);
        config.put(MANAGED_RESPAWN, false);
        config.put(CRYPTO, cryptoMap);

        return jsonHelper.toJson(config);
    }