String createTagKey()

in dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/TagApi.java [70:169]


   String createTagKey(@PayloadParam("name") String name, @PayloadParam("description") String description,
         @PayloadParam("valueRequired") boolean valueRequired,
         @PayloadParam("displayOnReport") boolean displayOnReport);

   @Named("tag:applyTags")
   @POST
   @Path("/applyTags")
   @MapBinder(BindToJsonPayload.class)
   void applyTags(@PayloadParam("assetId") String assetId, @PayloadParam("assetType") String assetType,
         @PayloadParam("tagById") List<TagInfo> tagById);

   @Named("tag:removeTags")
   @POST
   @Path("/removeTags")
   @MapBinder(BindToJsonPayload.class)
   void removeTags(@PayloadParam("assetId") String assetId, @PayloadParam("assetType") String assetType,
         @PayloadParam("tagKeyId") List<String> tagKeyName);

   @Named("tag:tagKey")
   @GET
   @Path("/tagKey")
   @Fallback(Fallbacks.EmptyIterableWithMarkerOnNotFoundOr404.class)
   @ResponseParser(ParseTagKeys.class)
   PaginatedCollection<TagKey> listTagKeys(PaginationOptions options);

   @Named("tag:tagKey")
   @GET
   @Path("/tagKey")
   @Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class)
   @ResponseParser(ParseTagKeys.class)
   @Transform(ParseTagKeys.ToPagedIterable.class)
   PagedIterable<TagKey> listTagKeys();

   @Named("tag:tagKeyById")
   @GET
   @Path("/tagKey/{tagKeyId}")
   @Fallback(Fallbacks.NullOnNotFoundOr404.class)
   TagKey tagKeyById(@PathParam("tagKeyId") String tagKeyId);

   @Named("tag:editTagKey")
   @POST
   @Path("/editTagKey")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(BindToJsonPayload.class)
   void editTagKey(@PayloadParam("name") String name, @PayloadParam("id") String id,
         @PayloadParam("description") String description, @PayloadParam("valueRequired") Boolean valueRequired,
         @PayloadParam("displayOnReport") Boolean displayOnReport);

   @Named("tag:deleteTagKey")
   @POST
   @Path("/deleteTagKey")
   @Produces(MediaType.APPLICATION_JSON)
   @MapBinder(BindToJsonPayload.class)
   @Fallback(Fallbacks.VoidOnNotFoundOr404.class)
   void deleteTagKey(@PayloadParam("id") String id);

   @Named("tag:tags")
   @GET
   @Path("/tag")
   @Fallback(Fallbacks.EmptyIterableWithMarkerOnNotFoundOr404.class)
   @ResponseParser(ParseTags.class)
   PaginatedCollection<Tag> listTags(PaginationOptions options);

   @Named("tag:tags")
   @GET
   @Path("/tag")
   @Fallback(Fallbacks.EmptyPagedIterableOnNotFoundOr404.class)
   @ResponseParser(ParseTags.class)
   @Transform(ParseTags.ToPagedIterable.class)
   PagedIterable<Tag> listTags();

   @Singleton
   final class ParseTagKeys extends ParseJson<TagKeys> {

      @Inject
      ParseTagKeys(final Json json, final TypeLiteral<TagKeys> type) {
         super(json, type);
      }

      private static class ToPagedIterable extends Arg0ToPagedIterable<TagKey, ToPagedIterable> {

         private final DimensionDataCloudControlApi api;

         @Inject
         ToPagedIterable(final DimensionDataCloudControlApi api) {
            this.api = api;
         }

         @Override
         protected Function<Object, IterableWithMarker<TagKey>> markerToNextForArg0(Optional<Object> arg0) {
            return new Function<Object, IterableWithMarker<TagKey>>() {
               @Override
               public IterableWithMarker<TagKey> apply(Object input) {
                  PaginationOptions paginationOptions = PaginationOptions.class.cast(input);
                  return api.getTagApi().listTagKeys(paginationOptions);
               }
            };
         }
      }
   }