]> source.dussan.org Git - archiva.git/blob
359f9e73a113fb0423efc63c250480a4496121e9
[archiva.git] /
1 package org.apache.archiva.rest.api.services;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import org.apache.archiva.rest.api.model.Artifact;
23 import org.apache.archiva.rest.api.model.ArtifactTransferRequest;
24 import org.apache.archiva.security.common.ArchivaRoleConstants;
25 import org.codehaus.plexus.redback.authorization.RedbackAuthorization;
26
27 import javax.ws.rs.Consumes;
28 import javax.ws.rs.GET;
29 import javax.ws.rs.POST;
30 import javax.ws.rs.Path;
31 import javax.ws.rs.PathParam;
32 import javax.ws.rs.Produces;
33 import javax.ws.rs.QueryParam;
34 import javax.ws.rs.core.MediaType;
35
36 /**
37  * @author Olivier Lamy
38  * @since 1.4-M1
39  */
40 @Path( "/repositoriesService/" )
41 public interface RepositoriesService
42 {
43
44     @Path( "scanRepository" )
45     @GET
46     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
47     @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_RUN_INDEXER )
48     Boolean scanRepository( @QueryParam( "repositoryId" ) String repositoryId,
49                             @QueryParam( "fullScan" ) boolean fullScan )
50         throws ArchivaRestServiceException;
51
52
53     @Path( "alreadyScanning/{repositoryId}" )
54     @GET
55     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
56     @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_RUN_INDEXER )
57     Boolean alreadyScanning( @PathParam( "repositoryId" ) String repositoryId )
58         throws ArchivaRestServiceException;
59
60     @Path( "removeScanningTaskFromQueue/{repositoryId}" )
61     @GET
62     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
63     @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_RUN_INDEXER )
64     Boolean removeScanningTaskFromQueue( @PathParam( "repositoryId" ) String repositoryId )
65         throws ArchivaRestServiceException;
66
67     @Path( "scanRepositoryNow" )
68     @GET
69     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
70     @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_RUN_INDEXER )
71     Boolean scanRepositoryNow( @QueryParam( "repositoryId" ) String repositoryId,
72                                @QueryParam( "fullScan" ) boolean fullScan )
73         throws ArchivaRestServiceException;
74
75     @Path( "copyArtifact" )
76     @POST
77     @Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
78     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
79     @RedbackAuthorization( noPermission = true )
80     /**
81      * permission are checked in impl
82      * will copy an artifact from the source repository to the target repository
83      */
84     Boolean copyArtifact( ArtifactTransferRequest artifactTransferRequest )
85         throws ArchivaRestServiceException;
86
87     @Path( "scheduleDownloadRemoteIndex" )
88     @GET
89     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
90     @RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_RUN_INDEXER )
91     Boolean scheduleDownloadRemoteIndex( @QueryParam( "repositoryId" ) String repositoryId,
92                                          @QueryParam( "now" ) boolean now,
93                                          @QueryParam( "fullDownload" ) boolean fullDownload )
94         throws ArchivaRestServiceException;
95
96
97     @Path( "deleteArtifact" )
98     @GET
99     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
100     @RedbackAuthorization( noPermission = true )
101     /**
102      * permission are checked in impl
103      * @since 1.4-M2
104      */
105     Boolean deleteArtifact( @QueryParam( "" ) Artifact artifact, @QueryParam( "repositoryId" ) String repositoryId )
106         throws ArchivaRestServiceException;
107
108
109 }