/* * Copyright (c) 2023 PANTHEON.tech, s.r.o. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.restconf.server.api; import java.net.URI; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.restconf.common.errors.RestconfFuture; import org.opendaylight.restconf.nb.rfc8040.databind.OperationInputBody; import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload; import org.opendaylight.restconf.server.spi.OperationOutput; /** * An implementation of a RESTCONF server, implementing the * RESTCONF API Resource. */ @NonNullByDefault public interface RestconfServer { /** * Return the revision of {@code ietf-yang-library} module implemented by this server, as defined in * RFC8040 {+restconf}/yang-library-version. * * @return A {@code yang-library-version} element */ // FIXME: this is a simple coning-variadic return, similar to how OperationsContent is handled use a common // construct for both cases // FIXME: RestconfFuture if we transition to being used by restconf-client implementation NormalizedNodePayload yangLibraryVersionGET(); // FIXME: use ApiPath instead of String RestconfFuture invokeRpc(URI restconfURI, String apiPath, OperationInputBody body); }