From 6ca4880dc6b70d557a9549dbfeac799ec900d147 Mon Sep 17 00:00:00 2001 From: Bernd Hufmann Date: Mon, 20 Jan 2025 09:42:55 -0500 Subject: [PATCH] swagger: Add DataProviderCapabilities to swagger documentation Signed-off-by: Bernd Hufmann --- .../jersey/rest/core/model/DataProvider.java | 7 ++++ .../core/model/DataProviderCapabilities.java | 36 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/model/DataProviderCapabilities.java diff --git a/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/model/DataProvider.java b/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/model/DataProvider.java index ac9590b1a..b323b9cb5 100644 --- a/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/model/DataProvider.java +++ b/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/model/DataProvider.java @@ -64,4 +64,11 @@ enum ProviderType { */ @Schema(required = false, description = "Optional input configuration used to create this derived data provider.") Configuration getConfiguration(); + + /** + * @return the input configuration used to create this data provider. + */ + @Schema(required = false, description = "Optional data provider capabilities, such as \"canCreate\" and \"canDelete\".") + DataProviderCapabilities getCapabilities(); + } diff --git a/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/model/DataProviderCapabilities.java b/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/model/DataProviderCapabilities.java new file mode 100644 index 000000000..54d30f248 --- /dev/null +++ b/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/model/DataProviderCapabilities.java @@ -0,0 +1,36 @@ +/******************************************************************************* + * Copyright (c) 2025 Ericsson + * + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 which + * accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +package org.eclipse.tracecompass.incubator.internal.trace.server.jersey.rest.core.model; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * Contributes to the model used for TSP swagger-core annotations. + */ +public interface DataProviderCapabilities { + + /** + * @return The name. + */ + @JsonProperty("canCreate") + @Schema(description = "Whether the data provider can create derived data providers.") + boolean canCreate(); + + /** + * @return The ID. + */ + @Schema(description = "Whether the data provider can be deleted.") + @JsonProperty("canDelete") + String canDelete(); +}