public String createProject()

in src/main/java/ProjectFactory.java [30:73]


    public String createProject(String projectName, String description,
                                ProjectSource source,
                                ProjectArtifacts artifacts,
                                ProjectEnvironment environment, String serviceIAMRole, String timeout,
                                String encryptionKey) throws Exception {

        ListProjectsRequest lpRequest;
        ListProjectsResult lpResult;

        List<String> projects = new ArrayList<String>();
        String nextToken = null;
        do {
            lpRequest = new ListProjectsRequest().withNextToken(nextToken);
            lpResult = cbClient.listProjects(lpRequest);
            nextToken = lpResult.getNextToken();
            projects.addAll(lpResult.getProjects());
        } while(nextToken != null);

        if(projects.contains(projectName)) {
            UpdateProjectResult upResult = cbClient.updateProject(new UpdateProjectRequest()
                    .withName(projectName)
                    .withDescription(description)
                    .withSource(source)
                    .withArtifacts(artifacts)
                    .withEnvironment(environment)
                    .withServiceRole(serviceIAMRole)
                    .withTimeoutInMinutes(parseInt(timeout))
                    .withEncryptionKey(encryptionKey));

            return upResult.getProject().getName();
        } else {
            CreateProjectResult cpResult = cbClient.createProject(new CreateProjectRequest()
                    .withName(projectName)
                    .withDescription(description)
                    .withSource(source)
                    .withArtifacts(artifacts)
                    .withEnvironment(environment)
                    .withServiceRole(serviceIAMRole)
                    .withTimeoutInMinutes(parseInt(timeout))
                    .withEncryptionKey(encryptionKey));

            return cpResult.getProject().getName();
        }
    }