767357515f2b766143c1675f6fb08d1f401a9897
[policy/parent.git] / docs / api / swagger / policy-api.json
1 {
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",
15         "produces" : [ "application/json", "application/yaml" ],
16         "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",
88         "consumes" : [ "application/json", "application/yaml" ],
89         "produces" : [ "application/json", "application/yaml" ],
90         "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           },
157           "406" : {
158             "description" : "Not Acceptable Version"
159           },
160           "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",
179         "produces" : [ "application/json", "application/yaml" ],
180         "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",
260         "produces" : [ "application/json", "application/yaml" ],
261         "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",
345         "produces" : [ "application/json", "application/yaml" ],
346         "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",
435         "produces" : [ "application/json", "application/yaml" ],
436         "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       }
509     }, 
510     "/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           },
573           "406" : {
574             "description" : "Not Acceptable Version"
575           },
576           "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       }
588     }
589   },
590   "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 }