Service detection rules API - JSON models
JSON models of the Service detection rules API vary greatly, depending on the type of some objects. Here you can find JSON models for each variation.
Variations of the ServiceDetectionRule
object
The ServiceDetectionRule
object is the base for all service detection rules. The actual set of fields depends on the type of the rule.
FULL_WEB_REQUEST
OPAQUE_AND_EXTERNAL_WEB_REQUEST
FULL_WEB_SERVICE
Variations of the CompareOperation
object
The CompareOperation
object is the base for all comparison operations. The actual set of fields depends on the type of the comparison.
STRING_CONTAINS
The StringContainsCompareOperation object
The condition of the rule.
The actual set of fields depends on the type
of the condition.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
negate | boolean |
Inverts the operation of the condition. Set to If not set, then |
optional |
ignoreCase | boolean |
The condition is case sensitive ( If not set, then |
optional |
values | string[] |
The value to compare to. If several values are specified, the OR logic applies. |
optional |
{
"type": "STRING_CONTAINS",
"negate": false,
"ignoreCase": true,
"values": [
"compareValue1",
"compareValue2"
]
}
STRING_EQUALS
The StringEqualsCompareOperation object
The condition of the rule.
The actual set of fields depends on the type
of the condition.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
negate | boolean |
Inverts the operation of the condition. Set to If not set, then |
optional |
ignoreCase | boolean |
The condition is case sensitive ( If not set, then |
optional |
values | string[] |
The value to compare to. If several values are specified, the OR logic applies. |
optional |
{
"type": "STRING_EQUALS",
"negate": false,
"ignoreCase": true,
"values": [
"compareValue1",
"compareValue2"
]
}
STARTS_WITH
The StartsWithCompareOperation object
The condition of the rule.
The actual set of fields depends on the type
of the condition.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
negate | boolean |
Inverts the operation of the condition. Set to If not set, then |
optional |
ignoreCase | boolean |
The condition is case sensitive ( If not set, then |
optional |
values | string[] |
The value to compare to. If several values are specified, the OR logic applies. |
optional |
{
"type": "STARTS_WITH",
"negate": false,
"ignoreCase": true,
"values": [
"compareValue1",
"compareValue2"
]
}
ENDS_WITH
The EndsWithCompareOperation object
The condition of the rule.
The actual set of fields depends on the type
of the condition.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
negate | boolean |
Inverts the operation of the condition. Set to If not set, then |
optional |
ignoreCase | boolean |
The condition is case sensitive ( If not set, then |
optional |
values | string[] |
The value to compare to. If several values are specified, the OR logic applies. |
optional |
{
"type": "ENDS_WITH",
"negate": false,
"ignoreCase": true,
"values": [
"compareValue1",
"compareValue2"
]
}
EXISTS
The ExistsCompareOperation object
The condition of the rule.
The actual set of fields depends on the type
of the condition.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
negate | boolean |
Inverts the operation of the condition. Set to If not set, then |
optional |
{
"type": "EXISTS",
"negate": false
}
IP_IN_RANGE
The IpInRangeCompareOperation object
The condition of the rule.
The actual set of fields depends on the type
of the condition.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
negate | boolean |
Inverts the operation of the condition. Set to If not set, then |
optional |
lower | string |
The lower boundary of the IP range. |
required |
upper | string |
The upper boundary of the IP range. |
required |
{
"type": "IP_IN_RANGE",
"negate": false,
"lower": "192.168.0.1",
"upper": "192.168.0.10"
}
INT_EQUALS
The IntEqualsCompareOperation object
The condition of the rule.
The actual set of fields depends on the type
of the condition.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
negate | boolean |
Inverts the operation of the condition. Set to If not set, then |
optional |
values | integer[] |
The value to compare to. If several values are specified, the OR logic applies. |
optional |
{
"type": "INT_EQUALS",
"negate": false,
"values": [
128,
258,
512
]
}
LESS_THAN
The LessThanCompareOperation object
The condition of the rule.
The actual set of fields depends on the type
of the condition.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
value | integer |
The value to compare to. |
required |
{
"type": "LESS_THAN",
"value": 512
}
GREATER_THAN
The GreaterThanCompareOperation object
The condition of the rule.
The actual set of fields depends on the type
of the condition.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
value | integer |
The value to compare to. |
required |
{
"type": "GREATER_THAN",
"value": 256
}
Variations of the Transformation
object
The Transformation
object is the base for all transformation operations. The actual set of fields depends on the type of the transformation.
BEFORE
The transformation of the BEFORE
type.
The transformation keeps the value before the specified delimiter and removes everything after it.
Element | Type | Description | Required |
---|---|---|---|
type | string | The type of the transformation. | required |
delimiter | string | The delimiter of the transformation. The transformation keeps everything before this delimiter and removes everything after it. The delimiter itself is not kept. If several delimiters appear in the initial value, only the first one is used. |
required |
{
"type": "BEFORE",
"delimiter": "/"
}
AFTER
The transformation of the AFTER
type.
The transformation removes everything before the specified delimiter and keeps the value after it.
Element | Type | Description | Required |
---|---|---|---|
type | string | The type of the transformation. | required |
delimiter | string | The delimiter of the transformation. The transformation removes everything before this delimiter and keeps everything after it. The delimiter itself is not kept. If several delimiters appear in the initial value, only the first one is used. |
required |
{
"type": "AFTER",
"delimiter": "/"
}
BETWEEN
The transformation of the BETWEEN
type.
The transformation keeps the value between the specified delimiters and removes everything outside them.
Element | Type | Description | Required |
---|---|---|---|
type | string | The type of the transformation. | required |
after | string | The starting delimiter. The transformation removes everything before it. The delimiter itself is not kept. | required |
{
"type": "BETWEEN",
"after": "support",
"before": "/"
}
REPLACE_BETWEEN
The ReplaceBetweenTransformation object
Configuration of transformation of the detected value.
If several transformations are specified, they are handled sequentially from top to bottom. Each transformation is applied to the result of the preceding transformation. For example, the second transformation is applied to the result of the first transformation.
The actual set of fields depends on the type
of the transformation.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
after | string |
The starting delimiter. The transformation removes everything before it. The delimiter itself is not kept. |
required |
before | string |
The ending delimiter. The transformation removes everything after it. The delimiter itself is not kept. |
required |
replacement | string |
The value to be used instead of the detected value. |
required |
{
"type": "REPLACE_BETWEEN",
"after": "support",
"before": "/",
"replacement": "newValue"
}
REMOVE_NUMBERS
The RemoveNumbersTransformation object
Configuration of transformation of the detected value.
If several transformations are specified, they are handled sequentially from top to bottom. Each transformation is applied to the result of the preceding transformation. For example, the second transformation is applied to the result of the first transformation.
The actual set of fields depends on the type
of the transformation.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
minDigitCount | integer |
Remove numbers that contain at least X digits. |
required |
includeHexNumbers | boolean |
Remove ( If not set, then |
optional |
{
"type": "REMOVE_NUMBERS",
"minDigitCount": 2,
"includeHexNumbers": true
}
REMOVE_CREDIT_CARDS
The RemoveCreditCardNumbersTransformation object
Configuration of transformation of the detected value.
If several transformations are specified, they are handled sequentially from top to bottom. Each transformation is applied to the result of the preceding transformation. For example, the second transformation is applied to the result of the first transformation.
The actual set of fields depends on the type
of the transformation.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
{
"type": "REMOVE_CREDIT_CARDS"
}
REMOVE_IBANS
The RemoveIBANsTransformation object
Configuration of transformation of the detected value.
If several transformations are specified, they are handled sequentially from top to bottom. Each transformation is applied to the result of the preceding transformation. For example, the second transformation is applied to the result of the first transformation.
The actual set of fields depends on the type
of the transformation.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
{
"type": "REMOVE_IBANS"
}
REMOVE_IPS
The RemoveIPsTransformation object
Configuration of transformation of the detected value.
If several transformations are specified, they are handled sequentially from top to bottom. Each transformation is applied to the result of the preceding transformation. For example, the second transformation is applied to the result of the first transformation.
The actual set of fields depends on the type
of the transformation.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
{
"type": "REMOVE_IPS"
}
SPLIT_SELECT
The SplitSelectTransformation object
Configuration of transformation of the detected value.
If several transformations are specified, they are handled sequentially from top to bottom. Each transformation is applied to the result of the preceding transformation. For example, the second transformation is applied to the result of the first transformation.
The actual set of fields depends on the type
of the transformation.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
delimiter | string |
The delimiter for splitting the detected value. The delimiter itself is not kept. |
required |
itemIndex | integer |
The index of the element in the split array to be used. Indexing starts with |
required |
{
"type": "SPLIT_SELECT",
"delimiter": "/",
"itemIndex": 2
}
TAKE_SEGMENTS
The TakeSegmentsTransformation object
Configuration of transformation of the detected value.
If several transformations are specified, they are handled sequentially from top to bottom. Each transformation is applied to the result of the preceding transformation. For example, the second transformation is applied to the result of the first transformation.
The actual set of fields depends on the type
of the transformation.
Element | Type | Description | Required |
---|---|---|---|
type | string |
Defines the actual set of fields depending on the value. See one of the following objects:
|
required |
segmentCount | integer |
The number of elements to be kept. |
required |
delimiter | string |
The delimiter for splitting the detected value. The delimiter itself is not kept. |
required |
takeFromEnd | boolean |
Keeps the first ( If not set, then |
optional |
{
"type": "TAKE_SEGMENTS",
"delimiter": "/",
"takeFromEnd": false
}