4343MAX_RESULTS_LIMIT = 250000
4444
4545
46- def find_asset_events (
47- http_session : requests .AuthorizedSession ,
48- proj_id : str ,
49- proj_instance : str ,
50- proj_region : str ,
51- asset_indicator : str ,
52- start_time : str ,
53- end_time : str ,
54- reference_time : Optional [str ] = None ,
55- max_results : Optional [int ] = None ) -> None :
46+ def find_asset_events (http_session : requests .AuthorizedSession ,
47+ proj_id : str ,
48+ proj_instance : str ,
49+ proj_region : str ,
50+ asset_indicator : str ,
51+ start_time : str ,
52+ end_time : str ,
53+ reference_time : Optional [str ] = None ,
54+ max_results : Optional [int ] = None ) -> None :
5655 """Find asset events in Chronicle using the Legacy Find Asset Events API.
5756
5857 Args:
@@ -75,32 +74,31 @@ def find_asset_events(
7574 chronicle.legacies.legacyFindAssetEvents
7675 """
7776 # Validate and parse the times to ensure they're in RFC3339 format
78- for time_str in [start_time , end_time , reference_time ] if reference_time else [start_time , end_time ]:
77+ for time_str in [start_time , end_time , reference_time
78+ ] if reference_time else [start_time , end_time ]:
7979 try :
8080 datetime .strptime (time_str , "%Y-%m-%dT%H:%M:%SZ" )
8181 except ValueError as e :
8282 if "does not match format" in str (e ):
8383 raise ValueError (
84- f"Time '{ time_str } ' must be in RFC3339 format (e.g., '2024-01-01T00:00:00Z')" ) from e
84+ f"Time '{ time_str } ' must be in RFC3339 format (e.g., '2024-01-01T00:00:00Z')"
85+ ) from e
8586 raise
8687
8788 base_url_with_region = regions .url_always_prepend_region (
88- CHRONICLE_API_BASE_URL ,
89- proj_region
90- )
89+ CHRONICLE_API_BASE_URL , proj_region )
9190 instance = f"projects/{ proj_id } /locations/{ proj_region } /instances/{ proj_instance } "
9291 url = f"{ base_url_with_region } /v1alpha/{ instance } /legacy:legacyFindAssetEvents"
9392
9493 # Build query parameters
9594 params = [
9695 f"assetIndicator={ asset_indicator } " ,
97- f"timeRange.startTime={ start_time } " ,
98- f"timeRange.endTime={ end_time } "
96+ f"timeRange.startTime={ start_time } " , f"timeRange.endTime={ end_time } "
9997 ]
100-
98+
10199 if reference_time :
102100 params .append (f"referenceTime={ reference_time } " )
103-
101+
104102 if max_results :
105103 # Ensure max_results is within bounds
106104 max_results = min (max (1 , max_results ), MAX_RESULTS_LIMIT )
@@ -112,13 +110,15 @@ def find_asset_events(
112110 if response .status_code >= 400 :
113111 print (response .text )
114112 response .raise_for_status ()
115-
113+
116114 result = response .json ()
117115 print (json .dumps (result , indent = 2 ))
118-
116+
119117 if result .get ("more_data_available" ):
120- print ("\n Warning: More data is available but was not returned due to maxResults limit." )
121-
118+ print (
119+ "\n Warning: More data is available but was not returned due to maxResults limit."
120+ )
121+
122122 if result .get ("uri" ):
123123 print ("\n Backstory UI URLs:" )
124124 for uri in result ["uri" ]:
@@ -137,7 +137,9 @@ def find_asset_events(
137137 "--asset_indicator" ,
138138 type = str ,
139139 required = True ,
140- help = "JSON string containing the asset indicator (e.g., '{\" hostname\" : \" example.com\" }')" )
140+ help =
141+ "JSON string containing the asset indicator (e.g., '{\" hostname\" : \" example.com\" }')"
142+ )
141143 parser .add_argument (
142144 "--start_time" ,
143145 type = str ,
@@ -155,21 +157,16 @@ def find_asset_events(
155157 parser .add_argument (
156158 "--max_results" ,
157159 type = int ,
158- help = f"Maximum number of results to return (default: { DEFAULT_MAX_RESULTS } , max: { MAX_RESULTS_LIMIT } )" )
160+ help =
161+ f"Maximum number of results to return (default: { DEFAULT_MAX_RESULTS } , max: { MAX_RESULTS_LIMIT } )"
162+ )
159163
160164 args = parser .parse_args ()
161165
162166 auth_session = chronicle_auth .initialize_http_session (
163167 args .credentials_file ,
164168 SCOPES ,
165169 )
166- find_asset_events (
167- auth_session ,
168- args .project_id ,
169- args .project_instance ,
170- args .region ,
171- args .asset_indicator ,
172- args .start_time ,
173- args .end_time ,
174- args .reference_time ,
175- args .max_results )
170+ find_asset_events (auth_session , args .project_id , args .project_instance ,
171+ args .region , args .asset_indicator , args .start_time ,
172+ args .end_time , args .reference_time , args .max_results )
0 commit comments