Skip to content

Custom IOA

The Custom IOA service collection provides operations for managing custom Indicator of Attack (IOA) rules and rule groups. Create, update, delete, and query rule groups, rules, and rule types. Validate field values and retrieve platform and pattern severity information.

LanguageLast Update
Pythonv1.6.5
PowerShellv2.2.9
Gov0.22.0
TypeScriptv0.6.0
Rustv0.7.1
Rubyv1.4.0

This service collection has code examples posted to the repository.



OperationDescription
create-rule
create_rule
Create a rule within a rule group.
create-rule-groupMixin0
create_rule_group
Create a rule group for a platform with a name and an optional description.
delete-rule-groupsMixin0
delete_rule_groups
Delete rule groups by ID.
delete-rules
delete_rules
Delete rules from a rule group by ID.
get-patterns
get_patterns
Get pattern severities by ID.
get-platformsMixin0
get_platforms
Get platforms by ID.
get-rule-groupsMixin0
get_rule_groups
Get rule groups by ID.
get-rule-types
get_rule_types
Get rule types by ID.
get-rules-get
get_rules_get
Get rules by ID and optionally with cid and/or version in the following format: [cid:]ID[:version].
get-rulesMixin0
get_rules
Get rules by ID and optionally with cid and/or version in the following format: [cid:]ID[:version].
query-patterns
query_patterns
Get all pattern severity IDs.
query-platformsMixin0
query_platforms
Get all platform IDs.
query-rule-groups-full
query_rule_groups_full
Find all rule groups matching the query with optional filter.
query-rule-groupsMixin0
query_rule_groups
Finds all rule group IDs matching the query with optional filter.
query-rule-types
query_rule_types
Get all rule type IDs.
query-rulesMixin0
query_rules
Finds all rule IDs matching the query with optional filter.
update-rule-groupMixin0
update_rule_group
Update a rule group.
update-rules
update_rules
Update rules within a rule group.
update-rules-v2
update_rules_v2
Update name, description, enabled or field_values for individual rules within a rule group.
validate
validate
Validates field values and checks for matches if a test string is provided.

Create a rule within a rule group.

Method POST
Route /ioarules/entities/rules/v1
Scope Custom IOA rules: WRITE
PEP 8 create_rule
body body · dictionary
Full body payload as JSON formatted dictionary.
comment body · string
Comment related to this update.
description body · string
Rule description.
disposition_id body · integer
Disposition ID.
field_values body · array
Rule values represented as an object.
name body · string
Name of the rule.
pattern_severity body · string
Severity.
rulegroup_id body · string
ID of the rule group.
ruletype_id body · string
ID of the rule type.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
field_values = [
{
"final_value": "string",
"label": "string",
"name": "string",
"type": "string",
"value": "string",
"values": [
{
"label": "string",
"value": "string"
}
]
}
]
response = falcon.create_rule(comment="string",
description="string",
disposition_id=integer,
field_values=field_values,
name="string",
pattern_severity="string",
rulegroup_id="string",
ruletype_id="string")
print(response)
[
{
"action_label": "string",
"comment": "string",
"committed_on": "string",
"created_by": "string",
"created_on": "string",
"customer_id": "string",
"deleted": false,
"description": "string",
"disposition_id": 0,
"enabled": false,
"field_values": [],
"instance_id": "string",
"instance_version": 0,
"magic_cookie": 0,
"modified_by": "string",
"modified_on": "string",
"name": "string",
"pattern_id": "string",
"pattern_severity": "string",
"rulegroup_id": "string",
"ruletype_id": "string",
"ruletype_name": "string",
"version_ids": []
}
]


Create a rule group for a platform with a name and an optional description.

Method POST
Route /ioarules/entities/rule-groups/v1
Scope Custom IOA rules: WRITE
PEP 8 create_rule_group
body body · dictionary
Full body payload as JSON formatted dictionary.
comment body · string
Comment for the rule group.
description body · string
Rule group description.
name body · string
Name of the rule group.
platform body · string
Platform this rule group applies to. Allowed values:
Available values (3)
windowsmaclinux
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.create_rule_group(comment="string",
description="string",
name="string",
platform="string")
print(response)
[
{
"comment": "string",
"committed_on": "string",
"created_by": "string",
"created_on": "string",
"customer_id": "string",
"deleted": false,
"description": "string",
"enabled": false,
"id": "string",
"modified_by": "string",
"modified_on": "string",
"name": "string",
"platform": "string",
"rule_ids": [],
"rules": [],
"version": 0
}
]


Delete rule groups by ID.

