aboutsummaryrefslogtreecommitdiff
path: root/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/IProvisionService.java
blob: c0a9badbd9e01d4ab73366907923f04aab2ab1da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package moe.yuuta.dn42peering.agent.provision;

import io.vertx.codegen.annotations.Fluent;
import io.vertx.codegen.annotations.ProxyGen;
import io.vertx.core.AsyncResult;
import io.vertx.core.Handler;
import io.vertx.core.Vertx;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

@ProxyGen
public interface IProvisionService {
    String ADDRESS = IProvisionService.class.getName();

    @Nonnull
    static IProvisionService create(@Nonnull Vertx vertx) {
        return new IProvisionServiceVertxEBProxy(vertx, ADDRESS);
    }

    @Fluent
    @Nonnull
    IProvisionService provisionBGP(@Nonnull String localIP4,
                                   @Nonnull String localIP6,
                                   int id,
                                   @Nonnull String ipv4,
                                   @Nullable String ipv6,
                                   @Nullable String device,
                                   boolean mpbgp,
                                   @Nonnull String asn,
                                   @Nonnull Handler<AsyncResult<Void>> handler);

    @Fluent
    @Nonnull
    IProvisionService reloadBGP(@Nonnull String localIP4,
                                @Nonnull String localIP6,
                                int id,
                                @Nonnull String ipv4,
                                @Nullable String ipv6,
                                @Nullable String device,
                                boolean mpbgp,
                                @Nonnull String asn,
                                @Nonnull Handler<AsyncResult<Void>> handler);

    @Fluent
    @Nonnull
    IProvisionService unprovisionBGP(int id, @Nonnull Handler<AsyncResult<Void>> handler);

    @Fluent
    @Nonnull
    IProvisionService provisionVPNWireGuard(@Nonnull String localIP4,
                                            @Nonnull String localIP6,
                                            int id,
                                            int listenPort,
                                            @Nullable String endpointWithPort,
                                            @Nonnull String peerPubKey,
                                            @Nonnull String selfPrivKey,
                                            @Nonnull String selfPresharedSecret,
                                            @Nonnull String peerIPv4,
                                            @Nullable String peerIPv6,
                                            @Nonnull Handler<AsyncResult<String>> handler);

    @Fluent
    @Nonnull
    IProvisionService reloadVPNWireGuard(@Nonnull String localIP4,
                                         @Nonnull String localIP6,
                                         int id,
                                         int listenPort,
                                         @Nullable String endpointWithPort,
                                         @Nonnull String peerPubKey,
                                         @Nonnull String selfPrivKey,
                                         @Nonnull String selfPresharedSecret,
                                         @Nonnull String peerIPv4,
                                         @Nullable String peerIPv6,
                                         @Nonnull Handler<AsyncResult<String>> handler);

    @Fluent
    @Nonnull
    IProvisionService unprovisionVPNWireGuard(int id, @Nonnull Handler<AsyncResult<Void>> handler);
}