1212import requests
1313from requests .adapters import HTTPAdapter , Retry
1414from retrying import retry
15+ from typing import Union , List
1516
1617from jupiterone .errors import (
1718 JupiterOneClientError ,
5354 INTEGRATION_INSTANCES ,
5455 INTEGRATION_INSTANCE ,
5556 UPDATE_INTEGRATION_INSTANCE ,
57+ PARAMETER ,
58+ PARAMETER_LIST ,
59+ UPSERT_PARAMETER ,
5660)
5761
5862
@@ -1199,4 +1203,63 @@ def get_compliance_framework_item_details(self, item_id: str = None):
11991203 }
12001204
12011205 response = self ._execute_query (COMPLIANCE_FRAMEWORK_ITEM , variables = variables )
1206+ return response
1207+
1208+ def get_parameter_details (self , name : str = None ):
1209+ """Fetch Details of a configured Parameter in J1 account
1210+
1211+ """
1212+ variables = {
1213+ "name" : name
1214+ }
1215+
1216+ response = self ._execute_query (PARAMETER , variables = variables )
1217+ return response
1218+
1219+ def list_account_parameters (self ):
1220+ """Fetch List of all configured Account Parameters in J1 account
1221+
1222+ """
1223+ results = []
1224+
1225+ data = {
1226+ "query" : PARAMETER_LIST ,
1227+ "flags" : {
1228+ "variableResultSize" : True
1229+ }
1230+ }
1231+
1232+ r = requests .post (url = self .graphql_url , headers = self .headers , json = data , verify = True ).json ()
1233+ results .extend (r ['data' ]['parameterList' ]['items' ])
1234+
1235+ while r ['data' ]['parameterList' ]['pageInfo' ]['hasNextPage' ] == True :
1236+ cursor = r ['data' ]['parameterList' ]['pageInfo' ]['endCursor' ]
1237+
1238+ # cursor query until last page fetched
1239+ data = {
1240+ "query" : PARAMETER_LIST ,
1241+ "variables" : {
1242+ "cursor" : cursor
1243+ },
1244+ "flags" : {
1245+ "variableResultSize" : True
1246+ }
1247+ }
1248+
1249+ r = requests .post (url = self .graphql_url , headers = self .headers , json = data , verify = True ).json ()
1250+ results .extend (r ['data' ]['parameterList' ]['items' ])
1251+
1252+ return results
1253+
1254+ def create_update_parameter (self , name : str = None , value : Union [str , int , bool , list ] = None , secret : bool = False ):
1255+ """Create or Update Account Parameter in J1 account
1256+
1257+ """
1258+ variables = {
1259+ "name" : name ,
1260+ "value" : value ,
1261+ "secret" : secret
1262+ }
1263+
1264+ response = self ._execute_query (UPSERT_PARAMETER , variables = variables )
12021265 return response
0 commit comments