Method DELETE
Route /ioarules/entities/rule-groups/v1
Scope Custom IOA rules: WRITE
PEP 8 delete_rule_groups
comment query · string
Explains why the entity is being deleted
ids query · string or list of strings
The IDs of the entities
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.delete_rule_groups(comment="string", ids=id_list)
print(response)
{
"errors": [
{
"code": 0,
"id": "string",
"message": "string"
}
],
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total": 0
},
"powered_by": "string",
"query_time": 0.0,
"trace_id": "string",
"writes": {
"resources_affected": 0
}
}
}


Delete rules from a rule group by ID.

Method DELETE
Route /ioarules/entities/rules/v1
Scope Custom IOA rules: WRITE
PEP 8 delete_rules
rule_group_id query · string
The parent rule group
comment query · string
Explains why the entity is being deleted
ids query · string or list of strings
The IDs of the entities
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.delete_rules(comment="string",
ids=id_list,
rule_group_id="string")
print(response)
{
"errors": [
{
"code": 0,
"id": "string",
"message": "string"
}
],
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total": 0
},
"powered_by": "string",
"query_time": 0.0,
"trace_id": "string",
"writes": {
"resources_affected": 0
}
}
}


Get pattern severities by ID.

Method GET
Route /ioarules/entities/pattern-severities/v1
Scope Custom IOA rules: READ
PEP 8 get_patterns
ids query · string or list of strings
The IDs of the entities
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.get_patterns(ids=id_list)
print(response)
[
{
"name": "string",
"severity": "string"
}
]


Get platforms by ID.

Method GET
Route /ioarules/entities/platforms/v1
Scope Custom IOA rules: READ
PEP 8 get_platforms
ids query · string or list of strings
The IDs of the entities
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.get_platforms(ids=id_list)
print(response)
[
{
"id": "string",
"label": "string"
}
]


Get rule groups by ID.

Method GET
Route /ioarules/entities/rule-groups/v1
Scope Custom IOA rules: READ
PEP 8 get_rule_groups
ids query · string or list of strings
The IDs of the entities
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.get_rule_groups(ids=id_list)
print(response)
[
{
"comment": "string",
"committed_on": "string",
"created_by": "string",
"created_on": "string",
"customer_id": "string",
"deleted": false,
"description": "string",
"enabled": false,
"id": "string",
"modified_by": "string",
"modified_on": "string",
"name": "string",
"platform": "string",
"rule_ids": [],
"rules": [],
"version": 0
}
]


Get rule types by ID.

Method GET
Route /ioarules/entities/rule-types/v1
Scope Custom IOA rules: READ
PEP 8 get_rule_types
ids query · string or list of strings
The IDs of the entities
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.get_rule_types(ids=id_list)
print(response)
[
{
"channel": 0,
"disposition_map": [],
"fields": [],
"id": "string",
"long_desc": "string",
"name": "string",
"platform": "string",
"released": false
}
]


Get rules by ID and optionally with cid and/or version in the following format: [cid:]ID[:version].

Method POST
Route /ioarules/entities/rules/GET/v1
Scope Custom IOA rules: READ
PEP 8 get_rules_get
body body · dictionary
Full body payload as JSON formatted dictionary.
ids body · array
Rule IDs to retrieve.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.get_rules_get(ids=id_list)
print(response)
[
{
"action_label": "string",
"comment": "string",
"committed_on": "string",
"created_by": "string",
"created_on": "string",
"customer_id": "string",
"deleted": false,
"description": "string",
"disposition_id": 0,
"enabled": false,
"field_values": [],
"instance_id": "string",
"instance_version": 0,
"magic_cookie": 0,
"modified_by": "string",
"modified_on": "string",
"name": "string",
"pattern_id": "string",
"pattern_severity": "string",
"rulegroup_id": "string",
"ruletype_id": "string",
"ruletype_name": "string",
"version_ids": []
}
]


Get rules by ID and optionally with cid and/or version in the following format: [cid:]ID[:version].

Method GET
Route /ioarules/entities/rules/v1
Scope Custom IOA rules: READ
PEP 8 get_rules
ids query · string or list of strings
The IDs of the entities
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.get_rules(ids=id_list)
print(response)
[
{
"action_label": "string",
"comment": "string",
"committed_on": "string",
"created_by": "string",
"created_on": "string",
"customer_id": "string",
"deleted": false,
"description": "string",
"disposition_id": 0,
"enabled": false,
"field_values": [],
"instance_id": "string",
"instance_version": 0,
"magic_cookie": 0,
"modified_by": "string",
"modified_on": "string",
"name": "string",
"pattern_id": "string",
"pattern_severity": "string",
"rulegroup_id": "string",
"ruletype_id": "string",
"ruletype_name": "string",
"version_ids": []
}
]


