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