/src/main/java/com/cdancy/bitbucket/rest/features/TagApi.java
https://github.com/cdancy/bitbucket-rest · Java · 96 lines · 71 code · 9 blank · 16 comment · 0 complexity · 0bfd4cfc76104dfa81d876f9e01366a7 MD5 · raw file
- /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package com.cdancy.bitbucket.rest.features;
- import com.cdancy.bitbucket.rest.annotations.Documentation;
- import com.cdancy.bitbucket.rest.domain.common.RequestStatus;
- import com.cdancy.bitbucket.rest.domain.tags.Tag;
- import com.cdancy.bitbucket.rest.domain.tags.TagPage;
- import com.cdancy.bitbucket.rest.fallbacks.BitbucketFallbacks;
- import com.cdancy.bitbucket.rest.filters.BitbucketAuthenticationFilter;
- import com.cdancy.bitbucket.rest.options.CreateTag;
- import com.cdancy.bitbucket.rest.parsers.RequestStatusParser;
- import org.jclouds.rest.annotations.BinderParam;
- import org.jclouds.rest.annotations.Fallback;
- import org.jclouds.rest.annotations.RequestFilters;
- import org.jclouds.rest.binders.BindToJsonPayload;
- import javax.inject.Named;
- import javax.ws.rs.Consumes;
- import javax.ws.rs.DELETE;
- import javax.ws.rs.GET;
- import javax.ws.rs.POST;
- import javax.ws.rs.Path;
- import javax.ws.rs.PathParam;
- import javax.ws.rs.Produces;
- import javax.ws.rs.QueryParam;
- import javax.ws.rs.core.MediaType;
- import org.jclouds.javax.annotation.Nullable;
- import org.jclouds.rest.annotations.ResponseParser;
- @Produces(MediaType.APPLICATION_JSON)
- @RequestFilters(BitbucketAuthenticationFilter.class)
- @Path("/rest")
- @SuppressWarnings("PMD.AvoidDuplicateLiterals")
- public interface TagApi {
- @Named("tag:create")
- @Documentation({"https://developer.atlassian.com/static/rest/bitbucket-server/latest/bitbucket-rest.html#idm45888278801952"})
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/api/{jclouds.api-version}/projects/{project}/repos/{repo}/tags")
- @Fallback(BitbucketFallbacks.TagOnError.class)
- @POST
- Tag create(@PathParam("project") String project,
- @PathParam("repo") String repo,
- @BinderParam(BindToJsonPayload.class) CreateTag createTag);
- @Named("tag:get")
- @Documentation({"https://developer.atlassian.com/static/rest/bitbucket-server/latest/bitbucket-rest.html#idm45888278800832"})
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/api/{jclouds.api-version}/projects/{project}/repos/{repo}/tags/{tag}")
- @Fallback(BitbucketFallbacks.TagOnError.class)
- @GET
- Tag get(@PathParam("project") String project,
- @PathParam("repo") String repo,
- @PathParam("tag") String tag);
- @Named("tag:list")
- @Documentation({"https://docs.atlassian.com/bitbucket-server/rest/5.7.0/bitbucket-rest.html#idm45568367769888"})
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/api/{jclouds.api-version}/projects/{project}/repos/{repo}/tags")
- @Fallback(BitbucketFallbacks.TagPageOnError.class)
- @GET
- TagPage list(@PathParam("project") String project,
- @PathParam("repo") String repo,
- @Nullable @QueryParam("filterText") String filterText,
- @Nullable @QueryParam("orderBy") String orderBy,
- @Nullable @QueryParam("start") Integer start,
- @Nullable @QueryParam("limit") Integer limit);
- @Named("tag:delete")
- @Documentation({"https://docs.atlassian.com/bitbucket-server/rest/5.4.0/bitbucket-git-rest.html#idm139355817865616"})
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/git/{jclouds.api-version}/projects/{project}/repos/{repo}/tags/{tag}")
- @Fallback(BitbucketFallbacks.RequestStatusOnError.class)
- @ResponseParser(RequestStatusParser.class)
- @DELETE
- RequestStatus delete(@PathParam("project") String project,
- @PathParam("repo") String repo,
- @PathParam("tag") String tag);
- }