All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.oneops.infoblox.Infoblox Maven / Gradle / Ivy

package com.oneops.infoblox;

import com.oneops.infoblox.model.Result;
import com.oneops.infoblox.model.a.ARec;
import com.oneops.infoblox.model.aaaa.AAAA;
import com.oneops.infoblox.model.cname.CNAME;
import com.oneops.infoblox.model.host.Host;
import com.oneops.infoblox.model.host.HostReq;
import com.oneops.infoblox.model.zone.ZoneAuth;
import java.util.List;
import java.util.Map;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.QueryMap;

/**
 * Infoblox DNS appliance (IBA) REST interface.
 *
 * @author Suresh G
 */
public interface Infoblox {

  /** Auth zone Record */
  @GET("zone_auth")
  Call>> queryAuthZones();

  @GET("zone_auth")
  Call>> queryAuthZone(@QueryMap(encoded = true) Map options);

  /** Host Record */
  @GET("./record:host")
  Call>> queryHostRec(@QueryMap(encoded = true) Map options);

  @POST("./record:host?_return_fields=name,ipv4addrs,view")
  Call> createHostRec(@Body HostReq req);

  /** Delete Record */
  @DELETE("./{ref}")
  Call> deleteRef(@Path(value = "ref", encoded = true) String ref);

  /** A Record */
  @GET("./record:a")
  Call>> queryARec(@QueryMap(encoded = true) Map options);

  @POST("./record:a?_return_fields=name,ipv4addr,view")
  Call> createARec(@Body Map req);

  @PUT("./{ref}?_return_fields=name,ipv4addr,view")
  Call> modifyARec(
      @Path(value = "ref", encoded = true) String ref, @Body Map req);

  /** AAAA Record */
  @GET("./record:aaaa")
  Call>> queryAAAARec(@QueryMap(encoded = true) Map options);

  @POST("./record:aaaa?_return_fields=name,ipv6addr,view")
  Call> createAAAARec(@Body Map req);

  @PUT("./{ref}?_return_fields=name,ipv6addr,view")
  Call> modifyAAAARec(
      @Path(value = "ref", encoded = true) String ref, @Body Map req);

  /** CNAME Record */
  @GET("./record:cname")
  Call>> queryCNAMERec(@QueryMap(encoded = true) Map options);

  @POST("./record:cname?_return_fields=name,canonical,view")
  Call> createCNAMERec(@Body Map req);

  @PUT("./{ref}?_return_fields=name,canonical,view")
  Call> modifyCNAMERec(
      @Path(value = "ref", encoded = true) String ref, @Body Map req);

  @POST("logout")
  Call logout();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy