class OrganizationImpl {

    @NotNull
    public static String createOrganizationBody(TerraformOrganizationInputs createOrganizationInputs, String delimiter) {
        String requestBody = EMPTY;
        ObjectMapper createOrganizationMapper = new ObjectMapper();
        CreateOrganizationRequestBody createBody = new CreateOrganizationRequestBody();
        CreateOrganizationRequestBody.CreateOrganizationData createOrganizationData = createBody.new CreateOrganizationData();
        CreateOrganizationRequestBody.Attributes attributes = createBody.new Attributes();
        attributes.setName(createOrganizationInputs.getCommonInputs().getOrganizationName());
        attributes.setDescription(createOrganizationInputs.getOrganizationDescription());
        attributes.setEmail(createOrganizationInputs.getEmail());
        if (!EMPTY.equals(createOrganizationInputs.getSessionTimeout())) {
            attributes.setSessionTimeout(createOrganizationInputs.getSessionTimeout());
        } else {
            attributes.setSessionTimeout(SESSION_TIMEOUT);
        }
        if (!EMPTY.equals(createOrganizationInputs.getSessionRemember())) {
            attributes.setSessionRemember(createOrganizationInputs.getSessionRemember());
        } else {
            attributes.setSessionRemember(SESSION_REMEMBER);
        }
        if (!EMPTY.equals(createOrganizationInputs.getCollaboratorAuthPolicy())){
            attributes.setCollaboratorAuthPolicy(createOrganizationInputs.getCollaboratorAuthPolicy());
        } else {
            attributes.setCollaboratorAuthPolicy(COLLABORATOR_AUTH_POLICY);
        }
        attributes.setCostEstimationEnabled(Boolean.parseBoolean(createOrganizationInputs.getCostEstimationEnabled()));
        attributes.setOwnersTeamSamlRoleId(createOrganizationInputs.getOwnersTeamSamlRoleId());

        createOrganizationData.setAttributes(attributes);
        createOrganizationData.setType(ORGANIZATION_TYPE);

        createBody.setData(createOrganizationData);


        try {
            requestBody = createOrganizationMapper.writeValueAsString(createBody);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

        return requestBody;

    }

}