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.4.6
PowerShellv2.2.9
Gov0.20.0
TypeScriptv0.6.0
Rustv0.7.0
Rubyv1.2.0

This service collection has code examples posted to the repository.

OperationDescription
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.
create_rule_groupMixin0
create_rule_group
Create a rule group for a platform with a name and an optional description. Returns the rule group.
delete_rule_groupsMixin0
delete_rule_groups
Delete rule groups by ID.
update_rule_groupMixin0
update_rule_group
Update a rule group. The following properties can be modified: name, description, enabled.
get_rule_types
get_rule_types
Get rule types by ID.
get_rules_get
get_rules_get
Get rules by ID and optionally version in the following format: ID[:version].
get_rulesMixin0
get_rules
Get rules by ID and optionally version in the following format: ID[:version]. The max number of IDs is constrained by URL size.
create_rule
create_rule
Create a rule within a rule group. Returns the rule.
delete_rules
delete_rules
Delete rules from a rule group by ID.
update_rules
update_rules
Update rules within a rule group. Return the updated rules.
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.
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.

Get pattern severities by ID.

GET /ioarules/entities/pattern-severities/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 get_patterns
NameTypeData typeDescription
idsquerystring or list of stringsThe ID(s) of the entities to return.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)

Get platforms by ID.

GET /ioarules/entities/platforms/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 get_platforms
NameTypeData typeDescription
idsquerystring or list of stringsThe ID(s) of the entities to return.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)

Get rule groups by ID.

GET /ioarules/entities/rule-groups/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 get_rule_groups
NameTypeData typeDescription
idsquerystring or list of stringsThe ID(s) of the entities to return.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)

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

POST /ioarules/entities/rule-groups/v1
Scope Custom IOA: WRITE Consumes · Produces application/json
PEP 8 create_rule_group
NameTypeData typeDescription
bodybodydictionaryFull body payload in JSON format.
descriptionbodystringRule group description.
commentbodystringComment to associate with this rule group.
namebodystringRule group name.
platformbodystringRule group platform.
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)

Delete rule groups by ID.

DELETE /ioarules/entities/rule-groups/v1
Scope Custom IOA: WRITE Consumes · Produces application/json
PEP 8 delete_rule_groups
NameTypeData typeDescription
commentquerystringAudit log comment for this operation.
idsquerystring or list of stringsThe ID(s) of the entities to return.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)

Update a rule group. The following properties can be modified: name, description, enabled.

PATCH /ioarules/entities/rule-groups/v1
Scope Custom IOA: WRITE Consumes · Produces application/json
PEP 8 update_rule_group
NameTypeData typeDescription
bodybodydictionaryFull body payload in JSON format.
descriptionbodystringRule group description.
commentbodystringComment to associate with this rule group.
enabledbodybooleanFlag indicating if this rule group is enabled.
idbodystringID of the rule group to be updated.
namebodystringRule group name.
rulegroup_versionbodyintegerRule group version to update.
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)

Get rule types by ID.

GET /ioarules/entities/rule-types/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 get_rule_types
NameTypeData typeDescription
idsquerystring or list of stringsThe ID(s) of the entities to return.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)

Get rules by ID and optionally version in the following format: ID[:version].

POST /ioarules/entities/rules/GET/v1
Scope Custom IOA: WRITE Consumes · Produces application/json
PEP 8 get_rules_get
NameTypeData typeDescription
bodybodydictionaryFull body payload in JSON format.
idsbodystring or list of stringsRule ID(s) 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)

Get rules by ID and optionally version in the following format: ID[:version]. The max number of IDs is constrained by URL size.

GET /ioarules/entities/rules/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 get_rules
NameTypeData typeDescription
idsquerystring or list of stringsThe ID(s) of the entities to return.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)

Create a rule within a rule group. Returns the rule.

POST /ioarules/entities/rules/v1
Scope Custom IOA: WRITE Consumes · Produces application/json
PEP 8 create_rule
NameTypeData typeDescription
bodybodydictionaryFull body payload in JSON format.
descriptionbodystringRule description.
disposition_idbodyintegerDisposition ID of the rule.
commentbodystringComment to associate with this rule.
field_valuesbodydictionaryDictionary representing the rule field values.
pattern_severitybodystringSeverity.
namebodystringRule name.
rulegroup_idbodystringID of the Rule group to associate this rule to.
ruletype_idbodystringRule Type ID for this rule.
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)

Delete rules from a rule group by ID.

DELETE /ioarules/entities/rules/v1
Scope Custom IOA: WRITE Consumes · Produces application/json
PEP 8 delete_rules
NameTypeData typeDescription
commentquerystringAudit log comment for this operation.
idsquerystring or list of stringsThe ID(s) of the entities to return.
parametersquerydictionaryFull query string parameters payload in JSON format.
rule_group_idquerystringThe parent rule group ID.

Examples coming soon.


Update rules within a rule group. Return the updated rules.

