Akamai API Security · Schema
match-target
Contains information about a match target.
API DiscoveryAPI SecurityCloud SecurityPosture ManagementRuntime ProtectionThreat Protection
Properties
| Name | Type | Description |
|---|---|---|
| apis | array | Contains a list of objects containing an API endpoint ID and name. This field applies only to API match targets. |
| bypassNetworkLists | array | The list of network list identifiers and names. |
| configId | integer | Uniquely identifies the security configuration. |
| configVersion | integer | The version of security configuration. |
| defaultFile | string | Describes the rule to match on paths. Either `NO_MATCH` to not match on the default file, `BASE_MATCH` to match only requests for top-level hostnames ending in a trailing slash, or `RECURSIVE_MATCH` t |
| effectiveSecurityControls | object | __Read-only__ Defines the security controls to apply. For a security control to be effectively turned on, it has to be enabled in both the match target and the security policy. |
| fileExtensions | array | Contains a list of file extensions. |
| filePaths | array | Contains a list of file paths. |
| hostnames | array | Contains a list of hostnames to protect. |
| isNegativeFileExtensionMatch | boolean | Describes whether the match target applies when a match is found in the specified `fileExtensions` or when a match isn't found. |
| isNegativePathMatch | boolean | Describes whether the match target applies when a match is found in the specified paths or when a match isn't found. |
| securityPolicy | object | The security policy associated with the match target. |
| sequence | integer | The position in the sequence of match targets. |
| targetId | integer | Uniquely identifies the match target. |
| type | string | Describes the type of match target, either `website` or `api`. |
| validations | object | __Read-only__ Describes warnings, errors, or notices determined by a validation of this resource. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/akamai-api-security/refs/heads/main/json-schema/api-security-match-target-schema.json",
"title": "match-target",
"description": "Contains information about a match target.",
"type": "object",
"properties": {
"apis": {
"description": "Contains a list of objects containing an API endpoint ID and name. This field applies only to API match targets.",
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Uniquely identifies the API endpoint.",
"type": "integer"
},
"name": {
"description": "The API endpoint name.",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"type": "array"
},
"bypassNetworkLists": {
"description": "The list of network list identifiers and names.",
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Uniquely identifies the network list.",
"type": "string"
},
"name": {
"description": "The name of the network list.",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"type": "array"
},
"configId": {
"description": "Uniquely identifies the security configuration.",
"type": "integer"
},
"configVersion": {
"description": "The version of security configuration.",
"type": "integer"
},
"defaultFile": {
"default": "NO_MATCH",
"description": "Describes the rule to match on paths. Either `NO_MATCH` to not match on the default file, `BASE_MATCH` to match only requests for top-level hostnames ending in a trailing slash, or `RECURSIVE_MATCH` to match all requests for paths that end in a trailing slash.",
"enum": [
"NO_MATCH",
"BASE_MATCH",
"RECURSIVE_MATCH"
],
"type": "string"
},
"effectiveSecurityControls": {
"additionalProperties": false,
"description": "__Read-only__ Defines the security controls to apply. For a security control to be effectively turned on, it has to be enabled in both the match target and the security policy.",
"properties": {
"applyApiConstraints": {
"description": "Whether you enabled API constraints.",
"type": "boolean"
},
"applyApplicationLayerControls": {
"description": "Whether you enabled application layer controls.",
"type": "boolean"
},
"applyBotmanControls": {
"description": "Whether you enabled Bot Manager controls.",
"type": "boolean"
},
"applyNetworkLayerControls": {
"description": "Whether you enabled network layer controls.",
"type": "boolean"
},
"applyRateControls": {
"description": "Whether you enabled rate controls.",
"type": "boolean"
},
"applyReputationControls": {
"description": "Whether you enabled reputation controls.",
"type": "boolean"
},
"applySlowPostControls": {
"description": "Whether you enabled slow post controls.",
"type": "boolean"
}
},
"readOnly": true,
"required": [
"applyApplicationLayerControls",
"applyNetworkLayerControls",
"applyRateControls",
"applyReputationControls",
"applyBotmanControls",
"applyApiConstraints",
"applySlowPostControls"
],
"type": "object",
"x-akamai": {
"file-path": "schemas/security-controls.yaml"
}
},
"fileExtensions": {
"description": "Contains a list of file extensions.",
"items": {
"description": "The file extensions used in the path match.",
"type": "string"
},
"type": "array"
},
"filePaths": {
"description": "Contains a list of file paths.",
"items": {
"description": "The path used in the path match.",
"type": "string"
},
"type": "array"
},
"hostnames": {
"description": "Contains a list of hostnames to protect.",
"items": {
"description": "The hostnames to match the request on.",
"type": "string"
},
"type": "array"
},
"isNegativeFileExtensionMatch": {
"description": "Describes whether the match target applies when a match is found in the specified `fileExtensions` or when a match isn't found.",
"type": "boolean"
},
"isNegativePathMatch": {
"description": "Describes whether the match target applies when a match is found in the specified paths or when a match isn't found.",
"type": "boolean"
},
"securityPolicy": {
"additionalProperties": false,
"description": "The security policy associated with the match target.",
"properties": {
"policyId": {
"description": "Uniquely identifies the security policy.",
"type": "string"
}
},
"required": [
"policyId"
],
"type": "object"
},
"sequence": {
"description": "The position in the sequence of match targets.",
"type": "integer"
},
"targetId": {
"description": "Uniquely identifies the match target.",
"type": "integer"
},
"type": {
"description": "Describes the type of match target, either `website` or `api`.",
"enum": [
"website",
"api"
],
"type": "string"
},
"validations": {
"additionalProperties": false,
"description": "__Read-only__ Describes warnings, errors, or notices determined by a validation of this resource.",
"properties": {
"errors": {
"description": "The list of errors.",
"items": {
"additionalProperties": false,
"description": "Contains feedback on validation.",
"properties": {
"detail": {
"description": "The explanation of the error message.",
"type": "string"
},
"fieldName": {
"description": "The name of the field causing the validation problem.",
"type": "string"
},
"jsonReference": {
"description": "The JSON reference to the field in the resource.",
"type": "string"
},
"title": {
"description": "The title for the error.",
"example": "Not Found",
"type": "string"
},
"type": {
"description": "The URL for the error type.",
"example": "/appsec/problem-types/INCOMPATIBLE-FIELD",
"type": "string"
}
},
"required": [
"title",
"type"
],
"type": "object",
"x-akamai": {
"file-path": "schemas/validation.yaml"
}
},
"type": "array"
},
"notices": {
"description": "The list of notices.",
"items": {
"additionalProperties": false,
"description": "Contains feedback on validation.",
"properties": {
"detail": {
"description": "The explanation of the error message.",
"type": "string"
},
"fieldName": {
"description": "The name of the field causing the validation problem.",
"type": "string"
},
"jsonReference": {
"description": "The JSON reference to the field in the resource.",
"type": "string"
},
"title": {
"description": "The title for the error.",
"example": "Not Found",
"type": "string"
},
"type": {
"description": "The URL for the error type.",
"example": "/appsec/problem-types/INCOMPATIBLE-FIELD",
"type": "string"
}
},
"required": [
"title",
"type"
],
"type": "object",
"x-akamai": {
"file-path": "schemas/validation.yaml"
}
},
"type": "array"
},
"warnings": {
"description": "The list of warnings.",
"items": {
"additionalProperties": false,
"description": "Contains feedback on validation.",
"properties": {
"detail": {
"description": "The explanation of the error message.",
"type": "string"
},
"fieldName": {
"description": "The name of the field causing the validation problem.",
"type": "string"
},
"jsonReference": {
"description": "The JSON reference to the field in the resource.",
"type": "string"
},
"title": {
"description": "The title for the error.",
"example": "Not Found",
"type": "string"
},
"type": {
"description": "The URL for the error type.",
"example": "/appsec/problem-types/INCOMPATIBLE-FIELD",
"type": "string"
}
},
"required": [
"title",
"type"
],
"type": "object",
"x-akamai": {
"file-path": "schemas/validation.yaml"
}
},
"type": "array"
}
},
"readOnly": true,
"required": [
"notices",
"errors",
"warnings"
],
"type": "object",
"x-akamai": {
"file-path": "schemas/validations.yaml"
}
}
},
"required": [
"type",
"securityPolicy"
],
"additionalProperties": false
}