Interface NameServerWebfluxManagementApi


  • @Validated
    public interface NameServerWebfluxManagementApi
    The name server management api.
    Author:
    Christian Bremer
    • Method Detail

      • query

        @RequestMapping(value="/api/dns",
                        produces="application/json",
                        method=GET)
        reactor.core.publisher.Flux<DnsNode> query​(@RequestParam(name="q")
                                                   String query,
                                                   @RequestParam(name="filter",defaultValue="NO_UNKNOWN")
                                                   UnknownFilter unknownFilter)
        Query dns nodes.
        Parameters:
        query - the query, can be a host name, an IP or a MAC address
        unknownFilter - the unknown filter
        Returns:
        found dns nodes
      • getDhcpLeases

        @RequestMapping(value="/api/dns/dhcp-leases",
                        produces="application/json",
                        method=GET)
        reactor.core.publisher.Flux<DhcpLease> getDhcpLeases​(@RequestParam(value="all",defaultValue="false")
                                                             Boolean all,
                                                             @RequestParam(value="sort",defaultValue="begin,desc|hostname")
                                                             String sort)
        Gets dhcp leases.
        Parameters:
        all - if true, expired leases will also be returned, otherwise only active ones (default is false)
        sort - the sort order (default is DhcpLease.SORT_ORDER_BEGIN_HOSTNAME)
        Returns:
        the dhcp leases
      • getDnsZones

        @RequestMapping(value="/api/dns/zones",
                        produces="application/json",
                        method=GET)
        reactor.core.publisher.Flux<DnsZone> getDnsZones()
        Get dns zones.
        Returns:
        the dns zones
      • addDnsZone

        @RequestMapping(value="/api/dns/zones",
                        produces="application/json",
                        consumes="application/json",
                        method=POST)
        reactor.core.publisher.Mono<DnsZone> addDnsZone​(@Valid @RequestBody
                                                        @Valid DnsZone request)
        Add dns zone.
        Parameters:
        request - the request
        Returns:
        the added dns zone
      • deleteDnsZone

        @RequestMapping(value="/api/dns/zones/{zoneName}",
                        produces="application/json",
                        method=DELETE)
        reactor.core.publisher.Mono<Boolean> deleteDnsZone​(@PathVariable("zoneName")
                                                           String zoneName)
        Delete dns zone.
        Parameters:
        zoneName - the zone name
        Returns:
        true if the dns zone was deleted, otherwise false
      • getDnsNodes

        @RequestMapping(value="/api/dns/zones/{zoneName}",
                        produces="application/json",
                        method=GET)
        reactor.core.publisher.Flux<DnsNode> getDnsNodes​(@PathVariable("zoneName")
                                                         String zoneName,
                                                         @RequestParam(name="filter",defaultValue="NO_UNKNOWN")
                                                         UnknownFilter unknownFilter,
                                                         @RequestParam(name="q",required=false)
                                                         String query)
        Get dns nodes.
        Parameters:
        zoneName - the zone name
        unknownFilter - the unknown filter
        query - the query
        Returns:
        the dns nodes
      • saveDnsNode

        @RequestMapping(value="/api/dns/zones/{zoneName}",
                        produces="application/json",
                        consumes="application/json",
                        method=POST)
        reactor.core.publisher.Mono<DnsNode> saveDnsNode​(@PathVariable("zoneName")
                                                         String zoneName,
                                                         @Valid @RequestBody
                                                         @Valid DnsNode dnsNode)
        Save dns node.
        Parameters:
        zoneName - the dns zone name
        dnsNode - the dns node
        Returns:
        the saved dns node
      • getDnsNode

        @RequestMapping(value="/api/dns/zones/{zoneName}/{nodeName}",
                        produces="application/json",
                        method=GET)
        reactor.core.publisher.Mono<DnsNode> getDnsNode​(@PathVariable("zoneName")
                                                        String zoneName,
                                                        @PathVariable("nodeName")
                                                        String nodeName,
                                                        @RequestParam(name="filter",defaultValue="NO_UNKNOWN")
                                                        UnknownFilter unknownFilter)
        Get dns node.
        Parameters:
        zoneName - the dns zone name
        nodeName - the dns node name
        unknownFilter - the unknown filter
        Returns:
        the dns node
      • deleteDnsNode

        @RequestMapping(value="/api/dns/zones/{zoneName}/{nodeName}",
                        produces="application/json",
                        method=DELETE)
        reactor.core.publisher.Mono<Boolean> deleteDnsNode​(@PathVariable("zoneName")
                                                           String zoneName,
                                                           @PathVariable("nodeName")
                                                           String nodeName)
        Delete dns node.
        Parameters:
        zoneName - the dns zone name
        nodeName - the dns node name
        Returns:
        true if the dns node was removed; false if dns node didn't exist
      • deleteAllDnsNodes

        @RequestMapping(value="/api/dns/zones/{zoneName}/nodes/all",
                        produces="application/json",
                        method=DELETE)
        reactor.core.publisher.Mono<Void> deleteAllDnsNodes​(@PathVariable("zoneName")
                                                            String zoneName,
                                                            @RequestParam(value="nodeNames",required=false)
                                                            List<String> nodeNames)
        Delete all dns nodes.
        Parameters:
        zoneName - the zone name
        nodeNames - the node names (if the list is empty, all dns nodes will be deleted)
        Returns:
        void response entity