Interface NameServerWebfluxManagementApi


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

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      reactor.core.publisher.Mono<org.bremersee.dccon.model.DnsZone> addDnsZone​(@Valid org.bremersee.dccon.model.DnsZone request)
      Add dns zone.
      reactor.core.publisher.Mono<Void> deleteAllDnsNodes​(String zoneName, List<String> nodeNames)
      Delete all dns nodes.
      reactor.core.publisher.Mono<Boolean> deleteDnsNode​(String zoneName, String nodeName)
      Delete dns node.
      reactor.core.publisher.Mono<Boolean> deleteDnsZone​(String zoneName)
      Delete dns zone.
      reactor.core.publisher.Flux<org.bremersee.dccon.model.DhcpLease> getDhcpLeases​(Boolean all, String sort)
      Gets dhcp leases.
      reactor.core.publisher.Mono<org.bremersee.dccon.model.DnsNode> getDnsNode​(String zoneName, String nodeName, org.bremersee.dccon.model.UnknownFilter unknownFilter)
      Get dns node.
      reactor.core.publisher.Flux<org.bremersee.dccon.model.DnsNode> getDnsNodes​(String zoneName, org.bremersee.dccon.model.UnknownFilter unknownFilter, String query)
      Get dns nodes.
      reactor.core.publisher.Flux<org.bremersee.dccon.model.DnsZone> getDnsZones()
      Get dns zones.
      reactor.core.publisher.Flux<org.bremersee.dccon.model.DnsNode> query​(String query, org.bremersee.dccon.model.UnknownFilter unknownFilter)
      Query dns nodes.
      reactor.core.publisher.Mono<org.bremersee.dccon.model.DnsNode> saveDnsNode​(String zoneName, @Valid org.bremersee.dccon.model.DnsNode dnsNode)
      Save dns node.
    • Method Detail

      • query

        @RequestMapping(value="/api/dns",
                        produces="application/json",
                        method=GET)
        reactor.core.publisher.Flux<org.bremersee.dccon.model.DnsNode> query​(@RequestParam(name="q")
                                                                             String query,
                                                                             @RequestParam(name="filter",defaultValue="NO_UNKNOWN")
                                                                             org.bremersee.dccon.model.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<org.bremersee.dccon.model.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<org.bremersee.dccon.model.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<org.bremersee.dccon.model.DnsZone> addDnsZone​(@Valid @RequestBody
                                                                                  @Valid org.bremersee.dccon.model.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<org.bremersee.dccon.model.DnsNode> getDnsNodes​(@PathVariable("zoneName")
                                                                                   String zoneName,
                                                                                   @RequestParam(name="filter",defaultValue="NO_UNKNOWN")
                                                                                   org.bremersee.dccon.model.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<org.bremersee.dccon.model.DnsNode> saveDnsNode​(@PathVariable("zoneName")
                                                                                   String zoneName,
                                                                                   @Valid @RequestBody
                                                                                   @Valid org.bremersee.dccon.model.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<org.bremersee.dccon.model.DnsNode> getDnsNode​(@PathVariable("zoneName")
                                                                                  String zoneName,
                                                                                  @PathVariable("nodeName")
                                                                                  String nodeName,
                                                                                  @RequestParam(name="filter",defaultValue="NO_UNKNOWN")
                                                                                  org.bremersee.dccon.model.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