Get all pattern severity IDs.

Method GET
Route /ioarules/queries/pattern-severities/v1
Scope Custom IOA rules: READ
PEP 8 query_patterns
offset query · string
Starting index of overall result set from which to return IDs
limit query · integer
Number of IDs to return
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_patterns(limit=integer, offset="string")
print(response)
[
"string"
]


Get all platform IDs.

Method GET
Route /ioarules/queries/platforms/v1
Scope Custom IOA rules: READ
PEP 8 query_platforms
offset query · string
Starting index of overall result set from which to return IDs
limit query · integer
Number of IDs to return
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_platforms(limit=integer, offset="string")
print(response)
[
"string"
]


Find all rule groups matching the query with optional filter.

Method GET
Route /ioarules/queries/rule-groups-full/v1
Scope Custom IOA rules: READ
PEP 8 query_rule_groups_full
sort query · string
The property to sort by. (Ex: modified_on.desc) Available sort fields:
Available values (6)
created_bycreated_onenabled
modified_bymodified_onname
filter query · string
FQL Syntax formatted string used to limit the results. Available filters:Filter range criteria: You may use any common date format, such as 2010-05-15T14:55:21.892315096Z for date format fields.
Available values (12)
enabledplatformname
descriptionrules.action_labelrules.name
rules.descriptionrules.pattern_severityrules.ruletype_name
rules.enabledcreated_onmodified_on
q query · string
Match query criteria, which includes all the filter string fields
offset query · string
Starting index of overall result set from which to return IDs
limit query · integer
Number of IDs to return
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_rule_groups_full(filter="string",
limit=integer,
offset="string",
q="string",
sort="string")
print(response)
[
"string"
]


Finds all rule group IDs matching the query with optional filter.

Method GET
Route /ioarules/queries/rule-groups/v1
Scope Custom IOA rules: READ
PEP 8 query_rule_groups
sort query · string
The property to sort by. (Ex: modified_on.desc) Available sort fields:
Available values (6)
created_bycreated_onenabled
modified_bymodified_onname
filter query · string
FQL Syntax formatted string used to limit the results. Available filters:Filter range criteria: You may use any common date format, such as 2010-05-15T14:55:21.892315096Z for date format fields.
Available values (12)
enabledplatformname
descriptionrules.action_labelrules.name
rules.descriptionrules.pattern_severityrules.ruletype_name
rules.enabledcreated_onmodified_on
q query · string
Match query criteria, which includes all the filter string fields
offset query · string
Starting index of overall result set from which to return IDs
limit query · integer
Number of IDs to return
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_rule_groups(filter="string",
limit=integer,
offset="string",
q="string",
sort="string")
print(response)
[
"string"
]


Get all rule type IDs.

Method GET
Route /ioarules/queries/rule-types/v1
Scope Custom IOA rules: READ
PEP 8 query_rule_types
offset query · string
Starting index of overall result set from which to return IDs
limit query · integer
Number of IDs to return
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_rule_types(limit=integer, offset="string")
print(response)
[
"string"
]


Finds all rule IDs matching the query with optional filter.

Method GET
Route /ioarules/queries/rules/v1
Scope Custom IOA rules: READ
PEP 8 query_rules
sort query · string
The property to sort by. (Ex: rules.created_on.desc) Available sort fields:
Available values (10)
rules.created_byrules.created_onrules.current_version.action_label
rules.current_version.descriptionrules.current_version.modified_byrules.current_version.modified_on
rules.current_version.namerules.current_version.pattern_severityrules.enabled
rules.ruletype_name
filter query · string
FQL Syntax formatted string used to limit the results. Available filters:Filter range criteria: You may use any common date format, such as 2010-05-15T14:55:21.892315096Z for date format fields.
Available values (12)
enabledplatformname
descriptionrules.action_labelrules.name
rules.descriptionrules.pattern_severityrules.ruletype_name
rules.enabledcreated_onmodified_on
q query · string
Match query criteria, which includes all the filter string fields
offset query · string
Starting index of overall result set from which to return IDs
limit query · integer
Number of IDs to return
parameters query · dictionary
Full query string parameters payload in JSON format. Not required when using other keywords.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_rules(filter="string",
limit=integer,
offset="string",
q="string",
sort="string")
print(response)
[
"string"
]


Update a rule group.

