11""" Python SDK for JupiterOne GraphQL API """
2+
23# pylint: disable=W0212,no-name-in-module
34# see https://github.com/PyCQA/pylint/issues/409
45
56import json
67from warnings import warn
7- from typing import Dict , List
8+ from typing import Dict , List , Union
89from datetime import datetime
910import time
1011
1112import re
1213import requests
1314from requests .adapters import HTTPAdapter , Retry
1415from retrying import retry
15- from typing import Union , List
1616
1717from jupiterone .errors import (
1818 JupiterOneClientError ,
@@ -703,7 +703,7 @@ def update_integration_instance_config_value(self,
703703
704704 """
705705
706- # fetch existing instnace configuration
706+ # fetch existing instnace configuration
707707 instance_config = self .get_integration_instance_details (instance_id = instance_id )
708708 config_dict = instance_config ['data' ]['integrationInstance' ]['config' ]
709709
@@ -714,7 +714,10 @@ def update_integration_instance_config_value(self,
714714 instance_config ['data' ]['integrationInstance' ]['config' ] = config_dict
715715
716716 # remove externalId to not include in update payload
717- del instance_config ['data' ]['integrationInstance' ]['config' ]['externalId' ]
717+ if "externalId" in instance_config ["data" ]["integrationInstance" ]["config" ]:
718+ del instance_config ["data" ]["integrationInstance" ]["config" ][
719+ "externalId"
720+ ]
718721
719722 # prepare variables GraphQL payload for updating config
720723 instance_details = instance_config ['data' ]['integrationInstance' ]
@@ -733,10 +736,18 @@ def update_integration_instance_config_value(self,
733736 }
734737
735738 # remove problem fields from previous response
736- del variables ['update' ]['pollingIntervalCronExpression' ]['__typename' ]
739+ if variables ["update" ].get ("pollingIntervalCronExpression" ) is not None :
740+ if "__typename" in ["update" ]["pollingIntervalCronExpression" ]:
741+ del variables ["update" ]["pollingIntervalCronExpression" ][
742+ "__typename"
743+ ]
737744
738- for ingestion_source in instance_details ['ingestionSourcesOverrides' ]:
739- ingestion_source .pop ("__typename" , None ) # Removes key if it exists, ignores if not
745+ ingestion_sources = instance_details .get ("ingestionSourcesOverrides" , None )
746+ if ingestion_sources is not None :
747+ for ingestion_source in instance_details ["ingestionSourcesOverrides" ]:
748+ ingestion_source .pop (
749+ "__typename" , None
750+ ) # Removes key if it exists, ignores if not
740751
741752 response = self ._execute_query (UPDATE_INTEGRATION_INSTANCE , variables = variables )
742753
0 commit comments