c80b610a3744b0a354165bb5a2dcfa27c99d107d
[netconf.git] / transport / transport-ssh / src / main / java / org / opendaylight / netconf / transport / ssh / IetfSshServerProvider.java
1 /*
2  * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.netconf.transport.ssh;
9
10 import java.util.Set;
11 import org.eclipse.jdt.annotation.NonNullByDefault;
12 import org.kohsuke.MetaInfServices;
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ssh.server.rev231228.IetfSshServerData;
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ssh.server.rev231228.LocalUserAuthHostbased;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ssh.server.rev231228.LocalUserAuthPassword;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ssh.server.rev231228.LocalUserAuthPublickey;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ssh.server.rev231228.LocalUsersSupported;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ssh.server.rev231228.SshServerKeepalives;
19 import org.opendaylight.yangtools.yang.binding.YangFeature;
20 import org.opendaylight.yangtools.yang.binding.YangFeatureProvider;
21
22 /**
23  * Server features supported by SSH transport.
24  */
25 @MetaInfServices
26 @NonNullByDefault
27 public final class IetfSshServerProvider implements YangFeatureProvider<IetfSshServerData> {
28     @Override
29     public Class<IetfSshServerData> boundModule() {
30         return IetfSshServerData.class;
31     }
32
33     @Override
34     public Set<? extends YangFeature<?, IetfSshServerData>> supportedFeatures() {
35         // user authentication 'None' is not supported
36         return Set.of(
37                 LocalUsersSupported.VALUE,
38                 LocalUserAuthPassword.VALUE,
39                 LocalUserAuthHostbased.VALUE,
40                 LocalUserAuthPublickey.VALUE,
41                 SshServerKeepalives.VALUE);
42     }
43 }