/* * SonarQube * Copyright (C) 2009-2025 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package org.sonarqube.ws.client.projects; import java.util.stream.Collectors; import jakarta.annotation.Generated; import org.sonarqube.ws.MediaTypes; import org.sonarqube.ws.Projects.CreateWsResponse; import org.sonarqube.ws.Projects.SearchMyProjectsWsResponse; import org.sonarqube.ws.Projects.SearchWsResponse; import org.sonarqube.ws.client.BaseService; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsConnector; import org.sonarqube.ws.client.WsResponse; /** * @see Further information about this web service online */ @Generated("sonar-ws-generator") public class ProjectsService extends BaseService { public ProjectsService(WsConnector wsConnector) { super(wsConnector, "api/projects"); } /** * * This is part of the internal API. * This is a POST request. * @see Further information about this action online (including a response example) * @since 5.2 */ public void bulkDelete(BulkDeleteRequest request) { call( new PostRequest(path("bulk_delete")) .setParam("analyzedBefore", request.getAnalyzedBefore()) .setParam("onProvisionedOnly", request.getOnProvisionedOnly()) .setParam("projects", request.getProjects() == null ? null : request.getProjects().stream().collect(Collectors.joining(","))) .setParam("q", request.getQ()) .setParam("qualifiers", request.getQualifiers() == null ? null : request.getQualifiers().stream().collect(Collectors.joining(","))) .setParam("visibility", request.getVisibility()) .setMediaType(MediaTypes.JSON) ).content(); } /** * * This is part of the internal API. * This is a POST request. * @see Further information about this action online (including a response example) * @since 4.0 */ public CreateWsResponse create(CreateRequest request) { return call( new PostRequest(path("create")) .setParam("mainBranch", request.getMainBranch()) .setParam("name", request.getName()) .setParam("project", request.getProject()) .setParam("visibility", request.getVisibility()), CreateWsResponse.parser()); } /** * * This is part of the internal API. * This is a POST request. * @see Further information about this action online (including a response example) * @since 5.2 */ public void delete(DeleteRequest request) { call( new PostRequest(path("delete")) .setParam("project", request.getProject()) .setMediaType(MediaTypes.JSON) ).content(); } /** * * This is part of the internal API. * This is a GET request. * @see Further information about this action online (including a response example) * @since 9.4 */ public WsResponse licenseUsage() { GetRequest getRequest = new GetRequest(path("license_usage")) .setMediaType(MediaTypes.JSON); return call(getRequest); } /** * * This is part of the internal API. * This is a GET request. * @see Further information about this action online (including a response example) * @since 6.3 */ public SearchWsResponse search(SearchRequest request) { return call( new GetRequest(path("search")) .setParam("analyzedBefore", request.getAnalyzedBefore()) .setParam("onProvisionedOnly", request.getOnProvisionedOnly()) .setParam("p", request.getP()) .setParam("projects", request.getProjects() == null ? null : request.getProjects().stream().collect(Collectors.joining(","))) .setParam("ps", request.getPs()) .setParam("q", request.getQ()) .setParam("qualifiers", request.getQualifiers() == null ? null : request.getQualifiers().stream().collect(Collectors.joining(","))) .setParam("visibility", request.getVisibility()), SearchWsResponse.parser()); } /** * * This is a GET request. * @see Further information about this action online (including a response example) * @since 9.1 */ public WsResponse exportFindings(ExportFindingsRequest request) { GetRequest getRequest = new GetRequest(path("export_findings")) .setParam("project", request.getProjectKey()); if (request.getBranchKey() != null) { getRequest.setParam("branch", request.getBranchKey()); } return call(getRequest); } /** * * This is part of the internal API. * This is a GET request. * @see Further information about this action online (including a response example) * @since 6.0 */ public SearchMyProjectsWsResponse searchMyProjects(SearchMyProjectsRequest request) { return call( new GetRequest(path("search_my_projects")) .setParam("p", request.getP()) .setParam("ps", request.getPs()), SearchMyProjectsWsResponse.parser()); } /** * * This is part of the internal API. * This is a POST request. * @see Further information about this action online (including a response example) * @since 6.1 */ public void updateKey(UpdateKeyRequest request) { call( new PostRequest(path("update_key")) .setParam("from", request.getFrom()) .setParam("to", request.getTo()) .setMediaType(MediaTypes.JSON) ).content(); } /** * * This is part of the internal API. * This is a POST request. * @see Further information about this action online (including a response example) * @since 6.4 */ public void updateVisibility(UpdateVisibilityRequest request) { call( new PostRequest(path("update_visibility")) .setParam("project", request.getProject()) .setParam("visibility", request.getVisibility()) .setMediaType(MediaTypes.JSON) ).content(); } /** * * This is part of the internal API. * This is a POST request. * @see Further information about this action online (including a response example) * @since 6.4 */ public void updateDefaultVisibility(UpdateDefaultVisibilityRequest request) { call( new PostRequest(path("update_default_visibility")) .setParam("projectVisibility", request.getProjectVisibility()) .setMediaType(MediaTypes.JSON) ).content(); } public void setContainsAiCode(String projectKey, boolean containsAiCode) { call( new PostRequest(path("set_contains_ai_code")) .setParam("project", projectKey) .setParam("contains_ai_code", containsAiCode) .setMediaType(MediaTypes.JSON) ).content(); } }