Merge "upgrade drools to 7.32.0."
[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/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/deployed" : {
511       "get" : {
512         "tags" : [ "Policy" ],
513         "summary" : "Retrieve deployed versions of a particular policy in pdp groups",
514         "description" : "Returns deployed versions of specified policy in pdp groups",
515         "operationId" : "getDeployedVersionsOfPolicy",
516         "produces" : [ "application/json", "application/yaml" ],
517         "parameters" : [ {
518           "name" : "policyTypeId",
519           "in" : "path",
520           "description" : "ID of policy type",
521           "required" : true,
522           "type" : "string"
523         }, {
524           "name" : "policyTypeVersion",
525           "in" : "path",
526           "description" : "Version of policy type",
527           "required" : true,
528           "type" : "string"
529         }, {
530           "name" : "policyId",
531           "in" : "path",
532           "description" : "ID of policy",
533           "required" : true,
534           "type" : "string"
535         }, {
536           "name" : "X-ONAP-RequestID",
537           "in" : "header",
538           "description" : "RequestID for http transaction",
539           "required" : false,
540           "type" : "string",
541           "format" : "uuid"
542         } ],
543         "responses" : {
544           "200" : {
545             "description" : "successful operation; Deployed versions of specified policy matching specified policy type will be returned.",
546             "headers" : {
547               "X-MinorVersion" : {
548                 "type" : "string",
549                 "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
550               },
551               "X-PatchVersion" : {
552                 "type" : "string",
553                 "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"
554               },
555               "X-LatestVersion" : {
556                 "type" : "string",
557                 "description" : "Used only to communicate an API's latest version"
558               },
559               "X-ONAP-RequestID" : {
560                 "type" : "string",
561                 "format" : "uuid",
562                 "description" : "Used to track REST transactions for logging purpose"
563               }
564             },
565             "schema" : {
566               "type" : "array",
567               "items" : {
568                 "$ref" : "#/definitions/ToscaPolicy"
569               }
570             }
571           },
572           "401" : {
573             "description" : "Authentication Error"
574           },
575           "403" : {
576             "description" : "Authorization Error"
577           },
578           "404" : {
579             "description" : "Resource Not Found"
580           },
581           "500" : {
582             "description" : "Internal Server Error"
583           }
584         },
585         "security" : [ {
586           "basicAuth" : [ ]
587         } ],
588         "x-interface info" : {
589           "api-version" : "1.0.0",
590           "last-mod-release" : "Dublin"
591         }
592       }
593     },
594     "/policy/api/v1/policies" : {
595       "post" : {
596         "tags" : [ "Policy" ],
597         "summary" : "Create one or more new policies",
598         "description" : "Create one or more new policies. Client should provide TOSCA body of the new policies",
599         "operationId" : "createPolicies",
600         "consumes" : [ "application/json", "application/yaml" ],
601         "produces" : [ "application/json", "application/yaml" ],
602         "parameters" : [ {
603           "name" : "X-ONAP-RequestID",
604           "in" : "header",
605           "description" : "RequestID for http transaction",
606           "required" : false,
607           "type" : "string",
608           "format" : "uuid"
609         }, {
610           "in" : "body",
611           "name" : "body",
612           "description" : "Entity body of policies",
613           "required" : true,
614           "type" : "ToscaServiceTemplate",
615           "schema" : {
616             "$ref" : "#/definitions/ToscaServiceTemplate"
617           }
618         } ],
619         "responses" : {
620           "200" : {
621             "description" : "successful operation; Newly created policies will be returned.",
622             "headers" : {
623               "X-MinorVersion" : {
624                 "type" : "string",
625                 "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client"
626               },
627               "X-PatchVersion" : {
628                 "type" : "string",
629                 "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"
630               },
631               "X-LatestVersion" : {
632                 "type" : "string",
633                 "description" : "Used only to communicate an API's latest version"
634               },
635               "X-ONAP-RequestID" : {
636                 "type" : "string",
637                 "format" : "uuid",
638                 "description" : "Used to track REST transactions for logging purpose"
639               }
640             },
641             "schema" : {
642               "$ref" : "#/definitions/ToscaServiceTemplate"
643             }
644           },
645           "400" : {
646             "description" : "Invalid Body"
647           },
648           "401" : {
649             "description" : "Authentication Error"
650           },
651           "403" : {
652             "description" : "Authorization Error"
653           },
654           "404" : {
655             "description" : "Resource Not Found"
656           },
657           "406" : {
658             "description" : "Not Acceptable Version"
659           },
660           "500" : {
661             "description" : "Internal Server Error"
662           }
663         },
664         "security" : [ {
665           "basicAuth" : [ ]
666         } ],
667         "x-interface info" : {
668           "api-version" : "1.0.0",
669           "last-mod-release" : "Frankfurt"
670         }
671       }
672     }
673   },
674   "securityDefinitions" : {
675     "basicAuth" : {
676       "description" : "",
677       "type" : "basic"
678     }
679   },
680   "definitions" : {
681     "ToscaConstraint" : {
682       "type" : "object",
683       "properties" : {
684         "valid_values" : {
685           "type" : "array",
686           "items" : {
687             "type" : "string"
688           }
689         },
690         "equal" : {
691           "type" : "string"
692         },
693         "greater_than" : {
694           "type" : "string"
695         },
696         "greater_or_equal" : {
697           "type" : "string"
698         },
699         "less_than" : {
700           "type" : "string"
701         },
702         "less_or_equal" : {
703           "type" : "string"
704         }
705       }
706     },
707     "ToscaDataType" : {
708       "type" : "object",
709       "properties" : {
710         "name" : {
711           "type" : "string"
712         },
713         "version" : {
714           "type" : "string"
715         },
716         "derived_from" : {
717           "type" : "string"
718         },
719         "metadata" : {
720           "type" : "object",
721           "additionalProperties" : {
722             "type" : "string"
723           }
724         },
725         "description" : {
726           "type" : "string"
727         },
728         "constraints" : {
729           "type" : "array",
730           "items" : {
731             "$ref" : "#/definitions/ToscaConstraint"
732           }
733         },
734         "properties" : {
735           "type" : "object",
736           "additionalProperties" : {
737             "$ref" : "#/definitions/ToscaProperty"
738           }
739         }
740       }
741     },
742     "ToscaEntrySchema" : {
743       "type" : "object",
744       "properties" : {
745         "name" : {
746           "type" : "string"
747         },
748         "type" : {
749           "type" : "string"
750         },
751         "typeVersion" : {
752           "type" : "string"
753         },
754         "description" : {
755           "type" : "string"
756         },
757         "constraints" : {
758           "type" : "array",
759           "items" : {
760             "$ref" : "#/definitions/ToscaConstraint"
761           }
762         }
763       }
764     },
765     "ToscaPolicyType" : {
766       "type" : "object",
767       "properties" : {
768         "name" : {
769           "type" : "string"
770         },
771         "version" : {
772           "type" : "string"
773         },
774         "derived_from" : {
775           "type" : "string"
776         },
777         "metadata" : {
778           "type" : "object",
779           "additionalProperties" : {
780             "type" : "string"
781           }
782         },
783         "description" : {
784           "type" : "string"
785         },
786         "properties" : {
787           "type" : "object",
788           "additionalProperties" : {
789             "$ref" : "#/definitions/ToscaProperty"
790           }
791         }
792       }
793     },
794     "ToscaPolicyTypeIdentifier" : {
795       "type" : "object",
796       "properties" : {
797         "name" : {
798           "type" : "string"
799         },
800         "version" : {
801           "type" : "string"
802         }
803       }
804     },
805     "ToscaProperty" : {
806       "type" : "object",
807       "properties" : {
808         "name" : {
809           "type" : "string"
810         },
811         "type" : {
812           "type" : "string"
813         },
814         "typeVersion" : {
815           "type" : "string"
816         },
817         "description" : {
818           "type" : "string"
819         },
820         "default" : {
821           "type" : "string"
822         },
823         "required" : {
824           "type" : "boolean"
825         },
826         "status" : {
827           "type" : "string",
828           "enum" : [ "SUPPORTED", "UNSUPPORTED", "EXPERIMENTAL", "DEPRECATED" ]
829         },
830         "constraints" : {
831           "type" : "array",
832           "items" : {
833             "$ref" : "#/definitions/ToscaConstraint"
834           }
835         },
836         "entry_schema" : {
837           "$ref" : "#/definitions/ToscaEntrySchema"
838         }
839       }
840     },
841     "ToscaServiceTemplate" : {
842       "type" : "object",
843       "properties" : {
844         "name" : {
845           "type" : "string"
846         },
847         "version" : {
848           "type" : "string"
849         },
850         "derived_from" : {
851           "type" : "string"
852         },
853         "metadata" : {
854           "type" : "object",
855           "additionalProperties" : {
856             "type" : "string"
857           }
858         },
859         "description" : {
860           "type" : "string"
861         },
862         "tosca_definitions_version" : {
863           "type" : "string"
864         },
865         "topology_template" : {
866           "$ref" : "#/definitions/ToscaTopologyTemplate"
867         },
868         "policy_types" : {
869           "type" : "array",
870           "items" : {
871             "type" : "object",
872             "additionalProperties" : {
873               "$ref" : "#/definitions/ToscaPolicyType"
874             }
875           }
876         },
877         "data_types" : {
878           "type" : "array",
879           "items" : {
880             "type" : "object",
881             "additionalProperties" : {
882               "$ref" : "#/definitions/ToscaDataType"
883             }
884           }
885         }
886       }
887     },
888     "ToscaTopologyTemplate" : {
889       "type" : "object",
890       "properties" : {
891         "description" : {
892           "type" : "string"
893         },
894         "policies" : {
895           "type" : "array",
896           "items" : {
897             "type" : "object",
898             "additionalProperties" : {
899               "$ref" : "#/definitions/ToscaPolicy"
900             }
901           }
902         }
903       }
904     }
905   }
906 }