66import dateutil .parser
77import json
88import uuid
9+ import base64
910
1011from .stix2 import Stix2
1112
@@ -37,7 +38,7 @@ def log(self, message):
3738 file .write ('[' + datetime .datetime .today ().strftime ('%Y-%m-%d %H:%M:%S' ) + '] ' + message + "\n " )
3839 file .close ()
3940
40- def query (self , query , variables = {}):
41+ def query (self , query , variables = {}):
4142 r = requests .post (self .api_url , json = {'query' : query , 'variables' : variables }, headers = self .request_headers )
4243 if r .status_code == requests .codes .ok :
4344 result = r .json ()
@@ -111,6 +112,18 @@ def get_connectors(self):
111112 result = self .query (query )
112113 return result ['data' ]['connectors' ]
113114
115+ def update_connector_config (self , identifier , config ):
116+ self .log ('Updating connector config of ' + identifier + '...' )
117+ query = """
118+ mutation ConnectorConfig($identifier: String!, $config: String!) {
119+ connectorConfig(identifier: $identifier, config: $config)
120+ }
121+ """
122+ self .query (query , {
123+ 'identifier' : identifier ,
124+ 'config' : base64 .b64encode (json .dumps (config ).encode ('ascii' ))
125+ })
126+
114127 def get_stix_domain_entity (self , id ):
115128 """
116129 :param id: StixDomain entity identifier
@@ -2928,14 +2941,14 @@ def get_stix_observables(self, limit=10000):
29282941 return self .parse_multiple (result ['data' ]['stixObservables' ])
29292942
29302943 def create_stix_observable (self ,
2931- type ,
2932- observable_value ,
2933- description ,
2934- id = None ,
2935- stix_id = None ,
2936- created = None ,
2937- modified = None
2938- ):
2944+ type ,
2945+ observable_value ,
2946+ description ,
2947+ id = None ,
2948+ stix_id = None ,
2949+ created = None ,
2950+ modified = None
2951+ ):
29392952 self .log ('Creating observable ' + observable_value + '...' )
29402953 query = """
29412954 mutation StixObservableAdd($input: StixObservableAddInput) {
@@ -2960,14 +2973,14 @@ def create_stix_observable(self,
29602973 return result ['data' ]['stixObservableAdd' ]
29612974
29622975 def create_stix_observable_if_not_exists (self ,
2963- type ,
2964- observable_value ,
2965- description ,
2966- id = None ,
2967- stix_id = None ,
2968- created = None ,
2969- modified = None
2970- ):
2976+ type ,
2977+ observable_value ,
2978+ description ,
2979+ id = None ,
2980+ stix_id = None ,
2981+ created = None ,
2982+ modified = None
2983+ ):
29712984 object_result = self .get_stix_observable_by_value (observable_value )
29722985 if object_result is not None :
29732986 return object_result
0 commit comments