Akamai API Security · JSON Structure

Api Security Match Target Structure

Contains information about a match target.

Type: object Properties: 16 Required: 2
API DiscoveryAPI SecurityCloud SecurityPosture ManagementRuntime ProtectionThreat Protection

match-target is a JSON Structure definition published by Akamai API Security, describing 16 properties, of which 2 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

apis bypassNetworkLists configId configVersion defaultFile effectiveSecurityControls fileExtensions filePaths hostnames isNegativeFileExtensionMatch isNegativePathMatch securityPolicy sequence targetId type validations

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/akamai-api-security/refs/heads/main/json-structure/api-security-match-target-structure.json",
  "name": "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": "int32"
          },
          "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": "int32"
    },
    "configVersion": {
      "description": "The version of security configuration.",
      "type": "int32"
    },
    "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": "int32"
    },
    "targetId": {
      "description": "Uniquely identifies the match target.",
      "type": "int32"
    },
    "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"
              },
              "name": {
                "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"
              },
              "name": {
                "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"
              },
              "name": {
                "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
}