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
  • Managed https://{your-domain}/e/{your-environment-id}/api/config/v1/service/detectionRules/OPAQUE_AND_EXTERNAL_WEB_REQUEST
  • SaaS https://{your-environment-id}.live.dexp.ae/api/config/v1/service/detectionRules/OPAQUE_AND_EXTERNAL_WEB_REQUEST

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:

  • APPEND: at the end of the rule list.
  • PREPEND: on top of the rule list.
The position element can hold these values.
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 PUT /ruleBasedServiceDetection/OPAQUE_AND_EXTERNAL_WEB_REQUEST/reorder request.

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(true) or disabled (false).

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 (true) or don't use (false) the detected host name as base for transformation.

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 (false) or isn't used (true) in the service ID calculation.

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 (/), the indexing starts with 1 at context root.

For example, if you specify 2 for the www.dexp.ae/support/help/DESK-api/ URL, the value of support/help is used.

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

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
  • Managed https://{your-domain}/e/{your-environment-id}/api/config/v1/service/detectionRules/OPAQUE_AND_EXTERNAL_WEB_REQUEST/validator
  • SaaS https://{your-environment-id}.live.dexp.ae/api/config/v1/service/detectionRules/OPAQUE_AND_EXTERNAL_WEB_REQUEST/validator

Response codes

Code Description
204 Validated. The service detection rule is valid. Response doesn't have a body.
400 Failed. The input is invalid.