Skip to content
This repository was archived by the owner on Dec 5, 2025. It is now read-only.

Commit 5bc84ed

Browse files
committed
[client] Add compatibility with new types of SCOs
1 parent cf065ce commit 5bc84ed

File tree

1 file changed

+45
-2
lines changed

1 file changed

+45
-2
lines changed

pycti/entities/opencti_stix_cyber_observable.py

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,20 @@ def __init__(self, opencti, file):
285285
... on UserAgent {
286286
value
287287
}
288+
... on BankAccount {
289+
iban
290+
bic
291+
number
292+
}
293+
... on PhoneNumber {
294+
value
295+
}
296+
... on PaymentCard {
297+
number
298+
expiration_date
299+
cvv
300+
holder_name
301+
}
288302
importFiles {
289303
edges {
290304
node {
@@ -655,6 +669,9 @@ def create(self, **kwargs):
655669
$Hostname: HostnameAddInput
656670
$Text: TextAddInput,
657671
$UserAgent: UserAgentAddInput
672+
$BankAccount: BankAccountAddInput
673+
$PhoneNumber: PhoneNumberAddInput
674+
$PaymentCard: PaymentCardAddInput
658675
) {
659676
stixCyberObservableAdd(
660677
type: $type,
@@ -691,6 +708,9 @@ def create(self, **kwargs):
691708
Hostname: $Hostname,
692709
Text: $Text,
693710
UserAgent: $UserAgent
711+
BankAccount: $BankAccount
712+
PhoneNumber: $PhoneNumber
713+
PaymentCard: $PaymentCard
694714
) {
695715
id
696716
standard_id
@@ -1076,12 +1096,35 @@ def create(self, **kwargs):
10761096
if "value" in observable_data
10771097
else None,
10781098
}
1079-
elif type == "User-Agent":
1080-
input_variables["UserAgent"] = {
1099+
elif type == "Bank-Account":
1100+
input_variables["BankAccount"] = {
1101+
"iban": observable_data["iban"]
1102+
if "iban" in observable_data
1103+
else None,
1104+
"bic": observable_data["bic"] if "bic" in observable_data else None,
1105+
"number": observable_data["number"]
1106+
if "number" in observable_data
1107+
else None,
1108+
}
1109+
elif type == "Phone-Number":
1110+
input_variables["PhoneNumber"] = {
10811111
"value": observable_data["value"]
10821112
if "value" in observable_data
10831113
else None,
10841114
}
1115+
elif type == "Payment-Card":
1116+
input_variables["PaymentCard"] = {
1117+
"number": observable_data["number"]
1118+
if "number" in observable_data
1119+
else None,
1120+
"expiration_date": observable_data["expiration_date"]
1121+
if "expiration_date" in observable_data
1122+
else None,
1123+
"cvv": observable_data["cvv"] if "cvv" in observable_data else None,
1124+
"holder_name": observable_data["holder_name"]
1125+
if "holder_name" in observable_data
1126+
else None,
1127+
}
10851128
result = self.opencti.query(query, input_variables)
10861129
return self.opencti.process_multiple_fields(
10871130
result["data"]["stixCyberObservableAdd"]

0 commit comments

Comments
 (0)