Merge commit '19031b24b523c872c1ac367821dc60c950a09755' as 'modules/libjuju'
[osm/N2VC.git] / modules / libjuju / juju / client / schemas-juju-2.2-rc1.json
1 [
2   {
3     "Name": "Action",
4     "Version": 2,
5     "Schema": {
6       "type": "object",
7       "properties": {
8         "Actions": {
9           "type": "object",
10           "properties": {
11             "Params": {
12               "$ref": "#/definitions/Entities"
13             },
14             "Result": {
15               "$ref": "#/definitions/ActionResults"
16             }
17           }
18         },
19         "ApplicationsCharmsActions": {
20           "type": "object",
21           "properties": {
22             "Params": {
23               "$ref": "#/definitions/Entities"
24             },
25             "Result": {
26               "$ref": "#/definitions/ApplicationsCharmActionsResults"
27             }
28           }
29         },
30         "Cancel": {
31           "type": "object",
32           "properties": {
33             "Params": {
34               "$ref": "#/definitions/Entities"
35             },
36             "Result": {
37               "$ref": "#/definitions/ActionResults"
38             }
39           }
40         },
41         "Enqueue": {
42           "type": "object",
43           "properties": {
44             "Params": {
45               "$ref": "#/definitions/Actions"
46             },
47             "Result": {
48               "$ref": "#/definitions/ActionResults"
49             }
50           }
51         },
52         "FindActionTagsByPrefix": {
53           "type": "object",
54           "properties": {
55             "Params": {
56               "$ref": "#/definitions/FindTags"
57             },
58             "Result": {
59               "$ref": "#/definitions/FindTagsResults"
60             }
61           }
62         },
63         "FindActionsByNames": {
64           "type": "object",
65           "properties": {
66             "Params": {
67               "$ref": "#/definitions/FindActionsByNames"
68             },
69             "Result": {
70               "$ref": "#/definitions/ActionsByNames"
71             }
72           }
73         },
74         "ListAll": {
75           "type": "object",
76           "properties": {
77             "Params": {
78               "$ref": "#/definitions/Entities"
79             },
80             "Result": {
81               "$ref": "#/definitions/ActionsByReceivers"
82             }
83           }
84         },
85         "ListCompleted": {
86           "type": "object",
87           "properties": {
88             "Params": {
89               "$ref": "#/definitions/Entities"
90             },
91             "Result": {
92               "$ref": "#/definitions/ActionsByReceivers"
93             }
94           }
95         },
96         "ListPending": {
97           "type": "object",
98           "properties": {
99             "Params": {
100               "$ref": "#/definitions/Entities"
101             },
102             "Result": {
103               "$ref": "#/definitions/ActionsByReceivers"
104             }
105           }
106         },
107         "ListRunning": {
108           "type": "object",
109           "properties": {
110             "Params": {
111               "$ref": "#/definitions/Entities"
112             },
113             "Result": {
114               "$ref": "#/definitions/ActionsByReceivers"
115             }
116           }
117         },
118         "Run": {
119           "type": "object",
120           "properties": {
121             "Params": {
122               "$ref": "#/definitions/RunParams"
123             },
124             "Result": {
125               "$ref": "#/definitions/ActionResults"
126             }
127           }
128         },
129         "RunOnAllMachines": {
130           "type": "object",
131           "properties": {
132             "Params": {
133               "$ref": "#/definitions/RunParams"
134             },
135             "Result": {
136               "$ref": "#/definitions/ActionResults"
137             }
138           }
139         }
140       },
141       "definitions": {
142         "Action": {
143           "type": "object",
144           "properties": {
145             "name": {
146               "type": "string"
147             },
148             "parameters": {
149               "type": "object",
150               "patternProperties": {
151                 ".*": {
152                   "type": "object",
153                   "additionalProperties": true
154                 }
155               }
156             },
157             "receiver": {
158               "type": "string"
159             },
160             "tag": {
161               "type": "string"
162             }
163           },
164           "additionalProperties": false,
165           "required": [
166             "tag",
167             "receiver",
168             "name"
169           ]
170         },
171         "ActionResult": {
172           "type": "object",
173           "properties": {
174             "action": {
175               "$ref": "#/definitions/Action"
176             },
177             "completed": {
178               "type": "string",
179               "format": "date-time"
180             },
181             "enqueued": {
182               "type": "string",
183               "format": "date-time"
184             },
185             "error": {
186               "$ref": "#/definitions/Error"
187             },
188             "message": {
189               "type": "string"
190             },
191             "output": {
192               "type": "object",
193               "patternProperties": {
194                 ".*": {
195                   "type": "object",
196                   "additionalProperties": true
197                 }
198               }
199             },
200             "started": {
201               "type": "string",
202               "format": "date-time"
203             },
204             "status": {
205               "type": "string"
206             }
207           },
208           "additionalProperties": false
209         },
210         "ActionResults": {
211           "type": "object",
212           "properties": {
213             "results": {
214               "type": "array",
215               "items": {
216                 "$ref": "#/definitions/ActionResult"
217               }
218             }
219           },
220           "additionalProperties": false
221         },
222         "ActionSpec": {
223           "type": "object",
224           "properties": {
225             "description": {
226               "type": "string"
227             },
228             "params": {
229               "type": "object",
230               "patternProperties": {
231                 ".*": {
232                   "type": "object",
233                   "additionalProperties": true
234                 }
235               }
236             }
237           },
238           "additionalProperties": false,
239           "required": [
240             "description",
241             "params"
242           ]
243         },
244         "Actions": {
245           "type": "object",
246           "properties": {
247             "actions": {
248               "type": "array",
249               "items": {
250                 "$ref": "#/definitions/Action"
251               }
252             }
253           },
254           "additionalProperties": false
255         },
256         "ActionsByName": {
257           "type": "object",
258           "properties": {
259             "actions": {
260               "type": "array",
261               "items": {
262                 "$ref": "#/definitions/ActionResult"
263               }
264             },
265             "error": {
266               "$ref": "#/definitions/Error"
267             },
268             "name": {
269               "type": "string"
270             }
271           },
272           "additionalProperties": false
273         },
274         "ActionsByNames": {
275           "type": "object",
276           "properties": {
277             "actions": {
278               "type": "array",
279               "items": {
280                 "$ref": "#/definitions/ActionsByName"
281               }
282             }
283           },
284           "additionalProperties": false
285         },
286         "ActionsByReceiver": {
287           "type": "object",
288           "properties": {
289             "actions": {
290               "type": "array",
291               "items": {
292                 "$ref": "#/definitions/ActionResult"
293               }
294             },
295             "error": {
296               "$ref": "#/definitions/Error"
297             },
298             "receiver": {
299               "type": "string"
300             }
301           },
302           "additionalProperties": false
303         },
304         "ActionsByReceivers": {
305           "type": "object",
306           "properties": {
307             "actions": {
308               "type": "array",
309               "items": {
310                 "$ref": "#/definitions/ActionsByReceiver"
311               }
312             }
313           },
314           "additionalProperties": false
315         },
316         "ApplicationCharmActionsResult": {
317           "type": "object",
318           "properties": {
319             "actions": {
320               "type": "object",
321               "patternProperties": {
322                 ".*": {
323                   "$ref": "#/definitions/ActionSpec"
324                 }
325               }
326             },
327             "application-tag": {
328               "type": "string"
329             },
330             "error": {
331               "$ref": "#/definitions/Error"
332             }
333           },
334           "additionalProperties": false
335         },
336         "ApplicationsCharmActionsResults": {
337           "type": "object",
338           "properties": {
339             "results": {
340               "type": "array",
341               "items": {
342                 "$ref": "#/definitions/ApplicationCharmActionsResult"
343               }
344             }
345           },
346           "additionalProperties": false
347         },
348         "Entities": {
349           "type": "object",
350           "properties": {
351             "entities": {
352               "type": "array",
353               "items": {
354                 "$ref": "#/definitions/Entity"
355               }
356             }
357           },
358           "additionalProperties": false,
359           "required": [
360             "entities"
361           ]
362         },
363         "Entity": {
364           "type": "object",
365           "properties": {
366             "tag": {
367               "type": "string"
368             }
369           },
370           "additionalProperties": false,
371           "required": [
372             "tag"
373           ]
374         },
375         "Error": {
376           "type": "object",
377           "properties": {
378             "code": {
379               "type": "string"
380             },
381             "info": {
382               "$ref": "#/definitions/ErrorInfo"
383             },
384             "message": {
385               "type": "string"
386             }
387           },
388           "additionalProperties": false,
389           "required": [
390             "message",
391             "code"
392           ]
393         },
394         "ErrorInfo": {
395           "type": "object",
396           "properties": {
397             "macaroon": {
398               "$ref": "#/definitions/Macaroon"
399             },
400             "macaroon-path": {
401               "type": "string"
402             }
403           },
404           "additionalProperties": false
405         },
406         "FindActionsByNames": {
407           "type": "object",
408           "properties": {
409             "names": {
410               "type": "array",
411               "items": {
412                 "type": "string"
413               }
414             }
415           },
416           "additionalProperties": false
417         },
418         "FindTags": {
419           "type": "object",
420           "properties": {
421             "prefixes": {
422               "type": "array",
423               "items": {
424                 "type": "string"
425               }
426             }
427           },
428           "additionalProperties": false,
429           "required": [
430             "prefixes"
431           ]
432         },
433         "FindTagsResults": {
434           "type": "object",
435           "properties": {
436             "matches": {
437               "type": "object",
438               "patternProperties": {
439                 ".*": {
440                   "type": "array",
441                   "items": {
442                     "$ref": "#/definitions/Entity"
443                   }
444                 }
445               }
446             }
447           },
448           "additionalProperties": false,
449           "required": [
450             "matches"
451           ]
452         },
453         "Macaroon": {
454           "type": "object",
455           "additionalProperties": false
456         },
457         "RunParams": {
458           "type": "object",
459           "properties": {
460             "applications": {
461               "type": "array",
462               "items": {
463                 "type": "string"
464               }
465             },
466             "commands": {
467               "type": "string"
468             },
469             "machines": {
470               "type": "array",
471               "items": {
472                 "type": "string"
473               }
474             },
475             "timeout": {
476               "type": "integer"
477             },
478             "units": {
479               "type": "array",
480               "items": {
481                 "type": "string"
482               }
483             }
484           },
485           "additionalProperties": false,
486           "required": [
487             "commands",
488             "timeout"
489           ]
490         }
491       }
492     }
493   },
494   {
495     "Name": "Agent",
496     "Version": 2,
497     "Schema": {
498       "type": "object",
499       "properties": {
500         "ClearReboot": {
501           "type": "object",
502           "properties": {
503             "Params": {
504               "$ref": "#/definitions/Entities"
505             },
506             "Result": {
507               "$ref": "#/definitions/ErrorResults"
508             }
509           }
510         },
511         "CloudSpec": {
512           "type": "object",
513           "properties": {
514             "Params": {
515               "$ref": "#/definitions/Entities"
516             },
517             "Result": {
518               "$ref": "#/definitions/CloudSpecResults"
519             }
520           }
521         },
522         "ControllerConfig": {
523           "type": "object",
524           "properties": {
525             "Result": {
526               "$ref": "#/definitions/ControllerConfigResult"
527             }
528           }
529         },
530         "GetCloudSpec": {
531           "type": "object",
532           "properties": {
533             "Params": {
534               "$ref": "#/definitions/ModelTag"
535             },
536             "Result": {
537               "$ref": "#/definitions/CloudSpecResult"
538             }
539           }
540         },
541         "GetEntities": {
542           "type": "object",
543           "properties": {
544             "Params": {
545               "$ref": "#/definitions/Entities"
546             },
547             "Result": {
548               "$ref": "#/definitions/AgentGetEntitiesResults"
549             }
550           }
551         },
552         "IsMaster": {
553           "type": "object",
554           "properties": {
555             "Result": {
556               "$ref": "#/definitions/IsMasterResult"
557             }
558           }
559         },
560         "ModelConfig": {
561           "type": "object",
562           "properties": {
563             "Result": {
564               "$ref": "#/definitions/ModelConfigResult"
565             }
566           }
567         },
568         "SetPasswords": {
569           "type": "object",
570           "properties": {
571             "Params": {
572               "$ref": "#/definitions/EntityPasswords"
573             },
574             "Result": {
575               "$ref": "#/definitions/ErrorResults"
576             }
577           }
578         },
579         "StateServingInfo": {
580           "type": "object",
581           "properties": {
582             "Result": {
583               "$ref": "#/definitions/StateServingInfo"
584             }
585           }
586         },
587         "WatchCredentials": {
588           "type": "object",
589           "properties": {
590             "Params": {
591               "$ref": "#/definitions/Entities"
592             },
593             "Result": {
594               "$ref": "#/definitions/NotifyWatchResults"
595             }
596           }
597         },
598         "WatchForModelConfigChanges": {
599           "type": "object",
600           "properties": {
601             "Result": {
602               "$ref": "#/definitions/NotifyWatchResult"
603             }
604           }
605         }
606       },
607       "definitions": {
608         "AgentGetEntitiesResult": {
609           "type": "object",
610           "properties": {
611             "container-type": {
612               "type": "string"
613             },
614             "error": {
615               "$ref": "#/definitions/Error"
616             },
617             "jobs": {
618               "type": "array",
619               "items": {
620                 "type": "string"
621               }
622             },
623             "life": {
624               "type": "string"
625             }
626           },
627           "additionalProperties": false,
628           "required": [
629             "life",
630             "jobs",
631             "container-type"
632           ]
633         },
634         "AgentGetEntitiesResults": {
635           "type": "object",
636           "properties": {
637             "entities": {
638               "type": "array",
639               "items": {
640                 "$ref": "#/definitions/AgentGetEntitiesResult"
641               }
642             }
643           },
644           "additionalProperties": false,
645           "required": [
646             "entities"
647           ]
648         },
649         "CloudCredential": {
650           "type": "object",
651           "properties": {
652             "attrs": {
653               "type": "object",
654               "patternProperties": {
655                 ".*": {
656                   "type": "string"
657                 }
658               }
659             },
660             "auth-type": {
661               "type": "string"
662             },
663             "redacted": {
664               "type": "array",
665               "items": {
666                 "type": "string"
667               }
668             }
669           },
670           "additionalProperties": false,
671           "required": [
672             "auth-type"
673           ]
674         },
675         "CloudSpec": {
676           "type": "object",
677           "properties": {
678             "credential": {
679               "$ref": "#/definitions/CloudCredential"
680             },
681             "endpoint": {
682               "type": "string"
683             },
684             "identity-endpoint": {
685               "type": "string"
686             },
687             "name": {
688               "type": "string"
689             },
690             "region": {
691               "type": "string"
692             },
693             "storage-endpoint": {
694               "type": "string"
695             },
696             "type": {
697               "type": "string"
698             }
699           },
700           "additionalProperties": false,
701           "required": [
702             "type",
703             "name"
704           ]
705         },
706         "CloudSpecResult": {
707           "type": "object",
708           "properties": {
709             "error": {
710               "$ref": "#/definitions/Error"
711             },
712             "result": {
713               "$ref": "#/definitions/CloudSpec"
714             }
715           },
716           "additionalProperties": false
717         },
718         "CloudSpecResults": {
719           "type": "object",
720           "properties": {
721             "results": {
722               "type": "array",
723               "items": {
724                 "$ref": "#/definitions/CloudSpecResult"
725               }
726             }
727           },
728           "additionalProperties": false
729         },
730         "ControllerConfigResult": {
731           "type": "object",
732           "properties": {
733             "config": {
734               "type": "object",
735               "patternProperties": {
736                 ".*": {
737                   "type": "object",
738                   "additionalProperties": true
739                 }
740               }
741             }
742           },
743           "additionalProperties": false,
744           "required": [
745             "config"
746           ]
747         },
748         "Entities": {
749           "type": "object",
750           "properties": {
751             "entities": {
752               "type": "array",
753               "items": {
754                 "$ref": "#/definitions/Entity"
755               }
756             }
757           },
758           "additionalProperties": false,
759           "required": [
760             "entities"
761           ]
762         },
763         "Entity": {
764           "type": "object",
765           "properties": {
766             "tag": {
767               "type": "string"
768             }
769           },
770           "additionalProperties": false,
771           "required": [
772             "tag"
773           ]
774         },
775         "EntityPassword": {
776           "type": "object",
777           "properties": {
778             "password": {
779               "type": "string"
780             },
781             "tag": {
782               "type": "string"
783             }
784           },
785           "additionalProperties": false,
786           "required": [
787             "tag",
788             "password"
789           ]
790         },
791         "EntityPasswords": {
792           "type": "object",
793           "properties": {
794             "changes": {
795               "type": "array",
796               "items": {
797                 "$ref": "#/definitions/EntityPassword"
798               }
799             }
800           },
801           "additionalProperties": false,
802           "required": [
803             "changes"
804           ]
805         },
806         "Error": {
807           "type": "object",
808           "properties": {
809             "code": {
810               "type": "string"
811             },
812             "info": {
813               "$ref": "#/definitions/ErrorInfo"
814             },
815             "message": {
816               "type": "string"
817             }
818           },
819           "additionalProperties": false,
820           "required": [
821             "message",
822             "code"
823           ]
824         },
825         "ErrorInfo": {
826           "type": "object",
827           "properties": {
828             "macaroon": {
829               "$ref": "#/definitions/Macaroon"
830             },
831             "macaroon-path": {
832               "type": "string"
833             }
834           },
835           "additionalProperties": false
836         },
837         "ErrorResult": {
838           "type": "object",
839           "properties": {
840             "error": {
841               "$ref": "#/definitions/Error"
842             }
843           },
844           "additionalProperties": false
845         },
846         "ErrorResults": {
847           "type": "object",
848           "properties": {
849             "results": {
850               "type": "array",
851               "items": {
852                 "$ref": "#/definitions/ErrorResult"
853               }
854             }
855           },
856           "additionalProperties": false,
857           "required": [
858             "results"
859           ]
860         },
861         "IsMasterResult": {
862           "type": "object",
863           "properties": {
864             "master": {
865               "type": "boolean"
866             }
867           },
868           "additionalProperties": false,
869           "required": [
870             "master"
871           ]
872         },
873         "Macaroon": {
874           "type": "object",
875           "additionalProperties": false
876         },
877         "ModelConfigResult": {
878           "type": "object",
879           "properties": {
880             "config": {
881               "type": "object",
882               "patternProperties": {
883                 ".*": {
884                   "type": "object",
885                   "additionalProperties": true
886                 }
887               }
888             }
889           },
890           "additionalProperties": false,
891           "required": [
892             "config"
893           ]
894         },
895         "ModelTag": {
896           "type": "object",
897           "additionalProperties": false
898         },
899         "NotifyWatchResult": {
900           "type": "object",
901           "properties": {
902             "NotifyWatcherId": {
903               "type": "string"
904             },
905             "error": {
906               "$ref": "#/definitions/Error"
907             }
908           },
909           "additionalProperties": false,
910           "required": [
911             "NotifyWatcherId"
912           ]
913         },
914         "NotifyWatchResults": {
915           "type": "object",
916           "properties": {
917             "results": {
918               "type": "array",
919               "items": {
920                 "$ref": "#/definitions/NotifyWatchResult"
921               }
922             }
923           },
924           "additionalProperties": false,
925           "required": [
926             "results"
927           ]
928         },
929         "StateServingInfo": {
930           "type": "object",
931           "properties": {
932             "api-port": {
933               "type": "integer"
934             },
935             "ca-private-key": {
936               "type": "string"
937             },
938             "cert": {
939               "type": "string"
940             },
941             "private-key": {
942               "type": "string"
943             },
944             "shared-secret": {
945               "type": "string"
946             },
947             "state-port": {
948               "type": "integer"
949             },
950             "system-identity": {
951               "type": "string"
952             }
953           },
954           "additionalProperties": false,
955           "required": [
956             "api-port",
957             "state-port",
958             "cert",
959             "private-key",
960             "ca-private-key",
961             "shared-secret",
962             "system-identity"
963           ]
964         }
965       }
966     }
967   },
968   {
969     "Name": "AgentTools",
970     "Version": 1,
971     "Schema": {
972       "type": "object",
973       "properties": {
974         "UpdateToolsAvailable": {
975           "type": "object"
976         }
977       }
978     }
979   },
980   {
981     "Name": "AllModelWatcher",
982     "Version": 2,
983     "Schema": {
984       "type": "object",
985       "properties": {
986         "Next": {
987           "type": "object",
988           "properties": {
989             "Result": {
990               "$ref": "#/definitions/AllWatcherNextResults"
991             }
992           }
993         },
994         "Stop": {
995           "type": "object"
996         }
997       },
998       "definitions": {
999         "AllWatcherNextResults": {
1000           "type": "object",
1001           "properties": {
1002             "deltas": {
1003               "type": "array",
1004               "items": {
1005                 "$ref": "#/definitions/Delta"
1006               }
1007             }
1008           },
1009           "additionalProperties": false,
1010           "required": [
1011             "deltas"
1012           ]
1013         },
1014         "Delta": {
1015           "type": "object",
1016           "properties": {
1017             "entity": {
1018               "type": "object",
1019               "additionalProperties": true
1020             },
1021             "removed": {
1022               "type": "boolean"
1023             }
1024           },
1025           "additionalProperties": false,
1026           "required": [
1027             "removed",
1028             "entity"
1029           ]
1030         }
1031       }
1032     }
1033   },
1034   {
1035     "Name": "AllWatcher",
1036     "Version": 1,
1037     "Schema": {
1038       "type": "object",
1039       "properties": {
1040         "Next": {
1041           "type": "object",
1042           "properties": {
1043             "Result": {
1044               "$ref": "#/definitions/AllWatcherNextResults"
1045             }
1046           }
1047         },
1048         "Stop": {
1049           "type": "object"
1050         }
1051       },
1052       "definitions": {
1053         "AllWatcherNextResults": {
1054           "type": "object",
1055           "properties": {
1056             "deltas": {
1057               "type": "array",
1058               "items": {
1059                 "$ref": "#/definitions/Delta"
1060               }
1061             }
1062           },
1063           "additionalProperties": false,
1064           "required": [
1065             "deltas"
1066           ]
1067         },
1068         "Delta": {
1069           "type": "object",
1070           "properties": {
1071             "entity": {
1072               "type": "object",
1073               "additionalProperties": true
1074             },
1075             "removed": {
1076               "type": "boolean"
1077             }
1078           },
1079           "additionalProperties": false,
1080           "required": [
1081             "removed",
1082             "entity"
1083           ]
1084         }
1085       }
1086     }
1087   },
1088   {
1089     "Name": "Annotations",
1090     "Version": 2,
1091     "Schema": {
1092       "type": "object",
1093       "properties": {
1094         "Get": {
1095           "type": "object",
1096           "properties": {
1097             "Params": {
1098               "$ref": "#/definitions/Entities"
1099             },
1100             "Result": {
1101               "$ref": "#/definitions/AnnotationsGetResults"
1102             }
1103           }
1104         },
1105         "Set": {
1106           "type": "object",
1107           "properties": {
1108             "Params": {
1109               "$ref": "#/definitions/AnnotationsSet"
1110             },
1111             "Result": {
1112               "$ref": "#/definitions/ErrorResults"
1113             }
1114           }
1115         }
1116       },
1117       "definitions": {
1118         "AnnotationsGetResult": {
1119           "type": "object",
1120           "properties": {
1121             "annotations": {
1122               "type": "object",
1123               "patternProperties": {
1124                 ".*": {
1125                   "type": "string"
1126                 }
1127               }
1128             },
1129             "entity": {
1130               "type": "string"
1131             },
1132             "error": {
1133               "$ref": "#/definitions/ErrorResult"
1134             }
1135           },
1136           "additionalProperties": false,
1137           "required": [
1138             "entity",
1139             "annotations"
1140           ]
1141         },
1142         "AnnotationsGetResults": {
1143           "type": "object",
1144           "properties": {
1145             "results": {
1146               "type": "array",
1147               "items": {
1148                 "$ref": "#/definitions/AnnotationsGetResult"
1149               }
1150             }
1151           },
1152           "additionalProperties": false,
1153           "required": [
1154             "results"
1155           ]
1156         },
1157         "AnnotationsSet": {
1158           "type": "object",
1159           "properties": {
1160             "annotations": {
1161               "type": "array",
1162               "items": {
1163                 "$ref": "#/definitions/EntityAnnotations"
1164               }
1165             }
1166           },
1167           "additionalProperties": false,
1168           "required": [
1169             "annotations"
1170           ]
1171         },
1172         "Entities": {
1173           "type": "object",
1174           "properties": {
1175             "entities": {
1176               "type": "array",
1177               "items": {
1178                 "$ref": "#/definitions/Entity"
1179               }
1180             }
1181           },
1182           "additionalProperties": false,
1183           "required": [
1184             "entities"
1185           ]
1186         },
1187         "Entity": {
1188           "type": "object",
1189           "properties": {
1190             "tag": {
1191               "type": "string"
1192             }
1193           },
1194           "additionalProperties": false,
1195           "required": [
1196             "tag"
1197           ]
1198         },
1199         "EntityAnnotations": {
1200           "type": "object",
1201           "properties": {
1202             "annotations": {
1203               "type": "object",
1204               "patternProperties": {
1205                 ".*": {
1206                   "type": "string"
1207                 }
1208               }
1209             },
1210             "entity": {
1211               "type": "string"
1212             }
1213           },
1214           "additionalProperties": false,
1215           "required": [
1216             "entity",
1217             "annotations"
1218           ]
1219         },
1220         "Error": {
1221           "type": "object",
1222           "properties": {
1223             "code": {
1224               "type": "string"
1225             },
1226             "info": {
1227               "$ref": "#/definitions/ErrorInfo"
1228             },
1229             "message": {
1230               "type": "string"
1231             }
1232           },
1233           "additionalProperties": false,
1234           "required": [
1235             "message",
1236             "code"
1237           ]
1238         },
1239         "ErrorInfo": {
1240           "type": "object",
1241           "properties": {
1242             "macaroon": {
1243               "$ref": "#/definitions/Macaroon"
1244             },
1245             "macaroon-path": {
1246               "type": "string"
1247             }
1248           },
1249           "additionalProperties": false
1250         },
1251         "ErrorResult": {
1252           "type": "object",
1253           "properties": {
1254             "error": {
1255               "$ref": "#/definitions/Error"
1256             }
1257           },
1258           "additionalProperties": false
1259         },
1260         "ErrorResults": {
1261           "type": "object",
1262           "properties": {
1263             "results": {
1264               "type": "array",
1265               "items": {
1266                 "$ref": "#/definitions/ErrorResult"
1267               }
1268             }
1269           },
1270           "additionalProperties": false,
1271           "required": [
1272             "results"
1273           ]
1274         },
1275         "Macaroon": {
1276           "type": "object",
1277           "additionalProperties": false
1278         }
1279       }
1280     }
1281   },
1282   {
1283     "Name": "Application",
1284     "Version": 4,
1285     "Schema": {
1286       "type": "object",
1287       "properties": {
1288         "AddRelation": {
1289           "type": "object",
1290           "properties": {
1291             "Params": {
1292               "$ref": "#/definitions/AddRelation"
1293             },
1294             "Result": {
1295               "$ref": "#/definitions/AddRelationResults"
1296             }
1297           }
1298         },
1299         "AddUnits": {
1300           "type": "object",
1301           "properties": {
1302             "Params": {
1303               "$ref": "#/definitions/AddApplicationUnits"
1304             },
1305             "Result": {
1306               "$ref": "#/definitions/AddApplicationUnitsResults"
1307             }
1308           }
1309         },
1310         "CharmRelations": {
1311           "type": "object",
1312           "properties": {
1313             "Params": {
1314               "$ref": "#/definitions/ApplicationCharmRelations"
1315             },
1316             "Result": {
1317               "$ref": "#/definitions/ApplicationCharmRelationsResults"
1318             }
1319           }
1320         },
1321         "Consume": {
1322           "type": "object",
1323           "properties": {
1324             "Params": {
1325               "$ref": "#/definitions/ConsumeApplicationArgs"
1326             },
1327             "Result": {
1328               "$ref": "#/definitions/ConsumeApplicationResults"
1329             }
1330           }
1331         },
1332         "Deploy": {
1333           "type": "object",
1334           "properties": {
1335             "Params": {
1336               "$ref": "#/definitions/ApplicationsDeploy"
1337             },
1338             "Result": {
1339               "$ref": "#/definitions/ErrorResults"
1340             }
1341           }
1342         },
1343         "Destroy": {
1344           "type": "object",
1345           "properties": {
1346             "Params": {
1347               "$ref": "#/definitions/ApplicationDestroy"
1348             }
1349           }
1350         },
1351         "DestroyApplication": {
1352           "type": "object",
1353           "properties": {
1354             "Params": {
1355               "$ref": "#/definitions/Entities"
1356             },
1357             "Result": {
1358               "$ref": "#/definitions/DestroyApplicationResults"
1359             }
1360           }
1361         },
1362         "DestroyRelation": {
1363           "type": "object",
1364           "properties": {
1365             "Params": {
1366               "$ref": "#/definitions/DestroyRelation"
1367             }
1368           }
1369         },
1370         "DestroyUnit": {
1371           "type": "object",
1372           "properties": {
1373             "Params": {
1374               "$ref": "#/definitions/Entities"
1375             },
1376             "Result": {
1377               "$ref": "#/definitions/DestroyUnitResults"
1378             }
1379           }
1380         },
1381         "DestroyUnits": {
1382           "type": "object",
1383           "properties": {
1384             "Params": {
1385               "$ref": "#/definitions/DestroyApplicationUnits"
1386             }
1387           }
1388         },
1389         "Expose": {
1390           "type": "object",
1391           "properties": {
1392             "Params": {
1393               "$ref": "#/definitions/ApplicationExpose"
1394             }
1395           }
1396         },
1397         "Get": {
1398           "type": "object",
1399           "properties": {
1400             "Params": {
1401               "$ref": "#/definitions/ApplicationGet"
1402             },
1403             "Result": {
1404               "$ref": "#/definitions/ApplicationGetResults"
1405             }
1406           }
1407         },
1408         "GetCharmURL": {
1409           "type": "object",
1410           "properties": {
1411             "Params": {
1412               "$ref": "#/definitions/ApplicationGet"
1413             },
1414             "Result": {
1415               "$ref": "#/definitions/StringResult"
1416             }
1417           }
1418         },
1419         "GetConstraints": {
1420           "type": "object",
1421           "properties": {
1422             "Params": {
1423               "$ref": "#/definitions/GetApplicationConstraints"
1424             },
1425             "Result": {
1426               "$ref": "#/definitions/GetConstraintsResults"
1427             }
1428           }
1429         },
1430         "RemoteApplicationInfo": {
1431           "type": "object",
1432           "properties": {
1433             "Params": {
1434               "$ref": "#/definitions/ApplicationURLs"
1435             },
1436             "Result": {
1437               "$ref": "#/definitions/RemoteApplicationInfoResults"
1438             }
1439           }
1440         },
1441         "Set": {
1442           "type": "object",
1443           "properties": {
1444             "Params": {
1445               "$ref": "#/definitions/ApplicationSet"
1446             }
1447           }
1448         },
1449         "SetCharm": {
1450           "type": "object",
1451           "properties": {
1452             "Params": {
1453               "$ref": "#/definitions/ApplicationSetCharm"
1454             }
1455           }
1456         },
1457         "SetConstraints": {
1458           "type": "object",
1459           "properties": {
1460             "Params": {
1461               "$ref": "#/definitions/SetConstraints"
1462             }
1463           }
1464         },
1465         "SetMetricCredentials": {
1466           "type": "object",
1467           "properties": {
1468             "Params": {
1469               "$ref": "#/definitions/ApplicationMetricCredentials"
1470             },
1471             "Result": {
1472               "$ref": "#/definitions/ErrorResults"
1473             }
1474           }
1475         },
1476         "Unexpose": {
1477           "type": "object",
1478           "properties": {
1479             "Params": {
1480               "$ref": "#/definitions/ApplicationUnexpose"
1481             }
1482           }
1483         },
1484         "Unset": {
1485           "type": "object",
1486           "properties": {
1487             "Params": {
1488               "$ref": "#/definitions/ApplicationUnset"
1489             }
1490           }
1491         },
1492         "Update": {
1493           "type": "object",
1494           "properties": {
1495             "Params": {
1496               "$ref": "#/definitions/ApplicationUpdate"
1497             }
1498           }
1499         }
1500       },
1501       "definitions": {
1502         "AddApplicationUnits": {
1503           "type": "object",
1504           "properties": {
1505             "application": {
1506               "type": "string"
1507             },
1508             "num-units": {
1509               "type": "integer"
1510             },
1511             "placement": {
1512               "type": "array",
1513               "items": {
1514                 "$ref": "#/definitions/Placement"
1515               }
1516             }
1517           },
1518           "additionalProperties": false,
1519           "required": [
1520             "application",
1521             "num-units",
1522             "placement"
1523           ]
1524         },
1525         "AddApplicationUnitsResults": {
1526           "type": "object",
1527           "properties": {
1528             "units": {
1529               "type": "array",
1530               "items": {
1531                 "type": "string"
1532               }
1533             }
1534           },
1535           "additionalProperties": false,
1536           "required": [
1537             "units"
1538           ]
1539         },
1540         "AddRelation": {
1541           "type": "object",
1542           "properties": {
1543             "endpoints": {
1544               "type": "array",
1545               "items": {
1546                 "type": "string"
1547               }
1548             }
1549           },
1550           "additionalProperties": false,
1551           "required": [
1552             "endpoints"
1553           ]
1554         },
1555         "AddRelationResults": {
1556           "type": "object",
1557           "properties": {
1558             "endpoints": {
1559               "type": "object",
1560               "patternProperties": {
1561                 ".*": {
1562                   "$ref": "#/definitions/CharmRelation"
1563                 }
1564               }
1565             }
1566           },
1567           "additionalProperties": false,
1568           "required": [
1569             "endpoints"
1570           ]
1571         },
1572         "ApplicationCharmRelations": {
1573           "type": "object",
1574           "properties": {
1575             "application": {
1576               "type": "string"
1577             }
1578           },
1579           "additionalProperties": false,
1580           "required": [
1581             "application"
1582           ]
1583         },
1584         "ApplicationCharmRelationsResults": {
1585           "type": "object",
1586           "properties": {
1587             "charm-relations": {
1588               "type": "array",
1589               "items": {
1590                 "type": "string"
1591               }
1592             }
1593           },
1594           "additionalProperties": false,
1595           "required": [
1596             "charm-relations"
1597           ]
1598         },
1599         "ApplicationDeploy": {
1600           "type": "object",
1601           "properties": {
1602             "application": {
1603               "type": "string"
1604             },
1605             "channel": {
1606               "type": "string"
1607             },
1608             "charm-url": {
1609               "type": "string"
1610             },
1611             "config": {
1612               "type": "object",
1613               "patternProperties": {
1614                 ".*": {
1615                   "type": "string"
1616                 }
1617               }
1618             },
1619             "config-yaml": {
1620               "type": "string"
1621             },
1622             "constraints": {
1623               "$ref": "#/definitions/Value"
1624             },
1625             "endpoint-bindings": {
1626               "type": "object",
1627               "patternProperties": {
1628                 ".*": {
1629                   "type": "string"
1630                 }
1631               }
1632             },
1633             "num-units": {
1634               "type": "integer"
1635             },
1636             "placement": {
1637               "type": "array",
1638               "items": {
1639                 "$ref": "#/definitions/Placement"
1640               }
1641             },
1642             "resources": {
1643               "type": "object",
1644               "patternProperties": {
1645                 ".*": {
1646                   "type": "string"
1647                 }
1648               }
1649             },
1650             "series": {
1651               "type": "string"
1652             },
1653             "storage": {
1654               "type": "object",
1655               "patternProperties": {
1656                 ".*": {
1657                   "$ref": "#/definitions/Constraints"
1658                 }
1659               }
1660             }
1661           },
1662           "additionalProperties": false,
1663           "required": [
1664             "application",
1665             "series",
1666             "charm-url",
1667             "channel",
1668             "num-units",
1669             "config-yaml",
1670             "constraints"
1671           ]
1672         },
1673         "ApplicationDestroy": {
1674           "type": "object",
1675           "properties": {
1676             "application": {
1677               "type": "string"
1678             }
1679           },
1680           "additionalProperties": false,
1681           "required": [
1682             "application"
1683           ]
1684         },
1685         "ApplicationExpose": {
1686           "type": "object",
1687           "properties": {
1688             "application": {
1689               "type": "string"
1690             }
1691           },
1692           "additionalProperties": false,
1693           "required": [
1694             "application"
1695           ]
1696         },
1697         "ApplicationGet": {
1698           "type": "object",
1699           "properties": {
1700             "application": {
1701               "type": "string"
1702             }
1703           },
1704           "additionalProperties": false,
1705           "required": [
1706             "application"
1707           ]
1708         },
1709         "ApplicationGetResults": {
1710           "type": "object",
1711           "properties": {
1712             "application": {
1713               "type": "string"
1714             },
1715             "charm": {
1716               "type": "string"
1717             },
1718             "config": {
1719               "type": "object",
1720               "patternProperties": {
1721                 ".*": {
1722                   "type": "object",
1723                   "additionalProperties": true
1724                 }
1725               }
1726             },
1727             "constraints": {
1728               "$ref": "#/definitions/Value"
1729             },
1730             "series": {
1731               "type": "string"
1732             }
1733           },
1734           "additionalProperties": false,
1735           "required": [
1736             "application",
1737             "charm",
1738             "config",
1739             "constraints",
1740             "series"
1741           ]
1742         },
1743         "ApplicationMetricCredential": {
1744           "type": "object",
1745           "properties": {
1746             "application": {
1747               "type": "string"
1748             },
1749             "metrics-credentials": {
1750               "type": "array",
1751               "items": {
1752                 "type": "integer"
1753               }
1754             }
1755           },
1756           "additionalProperties": false,
1757           "required": [
1758             "application",
1759             "metrics-credentials"
1760           ]
1761         },
1762         "ApplicationMetricCredentials": {
1763           "type": "object",
1764           "properties": {
1765             "creds": {
1766               "type": "array",
1767               "items": {
1768                 "$ref": "#/definitions/ApplicationMetricCredential"
1769               }
1770             }
1771           },
1772           "additionalProperties": false,
1773           "required": [
1774             "creds"
1775           ]
1776         },
1777         "ApplicationSet": {
1778           "type": "object",
1779           "properties": {
1780             "application": {
1781               "type": "string"
1782             },
1783             "options": {
1784               "type": "object",
1785               "patternProperties": {
1786                 ".*": {
1787                   "type": "string"
1788                 }
1789               }
1790             }
1791           },
1792           "additionalProperties": false,
1793           "required": [
1794             "application",
1795             "options"
1796           ]
1797         },
1798         "ApplicationSetCharm": {
1799           "type": "object",
1800           "properties": {
1801             "application": {
1802               "type": "string"
1803             },
1804             "channel": {
1805               "type": "string"
1806             },
1807             "charm-url": {
1808               "type": "string"
1809             },
1810             "config-settings": {
1811               "type": "object",
1812               "patternProperties": {
1813                 ".*": {
1814                   "type": "string"
1815                 }
1816               }
1817             },
1818             "config-settings-yaml": {
1819               "type": "string"
1820             },
1821             "force-series": {
1822               "type": "boolean"
1823             },
1824             "force-units": {
1825               "type": "boolean"
1826             },
1827             "resource-ids": {
1828               "type": "object",
1829               "patternProperties": {
1830                 ".*": {
1831                   "type": "string"
1832                 }
1833               }
1834             },
1835             "storage-constraints": {
1836               "type": "object",
1837               "patternProperties": {
1838                 ".*": {
1839                   "$ref": "#/definitions/StorageConstraints"
1840                 }
1841               }
1842             }
1843           },
1844           "additionalProperties": false,
1845           "required": [
1846             "application",
1847             "charm-url",
1848             "channel",
1849             "force-units",
1850             "force-series"
1851           ]
1852         },
1853         "ApplicationURLs": {
1854           "type": "object",
1855           "properties": {
1856             "application-urls": {
1857               "type": "array",
1858               "items": {
1859                 "type": "string"
1860               }
1861             }
1862           },
1863           "additionalProperties": false
1864         },
1865         "ApplicationUnexpose": {
1866           "type": "object",
1867           "properties": {
1868             "application": {
1869               "type": "string"
1870             }
1871           },
1872           "additionalProperties": false,
1873           "required": [
1874             "application"
1875           ]
1876         },
1877         "ApplicationUnset": {
1878           "type": "object",
1879           "properties": {
1880             "application": {
1881               "type": "string"
1882             },
1883             "options": {
1884               "type": "array",
1885               "items": {
1886                 "type": "string"
1887               }
1888             }
1889           },
1890           "additionalProperties": false,
1891           "required": [
1892             "application",
1893             "options"
1894           ]
1895         },
1896         "ApplicationUpdate": {
1897           "type": "object",
1898           "properties": {
1899             "application": {
1900               "type": "string"
1901             },
1902             "charm-url": {
1903               "type": "string"
1904             },
1905             "constraints": {
1906               "$ref": "#/definitions/Value"
1907             },
1908             "force-charm-url": {
1909               "type": "boolean"
1910             },
1911             "force-series": {
1912               "type": "boolean"
1913             },
1914             "min-units": {
1915               "type": "integer"
1916             },
1917             "settings": {
1918               "type": "object",
1919               "patternProperties": {
1920                 ".*": {
1921                   "type": "string"
1922                 }
1923               }
1924             },
1925             "settings-yaml": {
1926               "type": "string"
1927             }
1928           },
1929           "additionalProperties": false,
1930           "required": [
1931             "application",
1932             "charm-url",
1933             "force-charm-url",
1934             "force-series",
1935             "settings-yaml"
1936           ]
1937         },
1938         "ApplicationsDeploy": {
1939           "type": "object",
1940           "properties": {
1941             "applications": {
1942               "type": "array",
1943               "items": {
1944                 "$ref": "#/definitions/ApplicationDeploy"
1945               }
1946             }
1947           },
1948           "additionalProperties": false,
1949           "required": [
1950             "applications"
1951           ]
1952         },
1953         "CharmRelation": {
1954           "type": "object",
1955           "properties": {
1956             "interface": {
1957               "type": "string"
1958             },
1959             "limit": {
1960               "type": "integer"
1961             },
1962             "name": {
1963               "type": "string"
1964             },
1965             "optional": {
1966               "type": "boolean"
1967             },
1968             "role": {
1969               "type": "string"
1970             },
1971             "scope": {
1972               "type": "string"
1973             }
1974           },
1975           "additionalProperties": false,
1976           "required": [
1977             "name",
1978             "role",
1979             "interface",
1980             "optional",
1981             "limit",
1982             "scope"
1983           ]
1984         },
1985         "Constraints": {
1986           "type": "object",
1987           "properties": {
1988             "Count": {
1989               "type": "integer"
1990             },
1991             "Pool": {
1992               "type": "string"
1993             },
1994             "Size": {
1995               "type": "integer"
1996             }
1997           },
1998           "additionalProperties": false,
1999           "required": [
2000             "Pool",
2001             "Size",
2002             "Count"
2003           ]
2004         },
2005         "ConsumeApplicationArg": {
2006           "type": "object",
2007           "properties": {
2008             "application-alias": {
2009               "type": "string"
2010             },
2011             "application-url": {
2012               "type": "string"
2013             }
2014           },
2015           "additionalProperties": false,
2016           "required": [
2017             "application-url"
2018           ]
2019         },
2020         "ConsumeApplicationArgs": {
2021           "type": "object",
2022           "properties": {
2023             "args": {
2024               "type": "array",
2025               "items": {
2026                 "$ref": "#/definitions/ConsumeApplicationArg"
2027               }
2028             }
2029           },
2030           "additionalProperties": false
2031         },
2032         "ConsumeApplicationResult": {
2033           "type": "object",
2034           "properties": {
2035             "error": {
2036               "$ref": "#/definitions/Error"
2037             },
2038             "local-name": {
2039               "type": "string"
2040             }
2041           },
2042           "additionalProperties": false
2043         },
2044         "ConsumeApplicationResults": {
2045           "type": "object",
2046           "properties": {
2047             "results": {
2048               "type": "array",
2049               "items": {
2050                 "$ref": "#/definitions/ConsumeApplicationResult"
2051               }
2052             }
2053           },
2054           "additionalProperties": false,
2055           "required": [
2056             "results"
2057           ]
2058         },
2059         "DestroyApplicationInfo": {
2060           "type": "object",
2061           "properties": {
2062             "destroyed-storage": {
2063               "type": "array",
2064               "items": {
2065                 "$ref": "#/definitions/Entity"
2066               }
2067             },
2068             "destroyed-units": {
2069               "type": "array",
2070               "items": {
2071                 "$ref": "#/definitions/Entity"
2072               }
2073             },
2074             "detached-storage": {
2075               "type": "array",
2076               "items": {
2077                 "$ref": "#/definitions/Entity"
2078               }
2079             }
2080           },
2081           "additionalProperties": false
2082         },
2083         "DestroyApplicationResult": {
2084           "type": "object",
2085           "properties": {
2086             "error": {
2087               "$ref": "#/definitions/Error"
2088             },
2089             "info": {
2090               "$ref": "#/definitions/DestroyApplicationInfo"
2091             }
2092           },
2093           "additionalProperties": false
2094         },
2095         "DestroyApplicationResults": {
2096           "type": "object",
2097           "properties": {
2098             "results": {
2099               "type": "array",
2100               "items": {
2101                 "$ref": "#/definitions/DestroyApplicationResult"
2102               }
2103             }
2104           },
2105           "additionalProperties": false
2106         },
2107         "DestroyApplicationUnits": {
2108           "type": "object",
2109           "properties": {
2110             "unit-names": {
2111               "type": "array",
2112               "items": {
2113                 "type": "string"
2114               }
2115             }
2116           },
2117           "additionalProperties": false,
2118           "required": [
2119             "unit-names"
2120           ]
2121         },
2122         "DestroyRelation": {
2123           "type": "object",
2124           "properties": {
2125             "endpoints": {
2126               "type": "array",
2127               "items": {
2128                 "type": "string"
2129               }
2130             }
2131           },
2132           "additionalProperties": false,
2133           "required": [
2134             "endpoints"
2135           ]
2136         },
2137         "DestroyUnitInfo": {
2138           "type": "object",
2139           "properties": {
2140             "destroyed-storage": {
2141               "type": "array",
2142               "items": {
2143                 "$ref": "#/definitions/Entity"
2144               }
2145             },
2146             "detached-storage": {
2147               "type": "array",
2148               "items": {
2149                 "$ref": "#/definitions/Entity"
2150               }
2151             }
2152           },
2153           "additionalProperties": false
2154         },
2155         "DestroyUnitResult": {
2156           "type": "object",
2157           "properties": {
2158             "error": {
2159               "$ref": "#/definitions/Error"
2160             },
2161             "info": {
2162               "$ref": "#/definitions/DestroyUnitInfo"
2163             }
2164           },
2165           "additionalProperties": false
2166         },
2167         "DestroyUnitResults": {
2168           "type": "object",
2169           "properties": {
2170             "results": {
2171               "type": "array",
2172               "items": {
2173                 "$ref": "#/definitions/DestroyUnitResult"
2174               }
2175             }
2176           },
2177           "additionalProperties": false
2178         },
2179         "Entities": {
2180           "type": "object",
2181           "properties": {
2182             "entities": {
2183               "type": "array",
2184               "items": {
2185                 "$ref": "#/definitions/Entity"
2186               }
2187             }
2188           },
2189           "additionalProperties": false,
2190           "required": [
2191             "entities"
2192           ]
2193         },
2194         "Entity": {
2195           "type": "object",
2196           "properties": {
2197             "tag": {
2198               "type": "string"
2199             }
2200           },
2201           "additionalProperties": false,
2202           "required": [
2203             "tag"
2204           ]
2205         },
2206         "Error": {
2207           "type": "object",
2208           "properties": {
2209             "code": {
2210               "type": "string"
2211             },
2212             "info": {
2213               "$ref": "#/definitions/ErrorInfo"
2214             },
2215             "message": {
2216               "type": "string"
2217             }
2218           },
2219           "additionalProperties": false,
2220           "required": [
2221             "message",
2222             "code"
2223           ]
2224         },
2225         "ErrorInfo": {
2226           "type": "object",
2227           "properties": {
2228             "macaroon": {
2229               "$ref": "#/definitions/Macaroon"
2230             },
2231             "macaroon-path": {
2232               "type": "string"
2233             }
2234           },
2235           "additionalProperties": false
2236         },
2237         "ErrorResult": {
2238           "type": "object",
2239           "properties": {
2240             "error": {
2241               "$ref": "#/definitions/Error"
2242             }
2243           },
2244           "additionalProperties": false
2245         },
2246         "ErrorResults": {
2247           "type": "object",
2248           "properties": {
2249             "results": {
2250               "type": "array",
2251               "items": {
2252                 "$ref": "#/definitions/ErrorResult"
2253               }
2254             }
2255           },
2256           "additionalProperties": false,
2257           "required": [
2258             "results"
2259           ]
2260         },
2261         "GetApplicationConstraints": {
2262           "type": "object",
2263           "properties": {
2264             "application": {
2265               "type": "string"
2266             }
2267           },
2268           "additionalProperties": false,
2269           "required": [
2270             "application"
2271           ]
2272         },
2273         "GetConstraintsResults": {
2274           "type": "object",
2275           "properties": {
2276             "constraints": {
2277               "$ref": "#/definitions/Value"
2278             }
2279           },
2280           "additionalProperties": false,
2281           "required": [
2282             "constraints"
2283           ]
2284         },
2285         "Macaroon": {
2286           "type": "object",
2287           "additionalProperties": false
2288         },
2289         "Placement": {
2290           "type": "object",
2291           "properties": {
2292             "directive": {
2293               "type": "string"
2294             },
2295             "scope": {
2296               "type": "string"
2297             }
2298           },
2299           "additionalProperties": false,
2300           "required": [
2301             "scope",
2302             "directive"
2303           ]
2304         },
2305         "RemoteApplicationInfo": {
2306           "type": "object",
2307           "properties": {
2308             "application-url": {
2309               "type": "string"
2310             },
2311             "description": {
2312               "type": "string"
2313             },
2314             "endpoints": {
2315               "type": "array",
2316               "items": {
2317                 "$ref": "#/definitions/RemoteEndpoint"
2318               }
2319             },
2320             "icon-url-path": {
2321               "type": "string"
2322             },
2323             "model-tag": {
2324               "type": "string"
2325             },
2326             "name": {
2327               "type": "string"
2328             },
2329             "source-model-label": {
2330               "type": "string"
2331             }
2332           },
2333           "additionalProperties": false,
2334           "required": [
2335             "model-tag",
2336             "name",
2337             "description",
2338             "application-url",
2339             "endpoints",
2340             "icon-url-path"
2341           ]
2342         },
2343         "RemoteApplicationInfoResult": {
2344           "type": "object",
2345           "properties": {
2346             "error": {
2347               "$ref": "#/definitions/Error"
2348             },
2349             "result": {
2350               "$ref": "#/definitions/RemoteApplicationInfo"
2351             }
2352           },
2353           "additionalProperties": false
2354         },
2355         "RemoteApplicationInfoResults": {
2356           "type": "object",
2357           "properties": {
2358             "results": {
2359               "type": "array",
2360               "items": {
2361                 "$ref": "#/definitions/RemoteApplicationInfoResult"
2362               }
2363             }
2364           },
2365           "additionalProperties": false,
2366           "required": [
2367             "results"
2368           ]
2369         },
2370         "RemoteEndpoint": {
2371           "type": "object",
2372           "properties": {
2373             "interface": {
2374               "type": "string"
2375             },
2376             "limit": {
2377               "type": "integer"
2378             },
2379             "name": {
2380               "type": "string"
2381             },
2382             "role": {
2383               "type": "string"
2384             },
2385             "scope": {
2386               "type": "string"
2387             }
2388           },
2389           "additionalProperties": false,
2390           "required": [
2391             "name",
2392             "role",
2393             "interface",
2394             "limit",
2395             "scope"
2396           ]
2397         },
2398         "SetConstraints": {
2399           "type": "object",
2400           "properties": {
2401             "application": {
2402               "type": "string"
2403             },
2404             "constraints": {
2405               "$ref": "#/definitions/Value"
2406             }
2407           },
2408           "additionalProperties": false,
2409           "required": [
2410             "application",
2411             "constraints"
2412           ]
2413         },
2414         "StorageConstraints": {
2415           "type": "object",
2416           "properties": {
2417             "count": {
2418               "type": "integer"
2419             },
2420             "pool": {
2421               "type": "string"
2422             },
2423             "size": {
2424               "type": "integer"
2425             }
2426           },
2427           "additionalProperties": false
2428         },
2429         "StringResult": {
2430           "type": "object",
2431           "properties": {
2432             "error": {
2433               "$ref": "#/definitions/Error"
2434             },
2435             "result": {
2436               "type": "string"
2437             }
2438           },
2439           "additionalProperties": false,
2440           "required": [
2441             "result"
2442           ]
2443         },
2444         "Value": {
2445           "type": "object",
2446           "properties": {
2447             "arch": {
2448               "type": "string"
2449             },
2450             "container": {
2451               "type": "string"
2452             },
2453             "cores": {
2454               "type": "integer"
2455             },
2456             "cpu-power": {
2457               "type": "integer"
2458             },
2459             "instance-type": {
2460               "type": "string"
2461             },
2462             "mem": {
2463               "type": "integer"
2464             },
2465             "root-disk": {
2466               "type": "integer"
2467             },
2468             "spaces": {
2469               "type": "array",
2470               "items": {
2471                 "type": "string"
2472               }
2473             },
2474             "tags": {
2475               "type": "array",
2476               "items": {
2477                 "type": "string"
2478               }
2479             },
2480             "virt-type": {
2481               "type": "string"
2482             }
2483           },
2484           "additionalProperties": false
2485         }
2486       }
2487     }
2488   },
2489   {
2490     "Name": "ApplicationScaler",
2491     "Version": 1,
2492     "Schema": {
2493       "type": "object",
2494       "properties": {
2495         "Rescale": {
2496           "type": "object",
2497           "properties": {
2498             "Params": {
2499               "$ref": "#/definitions/Entities"
2500             },
2501             "Result": {
2502               "$ref": "#/definitions/ErrorResults"
2503             }
2504           }
2505         },
2506         "Watch": {
2507           "type": "object",
2508           "properties": {
2509             "Result": {
2510               "$ref": "#/definitions/StringsWatchResult"
2511             }
2512           }
2513         }
2514       },
2515       "definitions": {
2516         "Entities": {
2517           "type": "object",
2518           "properties": {
2519             "entities": {
2520               "type": "array",
2521               "items": {
2522                 "$ref": "#/definitions/Entity"
2523               }
2524             }
2525           },
2526           "additionalProperties": false,
2527           "required": [
2528             "entities"
2529           ]
2530         },
2531         "Entity": {
2532           "type": "object",
2533           "properties": {
2534             "tag": {
2535               "type": "string"
2536             }
2537           },
2538           "additionalProperties": false,
2539           "required": [
2540             "tag"
2541           ]
2542         },
2543         "Error": {
2544           "type": "object",
2545           "properties": {
2546             "code": {
2547               "type": "string"
2548             },
2549             "info": {
2550               "$ref": "#/definitions/ErrorInfo"
2551             },
2552             "message": {
2553               "type": "string"
2554             }
2555           },
2556           "additionalProperties": false,
2557           "required": [
2558             "message",
2559             "code"
2560           ]
2561         },
2562         "ErrorInfo": {
2563           "type": "object",
2564           "properties": {
2565             "macaroon": {
2566               "$ref": "#/definitions/Macaroon"
2567             },
2568             "macaroon-path": {
2569               "type": "string"
2570             }
2571           },
2572           "additionalProperties": false
2573         },
2574         "ErrorResult": {
2575           "type": "object",
2576           "properties": {
2577             "error": {
2578               "$ref": "#/definitions/Error"
2579             }
2580           },
2581           "additionalProperties": false
2582         },
2583         "ErrorResults": {
2584           "type": "object",
2585           "properties": {
2586             "results": {
2587               "type": "array",
2588               "items": {
2589                 "$ref": "#/definitions/ErrorResult"
2590               }
2591             }
2592           },
2593           "additionalProperties": false,
2594           "required": [
2595             "results"
2596           ]
2597         },
2598         "Macaroon": {
2599           "type": "object",
2600           "additionalProperties": false
2601         },
2602         "StringsWatchResult": {
2603           "type": "object",
2604           "properties": {
2605             "changes": {
2606               "type": "array",
2607               "items": {
2608                 "type": "string"
2609               }
2610             },
2611             "error": {
2612               "$ref": "#/definitions/Error"
2613             },
2614             "watcher-id": {
2615               "type": "string"
2616             }
2617           },
2618           "additionalProperties": false,
2619           "required": [
2620             "watcher-id"
2621           ]
2622         }
2623       }
2624     }
2625   },
2626   {
2627     "Name": "Backups",
2628     "Version": 1,
2629     "Schema": {
2630       "type": "object",
2631       "properties": {
2632         "Create": {
2633           "type": "object",
2634           "properties": {
2635             "Params": {
2636               "$ref": "#/definitions/BackupsCreateArgs"
2637             },
2638             "Result": {
2639               "$ref": "#/definitions/BackupsMetadataResult"
2640             }
2641           }
2642         },
2643         "FinishRestore": {
2644           "type": "object"
2645         },
2646         "Info": {
2647           "type": "object",
2648           "properties": {
2649             "Params": {
2650               "$ref": "#/definitions/BackupsInfoArgs"
2651             },
2652             "Result": {
2653               "$ref": "#/definitions/BackupsMetadataResult"
2654             }
2655           }
2656         },
2657         "List": {
2658           "type": "object",
2659           "properties": {
2660             "Params": {
2661               "$ref": "#/definitions/BackupsListArgs"
2662             },
2663             "Result": {
2664               "$ref": "#/definitions/BackupsListResult"
2665             }
2666           }
2667         },
2668         "PrepareRestore": {
2669           "type": "object"
2670         },
2671         "Remove": {
2672           "type": "object",
2673           "properties": {
2674             "Params": {
2675               "$ref": "#/definitions/BackupsRemoveArgs"
2676             }
2677           }
2678         },
2679         "Restore": {
2680           "type": "object",
2681           "properties": {
2682             "Params": {
2683               "$ref": "#/definitions/RestoreArgs"
2684             }
2685           }
2686         }
2687       },
2688       "definitions": {
2689         "BackupsCreateArgs": {
2690           "type": "object",
2691           "properties": {
2692             "notes": {
2693               "type": "string"
2694             }
2695           },
2696           "additionalProperties": false,
2697           "required": [
2698             "notes"
2699           ]
2700         },
2701         "BackupsInfoArgs": {
2702           "type": "object",
2703           "properties": {
2704             "id": {
2705               "type": "string"
2706             }
2707           },
2708           "additionalProperties": false,
2709           "required": [
2710             "id"
2711           ]
2712         },
2713         "BackupsListArgs": {
2714           "type": "object",
2715           "additionalProperties": false
2716         },
2717         "BackupsListResult": {
2718           "type": "object",
2719           "properties": {
2720             "list": {
2721               "type": "array",
2722               "items": {
2723                 "$ref": "#/definitions/BackupsMetadataResult"
2724               }
2725             }
2726           },
2727           "additionalProperties": false,
2728           "required": [
2729             "list"
2730           ]
2731         },
2732         "BackupsMetadataResult": {
2733           "type": "object",
2734           "properties": {
2735             "ca-cert": {
2736               "type": "string"
2737             },
2738             "ca-private-key": {
2739               "type": "string"
2740             },
2741             "checksum": {
2742               "type": "string"
2743             },
2744             "checksum-format": {
2745               "type": "string"
2746             },
2747             "finished": {
2748               "type": "string",
2749               "format": "date-time"
2750             },
2751             "hostname": {
2752               "type": "string"
2753             },
2754             "id": {
2755               "type": "string"
2756             },
2757             "machine": {
2758               "type": "string"
2759             },
2760             "model": {
2761               "type": "string"
2762             },
2763             "notes": {
2764               "type": "string"
2765             },
2766             "series": {
2767               "type": "string"
2768             },
2769             "size": {
2770               "type": "integer"
2771             },
2772             "started": {
2773               "type": "string",
2774               "format": "date-time"
2775             },
2776             "stored": {
2777               "type": "string",
2778               "format": "date-time"
2779             },
2780             "version": {
2781               "$ref": "#/definitions/Number"
2782             }
2783           },
2784           "additionalProperties": false,
2785           "required": [
2786             "id",
2787             "checksum",
2788             "checksum-format",
2789             "size",
2790             "stored",
2791             "started",
2792             "finished",
2793             "notes",
2794             "model",
2795             "machine",
2796             "hostname",
2797             "version",
2798             "series",
2799             "ca-cert",
2800             "ca-private-key"
2801           ]
2802         },
2803         "BackupsRemoveArgs": {
2804           "type": "object",
2805           "properties": {
2806             "id": {
2807               "type": "string"
2808             }
2809           },
2810           "additionalProperties": false,
2811           "required": [
2812             "id"
2813           ]
2814         },
2815         "Number": {
2816           "type": "object",
2817           "properties": {
2818             "Build": {
2819               "type": "integer"
2820             },
2821             "Major": {
2822               "type": "integer"
2823             },
2824             "Minor": {
2825               "type": "integer"
2826             },
2827             "Patch": {
2828               "type": "integer"
2829             },
2830             "Tag": {
2831               "type": "string"
2832             }
2833           },
2834           "additionalProperties": false,
2835           "required": [
2836             "Major",
2837             "Minor",
2838             "Tag",
2839             "Patch",
2840             "Build"
2841           ]
2842         },
2843         "RestoreArgs": {
2844           "type": "object",
2845           "properties": {
2846             "backup-id": {
2847               "type": "string"
2848             }
2849           },
2850           "additionalProperties": false,
2851           "required": [
2852             "backup-id"
2853           ]
2854         }
2855       }
2856     }
2857   },
2858   {
2859     "Name": "Block",
2860     "Version": 2,
2861     "Schema": {
2862       "type": "object",
2863       "properties": {
2864         "List": {
2865           "type": "object",
2866           "properties": {
2867             "Result": {
2868               "$ref": "#/definitions/BlockResults"
2869             }
2870           }
2871         },
2872         "SwitchBlockOff": {
2873           "type": "object",
2874           "properties": {
2875             "Params": {
2876               "$ref": "#/definitions/BlockSwitchParams"
2877             },
2878             "Result": {
2879               "$ref": "#/definitions/ErrorResult"
2880             }
2881           }
2882         },
2883         "SwitchBlockOn": {
2884           "type": "object",
2885           "properties": {
2886             "Params": {
2887               "$ref": "#/definitions/BlockSwitchParams"
2888             },
2889             "Result": {
2890               "$ref": "#/definitions/ErrorResult"
2891             }
2892           }
2893         }
2894       },
2895       "definitions": {
2896         "Block": {
2897           "type": "object",
2898           "properties": {
2899             "id": {
2900               "type": "string"
2901             },
2902             "message": {
2903               "type": "string"
2904             },
2905             "tag": {
2906               "type": "string"
2907             },
2908             "type": {
2909               "type": "string"
2910             }
2911           },
2912           "additionalProperties": false,
2913           "required": [
2914             "id",
2915             "tag",
2916             "type"
2917           ]
2918         },
2919         "BlockResult": {
2920           "type": "object",
2921           "properties": {
2922             "error": {
2923               "$ref": "#/definitions/Error"
2924             },
2925             "result": {
2926               "$ref": "#/definitions/Block"
2927             }
2928           },
2929           "additionalProperties": false,
2930           "required": [
2931             "result"
2932           ]
2933         },
2934         "BlockResults": {
2935           "type": "object",
2936           "properties": {
2937             "results": {
2938               "type": "array",
2939               "items": {
2940                 "$ref": "#/definitions/BlockResult"
2941               }
2942             }
2943           },
2944           "additionalProperties": false
2945         },
2946         "BlockSwitchParams": {
2947           "type": "object",
2948           "properties": {
2949             "message": {
2950               "type": "string"
2951             },
2952             "type": {
2953               "type": "string"
2954             }
2955           },
2956           "additionalProperties": false,
2957           "required": [
2958             "type"
2959           ]
2960         },
2961         "Error": {
2962           "type": "object",
2963           "properties": {
2964             "code": {
2965               "type": "string"
2966             },
2967             "info": {
2968               "$ref": "#/definitions/ErrorInfo"
2969             },
2970             "message": {
2971               "type": "string"
2972             }
2973           },
2974           "additionalProperties": false,
2975           "required": [
2976             "message",
2977             "code"
2978           ]
2979         },
2980         "ErrorInfo": {
2981           "type": "object",
2982           "properties": {
2983             "macaroon": {
2984               "$ref": "#/definitions/Macaroon"
2985             },
2986             "macaroon-path": {
2987               "type": "string"
2988             }
2989           },
2990           "additionalProperties": false
2991         },
2992         "ErrorResult": {
2993           "type": "object",
2994           "properties": {
2995             "error": {
2996               "$ref": "#/definitions/Error"
2997             }
2998           },
2999           "additionalProperties": false
3000         },
3001         "Macaroon": {
3002           "type": "object",
3003           "additionalProperties": false
3004         }
3005       }
3006     }
3007   },
3008   {
3009     "Name": "Bundle",
3010     "Version": 1,
3011     "Schema": {
3012       "type": "object",
3013       "properties": {
3014         "GetChanges": {
3015           "type": "object",
3016           "properties": {
3017             "Params": {
3018               "$ref": "#/definitions/BundleChangesParams"
3019             },
3020             "Result": {
3021               "$ref": "#/definitions/BundleChangesResults"
3022             }
3023           }
3024         }
3025       },
3026       "definitions": {
3027         "BundleChange": {
3028           "type": "object",
3029           "properties": {
3030             "args": {
3031               "type": "array",
3032               "items": {
3033                 "type": "object",
3034                 "additionalProperties": true
3035               }
3036             },
3037             "id": {
3038               "type": "string"
3039             },
3040             "method": {
3041               "type": "string"
3042             },
3043             "requires": {
3044               "type": "array",
3045               "items": {
3046                 "type": "string"
3047               }
3048             }
3049           },
3050           "additionalProperties": false,
3051           "required": [
3052             "id",
3053             "method",
3054             "args",
3055             "requires"
3056           ]
3057         },
3058         "BundleChangesParams": {
3059           "type": "object",
3060           "properties": {
3061             "yaml": {
3062               "type": "string"
3063             }
3064           },
3065           "additionalProperties": false,
3066           "required": [
3067             "yaml"
3068           ]
3069         },
3070         "BundleChangesResults": {
3071           "type": "object",
3072           "properties": {
3073             "changes": {
3074               "type": "array",
3075               "items": {
3076                 "$ref": "#/definitions/BundleChange"
3077               }
3078             },
3079             "errors": {
3080               "type": "array",
3081               "items": {
3082                 "type": "string"
3083               }
3084             }
3085           },
3086           "additionalProperties": false
3087         }
3088       }
3089     }
3090   },
3091   {
3092     "Name": "CharmRevisionUpdater",
3093     "Version": 2,
3094     "Schema": {
3095       "type": "object",
3096       "properties": {
3097         "UpdateLatestRevisions": {
3098           "type": "object",
3099           "properties": {
3100             "Result": {
3101               "$ref": "#/definitions/ErrorResult"
3102             }
3103           }
3104         }
3105       },
3106       "definitions": {
3107         "Error": {
3108           "type": "object",
3109           "properties": {
3110             "code": {
3111               "type": "string"
3112             },
3113             "info": {
3114               "$ref": "#/definitions/ErrorInfo"
3115             },
3116             "message": {
3117               "type": "string"
3118             }
3119           },
3120           "additionalProperties": false,
3121           "required": [
3122             "message",
3123             "code"
3124           ]
3125         },
3126         "ErrorInfo": {
3127           "type": "object",
3128           "properties": {
3129             "macaroon": {
3130               "$ref": "#/definitions/Macaroon"
3131             },
3132             "macaroon-path": {
3133               "type": "string"
3134             }
3135           },
3136           "additionalProperties": false
3137         },
3138         "ErrorResult": {
3139           "type": "object",
3140           "properties": {
3141             "error": {
3142               "$ref": "#/definitions/Error"
3143             }
3144           },
3145           "additionalProperties": false
3146         },
3147         "Macaroon": {
3148           "type": "object",
3149           "additionalProperties": false
3150         }
3151       }
3152     }
3153   },
3154   {
3155     "Name": "Charms",
3156     "Version": 2,
3157     "Schema": {
3158       "type": "object",
3159       "properties": {
3160         "CharmInfo": {
3161           "type": "object",
3162           "properties": {
3163             "Params": {
3164               "$ref": "#/definitions/CharmURL"
3165             },
3166             "Result": {
3167               "$ref": "#/definitions/CharmInfo"
3168             }
3169           }
3170         },
3171         "IsMetered": {
3172           "type": "object",
3173           "properties": {
3174             "Params": {
3175               "$ref": "#/definitions/CharmURL"
3176             },
3177             "Result": {
3178               "$ref": "#/definitions/IsMeteredResult"
3179             }
3180           }
3181         },
3182         "List": {
3183           "type": "object",
3184           "properties": {
3185             "Params": {
3186               "$ref": "#/definitions/CharmsList"
3187             },
3188             "Result": {
3189               "$ref": "#/definitions/CharmsListResult"
3190             }
3191           }
3192         }
3193       },
3194       "definitions": {
3195         "CharmActionSpec": {
3196           "type": "object",
3197           "properties": {
3198             "description": {
3199               "type": "string"
3200             },
3201             "params": {
3202               "type": "object",
3203               "patternProperties": {
3204                 ".*": {
3205                   "type": "object",
3206                   "additionalProperties": true
3207                 }
3208               }
3209             }
3210           },
3211           "additionalProperties": false,
3212           "required": [
3213             "description",
3214             "params"
3215           ]
3216         },
3217         "CharmActions": {
3218           "type": "object",
3219           "properties": {
3220             "specs": {
3221               "type": "object",
3222               "patternProperties": {
3223                 ".*": {
3224                   "$ref": "#/definitions/CharmActionSpec"
3225                 }
3226               }
3227             }
3228           },
3229           "additionalProperties": false
3230         },
3231         "CharmInfo": {
3232           "type": "object",
3233           "properties": {
3234             "actions": {
3235               "$ref": "#/definitions/CharmActions"
3236             },
3237             "config": {
3238               "type": "object",
3239               "patternProperties": {
3240                 ".*": {
3241                   "$ref": "#/definitions/CharmOption"
3242                 }
3243               }
3244             },
3245             "meta": {
3246               "$ref": "#/definitions/CharmMeta"
3247             },
3248             "metrics": {
3249               "$ref": "#/definitions/CharmMetrics"
3250             },
3251             "revision": {
3252               "type": "integer"
3253             },
3254             "url": {
3255               "type": "string"
3256             }
3257           },
3258           "additionalProperties": false,
3259           "required": [
3260             "revision",
3261             "url",
3262             "config"
3263           ]
3264         },
3265         "CharmMeta": {
3266           "type": "object",
3267           "properties": {
3268             "categories": {
3269               "type": "array",
3270               "items": {
3271                 "type": "string"
3272               }
3273             },
3274             "description": {
3275               "type": "string"
3276             },
3277             "extra-bindings": {
3278               "type": "object",
3279               "patternProperties": {
3280                 ".*": {
3281                   "type": "string"
3282                 }
3283               }
3284             },
3285             "min-juju-version": {
3286               "type": "string"
3287             },
3288             "name": {
3289               "type": "string"
3290             },
3291             "payload-classes": {
3292               "type": "object",
3293               "patternProperties": {
3294                 ".*": {
3295                   "$ref": "#/definitions/CharmPayloadClass"
3296                 }
3297               }
3298             },
3299             "peers": {
3300               "type": "object",
3301               "patternProperties": {
3302                 ".*": {
3303                   "$ref": "#/definitions/CharmRelation"
3304                 }
3305               }
3306             },
3307             "provides": {
3308               "type": "object",
3309               "patternProperties": {
3310                 ".*": {
3311                   "$ref": "#/definitions/CharmRelation"
3312                 }
3313               }
3314             },
3315             "requires": {
3316               "type": "object",
3317               "patternProperties": {
3318                 ".*": {
3319                   "$ref": "#/definitions/CharmRelation"
3320                 }
3321               }
3322             },
3323             "resources": {
3324               "type": "object",
3325               "patternProperties": {
3326                 ".*": {
3327                   "$ref": "#/definitions/CharmResourceMeta"
3328                 }
3329               }
3330             },
3331             "series": {
3332               "type": "array",
3333               "items": {
3334                 "type": "string"
3335               }
3336             },
3337             "storage": {
3338               "type": "object",
3339               "patternProperties": {
3340                 ".*": {
3341                   "$ref": "#/definitions/CharmStorage"
3342                 }
3343               }
3344             },
3345             "subordinate": {
3346               "type": "boolean"
3347             },
3348             "summary": {
3349               "type": "string"
3350             },
3351             "tags": {
3352               "type": "array",
3353               "items": {
3354                 "type": "string"
3355               }
3356             },
3357             "terms": {
3358               "type": "array",
3359               "items": {
3360                 "type": "string"
3361               }
3362             }
3363           },
3364           "additionalProperties": false,
3365           "required": [
3366             "name",
3367             "summary",
3368             "description",
3369             "subordinate"
3370           ]
3371         },
3372         "CharmMetric": {
3373           "type": "object",
3374           "properties": {
3375             "description": {
3376               "type": "string"
3377             },
3378             "type": {
3379               "type": "string"
3380             }
3381           },
3382           "additionalProperties": false,
3383           "required": [
3384             "type",
3385             "description"
3386           ]
3387         },
3388         "CharmMetrics": {
3389           "type": "object",
3390           "properties": {
3391             "metrics": {
3392               "type": "object",
3393               "patternProperties": {
3394                 ".*": {
3395                   "$ref": "#/definitions/CharmMetric"
3396                 }
3397               }
3398             },
3399             "plan": {
3400               "$ref": "#/definitions/CharmPlan"
3401             }
3402           },
3403           "additionalProperties": false,
3404           "required": [
3405             "metrics",
3406             "plan"
3407           ]
3408         },
3409         "CharmOption": {
3410           "type": "object",
3411           "properties": {
3412             "default": {
3413               "type": "object",
3414               "additionalProperties": true
3415             },
3416             "description": {
3417               "type": "string"
3418             },
3419             "type": {
3420               "type": "string"
3421             }
3422           },
3423           "additionalProperties": false,
3424           "required": [
3425             "type"
3426           ]
3427         },
3428         "CharmPayloadClass": {
3429           "type": "object",
3430           "properties": {
3431             "name": {
3432               "type": "string"
3433             },
3434             "type": {
3435               "type": "string"
3436             }
3437           },
3438           "additionalProperties": false,
3439           "required": [
3440             "name",
3441             "type"
3442           ]
3443         },
3444         "CharmPlan": {
3445           "type": "object",
3446           "properties": {
3447             "required": {
3448               "type": "boolean"
3449             }
3450           },
3451           "additionalProperties": false,
3452           "required": [
3453             "required"
3454           ]
3455         },
3456         "CharmRelation": {
3457           "type": "object",
3458           "properties": {
3459             "interface": {
3460               "type": "string"
3461             },
3462             "limit": {
3463               "type": "integer"
3464             },
3465             "name": {
3466               "type": "string"
3467             },
3468             "optional": {
3469               "type": "boolean"
3470             },
3471             "role": {
3472               "type": "string"
3473             },
3474             "scope": {
3475               "type": "string"
3476             }
3477           },
3478           "additionalProperties": false,
3479           "required": [
3480             "name",
3481             "role",
3482             "interface",
3483             "optional",
3484             "limit",
3485             "scope"
3486           ]
3487         },
3488         "CharmResourceMeta": {
3489           "type": "object",
3490           "properties": {
3491             "description": {
3492               "type": "string"
3493             },
3494             "name": {
3495               "type": "string"
3496             },
3497             "path": {
3498               "type": "string"
3499             },
3500             "type": {
3501               "type": "string"
3502             }
3503           },
3504           "additionalProperties": false,
3505           "required": [
3506             "name",
3507             "type",
3508             "path",
3509             "description"
3510           ]
3511         },
3512         "CharmStorage": {
3513           "type": "object",
3514           "properties": {