blob: 767357515f2b766143c1675f6fb08d1f401a9897 [file] [log] [blame]
Chenfei Gao55e1f552019-05-21 13:32:30 -04001{
2 "swagger" : "2.0",
3 "basePath" : "/",
4 "tags" : [ {
5 "name" : "Policy"
6 } ],
7 "schemes" : [ "http", "https" ],
8 "paths" : {
9 "/policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies" : {
10 "get" : {
11 "tags" : [ "Policy" ],
12 "summary" : "Retrieve all versions of a policy created for a particular policy type version",
13 "description" : "Returns a list of all versions of specified policy created for the specified policy type version",
14 "operationId" : "getAllPolicies",
Chenfei Gaof22846d2019-09-16 22:35:47 -040015 "produces" : [ "application/json", "application/yaml" ],
Chenfei Gao55e1f552019-05-21 13:32:30 -040016 "parameters" : [ {
17 "name" : "policyTypeId",
18 "in" : "path",
19 "description" : "ID of policy type",
20 "required" : true,
21 "type" : "string"
22 }, {
23 "name" : "policyTypeVersion",
24 "in" : "path",
25 "description" : "Version of policy type",
26 "required" : true,
27 "type" : "string"
28 }, {
29 "name" : "X-ONAP-RequestID",
30 "in" : "header",
31 "description" : "RequestID for http transaction",
32 "required" : false,
33 "type" : "string",
34 "format" : "uuid"
35 } ],
36 "responses" : {
37 "200" : {
38 "description" : "successful operation; All policies matching specified policy type will be returned.",
39 "headers" : {
40 "X-MinorVersion" : {
41 "type" : "string",
42 "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
43 },
44 "X-PatchVersion" : {
45 "type" : "string",
46 "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
47 },
48 "X-LatestVersion" : {
49 "type" : "string",
50 "description" : "Used only to communicate an API's latest version"
51 },
52 "X-ONAP-RequestID" : {
53 "type" : "string",
54 "format" : "uuid",
55 "description" : "Used to track REST transactions for logging purpose"
56 }
57 },
58 "schema" : {
59 "$ref" : "#/definitions/ToscaServiceTemplate"
60 }
61 },
62 "401" : {
63 "description" : "Authentication Error"
64 },
65 "403" : {
66 "description" : "Authorization Error"
67 },
68 "404" : {
69 "description" : "Resource Not Found"
70 },
71 "500" : {
72 "description" : "Internal Server Error"
73 }
74 },
75 "security" : [ {
76 "basicAuth" : [ ]
77 } ],
78 "x-interface info" : {
79 "api-version" : "1.0.0",
80 "last-mod-release" : "Dublin"
81 }
82 },
83 "post" : {
84 "tags" : [ "Policy" ],
85 "summary" : "Create a new policy for a policy type version",
86 "description" : "Create a new policy for a policy type. Client should provide TOSCA body of the new policy",
87 "operationId" : "createPolicy",
Chenfei Gaof22846d2019-09-16 22:35:47 -040088 "consumes" : [ "application/json", "application/yaml" ],
89 "produces" : [ "application/json", "application/yaml" ],
Chenfei Gao55e1f552019-05-21 13:32:30 -040090 "parameters" : [ {
91 "name" : "policyTypeId",
92 "in" : "path",
93 "description" : "ID of policy type",
94 "required" : true,
95 "type" : "string"
96 }, {
97 "name" : "policyTypeVersion",
98 "in" : "path",
99 "description" : "Version of policy type",
100 "required" : true,
101 "type" : "string"
102 }, {
103 "name" : "X-ONAP-RequestID",
104 "in" : "header",
105 "description" : "RequestID for http transaction",
106 "required" : false,
107 "type" : "string",
108 "format" : "uuid"
109 }, {
110 "in" : "body",
111 "name" : "body",
112 "description" : "Entity body of policy",
113 "required" : true,
114 "type" : "ToscaServiceTemplate",
115 "schema" : {
116 "$ref" : "#/definitions/ToscaServiceTemplate"
117 }
118 } ],
119 "responses" : {
120 "200" : {
121 "description" : "successful operation; Newly created policy matching specified policy type will be returned.",
122 "headers" : {
123 "X-MinorVersion" : {
124 "type" : "string",
125 "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
126 },
127 "X-PatchVersion" : {
128 "type" : "string",
129 "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
130 },
131 "X-LatestVersion" : {
132 "type" : "string",
133 "description" : "Used only to communicate an API's latest version"
134 },
135 "X-ONAP-RequestID" : {
136 "type" : "string",
137 "format" : "uuid",
138 "description" : "Used to track REST transactions for logging purpose"
139 }
140 },
141 "schema" : {
142 "$ref" : "#/definitions/ToscaServiceTemplate"
143 }
144 },
145 "400" : {
146 "description" : "Invalid Body"
147 },
148 "401" : {
149 "description" : "Authentication Error"
150 },
151 "403" : {
152 "description" : "Authorization Error"
153 },
154 "404" : {
155 "description" : "Resource Not Found"
156 },
Chenfei Gao6d69ff92020-01-13 13:20:34 -0500157 "406" : {
158 "description" : "Not Acceptable Version"
159 },
Chenfei Gao55e1f552019-05-21 13:32:30 -0400160 "500" : {
161 "description" : "Internal Server Error"
162 }
163 },
164 "security" : [ {
165 "basicAuth" : [ ]
166 } ],
167 "x-interface info" : {
168 "api-version" : "1.0.0",
169 "last-mod-release" : "Dublin"
170 }
171 }
172 },
173 "/policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}" : {
174 "get" : {
175 "tags" : [ "Policy" ],
176 "summary" : "Retrieve all version details of a policy created for a particular policy type version",
177 "description" : "Returns a list of all version details of the specified policy",
178 "operationId" : "getAllVersionsOfPolicy",
Chenfei Gaof22846d2019-09-16 22:35:47 -0400179 "produces" : [ "application/json", "application/yaml" ],
Chenfei Gao55e1f552019-05-21 13:32:30 -0400180 "parameters" : [ {
181 "name" : "policyTypeId",
182 "in" : "path",
183 "description" : "ID of policy type",
184 "required" : true,
185 "type" : "string"
186 }, {
187 "name" : "policyTypeVersion",
188 "in" : "path",
189 "description" : "Version of policy type",
190 "required" : true,
191 "type" : "string"
192 }, {
193 "name" : "policyId",
194 "in" : "path",
195 "description" : "ID of policy",
196 "required" : true,
197 "type" : "string"
198 }, {
199 "name" : "X-ONAP-RequestID",
200 "in" : "header",
201 "description" : "RequestID for http transaction",
202 "required" : false,
203 "type" : "string",
204 "format" : "uuid"
205 } ],
206 "responses" : {
207 "200" : {
208 "description" : "successful operation; All versions of specified policy matching specified policy type will be returned.",
209 "headers" : {
210 "X-MinorVersion" : {
211 "type" : "string",
212 "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
213 },
214 "X-PatchVersion" : {
215 "type" : "string",
216 "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
217 },
218 "X-LatestVersion" : {
219 "type" : "string",
220 "description" : "Used only to communicate an API's latest version"
221 },
222 "X-ONAP-RequestID" : {
223 "type" : "string",
224 "format" : "uuid",
225 "description" : "Used to track REST transactions for logging purpose"
226 }
227 },
228 "schema" : {
229 "$ref" : "#/definitions/ToscaServiceTemplate"
230 }
231 },
232 "401" : {
233 "description" : "Authentication Error"
234 },
235 "403" : {
236 "description" : "Authorization Error"
237 },
238 "404" : {
239 "description" : "Resource Not Found"
240 },
241 "500" : {
242 "description" : "Internal Server Error"
243 }
244 },
245 "security" : [ {
246 "basicAuth" : [ ]
247 } ],
248 "x-interface info" : {
249 "api-version" : "1.0.0",
250 "last-mod-release" : "Dublin"
251 }
252 }
253 },
254 "/policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/{policyVersion}" : {
255 "get" : {
256 "tags" : [ "Policy" ],
257 "summary" : "Retrieve one version of a policy created for a particular policy type version",
258 "description" : "Returns a particular version of specified policy created for the specified policy type version",
259 "operationId" : "getSpecificVersionOfPolicy",
Chenfei Gaof22846d2019-09-16 22:35:47 -0400260 "produces" : [ "application/json", "application/yaml" ],
Chenfei Gao55e1f552019-05-21 13:32:30 -0400261 "parameters" : [ {
262 "name" : "policyTypeId",
263 "in" : "path",
264 "description" : "ID of policy type",
265 "required" : true,
266 "type" : "string"
267 }, {
268 "name" : "policyTypeVersion",
269 "in" : "path",
270 "description" : "Version of policy type",
271 "required" : true,
272 "type" : "string"
273 }, {
274 "name" : "policyId",
275 "in" : "path",
276 "description" : "ID of policy",
277 "required" : true,
278 "type" : "string"
279 }, {
280 "name" : "policyVersion",
281 "in" : "path",
282 "description" : "Version of policy",
283 "required" : true,
284 "type" : "string"
285 }, {
286 "name" : "X-ONAP-RequestID",
287 "in" : "header",
288 "description" : "RequestID for http transaction",
289 "required" : false,
290 "type" : "string",
291 "format" : "uuid"
292 } ],
293 "responses" : {
294 "200" : {
295 "description" : "successful operation; The specified policy matching specified policy type will be returned.",
296 "headers" : {
297 "X-MinorVersion" : {
298 "type" : "string",
299 "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
300 },
301 "X-PatchVersion" : {
302 "type" : "string",
303 "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
304 },
305 "X-LatestVersion" : {
306 "type" : "string",
307 "description" : "Used only to communicate an API's latest version"
308 },
309 "X-ONAP-RequestID" : {
310 "type" : "string",
311 "format" : "uuid",
312 "description" : "Used to track REST transactions for logging purpose"
313 }
314 },
315 "schema" : {
316 "$ref" : "#/definitions/ToscaServiceTemplate"
317 }
318 },
319 "401" : {
320 "description" : "Authentication Error"
321 },
322 "403" : {
323 "description" : "Authorization Error"
324 },
325 "404" : {
326 "description" : "Resource Not Found"
327 },
328 "500" : {
329 "description" : "Internal Server Error"
330 }
331 },
332 "security" : [ {
333 "basicAuth" : [ ]
334 } ],
335 "x-interface info" : {
336 "api-version" : "1.0.0",
337 "last-mod-release" : "Dublin"
338 }
339 },
340 "delete" : {
341 "tags" : [ "Policy" ],
342 "summary" : "Delete a particular version of a policy",
343 "description" : "Delete a particular version of a policy. It must follow one rule. Rule: the version that has been deployed in PDP group(s) cannot be deleted",
344 "operationId" : "deleteSpecificVersionOfPolicy",
Chenfei Gaof22846d2019-09-16 22:35:47 -0400345 "produces" : [ "application/json", "application/yaml" ],
Chenfei Gao55e1f552019-05-21 13:32:30 -0400346 "parameters" : [ {
347 "name" : "policyTypeId",
348 "in" : "path",
349 "description" : "PolicyType ID",
350 "required" : true,
351 "type" : "string"
352 }, {
353 "name" : "policyTypeVersion",
354 "in" : "path",
355 "description" : "Version of policy type",
356 "required" : true,
357 "type" : "string"
358 }, {
359 "name" : "policyId",
360 "in" : "path",
361 "description" : "ID of policy",
362 "required" : true,
363 "type" : "string"
364 }, {
365 "name" : "policyVersion",
366 "in" : "path",
367 "description" : "Version of policy",
368 "required" : true,
369 "type" : "string"
370 }, {
371 "name" : "X-ONAP-RequestID",
372 "in" : "header",
373 "description" : "RequestID for http transaction",
374 "required" : false,
375 "type" : "string",
376 "format" : "uuid"
377 } ],
378 "responses" : {
379 "200" : {
380 "description" : "successful operation; Newly deleted policy matching specified policy type will be returned.",
381 "headers" : {
382 "X-MinorVersion" : {
383 "type" : "string",
384 "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
385 },
386 "X-PatchVersion" : {
387 "type" : "string",
388 "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
389 },
390 "X-LatestVersion" : {
391 "type" : "string",
392 "description" : "Used only to communicate an API's latest version"
393 },
394 "X-ONAP-RequestID" : {
395 "type" : "string",
396 "format" : "uuid",
397 "description" : "Used to track REST transactions for logging purpose"
398 }
399 },
400 "schema" : {
401 "$ref" : "#/definitions/ToscaServiceTemplate"
402 }
403 },
404 "401" : {
405 "description" : "Authentication Error"
406 },
407 "403" : {
408 "description" : "Authorization Error"
409 },
410 "404" : {
411 "description" : "Resource Not Found"
412 },
413 "409" : {
414 "description" : "Delete Conflict, Rule Violation"
415 },
416 "500" : {
417 "description" : "Internal Server Error"
418 }
419 },
420 "security" : [ {
421 "basicAuth" : [ ]
422 } ],
423 "x-interface info" : {
424 "api-version" : "1.0.0",
425 "last-mod-release" : "Dublin"
426 }
427 }
428 },
429 "/policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/latest" : {
430 "get" : {
431 "tags" : [ "Policy" ],
432 "summary" : "Retrieve the latest version of a particular policy",
433 "description" : "Returns the latest version of specified policy",
434 "operationId" : "getLatestVersionOfPolicy",
Chenfei Gaof22846d2019-09-16 22:35:47 -0400435 "produces" : [ "application/json", "application/yaml" ],
Chenfei Gao55e1f552019-05-21 13:32:30 -0400436 "parameters" : [ {
437 "name" : "policyTypeId",
438 "in" : "path",
439 "description" : "ID of policy type",
440 "required" : true,
441 "type" : "string"
442 }, {
443 "name" : "policyTypeVersion",
444 "in" : "path",
445 "description" : "Version of policy type",
446 "required" : true,
447 "type" : "string"
448 }, {
449 "name" : "policyId",
450 "in" : "path",
451 "description" : "ID of policy",
452 "required" : true,
453 "type" : "string"
454 }, {
455 "name" : "X-ONAP-RequestID",
456 "in" : "header",
457 "description" : "RequestID for http transaction",
458 "required" : false,
459 "type" : "string",
460 "format" : "uuid"
461 } ],
462 "responses" : {
463 "200" : {
464 "description" : "successful operation; Latest version of specified policy matching specified policy type will be returned.",
465 "headers" : {
466 "X-MinorVersion" : {
467 "type" : "string",
468 "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
469 },
470 "X-PatchVersion" : {
471 "type" : "string",
472 "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
473 },
474 "X-LatestVersion" : {
475 "type" : "string",
476 "description" : "Used only to communicate an API's latest version"
477 },
478 "X-ONAP-RequestID" : {
479 "type" : "string",
480 "format" : "uuid",
481 "description" : "Used to track REST transactions for logging purpose"
482 }
483 },
484 "schema" : {
485 "$ref" : "#/definitions/ToscaServiceTemplate"
486 }
487 },
488 "401" : {
489 "description" : "Authentication Error"
490 },
491 "403" : {
492 "description" : "Authorization Error"
493 },
494 "404" : {
495 "description" : "Resource Not Found"
496 },
497 "500" : {
498 "description" : "Internal Server Error"
499 }
500 },
501 "security" : [ {
502 "basicAuth" : [ ]
503 } ],
504 "x-interface info" : {
505 "api-version" : "1.0.0",
506 "last-mod-release" : "Dublin"
507 }
508 }
Chenfei Gao7984ada2020-03-17 22:34:15 -0400509 },
Chenfei Gao9c119042019-10-10 15:24:11 -0400510 "/policy/api/v1/policies" : {
511 "post" : {
512 "tags" : [ "Policy" ],
513 "summary" : "Create one or more new policies",
514 "description" : "Create one or more new policies. Client should provide TOSCA body of the new policies",
515 "operationId" : "createPolicies",
516 "consumes" : [ "application/json", "application/yaml" ],
517 "produces" : [ "application/json", "application/yaml" ],
518 "parameters" : [ {
519 "name" : "X-ONAP-RequestID",
520 "in" : "header",
521 "description" : "RequestID for http transaction",
522 "required" : false,
523 "type" : "string",
524 "format" : "uuid"
525 }, {
526 "in" : "body",
527 "name" : "body",
528 "description" : "Entity body of policies",
529 "required" : true,
530 "type" : "ToscaServiceTemplate",
531 "schema" : {
532 "$ref" : "#/definitions/ToscaServiceTemplate"
533 }
534 } ],
535 "responses" : {
536 "200" : {
537 "description" : "successful operation; Newly created policies will be returned.",
538 "headers" : {
539 "X-MinorVersion" : {
540 "type" : "string",
541 "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
542 },
543 "X-PatchVersion" : {
544 "type" : "string",
545 "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request"
546 },
547 "X-LatestVersion" : {
548 "type" : "string",
549 "description" : "Used only to communicate an API's latest version"
550 },
551 "X-ONAP-RequestID" : {
552 "type" : "string",
553 "format" : "uuid",
554 "description" : "Used to track REST transactions for logging purpose"
555 }
556 },
557 "schema" : {
558 "$ref" : "#/definitions/ToscaServiceTemplate"
559 }
560 },
561 "400" : {
562 "description" : "Invalid Body"
563 },
564 "401" : {
565 "description" : "Authentication Error"
566 },
567 "403" : {
568 "description" : "Authorization Error"
569 },
570 "404" : {
571 "description" : "Resource Not Found"
572 },
Chenfei Gao6d69ff92020-01-13 13:20:34 -0500573 "406" : {
574 "description" : "Not Acceptable Version"
575 },
Chenfei Gao9c119042019-10-10 15:24:11 -0400576 "500" : {
577 "description" : "Internal Server Error"
578 }
579 },
580 "security" : [ {
581 "basicAuth" : [ ]
582 } ],
583 "x-interface info" : {
584 "api-version" : "1.0.0",
585 "last-mod-release" : "Frankfurt"
586 }
587 }
Chenfei Gao55e1f552019-05-21 13:32:30 -0400588 }
Chenfei Gao9c119042019-10-10 15:24:11 -0400589 },
Chenfei Gao55e1f552019-05-21 13:32:30 -0400590 "securityDefinitions" : {
591 "basicAuth" : {
592 "description" : "",
593 "type" : "basic"
594 }
595 },
596 "definitions" : {
597 "ToscaConstraint" : {
598 "type" : "object",
599 "properties" : {
600 "valid_values" : {
601 "type" : "array",
602 "items" : {
603 "type" : "string"
604 }
605 },
606 "equal" : {
607 "type" : "string"
608 },
609 "greater_than" : {
610 "type" : "string"
611 },
612 "greater_or_equal" : {
613 "type" : "string"
614 },
615 "less_than" : {
616 "type" : "string"
617 },
618 "less_or_equal" : {
619 "type" : "string"
620 }
621 }
622 },
623 "ToscaDataType" : {
624 "type" : "object",
625 "properties" : {
626 "name" : {
627 "type" : "string"
628 },
629 "version" : {
630 "type" : "string"
631 },
632 "derived_from" : {
633 "type" : "string"
634 },
635 "metadata" : {
636 "type" : "object",
637 "additionalProperties" : {
638 "type" : "string"
639 }
640 },
641 "description" : {
642 "type" : "string"
643 },
644 "constraints" : {
645 "type" : "array",
646 "items" : {
647 "$ref" : "#/definitions/ToscaConstraint"
648 }
649 },
650 "properties" : {
651 "type" : "object",
652 "additionalProperties" : {
653 "$ref" : "#/definitions/ToscaProperty"
654 }
655 }
656 }
657 },
658 "ToscaEntrySchema" : {
659 "type" : "object",
660 "properties" : {
661 "name" : {
662 "type" : "string"
663 },
664 "type" : {
665 "type" : "string"
666 },
667 "typeVersion" : {
668 "type" : "string"
669 },
670 "description" : {
671 "type" : "string"
672 },
673 "constraints" : {
674 "type" : "array",
675 "items" : {
676 "$ref" : "#/definitions/ToscaConstraint"
677 }
678 }
679 }
680 },
681 "ToscaPolicyType" : {
682 "type" : "object",
683 "properties" : {
684 "name" : {
685 "type" : "string"
686 },
687 "version" : {
688 "type" : "string"
689 },
690 "derived_from" : {
691 "type" : "string"
692 },
693 "metadata" : {
694 "type" : "object",
695 "additionalProperties" : {
696 "type" : "string"
697 }
698 },
699 "description" : {
700 "type" : "string"
701 },
702 "properties" : {
703 "type" : "object",
704 "additionalProperties" : {
705 "$ref" : "#/definitions/ToscaProperty"
706 }
707 }
708 }
709 },
710 "ToscaPolicyTypeIdentifier" : {
711 "type" : "object",
712 "properties" : {
713 "name" : {
714 "type" : "string"
715 },
716 "version" : {
717 "type" : "string"
718 }
719 }
720 },
721 "ToscaProperty" : {
722 "type" : "object",
723 "properties" : {
724 "name" : {
725 "type" : "string"
726 },
727 "type" : {
728 "type" : "string"
729 },
730 "typeVersion" : {
731 "type" : "string"
732 },
733 "description" : {
734 "type" : "string"
735 },
736 "default" : {
737 "type" : "string"
738 },
739 "required" : {
740 "type" : "boolean"
741 },
742 "status" : {
743 "type" : "string",
744 "enum" : [ "SUPPORTED", "UNSUPPORTED", "EXPERIMENTAL", "DEPRECATED" ]
745 },
746 "constraints" : {
747 "type" : "array",
748 "items" : {
749 "$ref" : "#/definitions/ToscaConstraint"
750 }
751 },
752 "entry_schema" : {
753 "$ref" : "#/definitions/ToscaEntrySchema"
754 }
755 }
756 },
757 "ToscaServiceTemplate" : {
758 "type" : "object",
759 "properties" : {
760 "name" : {
761 "type" : "string"
762 },
763 "version" : {
764 "type" : "string"
765 },
766 "derived_from" : {
767 "type" : "string"
768 },
769 "metadata" : {
770 "type" : "object",
771 "additionalProperties" : {
772 "type" : "string"
773 }
774 },
775 "description" : {
776 "type" : "string"
777 },
778 "tosca_definitions_version" : {
779 "type" : "string"
780 },
781 "topology_template" : {
782 "$ref" : "#/definitions/ToscaTopologyTemplate"
783 },
784 "policy_types" : {
785 "type" : "array",
786 "items" : {
787 "type" : "object",
788 "additionalProperties" : {
789 "$ref" : "#/definitions/ToscaPolicyType"
790 }
791 }
792 },
793 "data_types" : {
794 "type" : "array",
795 "items" : {
796 "type" : "object",
797 "additionalProperties" : {
798 "$ref" : "#/definitions/ToscaDataType"
799 }
800 }
801 }
802 }
803 },
804 "ToscaTopologyTemplate" : {
805 "type" : "object",
806 "properties" : {
807 "description" : {
808 "type" : "string"
809 },
810 "policies" : {
811 "type" : "array",
812 "items" : {
813 "type" : "object",
814 "additionalProperties" : {
815 "$ref" : "#/definitions/ToscaPolicy"
816 }
817 }
818 }
819 }
820 }
821 }
822}