aboutsummaryrefslogtreecommitdiff
path: root/central/src/main/java/moe/yuuta/dn42peering/provision/IProvisionRemoteService.java
blob: ace1c54a40469650ce8fea202629f9d64697e1ef (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
package moe.yuuta.dn42peering.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 moe.yuuta.dn42peering.node.Node;

import javax.annotation.Nonnull;

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

    @Nonnull
    static IProvisionRemoteService create(@Nonnull Vertx vertx) {
        return new IProvisionRemoteServiceVertxEBProxy(vertx, ADDRESS);
    }

    @Fluent
    @Nonnull
    IProvisionRemoteService provisionBGP(@Nonnull NodeCommon node,
                                         @Nonnull BGPRequestCommon request,
                                         @Nonnull Handler<AsyncResult<Void>> handler);

    @Fluent
    @Nonnull
    IProvisionRemoteService reloadBGP(@Nonnull NodeCommon node,
                                      @Nonnull BGPRequestCommon request,
                                      @Nonnull Handler<AsyncResult<Void>> handler);

    @Fluent
    @Nonnull
    IProvisionRemoteService deleteBGP(@Nonnull NodeCommon node,
                                      @Nonnull BGPRequestCommon request,
                                      @Nonnull Handler<AsyncResult<Void>> handler);

    @Fluent
    @Nonnull
    IProvisionRemoteService provisionWG(@Nonnull NodeCommon node,
                                        @Nonnull WGRequestCommon request,
                                        @Nonnull Handler<AsyncResult<String>> handler);

    @Fluent
    @Nonnull
    IProvisionRemoteService reloadWG(@Nonnull NodeCommon node,
                                     @Nonnull WGRequestCommon request,
                                     @Nonnull Handler<AsyncResult<String>> handler);

    @Fluent
    @Nonnull
    IProvisionRemoteService deleteWG(@Nonnull NodeCommon node,
                                     @Nonnull WGRequestCommon request,
                                     @Nonnull Handler<AsyncResult<Void>> handler);
}