@@ -42,8 +42,16 @@ class ScriptInstanceViewSet(NetBoxModelViewSet):
4242 serializer_class = ScriptInstanceSerializer
4343 filterset_class = ScriptInstanceFilterSet
4444
45- @action (detail = False , methods = ["post" ])
45+ @extend_schema (
46+ methods = ["post" ],
47+ responses = {200 : ScriptInstanceSerializer (many = True )},
48+ request = OpenApiTypes .OBJECT ,
49+ )
50+ @action (detail = False , methods = ["post" ], filterset_class = None , pagination_class = None )
4651 def load (self , request ):
52+ """
53+ Load new scripts from `SCRIPT_ROOT`.
54+ """
4755 permission = get_permission_for_model (self .queryset .model , "add" )
4856
4957 if not request .user .has_perm (permission ):
@@ -73,8 +81,16 @@ def load(self, request):
7381
7482 return Response (ScriptInstanceSerializer (loaded_scripts , many = True , context = {"request" : request }).data )
7583
84+ @extend_schema (
85+ methods = ["post" ],
86+ responses = {200 : OpenApiTypes .OBJECT , 500 : OpenApiTypes .OBJECT },
87+ request = None ,
88+ )
7689 @action (detail = False , methods = ["post" ])
7790 def sync (self , request ):
91+ """
92+ Pull script changes from git.
93+ """
7894 permission = get_permission_for_model (self .queryset .model , "sync" )
7995
8096 if not request .user .has_perm (permission ):
@@ -91,10 +107,13 @@ def sync(self, request):
91107
92108 return Response ({"messages" : messages }, status = http_status .HTTP_200_OK )
93109
110+ @extend_schema (
111+ methods = ["post" ],
112+ responses = {200 : ScriptExecutionSerializer ()},
113+ request = ScriptInputSerializer (),
114+ )
94115 @action (detail = True , methods = ["post" ])
95116 def run (self , request , pk ):
96- # TODO: Add schema definitions.
97-
98117 permission = get_permission_for_model (self .queryset .model , "run" )
99118 if not request .user .has_perm (permission ):
100119 raise PermissionDenied (f"Missing permission: { permission } " )
0 commit comments