Akamai API Security · JSON Structure

Api Security Hostname Coverage Match Target Structure

Contains details about a hostname coverage match target.

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

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

Properties

apis bypassNetworkLists 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-hostname-coverage-match-target-structure.json",
  "name": "hostname-coverage-match-target",
  "description": "Contains details about a hostname coverage match target.",
  "type": "object",
  "properties": {
    "apis": {
      "description": "The list of API endpoint identifiers and names. This applies only for `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 network lists' identifiers and names in the match target.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Uniquely identifies the network list.",
            "type": "string"
          },
          "name": {
            "description": "The name you assigned to the network list.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "defaultFile": {
      "default": "NO_MATCH",
      "description": "Describes the rule to match on paths. Either `NO_MATCH` not to 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. The default value is `NO_MATCH`.",
      "enum": [
        "NO_MATCH",
        "BASE_MATCH",
        "RECURSIVE_MATCH"
      ],
      "type": "string"
    },
    "effectiveSecurityControls": {
      "additionalProperties": false,
      "description": "__Read-only__ The security controls to apply. For a security control to be effectively turned on, you must enable it 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": "The list of file extensions to apply the match target to.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "filePaths": {
      "description": "The list of file paths to apply the match target to.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "hostnames": {
      "description": "The list of hostnames to protect.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "isNegativeFileExtensionMatch": {
      "description": "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": "Whether the match target applies when a match is found in the specified `filePaths` 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 match target's position in the sequence of match targets.",
      "type": "int32"
    },
    "targetId": {
      "description": "Uniquely identifies the match target.",
      "type": "int32"
    },
    "type": {
      "description": "The type of match target. Either `website` or `api`.",
      "enum": [
        "website",
        "api"
      ],
      "type": "string"
    },
    "validations": {
      "additionalProperties": false,
      "description": "__Read-only__ Contains details about 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
}