c25456f1aef38ac42676b895a086088a5aabae0f
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / externaltesting-rest / externaltesting-rest-services / src / main / java / org / openecomp / sdcrests / externaltesting / rest / ExternalTesting.java
1 /*
2  * Copyright © 2019 iconectiv
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.openecomp.sdcrests.externaltesting.rest;
18
19 import io.swagger.v3.oas.annotations.OpenAPIDefinition;
20 import io.swagger.v3.oas.annotations.info.Info;
21 import org.openecomp.core.externaltesting.api.ClientConfiguration;
22 import org.openecomp.core.externaltesting.api.RemoteTestingEndpointDefinition;
23 import org.openecomp.core.externaltesting.api.VtpTestExecutionRequest;
24 import org.springframework.validation.annotation.Validated;
25
26 import javax.ws.rs.*;
27 import javax.ws.rs.core.MediaType;
28 import javax.ws.rs.core.Response;
29 import java.util.List;
30
31
32 @Path("/v1.0/externaltesting")
33 @Produces(MediaType.APPLICATION_JSON)
34 @Consumes(MediaType.APPLICATION_JSON)
35 @OpenAPIDefinition(info = @Info(title = "External-Testing"))
36 @Validated
37
38 public interface ExternalTesting {
39
40   @GET
41   @Path("/config")
42   Response getConfig();
43
44   @PUT
45   @Path("/config")
46   Response setConfig(ClientConfiguration config);
47
48   @GET
49   @Path("/testcasetree")
50   Response getTestCasesAsTree();
51
52   @GET
53   @Path("/endpoints")
54   Response getEndpoints();
55
56   @PUT
57   @Path("/endpoints")
58   Response setEndpoints(List<RemoteTestingEndpointDefinition> endpoints);
59
60   @GET
61   @Path("/endpoints/{endpointId}/scenarios")
62   Response getScenarios(@PathParam("endpointId") String endpointId);
63
64   @GET
65   @Path("/endpoints/{endpointId}/scenarios/{scenario}/testsuites")
66   Response getTestsuites(@PathParam("endpointId") String endpointId, @PathParam("scenario") String scenario);
67
68   @GET
69   @Path("/endpoints/{endpointId}/scenarios/{scenario}/testcases")
70   Response getTestcases(@PathParam("endpointId") String endpointId,
71                         @PathParam("scenario") String scenario);
72
73   @GET
74   @Path("/endpoints/{endpointId}/scenarios/{scenario}/testsuites/{testsuite}/testcases/{testcase}")
75   Response getTestcase(@PathParam("endpointId") String endpointId,
76                        @PathParam("scenario") String scenario,
77                        @PathParam("testsuite") String testsuite,
78                        @PathParam("testcase") String testcase);
79
80   @POST
81   @Path("/endpoints/{endpointId}/executions/{executionId}")
82   Response getExecution(@PathParam("endpointId") String endpointId,
83                         @PathParam("executionId") String executionId);
84
85
86   @POST
87   @Path("/executions")
88   Response execute(List<VtpTestExecutionRequest> req,
89                    @QueryParam("requestId") String requestId);
90
91 }