Method PATCH
Route /ioarules/entities/rule-groups/v1
Scope Custom IOA rules: WRITE
PEP 8 update_rule_group
body body · dictionary
Full body payload as JSON formatted dictionary.
comment body · string
Comment for the rule group.
description body · string
Rule group description.
enabled body · boolean
Flag indicating if the group is enabled.
id body · string
ID of the rule group.
name body · string
Name of the rule group.
rulegroup_version body · integer
Rule group version to modify.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.update_rule_group(comment="string",
description="string",
enabled=boolean,
id="string",
name="string",
rulegroup_version=integer)
print(response)
[
{
"comment": "string",
"committed_on": "string",
"created_by": "string",
"created_on": "string",
"customer_id": "string",
"deleted": false,
"description": "string",
"enabled": false,
"id": "string",
"modified_by": "string",
"modified_on": "string",
"name": "string",
"platform": "string",
"rule_ids": [],
"rules": [],
"version": 0
}
]


Update rules within a rule group.

Method PATCH
Route /ioarules/entities/rules/v1
Scope Custom IOA rules: WRITE
PEP 8 update_rules
body body · dictionary
Full body payload as JSON formatted dictionary.
comment body · string
Comment related to this update.
rule_updates body · array
JSON dictionary representing the rule updates to be performed. Only one rule update can be done in this manner.
rulegroup_id body · string
ID of the rule group.
rulegroup_version body · integer
Version of the rule group.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
rule_updates = [
{
"description": "string",
"disposition_id": 0,
"enabled": True,
"field_values": [
{
"final_value": "string",
"label": "string",
"name": "string",
"type": "string",
"value": "string",
"values": [
{
"label": "string",
"value": "string"
}
]
}
],
"instance_id": "string",
"name": "string",
"pattern_severity": "string",
"rulegroup_version": 0
}
]
response = falcon.update_rules(comment="string",
rulegroup_id="string",
rule_updates=rule_updates,
rulegroup_version=integer)
print(response)
[
{
"action_label": "string",
"comment": "string",
"committed_on": "string",
"created_by": "string",
"created_on": "string",
"customer_id": "string",
"deleted": false,
"description": "string",
"disposition_id": 0,
"enabled": false,
"field_values": [],
"instance_id": "string",
"instance_version": 0,
"magic_cookie": 0,
"modified_by": "string",
"modified_on": "string",
"name": "string",
"pattern_id": "string",
"pattern_severity": "string",
"rulegroup_id": "string",
"ruletype_id": "string",
"ruletype_name": "string",
"version_ids": []
}
]


Update name, description, enabled or field_values for individual rules within a rule group.

Method PATCH
Route /ioarules/entities/rules/v2
Scope Custom IOA rules: WRITE
PEP 8 update_rules_v2
body body · dictionary
Full body payload as JSON formatted dictionary.
comment body · string
Comment related to this update.
rule_updates body · array
JSON dictionary representing the rule updates to be performed. Only one rule update can be done in this manner.
rulegroup_id body · string
ID of the rule group.
rulegroup_version body · integer
Version of the rule group.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
rule_updates = [
{
"description": "string",
"disposition_id": 0,
"enabled": True,
"field_values": [
{
"final_value": "string",
"label": "string",
"name": "string",
"type": "string",
"value": "string",
"values": [
{
"label": "string",
"value": "string"
}
]
}
],
"instance_id": "string",
"name": "string",
"pattern_severity": "string",
"rulegroup_version": 0
}
]
response = falcon.update_rules_v2(comment="string",
rulegroup_id="string",
rule_updates=rule_updates,
rulegroup_version=integer)
print(response)
[
{
"action_label": "string",
"comment": "string",
"committed_on": "string",
"created_by": "string",
"created_on": "string",
"customer_id": "string",
"deleted": false,
"description": "string",
"disposition_id": 0,
"enabled": false,
"field_values": [],
"instance_id": "string",
"instance_version": 0,
"magic_cookie": 0,
"modified_by": "string",
"modified_on": "string",
"name": "string",
"pattern_id": "string",
"pattern_severity": "string",
"rulegroup_id": "string",
"ruletype_id": "string",
"ruletype_name": "string",
"version_ids": []
}
]


Validates field values and checks for matches if a test string is provided.

Method POST
Route /ioarules/entities/rules/validate/v1
Scope Custom IOA rules: WRITE
PEP 8 validate
body body · dictionary
Full body payload as JSON formatted dictionary.
fields body · array
List of fields to validate.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
fields = [
{
"name": "string",
"test_data": "string",
"type": "string",
"values": [
{
"label": "string",
"value": "string"
}
]
}
]
response = falcon.validate(fields=fields)
print(response)
[
{
"bytes": "string",
"error": "string",
"matches_test": false,
"name": "string",
"test_data": "string",
"valid": false,
"value": "string"
}
]