String deployNetworkDomain()

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);
               }
            };
         }
      }
   }