Service detection rules API - POST a rule
The request consumes and produces an application/json
payload.
This request is an early adopter release and may be changed in non compatible way.
POST |
|
Parameters
Refer to JSON models to find all JSON models that depend on the type of the model.
Parameter | Type | Description | In | Required |
---|---|---|---|---|
position | string |
The position of the new rule:
|
query | optional |
body | OpaqueAndExternalWebRequestRule |
The JSON body of the request containing parameters of the new service detection rule. You must not specify the ID of the rule! The order field is ignored in this request. To enforce a particular order use the |
body | optional |
The OpaqueAndExternalWebRequestRule object
The service detection rule of the OPAQUE_AND_EXTERNAL_WEB_REQUEST
type.
Element | Type | Description | Required |
---|---|---|---|
type | string | optional | |
metadata | ConfigurationMetadata |
Metadata useful for debugging. |
optional |
id | string |
The ID of the service detection rule. |
optional |
order | string |
The order of the rule in the rules list. The rules are evaluated from top to bottom. The first matching rule applies. |
optional |
name | string |
The name of the rule. |
required |
description | string |
A short description of the rule. |
optional |
enabled | boolean |
The rule is enabled( |
required |
conditions | ConditionsOpaqueAndExternalWebRequestAttributeTypeDto[] |
A list of conditions of the rule. If several conditions are specified, the AND logic applies. |
optional |
applicationId | ApplicationId |
How to handle the detected ID of the application. |
optional |
contextRoot | ContextRoot |
How to handle the detected context root of the request URL. |
optional |
port | Port |
How to handle the port where the opaque request has been detected. |
optional |
publicDomainName | PublicDomainName |
How to handle the domain name where the opaque request has been detected. |
optional |
The PublicDomainName object
The contribution to the service ID calculation from the domain name where the web request has been detected.
You have two mutually exclusive options:
- Override the detected value with a specified static value. Specify the new value in the valueOverride field.
- Dynamically transform the detected value. Specify the transformation parameters in the transformations field.
Element | Type | Description | Required |
---|---|---|---|
copyFromHostName | boolean |
Use ( Not applicable if the override is specified. |
optional |
valueOverride | string |
The value to be used instead of the detected value. |
optional |
transformations | TransformationBase[] |
Transformations to be applied to the detected value. |
optional |
The Port object
The contribution to the service ID calculation from the port, where the web request has been detected.
Element | Type | Description | Required |
---|---|---|---|
doNotUseForServiceId | boolean |
The port is used ( |
optional |
The ContextRoot object
The contribution to the service ID calculation from the detected context root.
The context root is the first segment of the request URL after server name. For example, in the www.dexp.ae/support/help/extend-DESK/DESK-api/
URL the context root is support
.
You have two options:
- Keep a part of the detected URL. Specify the number of segments to be kept in the segmentsToCopyFromUrlPath field.
- Dynamically transform the detected URL. Specify the transformation parameters in the transformations field.
You can use one or both options. If you use both, the transformation applies to the modified URL.
Element | Type | Description | Required |
---|---|---|---|
segmentsToCopyFromUrlPath | integer |
The number of segments of the URL to be kept. The URL is divided by slashes ( For example, if you specify |
optional |
transformations | ContextRootTransformation[] |
Transformations to be applied to the detected value. |
optional |
The ContextRootTransformation 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: BEFORE -> BeforeTransformation REPLACE_BETWEEN -> ReplaceBetweenTransformation REMOVE_NUMBERS -> RemoveNumbersTransformation REMOVE_CREDIT_CARDS -> RemoveCreditCardNumbersTransformation REMOVE_IBANS -> RemoveIBANsTransformation REMOVE_IPS -> RemoveIPsTransformation The type element can hold these values. |
required |
The ApplicationId object
The contribution to the service ID calculation from the detected application ID.
You have two mutually exclusive options:
- Override the detected value with a specified static value. Specify the new value in the valueOverride field.
- Dynamically transform the detected value. Specify the transformation parameters in the transformations field.
Element | Type | Description | Required |
---|---|---|---|
valueOverride | string |
The value to be used instead of the detected value. |
optional |
transformations | TransformationBase[] |
Transformations to be applied to the detected value. |
optional |
The TransformationBase 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: BEFORE -> BeforeTransformation AFTER -> AfterTransformation BETWEEN -> BetweenTransformation REPLACE_BETWEEN -> ReplaceBetweenTransformation REMOVE_NUMBERS -> RemoveNumbersTransformation REMOVE_CREDIT_CARDS -> RemoveCreditCardNumbersTransformation REMOVE_IBANS -> RemoveIBANsTransformation REMOVE_IPS -> RemoveIPsTransformation SPLIT_SELECT -> SplitSelectTransformation TAKE_SEGMENTS -> TakeSegmentsTransformation The type element can hold these values. |
required |
The ConditionsOpaqueAndExternalWebRequestAttributeTypeDto object
A condition of the service detection rule.
Element | Type | Description | Required |
---|---|---|---|
attributeType | string |
The type of the attribute to be checked. The attributeType element can hold these values. |
required |
compareOperations | CompareOperation[] |
A list of conditions for the rule. If several conditions are specified, the AND logic applies. |
optional |
The CompareOperation 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: EQUALS -> EqualsCompareOperation STRING_CONTAINS -> StringContainsCompareOperation STARTS_WITH -> StartsWithCompareOperation ENDS_WITH -> EndsWithCompareOperation EXISTS -> ExistsCompareOperation IP_IN_RANGE -> IpInRangeCompareOperation LESS_THAN -> LessThanCompareOperation GREATER_THAN -> GreaterThanCompareOperation INT_EQUALS -> IntEqualsCompareOperation STRING_EQUALS -> StringEqualsCompareOperation The type element can hold these values. |
required |
The ConfigurationMetadata object
Metadata useful for debugging
Element | Type | Description | Required |
---|---|---|---|
configurationVersions | integer[] |
A Sorted list of the version numbers of the configuration. |
optional |
clusterVersion | string |
DESK server version. |
optional |
This is a model of the request body, showing the possible elements. It has to be adjusted for usage in an actual request. See the Example expandable section for working sample request.
{
"type": "OPAQUE_AND_EXTERNAL_WEB_REQUEST",
"name": "My sample rule",
"description": "REST API example\n",
"enabled": true,
"conditions": [
{
"attributeType": "APPLICATION_ID",
"compareOperations": [
{
"type": "STRING_CONTAINS",
"invert": "false",
"ignoreCase": "false",
"values": [
"value1",
"value2"
]
}
]
}
],
"applicationId": {
"valueOverride": "abc"
},
"contextRoot": {
"segmentsToCopyFromUrlPath": 2,
"transformations": [
{
"type": "BEFORE",
"delimiter": "/"
}
]
},
"port": {
"doNotUseForServiceId": "true"
},
"publicDomainName": {
"copyFromHostName": "true",
"transformations": [
{
"type": "BEFORE",
"delimiter": "/"
}
]
}
}
Possible values
Possible values for the type element in the ContextRootTransformation object:
- BEFORE
- REPLACE_BETWEEN
- REMOVE_NUMBERS
- REMOVE_CREDIT_CARDS
- REMOVE_IBANS
- REMOVE_IPS
Possible values for the type element in the TransformationBase object:
- BEFORE
- AFTER
- BETWEEN
- REPLACE_BETWEEN
- REMOVE_NUMBERS
- REMOVE_CREDIT_CARDS
- REMOVE_IBANS
- REMOVE_IPS
- SPLIT_SELECT
- TAKE_SEGMENTS
Possible values for the type element in the CompareOperation object:
- EQUALS
- STRING_CONTAINS
- STARTS_WITH
- ENDS_WITH
- EXISTS
- IP_IN_RANGE
- LESS_THAN
- GREATER_THAN
- INT_EQUALS
- STRING_EQUALS
Possible values for the attributeType element in the ConditionsOpaqueAndExternalWebRequestAttributeTypeDto object:
- IP
- TOP_LEVEL_DOMAIN
- URL
- URL_HOST_NAME
- URL_PATH
- URL_PORT
Possible values for the position element:
- APPEND
- PREPEND
Response codes
Code | Description |
---|---|
201 | Success. The new service detection rule has been created. The response contains short representation of the rule, including the ID. |
400 | Failed. The input is invalid. |
Response format
The EntityShortRepresentation object
The short representation of a DESK entity.
Element | Type | Description |
---|---|---|
id | string | The ID of the DESK entity. |
name | string | The name of the DESK entity. |
description | string | A short description of the DESK entity. |
{}
Validate payload
We recommend that you validate the payload before submitting it with an actual request. A response code of 204 indicates a valid payload.
The request consumes an application/json
payload.
This request is an early adopter release and may be changed in non compatible way.
POST |
|
Response codes
Code | Description |
---|---|
204 | Validated. The service detection rule is valid. Response doesn't have a body. |
400 | Failed. The input is invalid. |