in dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/NetworkApi.java [84:333]
String deployNetworkDomain(@PayloadParam("datacenterId") String datacenterId, @PayloadParam("name") String name,
@PayloadParam("description") String description, @PayloadParam("type") String type);
@Named("networkDomain:get")
@GET
@Path("/networkDomain/{id}")
@Fallback(NullOnNotFoundOr404.class)
NetworkDomain getNetworkDomain(@PathParam("id") String networkDomainId);
@Named("networkDomain:listWithDatacenterIdAndName")
@GET
@Path("/networkDomain")
@Transform(ParseNetworkDomains.ToPagedIterable.class)
@ResponseParser(ParseNetworkDomains.class)
@Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class)
PagedIterable<NetworkDomain> listNetworkDomainsWithDatacenterIdAndName(
@QueryParam("datacenterId") String datacenterId, @QueryParam("name") String name);
@Named("networkDomain:list")
@GET
@Path("/networkDomain")
@ResponseParser(ParseNetworkDomains.class)
@Fallback(Fallbacks.EmptyIterableWithMarkerOnNotFoundOr404.class)
PaginatedCollection<NetworkDomain> listNetworkDomains(PaginationOptions options);
@Named("networkDomain:list")
@GET
@Path("/networkDomain")
@Transform(ParseNetworkDomains.ToPagedIterable.class)
@ResponseParser(ParseNetworkDomains.class)
@Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class)
PagedIterable<NetworkDomain> listNetworkDomains();
@Named("networkDomain:delete")
@POST
@Path("/deleteNetworkDomain")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@Fallback(Fallbacks.VoidOnNotFoundOr404.class)
void deleteNetworkDomain(@PayloadParam("id") String networkDomainId);
@Named("vlan:deploy")
@POST
@Path("/deployVlan")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@ResponseParser(ParseVlanId.class)
String deployVlan(@PayloadParam("networkDomainId") String networkDomainId, @PayloadParam("name") String name,
@PayloadParam("description") String description,
@PayloadParam("privateIpv4BaseAddress") String privateIpv4BaseAddress,
@PayloadParam("privateIpv4PrefixSize") Integer privateIpv4PrefixSize);
@Named("vlan:get")
@GET
@Path("/vlan/{id}")
@Fallback(NullOnNotFoundOr404.class)
Vlan getVlan(@PathParam("id") String vlanId);
@Named("vlan:list")
@GET
@Path("/vlan")
@ResponseParser(ParseVlans.class)
@Fallback(Fallbacks.EmptyIterableWithMarkerOnNotFoundOr404.class)
PaginatedCollection<Vlan> listVlans(@QueryParam("networkDomainId") String networkDomainId,
PaginationOptions options);
@Named("vlan:list")
@GET
@Path("/vlan")
@Transform(ParseVlans.ToPagedIterable.class)
@ResponseParser(ParseVlans.class)
@Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class)
PagedIterable<Vlan> listVlans(@QueryParam("networkDomainId") String networkDomainId);
@Named("vlan:delete")
@POST
@Path("/deleteVlan")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@Fallback(Fallbacks.VoidOnNotFoundOr404.class)
void deleteVlan(@PayloadParam("id") String vlanId);
@Named("networkDomain:addPublicIpBlock")
@POST
@Path("/addPublicIpBlock")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@ResponseParser(ParsePublicIpBlockId.class)
String addPublicIpBlock(@PayloadParam("networkDomainId") String networkDomainId);
@Named("networkDomain:listPublicIPv4AddressBlocks")
@GET
@Path("/publicIpBlock")
@ResponseParser(ParsePublicIpBlocks.class)
@Fallback(Fallbacks.EmptyIterableWithMarkerOnNotFoundOr404.class)
PaginatedCollection<PublicIpBlock> listPublicIPv4AddressBlocks(@QueryParam("networkDomainId") String networkDomainId,
PaginationOptions options);
@Named("networkDomain:listPublicIPv4AddressBlock")
@GET
@Path("/publicIpBlock")
@Transform(ParsePublicIpBlocks.ToPagedIterable.class)
@ResponseParser(ParsePublicIpBlocks.class)
@Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class)
PagedIterable<PublicIpBlock> listPublicIPv4AddressBlocks(@QueryParam("networkDomainId") String networkDomainId);
@Named("networkDomain:removePublicIpBlock")
@POST
@Path("/removePublicIpBlock")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@Fallback(Fallbacks.VoidOnNotFoundOr404.class)
void removePublicIpBlock(@PayloadParam("id") String publicIpBlockId);
@Named("networkDomain:getPublicIPv4AddressBlock")
@GET
@Path("/publicIpBlock/{id}")
@Fallback(NullOnNotFoundOr404.class)
PublicIpBlock getPublicIPv4AddressBlock(@PathParam("id") String publicIPv4AddressBlockId);
@Named("network:createNatRule")
@POST
@Path("/createNatRule")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@Fallback(Fallbacks.VoidOnNotFoundOr404.class)
@ResponseParser(ParseNatRuleId.class)
String createNatRule(@PayloadParam("networkDomainId") String networkDomainId,
@PayloadParam("internalIp") String internalIp, @PayloadParam("externalIp") String externalIp);
@Named("networkDomain:listNatRules")
@GET
@Path("/natRule")
@ResponseParser(ParseNatRules.class)
@Fallback(Fallbacks.EmptyIterableWithMarkerOnNotFoundOr404.class)
PaginatedCollection<NatRule> listNatRules(@QueryParam("networkDomainId") String networkDomainId,
PaginationOptions options);
@Named("networkDomain:listNatRules")
@GET
@Path("/natRule")
@Transform(ParseNatRules.ToPagedIterable.class)
@ResponseParser(ParseNatRules.class)
@Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class)
PagedIterable<NatRule> listNatRules(@QueryParam("networkDomainId") String networkDomainId);
@Named("network:getNatRule")
@GET
@Path("/natRule/{id}")
@Fallback(NullOnNotFoundOr404.class)
NatRule getNatRule(@PathParam("id") String natRuleId);
@Named("network:deleteNatRule")
@POST
@Path("/deleteNatRule")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@Fallback(Fallbacks.VoidOnNotFoundOr404.class)
void deleteNatRule(@PayloadParam("id") String natRuleId);
@Named("networkDomain:createFirewallRule")
@POST
@Path("/createFirewallRule")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@ResponseParser(FirewallRuleId.class)
String createFirewallRule(@PayloadParam("networkDomainId") String networkDomainId, @PayloadParam("name") String name,
@PayloadParam("action") String action, @PayloadParam("ipVersion") String ipVersion,
@PayloadParam("protocol") String protocol, @PayloadParam("source") FirewallRuleTarget source,
@PayloadParam("destination") FirewallRuleTarget destination, @PayloadParam("enabled") Boolean enabled,
@PayloadParam("placement") Placement placement);
@Named("networkDomain:listFirewallRules")
@GET
@Path("/firewallRule")
@ResponseParser(ParseFirewallRules.class)
@Fallback(Fallbacks.EmptyIterableWithMarkerOnNotFoundOr404.class)
PaginatedCollection<FirewallRule> listFirewallRules(@QueryParam("networkDomainId") String networkDomainId,
PaginationOptions options);
@Named("networkDomain:listFirewallRules")
@GET
@Path("/firewallRule")
@Transform(ParseFirewallRules.ToPagedIterable.class)
@ResponseParser(ParseFirewallRules.class)
@Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class)
PagedIterable<FirewallRule> listFirewallRules(@QueryParam("networkDomainId") String networkDomainId);
@Named("networkDomain:deleteFirewallRule")
@POST
@Path("/deleteFirewallRule")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@Fallback(Fallbacks.VoidOnNotFoundOr404.class)
void deleteFirewallRule(@PayloadParam("id") String firewallRuleId);
@Named("networkDomain:createPortList")
@POST
@Path("/createPortList")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@ResponseParser(PortListId.class)
String createPortList(@PayloadParam("networkDomainId") String networkDomainId, @PayloadParam("name") String name,
@PayloadParam("description") String description, @PayloadParam("port") List<Port> port,
@PayloadParam("childPortListId") List<String> childPortListId);
@Named("networkDomain:getPortList")
@GET
@Path("/portList/{id}")
@Fallback(NullOnNotFoundOr404.class)
FirewallRuleTarget.PortList getPortList(@PathParam("id") String portListId);
@Named("networkDomain:deletePortList")
@POST
@Path("/deletePortList")
@Produces(MediaType.APPLICATION_JSON)
@MapBinder(BindToJsonPayload.class)
@Fallback(Fallbacks.VoidOnNotFoundOr404.class)
void deletePortList(@PayloadParam("id") String portListId);
@Singleton
final class ParseFirewallRules extends ParseJson<FirewallRules> {
@Inject
ParseFirewallRules(Json json) {
super(json, TypeLiteral.get(FirewallRules.class));
}
private static class ToPagedIterable
extends Arg0ToPagedIterable<FirewallRule, ParseFirewallRules.ToPagedIterable> {
private DimensionDataCloudControlApi api;
@Inject
ToPagedIterable(DimensionDataCloudControlApi api) {
this.api = api;
}
@Override
protected Function<Object, IterableWithMarker<FirewallRule>> markerToNextForArg0(Optional<Object> optional) {
return new Function<Object, IterableWithMarker<FirewallRule>>() {
@Override
public IterableWithMarker<FirewallRule> apply(Object input) {
PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
return api.getNetworkApi().listFirewallRules(getArgs(request).get(0).toString(), paginationOptions);
}
};
}
}
}