PATCH /ioarules/entities/rules/v1
Scope Custom IOA: WRITE Consumes · Produces application/json
PEP 8 update_rules
NameTypeData typeDescription
bodybodydictionaryFull body payload in JSON format.
commentbodystringComment to associate with this rule.
rule_updatesbodydictionaryDictionary representing the rule updates to perform.
rulegroup_idbodystringID of the Rule group to associate this rule to.
rulegroup_versionbodyintegerRule group version.

Examples coming soon.


Update name, description, enabled or field_values for individual rules within a rule group. The v1 flavor of this call requires the caller to specify the complete state for all the rules in the rule group, instead the v2 flavor will accept the subset of rules in the rule group and apply the attribute updates to the subset of rules in the rule group. Returns the updated rules.

PATCH /ioarules/entities/rules/v2
Scope Custom IOA: WRITE Consumes · Produces application/json
PEP 8 update_rules_v2
NameTypeData typeDescription
bodybodydictionaryFull body payload in JSON format.
commentbodystringComment to associate with this rule.
rule_updatesbodydictionaryDictionary representing the rule updates to perform.
rulegroup_idbodystringID of the Rule group to associate this rule to.
rulegroup_versionbodyintegerRule group version.
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)

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

POST /ioarules/entities/rules/validate/v1
Scope Custom IOA: WRITE Consumes · Produces application/json
PEP 8 validate
NameTypeData typeDescription
bodybodydictionaryFull body payload in JSON format.
fieldsbodylist of dictionariesList of dictionaries containing the fields to be validated.
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)

Get all pattern severity IDs.

GET /ioarules/queries/pattern-severities/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 query_patterns
NameTypeData typeDescription
limitqueryintegerMaximum number of records to return.
offsetqueryintegerStarting index of overall result set from which to return ids.
parametersquerydictionaryFull query string parameters payload in JSON format.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_patterns(limit=integer, offset="string")
print(response)

Get all platform IDs.

GET /ioarules/queries/platforms/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 query_platforms
NameTypeData typeDescription
limitqueryintegerMaximum number of records to return.
offsetqueryintegerStarting index of overall result set from which to return ids.
parametersquerydictionaryFull query string parameters payload in JSON format.
from falconpy import CustomIOA
falcon = CustomIOA(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_platforms(limit=integer, offset="string")
print(response)

Find all rule groups matching the query with optional filter.

GET /ioarules/queries/rule-groups-full/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 query_rule_groups_full
NameTypeData typeDescription
filterquerystringFQL formatted string used to limit the results. Available filters: enabled, platform, name, description, rules.action_label, rules.name, rules.description, rules.pattern_severity, rules.ruletype_name, rules.enabled. Filter range criteria: created_on, modified_on.
limitqueryintegerMaximum number of records to return.
offsetqueryintegerStarting index of overall result set from which to return ids.
qquerystringMatch query criteria which includes all the filter string fields.
sortquerystringThe property to sort by. (Ex: modified_on.desc). Available sort fields: created_by, created_on, modified_by, modified_on, enabled, name, description.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)

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

GET /ioarules/queries/rule-groups/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 query_rule_groups
NameTypeData typeDescription
filterquerystringFQL formatted string used to limit the results. Available filters: enabled, platform, name, description, rules.action_label, rules.name, rules.description, rules.pattern_severity, rules.ruletype_name, rules.enabled. Filter range criteria: created_on, modified_on.
limitqueryintegerMaximum number of records to return.
offsetqueryintegerStarting index of overall result set from which to return ids.
qquerystringMatch query criteria which includes all the filter string fields.
sortquerystringThe property to sort by. (Ex: modified_on.desc). Available sort fields: created_by, created_on, modified_by, modified_on, enabled, name, description.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)

Get all rule type IDs.

GET /ioarules/queries/rule-types/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 query_rule_types
NameTypeData typeDescription
limitqueryintegerMaximum number of records to return.
offsetqueryintegerStarting index of overall result set from which to return ids.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)

Finds all rule IDs matching the query with optional filter.

GET /ioarules/queries/rules/v1
Scope Custom IOA: READ Consumes · Produces application/json
PEP 8 query_rules
NameTypeData typeDescription
filterquerystringFQL formatted string used to limit the results. Available filters: enabled, platform, name, description, rules.action_label, rules.name, rules.description, rules.pattern_severity, rules.ruletype_name, rules.enabled. Filter range criteria: created_on, modified_on.
limitqueryintegerMaximum number of records to return.
offsetqueryintegerStarting index of overall result set from which to return ids.
qquerystringMatch query criteria which includes all the filter string fields.
sortquerystringThe property to sort by. (Ex: rules.created_on.desc). Available sort fields: rules.ruletype_name, rules.enabled, rules.created_by, rules.current_version.name, rules.current_version.modified_by, rules.created_on, rules.current_version.description, rules.current_version.pattern_severity, rules.current_version.action_label, rules.current_version.modified_on.
parametersquerydictionaryFull query string parameters payload in JSON format.
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)