Skip to content

Commit a828218

Browse files
committed
add parameter functions
1 parent fe01144 commit a828218

File tree

3 files changed

+108
-0
lines changed

3 files changed

+108
-0
lines changed

examples/examples.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,3 +461,12 @@
461461
r = j1.get_integration_instance_details(instance_id="<GUID>")
462462
print("get_integration_instance_details()")
463463
print(json.dumps(r, indent=1))
464+
465+
r = j1.get_parameter_details(name="ParameterName")
466+
print(json.dumps(r, indent=1))
467+
468+
r = j1.list_account_parameters()
469+
print(json.dumps(r, indent=1))
470+
471+
r = j1.create_update_parameter(name="ParameterName", value="stored_value", secret=False)
472+
print(json.dumps(r, indent=1))

jupiterone/client.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import requests
1313
from requests.adapters import HTTPAdapter, Retry
1414
from retrying import retry
15+
from typing import Union, List
1516

1617
from jupiterone.errors import (
1718
JupiterOneClientError,
@@ -53,6 +54,9 @@
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

jupiterone/constants.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,3 +1194,39 @@
11941194
__typename
11951195
}
11961196
"""
1197+
1198+
# PARAMETERS
1199+
PARAMETER = """
1200+
query Query($name: String!) {
1201+
parameter(name: $name) {
1202+
name
1203+
value
1204+
secret
1205+
lastUpdatedOn
1206+
}
1207+
}
1208+
"""
1209+
PARAMETER_LIST = """
1210+
query Query($limit: Int, $cursor: String) {
1211+
parameterList(limit: $limit, cursor: $cursor) {
1212+
items {
1213+
name
1214+
value
1215+
secret
1216+
lastUpdatedOn
1217+
}
1218+
pageInfo {
1219+
endCursor
1220+
hasNextPage
1221+
}
1222+
}
1223+
}
1224+
"""
1225+
UPSERT_PARAMETER = """
1226+
mutation UpsertParameter($name: String!, $value: ParameterValue!, $secret: Boolean) {
1227+
setParameter(name: $name, value: $value, secret: $secret) {
1228+
success
1229+
__typename
1230+
}
1231+
}
1232+
"""

0 commit comments

Comments
 (0)