public static final String BASIC_AUTH_NAME = "basicAuth";
public static final Http OPEN_API_BASIC_AUTH = new Http("basic", null, null);
public static final List<Map<String, List<String>>> SECURITY = List.of(Map.of(BASIC_AUTH_NAME, List.of()));
+ public static final String DESCRIPTION = """
+ We are providing full API for configurational data which can be edited (by POST, PUT, PATCH and DELETE).
+ For operational data we only provide GET API.\n
+ For majority of request you can see only config data in examples. That’s because we can show only one example
+ per request. The exception when you can see operational data in example is when data are representing
+ operational (config false) container with no config data in it.""";
private final DOMSchemaService schemaService;
final var schema = createSchemaFromUriInfo(uriInfo);
final var host = createHostFromUriInfo(uriInfo);
final var title = "Controller modules of RESTCONF";
- final var info = new Info(API_VERSION, title);
+ final var info = new Info(API_VERSION, title, DESCRIPTION);
final var servers = List.of(new Server(schema + "://" + host + BASE_PATH));
final var paths = new HashMap<String, Path>();
final var schema = createSchemaFromUriInfo(uriInfo);
final var host = createHostFromUriInfo(uriInfo);
- final var info = new Info(API_VERSION, module.getName());
+ final var info = new Info(API_VERSION, module.getName(), DESCRIPTION);
final var servers = List.of(new Server(schema + "://" + host + BASE_PATH));
final var definitionNames = new DefinitionNames();
final var schemas = getSchemas(module, schemaContext, definitionNames, true);
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
@JsonInclude(Include.NON_NULL)
public record Info(
@NonNull String version,
- @NonNull String title) {
+ @NonNull String title,
+ @Nullable String description) {
public Info {
requireNonNull(version);
import static org.opendaylight.restconf.openapi.impl.BaseYangOpenApiGenerator.API_VERSION;
import static org.opendaylight.restconf.openapi.impl.BaseYangOpenApiGenerator.BASE_PATH;
import static org.opendaylight.restconf.openapi.impl.BaseYangOpenApiGenerator.BASIC_AUTH_NAME;
+import static org.opendaylight.restconf.openapi.impl.BaseYangOpenApiGenerator.DESCRIPTION;
import static org.opendaylight.restconf.openapi.impl.BaseYangOpenApiGenerator.OPEN_API_BASIC_AUTH;
import static org.opendaylight.restconf.openapi.impl.BaseYangOpenApiGenerator.OPEN_API_VERSION;
import static org.opendaylight.restconf.openapi.impl.BaseYangOpenApiGenerator.SECURITY;
final var schema = openApiGenerator.createSchemaFromUriInfo(uriInfo);
final var host = openApiGenerator.createHostFromUriInfo(uriInfo);
final var title = deviceName + " modules of RESTCONF";
- final var info = new Info(API_VERSION, title);
+ final var info = new Info(API_VERSION, title, DESCRIPTION);
final var servers = List.of(new Server(schema + "://" + host + BASE_PATH));
final var modules = getSortedModules(context);
private OpenApiObject generateDataStoreOpenApi(final UriInfo uriInfo, final String context,
final String deviceName) {
- final var info = new Info(API_VERSION, context);
+ final var info = new Info(API_VERSION, context, DESCRIPTION);
final var schema = openApiGenerator.createSchemaFromUriInfo(uriInfo);
final var host = openApiGenerator.createHostFromUriInfo(uriInfo);
final var servers = List.of(new Server(schema + "://" + host + BASE_PATH));